|
WebLogic Server 包含多个身份验证安全提供程序。其中大多数提供程序的工作原理很相似:在给定用户名和密码凭据对的情况下,提供程序将尝试在提供程序的数据存储中查找相应的用户。这些身份验证提供程序的主要区别在于所使用的数据存储不同:是使用多个可用的 LDAP 服务器之一、一个 SQL 数据库还是其他的数据存储。除了这些基于用户名/密码的安全提供程序外,WebLogic Server 还包含标识声明身份验证提供程序,这些提供程序将证书或安全标记(而不是用户名/密码对)用作凭据。
以下部分描述如何配置 WebLogic Server 提供的身份验证安全提供程序。
身份验证是证明或验证用户和系统进程的标识的过程。身份验证还包括记忆、传输标识信息,以及在需要时将这些信息提供给系统的各种组件。
WebLogic Server 安全体系结构支持以下身份验证:直接在 WebLogic Server 中进行基于证书的身份验证;通过外部 Web 服务器代理进行基于 HTTP 证书的身份验证;基于周边的身份验证(Web 服务器、防火墙和 VPN);基于多种安全标记类型和协议的身份验证。
WebLogic Server 提供以下类型的身份验证提供程序:
每个安全领域都至少必须配置一个身份验证提供程序。WebLogic 安全框架支持使用多个身份验证提供程序(因而会有多个 LoginModule)进行多方身份验证。因此,在一个安全领域中可以使用多个身份验证提供程序和多种身份验证提供程序。例如,如果需要同时使用 Retina 扫描和基于用户名/密码的身份验证形式来访问系统,则应配置两个身份验证提供程序。
如何配置多个身份验证提供程序可影响身份验证过程的总体结果。通过为每个身份验证提供程序配置 JAAS 控制标志,可以设置身份验证提供程序之间的登录依赖关系并允许在提供程序之间进行单一登录。请参阅设置 JAAS 控制标志选项。
身份验证提供程序的调用顺序与它们在安全领域中的配置顺序相同。因此,在配置身份验证提供程序时应谨慎处理。可以使用 WebLogic 管理控制台对经过配置的身份验证提供程序重新排序,以此来更改它们的调用顺序。请参阅更改身份验证提供程序的顺序。
在配置多个身份验证提供程序时,通过对每个提供程序都使用 JAAS 控制标志,可以控制身份验证提供程序在登录序列中的使用方式。可以在 WebLogic 管理控制台中设置 JAAS 控制标志。请参阅“管理控制台联机帮助”中的设置 JAAS 控制标志。也可以使用 WebLogic 脚本工具或 Java 管理扩展(Java Management Extensions,简称 JMX)API 来设置身份验证提供程序的 JAAS 控制标志。
默认情况下,在向现有安全领域中添加其他身份验证提供程序时,会将控制标志设置为 OPTIONAL。如有必要,请更改控制标志的设置以及身份验证提供程序的顺序,以便每个身份验证提供程序都能在身份验证序列中正常工作。
WebLogic Server 对多个身份验证提供程序的调用顺序可影响身份验证过程的总体结果。身份验证提供程序表将按调用顺序列出身份验证提供程序。默认情况下,身份验证提供程序将按照其配置顺序进行调用。可以使用管理控制台更改身份验证提供程序的顺序。在管理控制台中,使用“安全领域: 提供程序: 身份验证”页上的“重新排序”按钮可以更改 WebLogic Server 对身份验证提供程序的调用顺序以及这些提供程序在控制台中的列出顺序。
请参阅“管理控制台联机帮助”中的重新排序身份验证提供程序。
WebLogic 身份验证提供程序使用 WebLogic Server 的嵌入式 LDAP 服务器来存储用户和组成员资格信息。通过此提供程序,可以编辑、列出和管理用户和组成员资格。默认情况下,已定义了 WebLogic 身份验证提供程序的大多数配置选项。只有在创建新的安全领域时,才需要配置 WebLogic 身份验证提供程序。但是,还应当注意以下几点:
DefaultAuthenticator 的默认安全领域中进行配置的。
WebLogic Server 包含以下 LDAP 身份验证提供程序:
每一种 LDAP 身份验证提供程序都在外部 LDAP 服务器中存储用户和组信息。其主要区别在于:在默认情况下,它们是如何配置以与其相应 LDAP 服务器的典型目录 Schema 相匹配的。
WebLogic Server 不支持任何特定的 LDAP 服务器,也不对它们进行认证。任何与 LDAP v2 和 v3 兼容的 LDAP 服务器都应该可以用于 WebLogic Server。以下 LDAP 目录服务器已经过测试:
LDAP 身份验证提供程序还可以用于访问其他 LDAP 服务器。但是,必须使用 LDAP 身份验证提供程序 (LDAPAuthenticator) 或选择预定义的 LDAP 提供程序并进行自定义。请参阅访问其他 LDAP 服务器。
如果某 LDAP 身份验证提供程序是安全领域中唯一一个经过配置的身份验证提供程序,则必须具有 Admin 角色才能启动 WebLogic Server 并使用 LDAP 目录中的用户或组。请在 LDAP 目录中执行下列操作之一:
Admin 角色包含 Administrators 组。如果 LDAP 目录中尚不存在 Administrators 组,请创建该组。应确保该组中包含将启动 WebLogic Server 的 LDAP 用户。
Active Directory LDAP 目录中包含一个名为 Administrators 的默认组。将要启动 WebLogic Server 的用户添加到 Administrators 组中并定义组基本识别名 (DN),以便可以找到 Administrators 组。
Administrators 组(例如,因为 LDAP 目录将 Administrators 组用于其他目的),请在 LDAP 目录中创建一个新组(或使用现有组)并在该组中包含要通过其启动 WebLogic Server 的用户。在 WebLogic 管理控制台中,向该组分配 Admin 角色。
本版本的 WebLogic Server 中的 LDAP 身份验证提供程序已经过配置,可随时用于 SunONE (iPlanet)、Active Directory、Open LDAP 和 Novell NDS LDAP 服务器。此外,还可以使用 LDAP 身份验证提供程序访问其他类型的 LDAP 服务器。可以选择 LDAP 身份验证提供程序 (LDAPAuthenticator),也可以选择与新 LDAP 服务器最匹配的现有 LDAP 提供程序并对现有配置进行自定义,以使其与 LDAP 服务器的目录 Schema 和其他特性相匹配。
很多 LDAP 服务器都使用动态组或虚拟组的概念。这些组并不包含用户和组的列表,而是由一些定义属于该组的用户集的策略声明、查询或代码组成。在对用户的组成员资格进行任何更改后,即使组标记为动态组,用户也必须退出并再次登录才能使该更改生效。“动态”一词指的是在 WebLogic Server 中定义组而不定义组的任何运行时语义。
可以将 LDAP 提供程序配置为与多台 LDAP 服务器一起工作,并在某台 LDAP 服务器不可用时启用故障转移。使用主机特性(在管理控制台中位于 LDAP 身份验证提供程序的“配置: 提供程序特定”页上)可以指定其他 LDAP 服务器的名称。每个主机名都可以在尾部包含一个逗号和一个端口号。另外,还应设置 LDAP 身份验证提供程序的并行连接延迟和连接超时特性:
以下示例列出了在将 LDAP 身份验证提供程序配置为进行 LDAP 故障转移时发生的几种情况。
在以下场景中,一个 LDAP 身份验证提供程序在它的下列主机特性中配置为与三台服务器一起工作:directory.knowledge.com:1050、people.catalog.com 和 199.254.1.2。LDAP 服务器的状态如下:
WebLogic Server 将尝试连接到 directory.knowledge.com。在 10 秒后,连接尝试将超时,WebLogic Server 将尝试连接到下一台指定的主机 (people.catalog.com)。WebLogic Server 然后使用 people.catalog.com 作为该连接的 LDAP 服务器。
在以下场景中,WebLogic Server 将尝试连接到 directory.knowledge.com。在 1 秒(由并行连接延迟特性指定)之后,连接尝试将超时,WebLogic Server 将尝试同时连接到下一台指定的主机 (people.catalog.com) 和 directory.knowledge.com。如果连接到 people.catalog.com 成功,WebLogic Server 将使用 people.catalog.com 作为该连接的 LDAP 服务器。WebLogic Server 在连接到 people.catalog.com 成功后,将取消到 directory.knowledge.com 的连接。
要提高 WebLogic 和 LDAP 身份验证提供程序的性能,请执行下列操作:
tokenGroups 选项将其配置为执行组成员资格查找。 tokenGroups 选项以系统 ID (SID) 值的数组形式拥有用户的整个组成员资格。SID 值在 Active Directory 中经过了特殊的索引编制,可以产生极快的查找响应。请参阅配置 Active Directory 身份验证提供程序以提高性能。
要优化 WebLogic 和 LDAP 身份验证提供程序的组成员资格缓存,请设置下列特性(在管理控制台中,这些特性位于 LDAP 身份验证提供程序的“配置: 提供程序特定”和“性能”页上):
动态组并不列出它们的成员名。而是由匹配的用户特性来构造动态组的成员资格。由于需要为动态组动态计算组成员资格,因此,对于较大的组,存在导致性能下降问题的风险。适当配置 iPlanet 身份验证提供程序可以提高存在动态组时的性能。
在 iPlanet 身份验证提供程序中,“用户动态组 DN 特性”特性指定 LDAP 用户对象的特性,而该对象又指定此用户所属的动态组的识别名 (DN)。如果此属性不存在,WebLogic Server 将通过评估动态组的 URL 来确定用户是否为组的成员。默认情况下,用户动态组 DN 特性为空。要在将用户动态组 DN 特性设置为其他值时提高性能,请设置 iPlanet 身份验证提供程序的下列特性:
UserDynamicGroupDNAttribute="wlsMemberOf"
DynamicGroupNameAttribute="cn"
DynamicGroupObjectClass=""
DynamicMemberURLAttribute=""
要提高 WebLogic 或 LDAP 身份验证提供程序的性能,可以适当增加由 WebLogic 委托人验证提供程序所使用的缓存的设置。由 WebLogic 委托人验证提供程序使用的委托人验证器可缓存经过签名的 WLSAbstractPrincipal。要优化委托人验证器缓存的性能,请设置安全领域的下列特性(在管理控制台中,这些特性位于安全领域的“配置: 性能”页上):
要将 Active Directory 身份验证提供程序配置为使用 tokenGroups 选项,请设置下列特性(在管理控制台上,这些特性位于 Active Directory 身份验证提供程序的“配置: 提供程序特定”页上):
tokenGroups 查找算法替换标准的递归组成员资格查找算法。默认情况下不启用此选项。| 注意: | 需要有访问 tokenGroups 选项的权限(这意味着,访问 LDAP 目录的用户必须有权读取 tokenGroups 选项并且 tokenGroups 选项必须位于用户对象的 Schema 中)。 |
在 WebLogic Server 中,RDBMS 身份验证提供程序是基于用户名/密码的身份验证提供程序,它使用关系数据库(而不是 LDAP 目录)作为其用户、密码和组信息的数据存储。WebLogic Server 包含下列 RDBMS 身份验证提供程序:
有关向安全领域中添加 RDBMS 身份验证提供程序的信息,请参阅“管理控制台帮助”中的配置身份验证和标识声明提供程序。在创建 RDBMS 身份验证提供程序的实例后,即可在管理控制台中的 RDBMS 身份验证提供程序的“配置: 提供程序特定”页上对它进行配置。
所有这三种 RDBMS 身份验证提供程序都包含下列配置选项。
数据源名指定连接到数据库所用的 WebLogic Server 数据源。
“组成员资格搜索”和“最大组成员资格搜索级别”特性指定递归组成员资格搜索是否为有限搜索,以及在有限搜索中可以搜索的组成员资格的级数。例如,如果将“组成员资格搜索”指定为 LIMITED,同时将“最大组成员资格搜索级别”指定为 0,则 RDBMS 身份验证提供程序将仅查找用户为其直接成员的组。指定最大组成员资格搜索级别可以减少在身份验证期间执行的 DBMS 查询数,因此在某些场景中,它可以极大地提高身份验证的性能。但是,只有在能够确定所需的组成员资格位于指定的搜索级别限制中时,才应限制组成员资格搜索。
通过缓存组层次查找的结果,可以提高 RDBMS 身份验证提供程序的性能。使用此缓存可以减少 RDBMS 身份验证提供程序需要访问数据库的频率。在管理控制台中,可以使用身份验证提供程序的“性能”页来配置此缓存的用法、大小和持续时间。请参阅“管理控制台联机帮助”中的安全领域: 安全提供程序: SQL 验证器: 性能。
有关配置 SQL 身份验证提供程序的详细信息,请参阅“管理控制台联机帮助”中的安全领域: 安全提供程序: SQL 验证器: 提供程序特定。除了 RDBMS 身份验证提供程序常用特性中描述的特性外,SQL 身份验证提供程序还具有下列可配置特性。
下列特性控制 RDBMS 身份验证提供程序及其基本数据库对用户密码的处理方式:
SQL 语句特性指定提供程序在访问和编辑数据库中的用户名、密码和组信息时所使用的 SQL 语句。在 SQL 语句特性中使用默认值的前提是数据库 Schema 包含以下表:
| 注意: | SQL 语句引用的表必须位于数据库中;提供程序将不会创建它们。可以根据需要修改这些特性,以与数据库的 Schema 相匹配。但是,如果数据库 Schema 与此默认的 Schema 根本不同,则可能需要改用自定义 DBMS 身份验证提供程序。 |
有关配置只读 SQL 身份验证提供程序的详细信息,请参阅“管理控制台联机帮助”中的安全领域: 安全提供程序: 只读 SQL 验证器: 提供程序特定。除了 RDBMS 身份验证提供程序常用特性中描述的特性外,只读 SQL 身份验证提供程序的可配置特性还包含用于指定提供程序在列出数据库中的用户名、密码和组信息时所使用的 SQL 语句的特性。可以根据需要修改这些特性,以与数据库的 Schema 相匹配。
与其他 RDBMS 身份验证提供程序一样,自定义 DBMS 身份验证提供程序也将关系数据库用作其保存用户、密码和组信息的数据存储。如果数据库 Schema 未完全映射到 SQL 验证器所预期的 SQL Schema,则应使用此提供程序。除了 RDBMS 身份验证提供程序常用特性中描述的特性外,自定义 DBMS 身份验证提供程序还包含下列可配置特性。
自定义 DBMS 身份验证提供程序需要用户编写实现 weblogic.security.providers.authentication.CustomDBMSAuthenticatorPlugin 接口的插件类。该类必须位于 CLASSPATH 中,并且必须在自定义 DBMS 身份验证提供程序的“插件类名”特性中指定此类。可以选择使用“插件属性”特性来指定由插件类定义的属性的值。
Windows NT 身份验证提供程序使用为 Windows NT 域定义的帐户信息对用户和组进行身份验证,并允许将 Windows NT 用户和组列在 WebLogic Server 管理控制台中。
要使用 Windows NT 身份验证提供程序,请先在管理控制台中创建该提供程序。在大多数情况下,不需要再执行其他任何操作来配置此身份验证提供程序。根据 Windows NT 域的配置方式,可能需要设置“域控制器”和“域控制器列表”特性,这些特性可控制 Windows NT 身份验证提供程序与 Windows NT 域之间的交互方式。
Windows NT 域中的用户名可以采用多种不同的形式。可能需要配置 Windows NT 身份验证提供程序,才能与用户在登录时预期使用的用户名形式相匹配。简单用户名是不指示域的用户名,例如 smith。复合用户名将用户名与域名组合在一起,可采用类似 domain\smith 或 smith@domain 的形式。
如果本地计算机不在 Microsoft 域中,则不需要更改“域控制器”和“域控制器列表”特性。在独立计算机上,要进行身份验证的用户和组仅在该计算机上定义。
如果本地计算机位于 Microsoft 域中并且是本地域的域控制器,则不需要更改“域控制器列表”特性。在此情况下,本地计算机和域中定义的用户相同,因而可以使用默认的“域控制器”设置。
如果本地计算机位于 Microsoft 域中,但它不是本地域的域控制器,则在本地计算机或域中可以找到一个简单用户名。在此情况下,请考虑以下几点:
在这两个问题的答案中,如果有一个是肯定的,则应将“域控制器”特性设置为 DOMAIN。
如果存在多个可信域,则可能需要将“域控制器”特性设置为 LIST 并指定一个域控制器列表。执行此操作时需满足以下条件:
如果符合上述两种情况之一,则应将“域控制器”特性设置为 LIST 并在“域控制器列表”特性中为要使用的可信域指定域控制器的名称。此外,还应考虑是使用本地计算机和本地域控制器的显式名,还是在它们的列表中使用占位符。在“域控制器列表”特性中可以使用下列占位符:
在 Windows NT 身份验证提供程序中,LogonType 特性的适当值取决于需要能够对其进行身份验证的用户的 Windows NT 登录权限:
必须将上述权限之一分配给 Windows NT 域中的用户,否则 Windows NT 身份验证提供程序将无法对任何用户进行身份验证。
UPN 样式用户名可以采用 user@domain 形式。可以配置 Windows NT 身份验证提供程序如何处理包含 @ 字符但可能不是 UPN 名的用户名,方法是设置 Windows NT 身份验证提供程序中的 mapUPNNames 特性。
在 Windows NT 域或本地计算机中的用户名中,如果除 UPN 用户名外都不包含 @ 字符,则可以使用 mapUPNNames 特性的默认值 FIRST。但是,可能需要考虑将该设置更改为 ALWAYS 以减少检测到身份验证失败所需的时间量。在指定了较长的域控制器列表时尤为如此。
如果 Windows NT 域确实允许在非 UPN 用户名中使用 @ 字符,则:
如果使用的是周边身份验证,则需要使用标识声明提供程序。在周边身份验证中,WebLogic Server 之外的系统通过标记建立信任(它与简单身份验证不同,在后者中,WebLogic Server 通过用户名和密码建立信任)。标识声明提供程序会验证标记并执行在标记中建立有效性和信任所需的一切操作。每个标识声明提供程序都可支持一种或多种标记格式。
可以在一个安全领域中配置多个标识声明提供程序,但都不是必需的。标识声明提供程序可以支持多种标记类型,但在给定的时间内,每个标识声明提供程序只能有一种标记类型处于活动状态。在管理控制台中,可以在“提供程序特定”配置页的“活动类型”字段中定义活动标记类型。WebLogic 标识声明提供程序支持使用 X.509 证书和 CORBA Common Secure Interoperability version 2 (CSI v2) 的标识声明。如果使用的是 CSI v2 标识声明,则应在“可信委托人”字段中定义客户端委托人的列表。
如果在安全领域中配置了多个标识声明提供程序,则所有这些提供程序都可以支持同一种标记类型。但是,该标记一次只能对一个提供程序可用。
通过 WebLogic 标识声明提供程序,可以使用用户名映射器将经过标识声明提供程序身份验证的标记映射到安全领域中的某个用户。有关配置用户名映射器的详细信息,请参阅配置 WebLogic 凭据映射提供程序。
如果将 Web 应用程序中的身份验证类型设置为 CLIENT-CERT,则 WebLogic Server 中的 Web 应用程序容器将对请求头信息和 Cookie 中的值执行标识声明。如果该头信息名或 Cookie 名与已配置标识声明提供程序的活动标记类型匹配,则将值传递给该提供程序。
“提供程序特定”页上的“需要 Base64 解码”值将确定在将请求头信息值或 Cookie 值发送给标识声明提供程序之前,该值是否必须为 Base64 解码值。默认情况下会启用此设置,以便提供向后兼容性;但大多数标识声明提供程序都会禁用此选项。
有关详细信息,请参阅“管理控制台联机帮助”中的配置身份验证和标识声明提供程序。此外,请参阅以下部分:
LDAP X509 标识声明提供程序将执行下列操作:接收 X509 证书,查找与该证书关联的用户的 LDAP 对象,确保 LDAP 对象中的证书与已提供的证书匹配,然后从 LDAP 对象中检索该用户的名称。
通常,如果使用 LDAP X509 标识声明提供程序,则还需要配置使用 LDAP 服务器的 LDAP 身份验证提供程序。该身份验证提供程序将在确保该用户存在后查找其所属的组。应确保这两个身份验证提供程序都经过适当配置,以便可以与同一 LDAP 服务器进行通信。
要使用 LDAP X509 标识声明提供程序,请执行下列操作:
证书中的主题 DN 与该用户对象在 LDAP 服务器中的位置之间必须存在相关性。该用户的 LDAP 对象还必须包含证书的配置信息以及主题中将使用的用户名。
协商标识声明提供程序允许使用 Microsoft 客户端进行单一登录 (SSO)。此标识声明提供程序将对简单和受保护协商 (SPNEGO) 标记进行解码以获取 Kerberos 标记,并在验证 Kerberos 标记后将 Kerberos 标记映射到 WebLogic 用户。协商标识声明提供程序使用 Java 通用安全服务 (GSS) 应用程序编程接口 (API) 来通过 Kerberos 接受 GSS 安全上下文。
协商标识声明提供程序是 WebLogic 安全框架所定义的安全服务提供程序接口 (SSPI) 的实现,它提供基于客户端的 SPNEGO 标记对客户端进行身份验证所需的逻辑。
有关向安全领域中添加协商标识声明提供程序的信息,请参阅“管理控制台联机帮助”中的配置身份验证和标识声明提供程序。有关在 Microsoft 客户端 SSO 配置中使用协商标识声明提供程序的信息,请参阅使用 Microsoft 客户端配置单一登录。
SAML 标识声明提供程序充当 SAML 安全声明的使用者,它允许将 WebLogic Server 作为使用 SAML 进行单一登录的目标站点。SAML 标识声明提供程序将检查签名并在由该提供程序维护的证书注册表中验证证书的信任,以此来验证 SAML 1.1 声明。如果声明有效,则表明标识是基于该声明中包含的 AuthenticationStatement 来声明的。SAML 标识声明提供程序还可以确保该声明以前从未使用过。如果需要在某个服务器实例上部署 SAML 声明使用者服务,则必须配置 SAML 标识声明提供程序。
本版本的 WebLogic Server 包含两个 SAML 标识声明提供程序。SAML 标识声明者版本 2 提供了一系列显著增强的配置选项,因此建议在新部署中使用此工具。不赞成在 WebLogic Server 9.1 中使用 SAML 标识声明者版本 1。一个安全领域不能具有多个 SAML 标识声明提供程序,如果该安全领域同时包含 SAML 标识声明提供程序和 SAML 凭据映射提供程序,则这两个提供程序的版本必须相同。请勿在使用版本 2 SAML 提供程序的同一安全领域中使用版本 1 SAML 提供程序。有关配置 SAML 标识声明提供程序版本 1 的信息,请参阅 WebLogic Server 9.0 文档中的Configuring a SAML Identity Assertion Provider。
有关如何在 SAML 单一登录配置中使用 SAML 标识声明提供程序的信息,请参阅使用 Web 浏览器和 HTTP 客户端配置单一登录。有关 WebLogic Server 中 SAML 支持的一般信息,请参阅“了解 WebLogic 安全性”中的安全声明标记语言 (SAML)
在将 WebLogic Server 配置为充当 SAML 安全声明的使用者时,需要注册将接受其 SAML 声明的声明方。对于每个 SAML 声明方,均可以指定以下内容:所使用的 SAML 配置文件、有关声明方的详细信息以及从声明方接收到的声明中的预期特性。有关信息请参阅:
SAML 标识声明提供程序会维护可信证书的注册表。每当收到证书时,它都将根据注册表中的证书验证所接收证书的有效性。使用此注册表中的证书可以:
通过“管理”>“证书”页,可以在注册表中添加、查看或删除证书。
在发送 HTTP 请求时,可能存在多个可用于标识声明的匹配项。但是,标识声明提供程序一次只能使用一个活动的标记类型。因此,无法通过一次调用来提供可供使用的一组标记。这样,将强制 WebLogic Server 中包含的 Servlet 在多个标记中进行选择以执行标识声明。将使用以下排序:
WL-Proxy-Client-<TOKEN> 形式的头信息,其中 <TOKEN> 是默认安全领域中为标识声明提供程序配置的活动标记类型之一。| 注意: | 不赞成使用此方法,应仅将其用于实现向后兼容性。 |
<TOKEN> 形式的头信息,其中 <TOKEN> 是默认安全领域中为标识声明提供程序配置的活动标记类型之一。<TOKEN> 形式的 Cookie,其中 <TOKEN> 是默认安全领域中为标识声明提供程序配置的活动标记类型之一。
例如,如果将默认安全领域中的某个标识声明提供程序配置为使用 FOO 和 BAR 标记作为活动标记类型,(在以下示例中,假定除活动标记类型外,HTTP 请求中不包含任何与标识声明相关的内容),则将按照以下方式执行标识声明:
在使用标识声明提供程序时,无论是用于 X.509 证书还是用于某种其他类型的标记,都将在服务器中缓存主题(主题是指单个实体(例如一个人)的相关信息的分组,包括标识及其与安全相关的配置选项)。通过在服务器中缓存主题,将极大地提高出现以下情况时的性能:Servlet 和 EJB 方法包含 <run-as> 标记;使用标识声明但未在 HTTPSession 中进行缓存(例如,在签名和加密 XML 文档时)的其他情况。
| 注意: | 缓存可以违反所需的语义。 |
可以通过 -Dweblogic.security.identityAssertionTTL 命令行参数设置主题可以在缓存中生存的最大秒数,以此来更改该缓存中项目的生命周期。该命令行参数的默认值为 300 秒(即 5 分钟)。其可能的值包括:
| 注意: | 随着标识声明性能的不断提高,标识声明提供程序对已配置身份验证提供程序中的更改的响应速度会越来越慢。例如,在用户组中进行某项更改后,只有从缓存中刷新并重新创建主题,才会反映出该项更改。在为该命令行参数设置较低的值后,可以提高身份验证更改的响应速度,但会降低性能。 |
WebLogic Server 在与 Web 浏览器或 Java 客户端建立双向 SSL 连接时会对其数字证书进行验证。但是,数字证书不会将 Web 浏览器或 Java 客户端标识为 WebLogic Server 安全领域中的用户。如果 Web 浏览器或 Java 客户端请求受安全策略保护的 WebLogic Server 资源,则 WebLogic Server 需要 Web 浏览器或 Java 客户端具有标识。WebLogic 标识声明提供程序允许启用用户名映射器,以便将 Web 浏览器或 Java 客户端的数字证书映射到 WebLogic Server 安全领域中的用户。
该用户名映射器必须是 weblogic.security.providers.authentication.UserNameMapper 接口的实现。该接口可根据符合需要的任何 Scheme 将标记映射到 WebLogic Server 用户名。默认情况下,WebLogic Server 将提供 weblogic.security.providers.authentication.UserNameMapper 接口的默认实现。您也可以编写自己的实现。
WebLogic 标识声明提供程序将针对以下类型的标识声明标记调用用户名映射器:
默认用户名映射器将使用数字证书的主题 DN 或识别名来映射到 WebLogic Server 安全领域中的相应用户。例如,可以将用户名映射器配置为将主题 DN 的电子邮件特性中的用户 (smith@example.com) 映射到 WebLogic Server 安全领域中的用户 (smith)。使用 WebLogic 标识声明提供程序的“默认用户名映射器特性类型”和“用户名映射器特性的默认分隔符”特性可以定义以下信息:
有关详细信息,请参阅“管理控制台联机帮助”中的配置用户名映射器。
还可以编写自定义用户名映射器来根据适合需要的任何 Scheme 将标记映射到 WebLogic Server 用户名。自定义用户名映射器必须是 weblogic.security.providers.authentication.UserNameMapper 接口的实现。随后可以使用 WebLogic 标识声明提供程序的“用户名映射器类名”特性来在活动安全领域中配置该自定义用户名映射器。
有关详细信息,请参阅“管理控制台联机帮助”中的配置自定义用户名映射器。
|