当前位置: 首页 > 工具软件 > JBoss SSO > 使用案例 >

JBoss SSO学习笔记3 Identity Management Framework

齐浩淼
2023-12-01

JBoss Federated SSO - Identity Management Framework(身份管理框架)
身份管理框架可让您整合各种单点登录的组成部分的总体框架内的实际身份商店的用户身份相关的信息存储。
身份管理框架包括一个灵活/可插拔的Java API连接到身份店铺。
Out-of-the-box这部分带有LDAPIdentityProvider连接到的LDAP库为基础,如OpenLDAP ,Red Hat Directory Server,OpenDS等。
该架构支持这个供应商的标准inetOrgPerson的用户身份,并organizational Unit的用户角色。
我们认识到,并不是所有的应用程序商店的身份信息在LDAP 。事实上80 %的申请某种专有数据库的方法存储身份数据。
因此,这一框架是可插拔的设计,因此,即使这些应用程序可以成为联邦的SSO启用。
1)设计细节:
 身份管理服务侧重于管理的实体称为LoginProvider
一个LoginProvider所使用的整体组成部分的SSO系统如JAAS的登录模块和SSOAutoLogin阀访问用户登录相关信息。这一信息是用户名,密码,帐户活跃状态,存在着一个提供用户名等
  这是LoginProvider接口,开发人员可以执行和插入身份管理服务。

2)我如何自定义插件LoginProvider的身份管理服务? :
看看下面的配置:jboss-sso.sar/conf/sso.cfg.xml
<!--
 identity management related configuration, this is the LDAP based module
Technically, this can be a provider that can integrate with thirdparty identity systems like SiteMinder etc
-->
<identity-management>
<login>
<provider id="si:jboss-sso:ldap:login" class="org.jboss.security.idm.ldap.LDAPIdentityProvider">
                    <property name="connectionURL">
                         jdbc:ldap://localhost:389/dc=jboss,dc=com?SEARCH_SCOPE:=subTreeScope&secure:=false&concat_atts:=true&size_limit:=10000000
                    </property>
                    <property name="username">cn=Admin,dc=jboss,dc=com</property>
                    <property name="password">jbossrocks</property>
                    <property name="identityOu">jbosssso</property>
                    <property name="roleOu">role</property>
               </provider>
          </login>                    
     </identity-management>
在这里,您可以注册自己自定义LoginProvider实施了一个独特的编号命名为' id '属性<provider> 。
您可以注册多个供应商的<login>标记,他们都将被IdentityManagement服务管理。
您可以指定<property>名称/值对特异性到您的自定义供应商。
   该IdentityManager.findLoginProvider ( )调用的结果在第一LoginProvider登记制度。该命令是决定秩序的基础上,他们在sso.cfg.xml文件中声明。
   要访问您的特别LoginProvider,你可以存取使用IdentityManager.findProvider (独特providerId )调用。
3)有一些LoginProviders登记在IdentityManagement服务。如何将我的Web应用程序的SSO系统使用适当LoginProvider?:
这里有两个配置步骤为您的Web应用程序,以确保适当的LoginProvider用于您的Web应用程序。
确保context.xml在WAR文件的WEB-INF下配置如下:
 <?xml version="1.0"?>
  <Context>
 <!--
logoutURL - URL for performing logout/signout function in your application
        -->       
     <Valve className="org.jboss.security.valve.SSOAutoLogout"
     logoutURL="{logoutURL of your application}"></Valve>
    
       <!--
             assertingParty - this is the partnerId of this application as a part of a federation of multiple partner sites
       -->
       <Valve className="org.jboss.security.valve.SSOTokenManager"
       assertingParty="{uniqueId to identify this web application in the federation}"></Valve>
       <!--
          tomcat built-in AuthenticationTypes: FORM,BASIC,DIGEST,CLIENT-CERT
       -->
       <Valve className="org.jboss.security.valve.SSOAutoLogin"
       authType="FORM" provider="{uniqueId of the LoginProvider registered with the IdentityManager}"></Valve>
   </Context>
注意:供应商属性SSOAutoLogin值的配置
安装了JAAS的模块配置为Web应用程序如以下配置:
 <?xml version='1.0'?>
      <!DOCTYPE policy PUBLIC
      "-//JBoss//DTD JBOSS Security Config 3.0//EN"
      "http://www.jboss.org/j2ee/dtd/security_config.dtd">
 <!-- The JAAS login configuration file for your application -->
<policy>
 <application-policy name="{your web application identifier}">      
     <authentication>
        <login-module code="org.jboss.security.idm.UsernameAndPasswordLoginModule" flag="required">
     <module-option name="unauthenticatedIdentity">guest</module-option>                                  
     <module-option name="password-stacking">useFirstPass</module-option>          
      <module-option name="authenticatedRoles">Authenticated,RegisteredUsers</module-option>
      <module-option name="provider">{uniqueId of the LoginProvider registered with the IdentityManager}</module-option>            
     </login-module>         
  </authentication>
 </application-policy>
</policy>

注意:模块的供应商选择的org.jboss.security.idm.UsernameAndPasswordLoginModule配置

进一步的细节整合Federated SSO与您的Web应用程序,请参阅以下

 类似资料: