默认情况下,当在一个可信赖环境中创建多个策略代理时,这些策略代理包含的 UID 和密码相同。因为 UID 和密码是共享的,所以 Access Manager 不能区分各个代理,这可能导致会话 Cookie 容易被截取。
当“身份提供者”为第三方或企业中未授权组开发的应用程序(或“服务提供者”)提供验证、授权和有关用户的配置文件信息时,这个缺点可能会出现。可能的安全问题包括:
所有应用程序共享同一个 http 会话 Cookie。这可能导致某欺骗应用程序夺取会话 Cookie,然后在另一应用程序中冒充用户。
如果应用程序不使用 https 协议,则会话 Cookie 可能遭受网络窃听。
只要有一个应用程序可被夺取,整个基础结构的安全性就会大打折扣。
欺骗应用程序可使用会话 Cookie 来获取用户的配置文件属性并可能进行修改。如果该用户拥有管理权限,则应用程序将能够造成更多损害。
使用 Access Manager 管理控制台为每个代理设置一个条目。
运行以下有关密码的命令,此密码是在创建代理过程中输入的。此命令应该在安装代理的主机上调用。
AccessManager-base/SUNWam/agents/bin/crypt_util agent123
此时输出以下信息:
WnmKUCg/y3l404ivWY6HPQ==
更改 AMAgent.properties 以反映新值,然后重新启动该代理。示例:
# The username and password to use for the Application authentication module. com.sun.am.policy.am.username = agent123 com.sun.am.policy.am.password = WnmKUCg/y3l404ivWY6HPQ== # Cross-Domain Single Sign On URL # Is CDSSO enabled. com.sun.am.policy.agents.cdsso-enabled=true # This is the URL the user will be redirected to after successful login # in a CDSSO Scenario. com.sun.am.policy.agents.cdcservletURL = http://server.example.com:port /amserver/cdcservlet
更改安装有 Access Manager 的 AMConfig.properties 以反映新值,然后重新启动 Access Manager。示例:
com.sun.identity.enableUniqueSSOTokenCookie=true com.sun.identity.authentication.uniqueCookieName=sunIdentityServerAuthNServer com.sun.identity.authentication.uniqueCookieDomain=.example.com
在 Access Manager 控制台中,选择“配置”>“平台”。
在“Cookie 域”列表中更改 Cookie 域名: