中国IT动力,最新最全的IT技术教程
最新100篇 | 推荐100篇 | 专题100篇 | 排行榜 | 搜索 | 在线API文档
首 页 | 程序开发 | 操作系统 | 软件应用 | 图形图象 | 网络应用 | 精文荟萃 | 教育认证 | 硬件维护 | 未整理篇 | 站长教程
ASP JS PHP工程 ASP.NET 网站建设 UML J2EESUN .NET VC VB VFP 网络维护 数据库 DB2 SQL2000 Oracle Mysql
服务器 Win2000 Office C DreamWeaver FireWorks Flash PhotoShop 上网宝典 CorelDraw 协议大全 网络安全 微软认证
硬件维护  CPU  主板  硬盘  内存  显卡  显示器  键盘鼠标  声卡音箱  打印机  机箱电源  BIOS  网卡  C#  Java  Delphi  vs.net2005
  当前位置:> Bea专区 > WebLogic Platform 8.1
配置WLP和Microsoft AD域之间的单点登录
作者:徐春金 时间:2006-08-08 14:29 出处:bea.com.cn 责编:月夜寒箫
              摘要:配置WLP和Microsoft AD域之间的单点登录

  在WebLogic Platform8.1中提供了用于和Windows客户端进行Single Sign-On的Single Pass Negotiate Identity Assertion Provider。结合Microsoft Active Diretory,通过该Provider可以轻松完成WebLogic Platform8.1和Windows客户端的Single Sign-On。 下面我们介绍其配置过程。

目录

  • 系统环境
  • 配置AD
  • 配置AD Authentication Provider
  • 配置Single Pass Negotiate Identity Assertion provider
  • 修改Portal应用
  • 配置IE

系统环境:

  WLP814英文版,运行在XP上

  AD: WIN2000 advantage server

  客户端:IE6, 运行在XP上

配置AD

  AD主机 192.168.0.2

  domain: BEACS0.BEA.COM

  Hostname: beacs

图1

  同时运行了 dns server(可如下简单配置)

  其他主机均使用本主机为域名服务器。

图2

  etc/hosts 加入 wls主机记录(域名... adtest.com可自定义)

  192.168.0.1 CHXU01.adtest.com CHXU01.ADTEST.COM

  在 AD 中加入一个与wls主机名对应的用户(不要域名后缀) CHXU01/Password01!(用户/密码),为该用户使用DES加密,改为DES加密后,最好重新设置密码.

  加入其他要测试的用户名: xcjing (无须其他特别设置)

  创建Weblogic server的系统管理员用户:weblogic.

  创建一个GROUP: DemoGrp,并把上面创建的CHXU01,xcjing,weblogic用户加到该组中

  使用win2000中附加的相关工具进行下一步操作(参见文档说明)

  setspn -A HTTP/CHXU01.ADTEST.COM CHXU01

  ktpass -princ HTTP/CHXU01@BEACS0.BEA.COM -pass Password01! -mapuser ChXU01 -out c:\CHXU01.HTTP.keytab

  注意: 如果在测试时,出现WLP CONSOLE出现要输入密码的情况, 可能是AD中采用的密码算法和WLS中的不一样(从LOG可以看出采用的算法),要加 crypto参数,直接指定加密算法.

图3

  将swen.HTTP.keytab拷贝至wls主机 domain目录下

配置AD Authentication Provider

图1

图2

图3

图4

  当把AD AUTHENTICATION PROVIDER设置为SUFFICENT时,必须把AD中的weblogic用户所在的组加入到Admin Role中,否则WLP启动不了.

图5

  验证AD AUTHENTICATION PROVIDER配置成功:

图6

图7

配置Single Pass Negotiate Identity Assertion provider

  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.Krb5LoginModule required
principal="HTTP/CHXU01@BEACS0.BEA.COM" useKeyTab=true
keyTab=CHXU01.HTTP.keytab storeKey=true;
};
com.sun.security.jgss.accept {
com.sun.security.auth.module.Krb5LoginModule required
principal="HTTP/CHXU01@BEACS0.BEA.COM" useKeyTab=true
keyTab=CHXU01.HTTP.keytab storeKey=true;
};

  在weblogic admin console中,realm> Authentication Providers,配置相关的identity provider:

  Configure a new Single Pass Negotiate Identity Asserter...

  点"create"

  把左边可选的两种协议都选中并enable.到右边。

图8

  重新排序,把这个provider的顺序提前第一个, AD AUTHENTICATION PROVIDER在第二个.

图9

  更改启动脚本(打开debug确认配置情况,成功后再关闭)

set ADSSO=-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%

  把WEBLOGIC SERVER的LOG打开:

图10

修改Portal应用

  在web.xml中加入:

<security-constraint>
<display-name>Security Constraint on Conversation    </display-name>
<web-resource-collection>
<web-resource-name>Conversation web service </web-resource-name>
<description>....  </description>
<url-pattern>/*</url-pattern>
<http-method>GET</http-method>
<http-method>POST</http-method>
</web-resource-collection>
<auth-constraint>
<role-name>demoRole</role-name>
</auth-constraint>
</security-constraint>
<login-config>
<auth-method>CLIENT-CERT</auth-method>
</login-config>	 <security-role>
<role-name>demoRole</role-name>
</security-role>

  在weblogic.xml中加入:

<security-role-assignment>
<role-name>demoRole</role-name>
<principal-name>DemoGrp</principal-name>
</security-role-assignment>

  写一个测试用的PORTLET:

<%@ page language="java" contentType="text/html;charset=UTF-8"%>
<%@ taglib uri="netui-tags-databinding.tld" prefix="netui-data"%>
<%@ taglib uri="netui-tags-html.tld" prefix="netui"%>
<%@ taglib uri="netui-tags-template.tld" prefix="netui-template"%>
<netui:html>
<head>
<title>
Web Application Page
</title>
</head>
<body>
<p>
hello: <%=request.getRemoteUser()%>
</p>
</body>
</netui:html>

配置IE

  把该机器加入到DOMAIN:BEACS0.BEA.COM中

  在hosts文件中加如:

  192.168.0.1 CHXU01.ADTEST.COM

  192.168.0.1 CHXU01.adtest.com

  192.168.0.2 beacs.BEACS0.BEA.COM

  将 *.ADTEST.COM 加入到 ie 的 intranet 列表中。并检查IE的请配置如下:

图1

图2

图3

图4

图5

图6

  如果该客户端已经加入域,可以直接访问应用,并显示用户名

  如果该客户端还未加入域,将弹出网络密码输入框(windows),输入用户名、密码、域,即可正常访问

图7

  到此,大功告成。

关闭本页
 
首页 | 投资与合作 | 服务条款 | 隐私政策 | 收藏本站 | 设为首页 | 新用户注册 | 免责声明 | 使用帮助
Copyright ©2005-2008 chinaitpower.com All rights reserved. www.chinaitpower.com 版权所有