我想分享一下最近我在一个新的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”命令。如果生成了新的秘钥,证明该文件配置正确。
打开Tomcat的配置,添加下面的Java命令行
-Djava.security.auth.login.config=C:\BO\WinAD\bscLogin.conf
-Djava.security.krb5.conf=C:\BO\WinAD\Krb5.ini
更新位于Tomcat安装目录下的server.xml文件
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=
-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”文件夹。