原文地址(英语):
Making Windows AD Configuration & SSO easy on SAP BI 4.1
我想分享一下最近我在一个新的SAP BI 4.1的环境中配置Windows AD 和 SSO的经验。
不同于以往传统的使用Kerberos Keytab,这一次我们使用平文密码来实现这个功能。
下面的内容就是我配置的步骤。
1.0 创建服务账户
1.1 创建一个新的账户
- 为了建立一个服务的用户认证,必须在AD域控制器上对一个用户进行服务注册
- 为了注册服务,在域控制器上,打开活动目录用户和计算机管理单元
- 单击“用户”文件夹,显示所有用户。在“操作”菜单上,单击“创建新用户”
- 输入一个名称和登录名称作为新的服务,然后单击“下一步”
- 在下一个界面中,输入密码。确保没有选中“用户在下次登录时必须更改密码选项”
- 点击“下一步”,然后单击“完成”
- 右键点击新创建的用户,然后单击“属性“
- 单击帐户选项卡,然后选择帐户是可信授权和密码永不过期。这是为了防止服务帐户到期,导致Kerberos错误
- 如果您的域控制器运行在一个较低的域功能级别(低于Windows 2003域),查看您在步骤2中创建的用户帐户的属性,并选择使用DES加密类型
如果你在以后的版本中启用这个功能,当你使用Windows AD帐号登录到CCM时,可以得到“内部错误”
注:在Windows 2003和2008域功能级别下,默认使用RC4 - 单击OK
1.2 设置用户账户
- 在用户帐户属性选项卡中,确保密码永不过期选项是启用
1.3 授予服务帐户权限
- 登录BI服务器并执行下面的操作
- 单击开始>控制面板>管理工具->本地安全策略
- 扩展本地策略,然后点击用户权限分配
- 双击作为操作系统的一部分
- 单击“添加”
- 添加BO服务帐户名称,然后单击“确定”
- 确保本地策略设置复选框被选中,然后单击“确定”
- 确保BO服务帐户在BI服务器上具有以下系统权限
作为操作系统的一部分
作为批处理作业登录
作为服务登录
替换过程级别令牌
1.4 添加账号到管理员组
- 登录BI服务器并执行下面的操作
- 右键点击我的电脑,单击管理
- 点击系统工具→本地用户和组→组
- 右键单击管理员,然后单击“添加到组”
- 单击“添加”,然后输入BO服务名
- 单击“检查名称”以确保账户正确
- 单击确定,然后再次单击“确定”
2.0 SPN
设置SPN步骤
为了创建适当的服务主体名称(SPN),请在Active Directory服务器执行以下命令
- 登录到域控制器服务器
- 使用setspn –a 命令,在先前创建的服务账户上添加HTTP服务主体名
a) setspn -a HTTP/BOBJServerName BOserviceaccount
b) setspn -a HTTP/BOBJServerName.Domain.COM BOserviceaccount
c) setspn -a HTTP/IP address of BOBJ Server BOserviceaccount
d) setspn -a ServicePrincipalName BOserviceaccount
验证服务帐户的属性,它应该下面的屏幕截图相似
- 在已经创建好的服务账户的属性里,点击委派选项,如下图所示,启用选项“对“服务帐户”信任任何服务(只针对Kerberos)
- 运行“setspn -l BOserviceaccount”命令以确认HTTP服务主要名称添加到服务帐户
3.0 预期的输出
设置SPN时,应该添加以下的内容
- 主要服务名称
- 域控制器的IP地址及其域名全称
- 服务帐户
- 服务帐户密码
4.0 AD配置
- 在BI安装路径下创建bscLogin.conf和krb5.ini文件
- 如果使用Tomcat的话,在bscLogin.conf文件中添加以下内容
com.businessobjects.security.jgss.initiate{
com.sun.security.auth.module.Krb5LoginModule required;
};
- 在krb5.ini文件中添加以下内容,确保所有域名大写,kdc定义为域名全称
[libdefaults]
default_realm = DOMAIN.COM
dns_lookup_kdc = true
dns_lookup_realm = true
default_tgs_enctypes = rc4-hmac
default_tkt_enctypes = rc4-hmac
[realms]
DOMAIN.COM = {
kdc = Domain Controller Server nme. DOMAIN.COM
default_domain = DOMAIN.COM
}
确保该文件保存在“C:\Program Files (x86)\SAP BusinessObjects\SAP BusinessObjects Enterprise XI 4.0\win64_x64\jdk\bin\ folder”下,然后执行 “kinit BOserviceaccount”命令。如果生成了新的秘钥,证明该文件配置正确。
-Djava.security.auth.login.config=C:\BO\WinAD\bscLogin.conf
-Djava.security.krb5.conf=C:\BO\WinAD\Krb5.ini
- 更新位于Tomcat安装目录下的server.xml文件
<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" compression="on" URIEncoding="UTF-8" acceptCount="100" debug="0" disableUploadTimeout="true" enableLookups="false" maxSpareThreads="75" maxThreads="150" maxHttpHeaderSize=" 65536" minSpareThreads="25" compressionMinSize="2048" noCompressionUserAgents="gozilla, traviata" compressableMimeType="text/html,text/xml,text/plain,text/css,text/javascript,text/json,application/json" />
4.1 AD SSO配置
- AD SSO 配置包括在Tomcat WebApp文件夹下创建.properties文件
- 到默认路径“[BI_Installer]\Tomcat\webapps\BOE\WEB-INF\config\custom”下创建BIlaunchpad.properties文件,然后添加以下内容
authentication.default=secWinAD
authentication.visible=true
- 到默认路径“[BI_Installer]\Tomcat\webapps\BOE\WEB-INF\config\custom”下创建global.properties文件,然后添加以下内容
sso.enabled=true
siteminder.enabled=false
vintela.enabled=true
idm.realm=DOMAIN.COM
idm.princ=ServicePrincipalName
idm.allowUnsecured=true
idm.allowNTLM=false
idm.logger.name=simple
idm.logger.props=error-log.properties
idm.allowS4U=true
注意:我们不在global.properties文件中保存keytab文件的路径。
- 打开Tomcat选项,在Tomcat Java选项中添加以下内容:
-Dcom.wedgetail.idm.sso.password=<Password of BOServiceaccount>
-Djcsi.kerberos.debug=true
启动Tomcat, 去路径“[BI_Installer]\Tomcat\logs”下,检查stdout.log中是否有“credentials obtained”内容。
在客户端,通过浏览器测试SSO是否正常工作。(不要在BI服务器上测试)
➕ 为了避免打完patch后导致SSO不能正常工作, 我们需要从“[BI_Installer]\Tomcat\webapps\BOE\WEB-INF\config\custom”文件夹中,复制BIlaunchpad.properties和global.properties文件到“[BI_Installer]\ SAP BusinessObjects Enterprise XI 4.0\warfiles\webapps\BOE\WEB-INF\config\custom”文件夹。