配置WLP和Microsoft AD域之间的单点登录.docx
《配置WLP和Microsoft AD域之间的单点登录.docx》由会员分享,可在线阅读,更多相关《配置WLP和Microsoft AD域之间的单点登录.docx(15页珍藏版)》请在冰豆网上搜索。
配置WLP和MicrosoftAD域之间的单点登录
配置WLP和MicrosoftAD域之间的单点登录
时间:
2006-06-20
作者:
徐春金
浏览次数:
133
本文关键字:
WebLogicPortal, 单点登录, 安全, SSO, SingleSign-On, Microsoft
文章工具
推荐给朋友
打印文章
在WebLogicPlatform8.1中提供了用于和Windows客户端进行SingleSign-On的SinglePassNegotiateIdentityAssertionProvider。
结合MicrosoftActiveDiretory,通过该Provider可以轻松完成WebLogicPlatform8.1和Windows客户端的SingleSign-On。
下面我们介绍其配置过程。
目录
∙系统环境
∙配置AD
∙配置ADAuthenticationProvider
∙配置SinglePassNegotiateIdentityAssertionprovider
∙修改Portal应用
∙配置IE
系统环境:
WLP814英文版,运行在XP上
AD:
WIN2000advantageserver
客户端:
IE6,运行在XP上
配置AD
AD主机192.168.0.2
domain:
BEACS0.BEA.COM
Hostname:
beacs
同时运行了dnsserver(可如下简单配置)
其他主机均使用本主机为域名服务器。
etc/hosts加入wls主机记录(域名...可自定义)
192.168.0.1CHXUCHXU01.ADTEST.COM
在AD中加入一个与wls主机名对应的用户(不要域名后缀)CHXU01/Password01!
(用户/密码),为该用户使用DES加密,改为DES加密后,最好重新设置密码.
加入其他要测试的用户名:
xcjing(无须其他特别设置)
创建Weblogicserver的系统管理员用户:
weblogic.
创建一个GROUP:
DemoGrp,并把上面创建的CHXU01,xcjing,weblogic用户加到该组中
使用win2000中附加的相关工具进行下一步操作(参见文档说明)
setspn-AHTTP/CHXU01.ADTEST.COMCHXU01
ktpass-princHTTP/CHXU01@BEACS0.BEA.COM-passPassword01!
-mapuserChXU01-outc:
\CHXU01.HTTP.keytab
注意:
如果在测试时,出现WLPCONSOLE出现要输入密码的情况,可能是AD中采用的密码算法和WLS中的不一样(从LOG可以看出采用的算法),要加crypto参数,直接指定加密算法.
将swen.HTTP.keytab拷贝至wls主机domain目录下
配置ADAuthenticationProvider
当把ADAUTHENTICATIONPROVIDER设置为SUFFICENT时,必须把AD中的weblogic用户所在的组加入到AdminRole中,否则WLP启动不了.
验证ADAUTHENTICATIONPROVIDER配置成功:
配置SinglePassNegotiateIdentityAssertionprovider
WLP主机192.168.0.1
etc/hosts加入AD主机记录
beacs.BEACS0.BEA.COM
在domain目录按文档建立.conf文件krb5Login.conf
com.sun.security.jgss.initiate{
com.sun.security.auth.module.Krb5LoginModulerequired
principal="HTTP/CHXU01@BEACS0.BEA.COM"useKeyTab=true
keyTab=CHXU01.HTTP.keytabstoreKey=true;
};
com.sun.security.jgss.accept{
com.sun.security.auth.module.Krb5LoginModulerequired
principal="HTTP/CHXU01@BEACS0.BEA.COM"useKeyTab=true
keyTab=CHXU01.HTTP.keytabstoreKey=true;
};
在weblogicadminconsole中,realm>AuthenticationProviders,配置相关的identityprovider:
ConfigureanewSinglePassNegotiateIdentityAsserter...
点"create"
把左边可选的两种协议都选中并enable.到右边。
重新排序,把这个provider的顺序提前第一个,ADAUTHENTICATIONPROVIDER在第二个.
更改启动脚本(打开debug确认配置情况,成功后再关闭)
setADSSO=-Dsun.security.krb5.debug=true
-Djava.security.krb5.realm=BEACS0.BEA.COM
-Djava.security.krb5.kdc=beacs.BEACS0.BEA.COM
-Djava.security.auth.login.config=krb5Login.conf
-Djavax.security.auth.useSubjectCredsOnly=false
-Dweblogic.security.enableNegotiate=true
-DDebugSecurityAdjudicator="true"
-Dweblogic.debug.DebugSecurityAtn="true"
-Dweblogic.debug.DebugSecurityAtz="true"
-Dweblogic.Debug.DebugSecurityATN=true加入:
%ADSSO%%JAVA_HOME%\bin\java%JAVA_VM%%MEM_ARGS%%JAVA_OPTIONS%%ADSSO%
-Dweblogic.Name=%SERVER_NAME%
-Djava.security.policy=%WL_HOME%\server\lib\weblogic.policy%PROXY_SETTINGS%%SERVER_CLASS%
把WEBLOGICSERVER的LOG打开:
修改Portal应用
在web.xml中加入:
SecurityConstraintonConversation
Conversationwebservice
....
/*
GET
POST
demoRole
CLIENT-CERT
demoRole
在weblogic.xml中加入:
demoRole
DemoGrp
写一个测试用的PORTLET:
<%@pagelanguage="java"contentType="text/html;charset=UTF-8"%>
<%@tagliburi="netui-tags-databinding.tld"prefix="netui-data"%>
<%@tagliburi="netui-tags-html.tld"prefix="netui"%>
<%@tagliburi="netui-tags-template.tld"prefix="netui-template"%>
html>
WebApplicationPage
hello:
<%=request.getRemoteUser()%>
html>
配置IE
把该机器加入到DOMAIN:
BEACS0.BEA.COM中
在hosts文件中加如:
192.168.0.1CHXU01.ADTEST.COM
192.168.0.1CHXU
192.168.0.2beacs.BEACS0.BEA.COM
将*.ADTEST.COM加入到ie的intranet列表中。
并检查IE的请配置如下:
如果该客户端已经加入域,可以直接访问应用,并显示用户名
如果该客户端还未加入域,将弹出网络密码输入框(windows),输入用户名、密码、域,即可正常访问
到此,大功告成。