跳到导航
BEA Dev2Dev Oracle and BEA
首页 资源中心 dev2dev学堂 在线技术论坛 User Group CodeShare
dev2dev 首页 > 资源中心 > 技术文章
WebLogic Server9.2中配置基于SAML的SSO详述

时间:2006-08-11
作者:牛秀元
浏览次数:
本文关键字:SSOSAMLWebLogic Server单点登录
文章工具
推荐给朋友 推荐给朋友
打印文章 打印文章

  1.   概念

  1.1   SAML术语

  1.2   SAML架构

  1.3   WebLogic Server 9.x概念对应

  1.4   WebLogic SAML 框架

  2.   实验用例描述

  3.   搭建实验环境

  3.1   实验环境准备

  3.2   配置域

  3.2.1   配置密钥库

  3.2.2   部署web应用

  3.2.3   添加测试用户与组...

  4.  配置过程

  4.1   配置源站

  4.1.1   创建Credential Mapping

  4.1.2   配置SAML 1.1 Source Site

  4.1.3   配置Relying Parties

  4.2   配置目标站

  4.2.1   SAML Identity Assertion provider

  4.2.2   配置SAML destination site

  4.2.3   配置证书

  4.2.4   配置Asserting Parties

  关于什么是SAML,本文不做详细介绍,读者可以参考其它文章。本文主要是侧重WebLogic Server 9.X版本上实现基于SAML的SSO的原理。并且,通过一个实例,具体讲解配置过程。

概念

1.1 SAML术语

  信任方:主要的信任方是服务提供者(Service Provider),其主要职责是提供受保护的资源服务,并且可以根据断言判断访问者可以访问哪些资源与服务。

  断言方:也就是Identity Provider,用来提供身份验证服务,在实现统一认证时主要是用来认证用户身份信息,并且生成基于用户身份的断言。

  主题:与身份信息相关的用户

  断言:关于主题的一段陈述,SAML对于给定的主题定义了三类断言:认证、授权、属性。

  凭证(Artifact):通过凭证可以查找到对应的断言。凭证长度为42字节,它包含一个类型代码,长度为20个字节的源标识,以及长度为20个字节的随机数。

  ITS(Inter-site transfer):根据主题信息生成凭证。

  ACS(Assertion Consumer Service):读取请求中的断言信息。

  ARS(Assertion Retrieval Service):根据凭证得到断言服务。

1.2 SAML架构

SAML架构

  说明:由Service Provider向Identity Provider发出SAML请求,Identity Provider通过ITS服务,根据主题通过ARS生成断言信息,然后Service Provider通过ACS根据此断言判断该用户是否有权访问受保护的资源。

1.3 WebLogic Server 9.x概念对应

WebLogic Server 9.x概念对应

  在WebLogic Server上配置SAML时,在联邦服务(Federation Services)一栏中有两个概念:源站(Source Site)与目标站(Destination Site),那么这两个概念在实现基于SAML的统一认证时的作用是怎样的呢?

  源站:主要是负责用户身认证与断言的处理。相当于Identity Provider。

  目标站:主要负责提供受保护服务。相当于Service Provider。

  在实现基于HTTP的统一认证时,通过两种方式传送断言信息:

  1. Identity Provider推方式
    1. Identity Provider直接将断言推给Service Provider
    2. ACS校验断言,如果成功将用户的请求重定向到目标URL
  2. Service Provider拉方式
    1. Service Provider通过凭证(Artifact)在Identity Provider上得到断言
    2. ACS与ARS打开一个通道,根据凭证得到断言,如果校验成功将用户的请求重定向到目标URL

  这两种实现方式差别不大,下面我们将分别讲解以上两种方式:

Identity Provider推方式

Identity Provider推方式

  第一步:用户向目标站发出服务请求。

  第二步:不管请求发往哪个目标站,目标站都会通过浏览器转向将请求发往源站做用户认证工作,源站将通过ITS将通过用户的身份信息生成断言。

  第三步:源站将生成一个HTML的FORM,其中包含了断言信息,然后重定向到浏览器。

  第四步:然后浏览器自动提交该FORM到目标站,目标站根据断言进行模拟登录操作,然后得到服务结果。

  第五步:目标站将生成的响应结果返回浏览器,完成统一认证过程。

Service Provider拉方式

Service Provider拉方式

  第一步:用户向目标站发出服务请求。

  第二步:不管请求发往哪个目标站,目标站都会通过浏览器转向将请求发往源站做用户认证工作,源站将通过ITS将通过用户的身份信息生成凭证(Artifact)。

  第三步:源站将请求连同凭证重定向到浏览器,然后通过浏览器重定向到目标站。

  第四步:目标站将请求转向ACS。

  第五步:ACS与源站的ARS打开通道,根据刚才得到的凭证查询断言。

  第六步:请求连同断言一起发往目标站,目标站通过断言认证用户,并且模拟用户登录,完成服务请求。

  第七步:最后将服务的结果重定向到浏览器,完成统一认证过程。

1.4 WebLogic SAML框架

  1. WebLogic Server作为Identity Provider
  2.   需要在WebLogic安全框架中配置SAML Credential Mapping Provider,同时,还要在服务器的联邦服务中配置Source Site。

    WebLogic SAML框架

      配置SAML Credential Mapping Provider

  3. WebLogic Server作为Service Provider
  4.   WebLogic安全框架中的认证模块配置SAML Identity Assertion Provider,同时,还要在服务器的联邦服务中配置Destination Site。

    WebLogic Server作为Service Provider

      配置SAML Identity Assertion Provider

2. 实验用例描述

构架图

  说明:在目标站上我们部署了应用benefits.war,此应用中, http://localhost:5001/benefits/store/welcome.html 是受保护资源,只有managers组的用户才可以进行访问。为模拟SSO过程,我们在源站上也部署了一个应用timeoff.war,我们在源站上以managers组中的用户steve身份登录,然后直接访问目标站上的受保护资源,由于使用了基于SAML的SSO技术,最终我们将看到,在访问目标站的受保护资源时,无需再次登录。

3. 搭建实验环境

3.1 实验环境准备

  WebLogic Server 9.2

  Windows XP Professional

  Dell D620:CPU 双核1.83GHz ,内存:2G

3.2 构建测试目录

  WebLogic Server 9.2安装目录:d:\bea92

  实验目录:d:\saml,此目录中包含三个子目录:

  d:\saml\domains 域存放目录

  d:\saml\security 密钥库文件与证书存文件放目录

  d:\saml\apps 测试用webapp存放目录

3.2 配置域

  通过可视化向导在d:\saml\domains目录下创建两个WebLogic Server域domain1、domain2。

domain1 domain2
IP地址 默认 默认
端口 7001 5001
管理员用户名 weblogic weblogic
管理员密码 Weblogic weblogic

3.2.1配置密钥库

3.2.1.1 实验文件说明

  在d:\saml\security目录中存放了实验相关的密钥库与证书,具体创建过程本文将不做介绍。

  dwkeystore.jks:用于存放证书与私钥

实验文件说明

  密钥库密码:keystorepwd

  密钥对别名:stevemarkdw

  密钥对密码:stevedwpwd

  stevemarkdw.cer:证书文件

3.2.1.2 在WebLogic Server域中配置密钥库

  分别在domain1与domain2上配置密钥库,以domain1为例:

domain1

  配置说明:

  Keystores:Custom Identity and Java Standard Trust

  Custom Identity Keystore:D:\saml\security\dwkeystore.jks

  Custom Identity Keystore:keystorepwd

  Confirm Custom Identity Keystore:keystorepwd

  domain2配置过程与domain1相同,配置参数也相同。

3.2.2 部署web应用

  在d:\saml\apps\目录中存放了测试用的web应用

  1. timeoff.war:部署在domain1
  2. benefits.war:部署在domain2
3.2.3 添加测试用户与组

  分别在domain1与domain2上创建用户组managers,然后再分别创建用户steve,最后将用户steve添加到managers用户组。

  domain1 domain2
创建用户组 managers managers
创建用户 managers/steve
(密码:password)
managers/steve
(密码:password)

4.配置过程

4.1配置源站

4.1.1创建Credential Mapping

  点击:Security Realms->myrealm->Providers-> Credential Mapping

创建Credential Mapping

  创建Credential Mapping Providers

创建Credential Mapping Providers

  名称:MySAMLCredMapProvider

  类型:SAMLCredentialMapperV2(注意:是V2)

  点击MySAMLCredMapProvider-> Provider Specific

点击MySAMLCredMapProvider-> Provider Specific

  配置说明:

  Issuer URL:http://www.bea.com/saml

  Name Qualifier: bea.com

  Signing Key Alias: stevemarkdw

  Signing Key Pass Phrase: stevedwpwd

  Confirm Signing Key Pass Phrase: stevedwpwd

  重新启动服务器

4.1.2配置SAML 1.1 Source Site

  点击AdminServer-> Federation Services-> SAML 1.1 Source Site

点击AdminServer-> Federation Services-> SAML 1.1 Source Site

  配置说明:

  Source Site Enabled:选上

  Source Site URL: http://localhost:7001/timeoff

  Signing Key Alias: stevemarkdw

  Signing Key Passphrase: stevedwpwd

  ITS Requires SSL:不选

  重新启动

4.1.3配置Relying Parties

  点击:Security Realms->myrealm->Providers-> MySAMLCredMapProvider->Management

配置Relying Parties

  创建 Relying Party,点击New

创建 Relying Party,点击New

  点击新创建的rp_00001

点击新创建的rp_00001

  Enabled:选中

  Target URL:http://localhost:5001/benefits/store/welcome.html

  Assertion Consumer URL:http://localhost:5001/samlacs/acs

  Assertion Consumer Parameters:APID=ap_00001

  Sign Assertions:选中

  :不选

  重新启动

4.2配置目标站

4.2.1SAML Identity Assertion provider

  点击:Security Realms->myrealm->Providers->Authentication

SAML Identity Assertion provider

  点击New创建SAMLIdentityAssertV2

点击New创建SAMLIdentityAssertV2

  配置说明

  Name:MySAMLIdenAssertProvider

  Type:SAMLIdentityAsserterV2(注意:v2)

  重新启动

4.2.2 配置SAML destination site

  点击AdminServer->Federation Services->SAML 1.1 Destinatioin Site

配置SAML destination site

  配置说明

  Destination Site Enabled:选上

  ACS Requires SSL:不选

  SSL Client Identity Alias:stevemarkdw

  SSL Client Identity Pass Phrase:stevedwpwd

  Used Assertion Cache:APID=ap_00001

  重新启动

4.2.3 配置证书

  点击:Security Realms->myrealm->Providers->

  Authentication-> MySAMLIdenAssertProvider->Management->Certificates

配置证书

  点击New添加证书

点击New添加证书

  配置说明:

  Alias:stevemarkdw

  Certificate File Name:D:\saml\security\stevemarkdw.cer

4.2.4 配置Asserting Parties

  点击:Security Realms->myrealm->Providers->

  Authentication-> MySAMLIdenAssertProvider->Management->Asserting Parties

配置Asserting Parties

  点击New创建Asserting Parties

点击New创建Asserting Parties

  点击创建出的ap_00001

点击创建出的ap_00001

  配置说明:

  Enable:选中

  Target URL: http://localhost:7001/timeoff

  POST Signing Certificate Alias: stevemarkdw

  Source Site ITS URL: http://localhost:7001/timeoff

  Issuer URI: http://www.bea.com/saml

  Assertion Signing Certificate Alias: stevemarkdw

  重新启动

5.测试

  打开浏览器,输入如下地址:

  http://localhost:7001/timeoff

测试

  点击Close An Office

点击Close An Office

  输入:用户名:steve,密码:password

输入:用户名:steve,密码:password

  点击:Access Benefits Applliation

点击:Access Benefits Applliation

大功告成!!

程序代码下载:Saml.zip

 作者简介
icon
牛秀元
牛秀元是(dev2dev ID: Guru),BEA系统(中国)有限公司技术顾问,曾任Business Objests技术顾问,合力思软件公司技术顾问
dot dot dot

dot
  作者其它文章
您对本文的评价
您对这篇文章的看法如何?
太棒了!5分 不错啊 4分 一般般 3分 有待提高 2分 不好 1分

   
相关产品