您可以通过“策略 API”和 Access Manager 控制台创建、修改和删除策略,并通过 amadmin 命令行工具创建和删除策略。 您也可以使用 amadmin 实用程序获取和列出 XML 格式的策略。 本节重点介绍如何通过 amadmin 命令行实用程序和 Access Manager 控制台创建策略。有关“策略 API”的详细信息,请参阅《Sun Java System Access Manager 7 2005Q4 Developer’s Guide》。
策略通常使用 XML 文件创建,再通过命令行实用程序 amadmin 添加到 Access Manager,然后使用 Access Manager 控制台进行管理(尽管策略可通过控制台创建)。 这是因为不能直接使用 amadmin 修改策略。要修改策略,必须先从 Access Manager 中删除该策略,然后使用 amadmin 添加已修改的策略。
通常情况下,策略是在领域(或子领域)级别创建以在整个领域树中使用的。
创建基于 amadmin.dtd 的策略 XML 文件。该文件位于以下目录中:
AccessManager-base /SUNWam/dtd
策略 XML 文件生成之后,便可使用以下命令加载它:
AccessManager-base/SUNWam/bin/amadmin --runasdn "uid=amAdmin,ou=People,default_org, root_suffix" --password password --data policy.xml |
要同时添加多个策略,请将这些策略放在一个 XML 文件中,而不是在每个 XML 文件中放一个策略。如果一连串使用多个 XML 文件装入策略,则可能会损坏内部策略索引,并且某些策略可能不会参与策略评估。
通过 amadmin 创建策略时,确保验证模块在创建验证模式条件时已注册到领域;创建领域、LDAP 组、LDAP 角色和 LDAP 用户主题时存在相应的 LDAP 对象领域、组、角色和用户;创建 IdentityServerRoles 主题时存在 Access Manager 角色;以及创建子领域或对等领域候选项时存在相关领域。
请注意,SubrealmReferral、PeerRealmReferral、Realm 主题、IdentityServerRoles 主题、LDAPGroups 主题、 LDAPRoles 主题和 LDAPUsers 主题中的值元素的文本中需要完整 DN。
选择要为其创建策略的领域。
单击“策略”选项卡。
在“策略”列表中单击“新建策略”。
为策略添加名称和说明。
如果您希望激活此策略,请在“活动”属性里选中“是”。
此时,您不必为标准策略定义所有字段。您可以在创建策略之后再添加规则、主题、条件和响应提供者等内容。有关详细信息,请参见管理策略。
单击“创建”。
在“策略”选项卡中单击“新建候选项”。
为策略添加名称和说明。
如果您希望激活此策略,请在“活动”属性里选中“是”。
此时,您不必为候选策略定义所有字段。 您可以在创建策略之后再添加规则、候选项等内容。有关详细信息,请参阅管理策略。
单击“创建”。
要为对等领域或子领域创建策略,必须首先在父领域(或其他对等领域)中创建候选策略。 候选策略的规则定义中必须包含子领域所管理的资源前缀。 一旦在父领域(或其他对等领域)中创建了候选策略,便可在子领域(或对等领域)创建标准策略。
在本示例中,o=isp 是父领域,o=example.com 是管理 http://www.example.com 的资源和子资源的子领域。
在 o=isp 中创建候选策略。有关候选策略的信息,请参阅修改候选策略过程。
候选策略必须将 http://www.example.com 定义为规则中的资源,并且必须包含一个以 example.com 作为候选项中的值的 SubRealmReferral。
找到子领域 example.com。
既然资源是通过 isp 引用 example.com,就可以为资源 http://www.example.com,或任何以 http://www.example.com 开头的资源创建标准策略。
要为 example.com 所管理的其他资源定义策略,必须在 o= isp 上创建其他候选策略。