加载中…
个人资料
zzidane
zzidane
  • 博客等级:
  • 博客积分:0
  • 博客访问:219
  • 关注人气:0
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
相关博文
推荐博文
正文 字体大小:

[转载]BO Infoview Windows AD 单点登录(Single Sign On)

(2012-12-04 20:37:36)
标签:

转载

这两天在搞单点登录,功夫不负有心人,最后还是搞出来了,在网上看了好多文章,自己实际操作的时候还是会遇到很多问题。罗列一下设置的过程,也算是纪念一下这两天的工作。

首先 需要用到两台服务器(一台不行), 一台作为AD服务器, 另外一台当然就是BO服务器了。

环境: Windows Server 2003 En, BO XI 3.1

假设:

AD 服务器机器名:vwindows2003AD 

BO 服务器机器名: vwindows03 IP:192.168.1.7

 

以下括号内标注的是所操作的机器名。

 

1) 安装和配置AD服务器, 网上教程一大堆, 我就不详述了。

域DNS: AD.TEST

域:AD

 

2) 配置用户(vwindows2003AD)

新建一个叫BO的组,然后新建一个叫boservice的用户,右击boservice用户,进入属性,切换到delegation选项卡, 选择"Trust this user for delegation to any service (Kerberos only),然后确定。

 

注意: 有的机器可能没有delegation选项卡, 只要右击左边窗格中的域名(AD.TEST),然后选择"Raise Domain Functional Level", 然后在下拉框中选择"Windows Server 2003" ,点击确定即可。

 

进入组策略(开始--运行--输入gpedit.msc)--Computer Configuration--Windows Configuration--Security Configuration--Local Security Policy--User Righte Assignment,给boservice或者其所在的用户组配置以下权限:

 

•    Act as part of Operating System
•    Log on as a Batch Job
•    Log on as a Service
•    Replace a Process Level Token

 

3) 使用ktpass(vwindows2003AD)

在确保安装了Windows Support Tools(第一张安装盘中,安装SupportToolssuptools.msi)之后,把support tools的安装路径(默认是C:/Program Files/Support Tools/)添加进环境变量。

 

在C盘下新建名为mybo的文件夹,打开命令行窗口, 输入以下命令:

 

ktpass -out c:/mybo/BOSSO.keytab -princ BOSSO/boservice.AD.TEST@AD.TEST -mapuser boservice@AD.TEST -pass mypassword -kvno 255 -ptype KRB5_NT_PRINCIPAL -crypto RC4-HMAC-NT

 

4) 打开C:/mybo/文件夹,将生成的BOSSO.keytab拷贝到BO服务器的C:/winnt下(如果没有该文件夹,则新建一个)。

 

5) 在AD服务器上, 运行如下命令。

 

setspn -a HTTP/vwindows2003 boservice
setspn -a HTTP/vwindows2003.AD.TEST boservice
setspn -a HTTP/192.168.1.7 boservice

结果应该和下面类似:

HTTP/vwindows2003
Updated object
Registering ServicePrincipalNames for CN=boservice,CN=Users,DC=POWER,DC=INTERNAL
HTTP/vwindows2003.AD.TEST
Updated object
Registering ServicePrincipalNames for CN=boservice,CN=Users,DC=POWER,DC=INTERNAL
HTTP/192.168.1.7
Updated object

 

6) 用管理员帐号登录BO服务器(vwindows03),将BO服务器添加进AD域 --> 将BO服务器的DNS设置为AD服务器的IP,接着重启BO服务器。

 

然后将ADboservice添加进本地的管理员组。

 

7) 登录CMC,Authentication--Windows AD--Enable Windows AD--点击AD Administrator Name旁边的用户名(初次设置时是双引号),完成如下图设置, 点击update

 

[转载]BO <wbr>Infoview <wbr>Windows <wbr>AD <wbr>单点登录(Single <wbr>Sign <wbr>On)

 

8) 回到设置界面, 完成 如下图所示设置。

 

[转载]BO <wbr>Infoview <wbr>Windows <wbr>AD <wbr>单点登录(Single <wbr>Sign <wbr>On)


完成后点击update。

 

9) 在BO服务器上, 运行services.msc,进入windows 服务,右击SIA服务,属性-->Logon-->修改运行身份为ADboservice,然后重启SIA服务。

 

10) 在BO服务器上创建"c:winntbsclogin.conf", 并输入以下内容:

com.businessobjects.security.jgss.initiate {
com.sun.security.auth.module.Krb5LoginModule required debug=true;
};

 

11)在BO服务器上创建"c:winntkrb5.ini", 并输入以下内容:

[libdefaults]
default_realm = AD.TEST
dns_lookup_kdc = true
dns_lookup_realm = true
udp_preference_limit = 1
[realms]
AD.TEST = {
kdc = VWINDOWS03AD.AD.TEST
default_domain = AD.TEST
}

 

12) 在BO服务器上将C:Program FilesBusiness Objectsjavasdkbin 添加进环境变量,

并运行如下命令

kinit boservice

接着输入boservice的密码。

 

运行结果如下所示:

 

[转载]BO <wbr>Infoview <wbr>Windows <wbr>AD <wbr>单点登录(Single <wbr>Sign <wbr>On)

13) 在BO服务器上, 开始--所有程序--Tomcat--Tomcat configuration--Java,在Java Options 中添加如下内容:

 

-Djava.security.auth.login.config=C:winntbscLogin.conf
-Djava.security.krb5.conf=C:winntKrb5.ini

-Djcsi.kerberos.maxpacketsize=0
-Djcsi.kerberos.debug=true

 

14) 在BO服务器上修改 "C:Program FilesBusiness ObjectsTomcat55webappsInfoViewAppWEB-INFweb.xml"中的

  • "authentication.visible"值为 true
  • "authentication.default"值为secWinAD
  • "siteminder.enabled"值为false
  • "idm.realm"值为AD.TEST
  • "idm.princ"值为BOSSO/boservice.AD.TEST
  • 在"idm.princ"结点下方添加如下语句

         <init-param>
               <param-name>idm.keytab</param-name>
               <param-value>c:winntBOSSO.keytab</param-value>
         </init-param>

移除filter和filter-mapping结点周围的注释标记

 

 

 

15)在BO服务器上 将"C:Program FilesBusiness ObjectsTomcat55confserver.xml"中的

 

<Connector URIEncoding="UTF-8" acceptCount="100" connectionTimeout="20000" disableUploadTimeout="true" enableLookups="false" maxHttpHeaderSize="8192" maxSpareThreads="75" maxThreads="150" minSpareThreads="25" port="80" redirectPort="8443"/>

 

修改为

 

<Connector URIEncoding="UTF-8" acceptCount="100" connectionTimeout="20000" disableUploadTimeout="true" enableLookups="false" maxHttpHeaderSize="16384" maxSpareThreads="75" maxThreads="150" minSpareThreads="25" port="80" redirectPort="8443"/>

 

16) 在BO服务器上, 运行services.msc,进入windows 服务,右击Tomcat服务,属性-->Logon-->修改运行身份为本地系统账户,如下图所示:

 

[转载]BO <wbr>Infoview <wbr>Windows <wbr>AD <wbr>单点登录(Single <wbr>Sign <wbr>On)

17) 重启Tomcat服务。

 

至此, Infoview + Windows AD SSO 配置完毕。

 

使用其他机器登录Infoview界面(或者使用域账户登录BO服务器),在弹出对话框中输入域用户,就能登陆Infoview了。

 

呵呵, 终于写完了,写的过程中还是有不少收获,看来学到点东西, 还是要复述一下, 才能加深印象。

 

 

 


 

 

 

0

  • 评论加载中,请稍候...
发评论

    发评论

    以上网友发言只代表其个人观点,不代表新浪网的观点或立场。

      

    新浪BLOG意见反馈留言板 电话:4000520066 提示音后按1键(按当地市话标准计费) 欢迎批评指正

    新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 会员注册 | 产品答疑

    新浪公司 版权所有