Sun Java System Access Manager 7.1 管理指南

第 2 部分 目录管理和默认服务

此为《Sun Java System Access Manager 7.1 管理指南》的第二部分。“目录管理”一章介绍当 Access Manager 在“传统模式”下部署时如何管理“目录”对象。其他几章介绍如何配置和使用 Access Manager 的一些默认服务。本部分包含以下各章:

第 7 章 目录管理

只有以“传统”模式安装 Access Manager 时才显示“目录管理”选项卡。此目录管理功能可以为已启用了 Sun Java System Directory Server 的 Access Manager 部署提供身份管理解决方案。

有关“传统模式”安装选项的详细信息,参见《Sun Java Enterprise System 5 Installation Guide for UNIX》

管理目录对象

“目录管理”选项卡包含查看和管理 Directory Server 对象所需的所有组件。本部分说明对象类型及其详细配置方法。可以使用 Access Manager 控制台或命令行界面来定义、修改或删除用户、角色、组、组织、子组织和容器对象。控制台有默认的管理员,他们拥有不同的权限级别以创建和管理目录对象。(可以基于角色创建其他管理员。)与 Access Manager 一起安装时,在 Directory Server 中会定义管理员。 可以管理的 Directory Server 对象有:

组织

在企业用来管理部门和资源的层次结构中,组织代表其最高一级。Access Manager 在安装时会动态创建一个顶级组织(在安装期间定义)来管理 Access Manager 企业配置。 安装后可以创建其他组织,以管理单独的企业。创建的所有组织都位列顶级组织之下。

Procedure创建组织

  1. 单击“目录管理”选项卡。

  2. 在“组织”列表中,单击“新建”。

  3. 输入字段的值。仅“名称”是必需字段。这些字段包括:

    名称

    输入组织名称的值。

    域名

    输入组织的完整域名系统 (DNS) 名称(如果存在)。

    组织状态

    选择活动不活动状态。默认值为活动。在组织存在期间,可以随时选择“属性”图标以更改其状态。如果选择不活动状态,则当登录到组织时,将禁止用户访问。

    组织别名

    该字段定义组织的别名,以允许您在通过 URL 登录时使用别名进行验证。例如,如果组织的名称为 exampleorg,将 123abc 定义为组织的别名,则可以使用以下任一 URL 登录到组织:

    http://machine.example.com/amserver/UI/Login?org=exampleorg

    http://machine.example.com/amserver/UI/Login?org=abc

    http://machine.example.com/amserver/UI/Login?org=123

    组织别名在组织中必须唯一。可以使用“唯一属性列表”来强制执行唯一性。

    DNS 别名

    允许为组织的 DNS 名称添加别名。该属性只接受“真实的”域别名(不允许使用随机字符串)。例如,如果 DNS 的名称为 example.com,而名为 exampleorg 的组织的别名定义为 example1.comexample2.com,则可以使用以下任一 URL 登录到组织:

    http://machine.example.com/amserver/UI/

    Login?org=exampleorg

    http://machine.example1.com/amserver/

    UI/Login?org=exampleorg

    http://machine.example2.com/amserver/

    UI/Login?org=exampleorg

    唯一属性列表

    用于添加组织中用户的唯一属性名列表。例如,如果添加用于指定电子邮件地址的唯一属性名,则不能创建两个使用相同电子邮件地址的用户。也可以在该字段中输入以逗号分隔的列表。列表中的任一属性名均定义了唯一性。例如,如果该字段包含以下属性名列表:

    PreferredDomain, AssociatedDomain

    并且针对特定用户 PreferredDomain 被定义为 http://www.example.com,则整个以逗号分隔的列表在该 URL 中唯一。将命名属性 'ou' 添加到“唯一属性列表”并不会强制执行默认组和人员容器的唯一性。(ou=Groups,ou=People)。

    对于所有子组织都强制执行唯一性。


    注 –

    在“领域”模式下无法设置唯一属性。在“传统”模式下,也无法在基于 7.0 或 7.1 的控制台中设置它们。要创建唯一属性列表,必须登录到基于 6.3 的控制台中。有关详细信息,参见传统模式 6.3 控制台


  4. 单击 “确定” 。

    新组织将显示在“组织”列表中。 要编辑在创建组织过程中定义的属性,请单击要编辑的组织的名称,更改属性,然后单击“保存”。

Procedure删除组织

  1. 选中要删除的组织名称旁边的复选框。

  2. 单击“删除”。


    注 –

    执行删除时不会显示警告消息。组织内的所有条目都将被删除,并且不能执行撤消操作。


将组织添加到策略

可以通过定义策略的主题将 Access Manager 对象添加到策略中。创建或修改策略时,组织、角色、组和用户可以被定义为主题。定义了主题后,策略将被应用到对象。有关详细信息,参见管理策略

容器

当由于对象类和属性的不同而无法使用组织条目时,将使用容器条目。请切记 Access Manager 容器条目和 Access Manager 组织条目不必等同于 LDAP 对象类 organizationalUnitorganization。它们是抽象身份条目。理想情况下,将使用组织条目而不使用容器条目。


注 –

容器的显示是可选的。要查看容器,必须选择“配置”>“控制台属性”下方“管理”服务中的“显示容器”。


Procedure创建容器

  1. 选择将在其中创建新容器的组织或容器的位置链接。

  2. 单击“容器”选项卡。

  3. 在“容器”列表中单击“新建”。

  4. 输入要创建的容器的名称。

  5. 单击 “确定” 。

Procedure删除容器

  1. 单击“容器”选项卡。

  2. 选中要删除的容器名称旁边的复选框。

  3. 单击“删除”。


    注 –

    如果删除某个容器,就会删除该容器中存在的所有对象,包括所有对象和子容器。


组容器

组容器用于管理组。它只能包含组和其他组容器。组容器组会被动态指定为所有受管组的父项。如果需要,可以添加其他组容器。


注 –

组容器的显示是可选的。要查看组容器,必须选择“配置”>“控制台属性”下方“管理”服务中的“启用组容器”。


Procedure创建组容器

  1. 选择将包含新的组容器的组织或组容器的位置链接。

  2. 选择“组容器”选项卡。

  3. 在“组容器”列表中单击“新建”。

  4. 在“名称”字段中输入值,然后单击“确定”。新的组容器将显示在“组容器”列表中。

Procedure删除组容器

  1. 找到包含要删除的组容器的组织。

  2. 选择“组容器”选项卡。

  3. 选中要删除的组容器旁边的复选框。

  4. 单击“删除”。

代表具有共同职责、特征或利益的用户集合。通常来说,这种分组不会涉及权限。组可存在于两个级别,分别是组织和其他受管组中。存在于其他组中的组称为子组。子组是“物理上”存在于父组内的子节点。

Access Manager 还支持嵌套组,它“代表”了单个组中所包含的现有组。与子组不同,嵌套组可以存在于 DIT 中的任何位置。使用嵌套组可以快速地为多个用户设置访问权限。

可以创建两种类型的组:静态组和动态组。只能手动将用户添加到静态组,动态组则通过过滤器控制用户的添加。这两种类型的组中都可以添加嵌套组或子组。

静态组

静态组是根据您指定的“受管组类型”创建的组。 使用 groupOfNamesgroupOfUniqueNames 对象类将组成员添加到组条目中。


注 –

默认情况下,受管组类型为动态的。 您可以在“管理”服务配置中更改此默认设置。


动态组

动态组是通过使用 LDAP 过滤器创建的。所有条目均由过滤器过滤并动态分配给组。过滤器将查找条目中的任何属性,并返回那些包含特定属性的条目。例如,如果您要根据构建号创建组,则可以使用过滤器返回一组包含该构建号属性的用户。


注 –

要使用参考完整性插件,应将 Access Manager 与 Directory Server 一起进行配置。当启用参照完整性插件后,它将直接在删除或重命名操作后对指定属性执行完整性更新。这将确保在整个数据库中维持相关条目之间的关系。数据库索引则增强了 Directory Server 中的搜索性能。有关启用此插件的详细信息,参见 Sun Java Access Manager 6 迁移指南。


Procedure创建静态组

  1. 找到要在其中创建新组的组织、组或组容器。

  2. 在“组”列表中,单击“新建静态”。

  3. 在“名称”字段中输入组的名称。单击“下一步”。

  4. 选择“用户可以订阅此组”属性可以使用户自行订阅组。

  5. 单击 “确定” 。

    组创建完毕后,可以通过选择组的名称并单击“常规”选项卡来编辑“用户可以订阅此组”属性。

Procedure向静态组添加成员或从中移除

  1. 在“组”列表中,选择要添加成员的组。

  2. 在“选择操作”菜单中选择要执行的操作。可以执行以下操作:

    新建用户

    保存用户信息时,此操作将创建新用户并将该用户添加到组。

    添加用户

    此操作可将现有用户添加到组。选择此操作后,请创建搜索条件指定要添加的用户。用于构建该条件的字段使用 ANYALL 运算符。 ALL 将根据所有指定的字段向用户返回结果。ANY 将根据所指定的任一字段向用户返回结果。如果某个字段保留为空,则该字段将匹配该特定属性的所有可能条目。

    搜索标准创建完毕后,单击“下一步”。从返回的用户列表中,选择要添加的用户并单击“完成”。

    添加组

    此操作可以将嵌套组添加到当前组。选择此操作时要创建搜索条件,包括搜索范围、组的名称(允许使用通配符“*”),并且可指定用户是否可以自行订阅组。信息输入完毕后,单击“下一步”。 从返回的组列表中,选择要添加的组并单击“完成”。

    移除成员

    此操作将从组中移除成员(包括用户和组),但不会将其删除。 选择要移除的成员并从“选择操作”菜单中选择“移除成员”。

    删除成员

    此操作将永久删除所选成员。选择要删除的成员,然后选择“删除成员”。

Procedure创建动态组

  1. 找到要在其中创建新组的组织或组。

  2. 单击“组”选项卡。

  3. 单击“新建动态”。

  4. 在“名称”字段中输入组的名称。

  5. 构造 LDAP 搜索过滤器。

    默认情况下,Access Manager 将显示“基本”搜索过滤器界面。 用于构造过滤器的“基本”字段使用 ANYALL 操作符。ALL 将根据所有指定的字段向用户返回结果。ANY 将根据所指定的任一字段向用户返回结果。如果某个字段保留为空,则该字段将匹配该特定属性的所有可能条目。

  6. 单击“确定”后,系统会自动将与搜索条件匹配的所有用户添加到组。

Procedure向动态组添加成员或从中移除

  1. 在“组”列表中,单击要添加成员的组的名称。

  2. 在“选择操作”菜单中选择要执行的操作。可以执行以下操作:

    添加组

    此操作可以将嵌套组添加到当前组。选择此操作时要创建搜索条件,包括搜索范围、组的名称(允许使用通配符“*”),并且可指定用户是否可以自行订阅组。信息输入完毕后,单击“下一步”。 从返回的组列表中,选择要添加的组并单击“完成”。

    移除成员

    此操作将从组中移除成员(包括组),但不会将其删除。 选择要移除的成员,然后选择“移除成员”

    删除成员

    此操作将永久删除所选成员。选择要删除的成员,然后选择“删除成员”。

将组添加到策略

可以通过定义策略的主题将 Access Manager 对象添加到策略中。在创建或修改策略时,可以在策略的“主题”页面中将组织、角色、组和用户定义为主题。定义了主题后,策略将被应用到对象。有关详细信息,参见管理策略

人员容器

人员容器是默认的 LDAP 组织单位。在组织中创建用户时,所有的用户都将被指定到该容器。 人员容器位于组织级别和人员容器级别(作为子人员容器)。它们只能包含其他人员容器和用户。如果需要,可以将其他人员容器添加到组织中。


注 –

人员容器的显示是可选的。要查看“人员容器”,必须在“管理服务”中选择“启用人员容器”。


Procedure创建人员容器

  1. 找到要在其中创建新人员容器的组织或人员容器。

  2. 在“人员容器”列表中单击“新建”。

  3. 输入要创建的人员容器的名称。

  4. 单击 “确定” 。

Procedure删除人员容器

  1. 找到包含要删除的人员容器的组织或人员容器。

  2. 选中要删除的人员容器名称旁边的复选框。

  3. 单击“删除”。


    注 –

    删除人员容器将删除该人员容器中存在的所有对象, 包括所有用户和子人员容器。


用户

用户表示个人身份。通过“Access Manager 身份管理”模块,可以在组织、容器和组中创建和删除用户,还可以在角色和/或组中添加或移除用户。此外,还可以将服务指定给用户。


注 –

如果在子组织中创建的用户使用了与 amadmin 相同的用户 ID,登录 amadmin 时将失败。如果发生了这样的问题,管理员应该通过 Directory Server 控制台更改用户 ID。这样可使管理员登录到默认组织。另外,验证服务中的“起始用户搜索的 DN”可以设置为人员容器 DN,以确保在登录过程中返回唯一匹配项。


Procedure创建用户

  1. 找到要在其中创建用户的组织、容器或人员容器。

  2. 单击“用户”选项卡。

  3. 在“用户”列表中单击“新建”。

  4. 为以下值输入数据:

    用户 ID

    此字段中应填入用户用来登录到 Access Manager 的名称。该属性可能是一个非 DN 值。

    名字

    此字段中应填入用户的名字。“名字”值和“姓氏”值可以标识“当前已登录”字段中的用户。 此值不用必须填写。

    姓氏

    此字段中应填入用户的姓氏。“名字”值和“姓氏”值可以标识用户。

    全名

    此字段中应填入用户的全名。

    密码

    此字段中应填入“用户 ID”字段中所指定名称的密码。

    密码(确认)

    确认密码。

    用户状态

    此选项指示是否允许用户通过 Access Manager 进行验证。只有活动用户才能进行验证。默认值为活动

  5. 单击 “确定” 。

Procedure编辑用户概要文件

当某个尚未指定管理角色的用户通过 Access Manager 进行验证时,默认视图为用户自己的“用户概要文件”视图。 另外,具有适当权限的管理员可以编辑用户概要文件。 在该视图中,用户可以修改其个人概要文件的属性值。 “用户概要文件”视图中显示的属性可以扩展。 有关添加对象和身份的自定义属性的详细信息,参见 Access Manager 开发者指南。

  1. 选择要对其概要文件进行编辑的用户。 默认情况下,屏幕上将显示“常规”视图。

  2. 编辑以下字段:

    名字

    此字段中应填入用户的名字。

    姓氏

    此字段中应填入用户的姓氏。

    全名

    此字段中应填入用户的全名。

    密码

    单击“编辑”链接以添加和确认用户密码。

    电子邮件地址

    此字段中应填入用户的电子邮件地址。

    员工编号

    此字段中应填入用户的员工编号。

    电话号码

    此字段中应填入用户的电话号码。

    家庭地址

    此字段中应填入用户的家庭地址。

    用户状态

    此选项指示是否允许用户通过 Access Manager 进行验证。只有活动的用户才能通过 Access Manager 进行验证。默认值为“活动”。可以从下拉菜单中选择以下任意一个选项:。

    • 活动 — 用户可通过 Access Manager 进行验证。

    • 不活动 — 用户不能通过 Access Manager 进行验证,但用户概要文件仍会存储在目录中。


      注 –

      将用户状态更改为“不活动”仅影响通过 Access Manager 进行的验证。Directory Server 使用 nsAccountLock 属性来确定用户帐户的状态。 禁用 Access Manager 验证的用户帐户仍然可以执行不需要 Access Manager 的任务。要禁用目录中的某个用户帐户,而不仅仅是禁用 Access Manager 验证,应将 nsAccountLock 的值设置为 false。 如果站点的委托管理员要定期禁用用户,应考虑将 nsAccountLock 属性添加到“Access Manager 用户概要文件”页面。有关详细信息,参见《Sun Java System Access Manager 7.1 Developer’s Guide》


    帐户失效日期

    如果存在此属性,则当前日期和时间超过指定的“帐户失效日期”时,验证服务将不允许进行登录。 此属性的格式为 mm/dd/yyyy hh:mm

    用户验证配置

    此属性设置用户的验证链。

    用户别名列表

    此字段定义了一组应用于用户的别名。 要使用此属性中配置的别名,必须修改 LDAP 服务,即向 LDAP 服务中的“用户条目搜索属性”字段添加 iplanet-am-user-alias-list 属性。

    首选语言环境

    此字段指定用户的语言环境。

    成功 URL

    此属性指定用户在验证成功后,重定向的 URL。

    失败 URL。

    此属性指定用户在验证失败后,重定向的 URL。

    密码重置选项

    此字段用于选择要在忘记密码页面中使用的问题,该页面用来恢复忘记的密码。

    用户搜索资源提供

    设置用户的“用户搜索”服务的资源提供。

    MSISDN 号码

    使用 MSISDN 验证时,定义用户的 MSISDN 号码。

Procedure向角色和组添加用户

  1. 单击“用户”选项卡。

  2. 单击所要修改的用户的名称。

  3. 选择“角色”或“组”选项卡。

  4. 选择要向其添加用户的角色或组,然后单击“添加”。

  5. 单击“保存”。


    注 –

    要从“角色”或“组”中移除用户,请选择角色或组并单击“移除”,然后单击“保存”。


将用户添加到策略

可以通过定义策略的主题将 Access Manager 对象添加到策略中。在创建或修改策略时,可以在策略的“主题”页面中将组织、角色、组和用户定义为主题。定义了主题后,策略将被应用到对象。有关详细信息,参见管理策略

角色

角色是与的概念类似的 Directory Server 条目机制。组有成员,角色也有成员。角色的成员是指拥有该角色的 LDAP 条目。角色本身的条件被定义为具有属性的 LDAP 条目,由条目的标识名 (DN) 属性来标识。Directory Server 具有许多不同类型的角色,但 Access Manager 只能管理其中的一种:被管理的角色。


注 –

在目录部署中还可以使用其他的 Directory Server 角色类型,只是它们不能被 Access Manager 控制台管理。还可以在策略的主题定义中使用其他的 Directory Server 类型。有关策略主题的详细信息,参见创建策略


用户可以拥有一个或多个角色。例如,可以创建一个承包商角色,其属性来自“会话服务”和“密码重置服务”。新承包商雇员加入公司时,管理员可以将该角色指定给他们,而不需在承包商条目中分别设置各个属性。如果承包商在工程部工作并且需要适用于工程员工的服务以及访问权限,则管理员可以为该承包商同时指定工程角色和承包商角色。

Access Manager 使用角色来应用访问控制指令。首次安装时,Access Manager 会配置定义管理员权限的访问控制指令 (ACI)。然后在角色(如“组织管理员角色”和“组织帮助台管理员角色”)中指定这些 ACI,当这些角色被指定到用户时,可定义用户的访问权限。

仅当“管理服务”中启用了“在用户概要文件页面中显示角色”属性时,用户才可查看为其分配的角色。


注 –

要使用参考完整性插件,应将 Access Manager 与 Directory Server 一起进行配置。当启用参照完整性插件后,它将直接在删除或重命名操作后对指定属性执行完整性更新。这将确保在整个数据库中维持相关条目之间的关系。数据库索引则增强了 Directory Server 中的搜索性能。


有两种类型的角色:

Procedure创建静态角色

  1. 转到要在其中创建角色的组织。

  2. 单击“角色”选项卡。

    “角色”列表中将显示在配置组织时创建的一组默认角色。默认角色包括:

    容器帮助台管理员。“容器帮助台管理员”角色拥有对组织单元内所有条目的读取权限,但仅对此容器单元中用户条目的 userPassword 属性拥有写入权限。

    组织帮助台管理员。“组织帮助台管理员”拥有对组织中所有条目的读取权限以及对 userPassword 属性的写入权限。


    注 –

    创建子组织时,请注意要在该子组织中创建管理角色,而不是在父组织中创建管理角色。


    容器管理员。“容器管理员”角色拥有对 LDAP 组织单位中所有条目的读写权限。 在 Access Manager 中,LDAP 组织单位通常被称为容器。

    组织策略管理员。“组织策略管理员”具有对所有策略的读写权限,可以创建、指定、修改和删除自身组织内的所有策略。

    人员管理员。默认情况下,新创建的组织中的所有用户条目都是该组织的成员。 “人员管理员”拥有对组织中所有用户条目的读写权限。请注意,该角色“并不”具有对包含角色和组 DN 的属性的读写权限,因此他们不能修改角色和组的属性,也不能从角色或组中删除用户。


    注 –

    可以使用 Access Manager 配置其他容器,以包含用户条目、组条目甚至其他容器。要将管理员角色应用到配置组织之后创建的容器,请使用默认的“容器管理员角色”或“容器帮助台管理员”。


    组管理员。在创建组的同时创建的“组管理员”拥有对特定组的所有成员的读写权限,可以创建新用户、将用户指定给自己所管理的组以及删除自己创建的用户。

    创建组时,将自动生成“组管理员”角色,并赋予管理组所必需的权限,但不会将角色自动指定到组成员。角色必须由组创建者或任何拥有“组管理员角色”访问权限的人员来指定。

    顶层管理员。“顶层管理员”拥有对顶层组织中所有条目的读写权限。换句话说,顶层管理角色具有 Access Manager 应用程序内所有配置主体所拥有的权限。

    组织管理员。“组织管理员”拥有对组织中所有条目的读写权限。创建组织时将自动生成组织管理员角色,该角色拥有管理组织所必需的权限。

  3. 单击“新建静态”按钮。

  4. 输入角色的名称。

  5. 输入角色的说明。

  6. 从“类型”菜单中选择角色类型。

    角色可以是“管理”角色,也可以是“服务”角色。角色类型由控制台使用,用来确定在哪里启动 Access Manager 控制台中的用户。管理角色会通知控制台,角色的所有人拥有管理权限;服务角色会通知控制台,角色的所有人为最终用户。

  7. 从“访问权限”菜单中选择默认的一组权限,以应用到角色。拥有这些权限,可以访问组织中的条目。显示的默认权限未按照特定顺序排列。这些权限包括:

    无权限

    对角色不设置权限。

    组织管理员

    “组织管理员”拥有对已配置的组织中所有条目的读写权限。

    组织帮助台管理员

    “组织帮助台管理员”拥有对已配置组织中所有条目的读取权限和对 userPassword 属性的写入权限。

    组织策略管理员

    “组织策略管理员”拥有对组织中所有策略的读写权限。“组织策略管理员”不能创建对等组织的引用策略。

    通常,“无权限 ACI”会指定给“服务”角色,而默认的 ACI 会指定给“管理”角色。

Procedure将用户添加到静态角色

  1. 单击希望向其添加用户的角色的名称。

  2. 在“成员”列表中,从“选择操作”菜单选择“添加用户”。

  3. 输入搜索条件信息。可以选择一个或多个显示的字段,根据这些字段来搜索用户。这些字段包括:

    匹配

    允许选择过滤器要包含的字段。ALL 将根据所有指定的字段向用户返回结果。ANY 将根据所指定的任一字段向用户返回结果。

    名字

    按照用户的名字搜索用户。

    用户 ID

    按照用户 ID 搜索用户。

    姓氏

    按照用户的姓氏搜索用户。

    全名

    按照用户的全名搜索用户。

    用户状态

    按照用户的状态(活动或不活动)搜索用户。

  4. 单击“下一步”开始搜索。将显示搜索结果。

  5. 选中用户名称旁边的复选框,可以从返回的名称中选择用户。

  6. 单击“完成”。

    用户将被分配到角色。

Procedure创建动态角色

  1. 转到要在其中创建角色的组织。

  2. 单击“角色”选项卡。

    “角色”列表中将显示在配置组织时创建的一组默认角色。默认角色包括:

    容器帮助台管理员。“容器帮助台管理员”角色拥有对组织单元内所有条目的读取权限,但仅对此容器单元中用户条目的 userPassword 属性拥有写入权限。

    组织帮助台管理员。“组织帮助台管理员”拥有对组织中所有条目的读取权限以及对 userPassword 属性的写入权限。


    注 –

    创建子组织时,请注意要在该子组织中创建管理角色,而不是在父组织中创建管理角色。


    容器管理员。“容器管理员”角色拥有对 LDAP 组织单位中所有条目的读写权限。 在 Access Manager 中,LDAP 组织单位通常被称为容器。

    组织策略管理员。“组织策略管理员”具有对所有策略的读写权限,可以创建、指定、修改和删除自身组织内的所有策略。

    人员管理员。默认情况下,新创建的组织中的所有用户条目都是该组织的成员。 “人员管理员”拥有对组织中所有用户条目的读写权限。请注意,该角色“并不”具有对包含角色和组 DN 的属性的读写权限,因此他们不能修改角色和组的属性,也不能从角色或组中删除用户。


    注 –

    可以使用 Access Manager 配置其他容器,以包含用户条目、组条目甚至其他容器。要将管理员角色应用到配置组织之后创建的容器,请使用默认的“容器管理员角色”或“容器帮助台管理员”。


    组管理员。在创建组的同时创建的“组管理员”拥有对特定组的所有成员的读写权限,可以创建新用户、将用户指定给自己所管理的组以及删除自己创建的用户。

    创建组时,将自动生成“组管理员”角色,并赋予管理组所必需的权限,但不会将角色自动指定到组成员。角色必须由组创建者或任何拥有“组管理员角色”访问权限的人员来指定。

    顶级管理员。 “顶层管理员”拥有对顶层组织中所有条目的读写权限。换句话说,顶层管理角色具有 Access Manager 应用程序内所有配置主体所拥有的权限。

    组织管理员。“组织管理员”拥有对组织中所有条目的读写权限。创建组织时将自动生成组织管理员角色,该角色拥有管理组织所必需的权限。

  3. 单击“新建动态”按钮。

  4. 输入角色的名称。

  5. 输入角色的说明。

  6. 从“类型”菜单中选择角色类型。

    角色可以是“管理”角色,也可以是“服务”角色。角色类型由控制台使用,用来确定在哪里启动 Access Manager 控制台中的用户。管理角色会通知控制台,角色的所有人拥有管理权限;服务角色会通知控制台,角色的所有人为最终用户。

  7. 从“访问权限”菜单中选择默认的一组权限,以应用到角色。拥有这些权限,可以访问组织中的条目。显示的默认权限未按照特定顺序排列。这些权限包括:

    无权限

    对角色不设置权限。

    组织管理员

    “组织管理员”拥有对已配置的组织中所有条目的读写权限。

    组织帮助台管理员

    “组织帮助台管理员”拥有对已配置组织中所有条目的读取权限和对 userPassword 属性的写入权限。

    组织策略管理员

    “组织策略管理员”拥有对组织中所有策略的读写权限。“组织策略管理员”不能创建对等组织的引用策略。

    通常,“无权限 ACI”会指定给“服务”角色,而默认的 ACI 会指定给“管理”角色。

  8. 输入搜索条件信息。这些字段包括:

    匹配

    允许您使用运算符来连接所有用于过滤的字段。ALL 将根据所有指定的字段向用户返回结果。ANY 将根据所指定的任一字段向用户返回结果。

    名字

    按照用户的名字搜索用户。

    用户 ID

    按照用户 ID 搜索用户。

    姓氏

    按照用户的姓氏搜索用户。

    全名

    按照用户的全名搜索用户。

    用户状态

    按照用户的状态(活动或不活动)搜索用户。

  9. 单击“确定”根据过滤条件启动搜索。由过滤条件定义的用户将会自动指定给角色。

Procedure从角色中移除用户

  1. 找到包含要修改的角色的组织。

    从“身份管理” 模块的“查看”菜单中选择“组织”,然后选择“角色”选项卡。

  2. 选择要修改的角色。

  3. 从“查看”菜单中选择“用户”。

  4. 选中每个要移除的用户旁边的复选框。

  5. 单击“选择操作”菜单中的“移除用户”。

    用户将从角色中移除。

将角色添加到策略

可以通过定义策略的主题将 Access Manager 对象添加到策略中。在创建或修改策略时,可以在策略的“主题”页面中将组织、角色、组和用户定义为主题。定义了主题后,策略将被应用到对象。有关详细信息,参见管理策略

第 8 章 当前会话

本章介绍 Access Manager 的会话管理功能。“会话管理”模块提供了查看用户会话信息和管理用户会话的解决方案。它能够记录各种会话时间,并允许管理员终止会话。系统管理员应忽略“平台服务器”列表中列出的“负载平衡器”服务器。

当前会话界面

拥有适当权限的管理员可以通过“当前会话”模块界面,查看当前登录到 Access Manager 的用户的会话信息。

会话管理

“会话管理”框架显示当前所管理的 Access Manager 的名称。

会话信息

“会话信息”窗口显示当前登录到 Access Manager 的所有用户,并显示每个用户的会话时间。显示的字段包括:

用户 ID。显示当前登录用户的用户 ID。

剩余时间。显示需要重新验证之前,用户的该会话所剩余的时间(以分钟为单位)。

最长会话时间。显示用户在会话过期而必须重新验证以重新获得访问权限之前可以登录的最长时间(以分钟为单位)。

空闲时间。显示用户处于空闲状态的时间(以分钟为单位)。

最长空闲时间。显示用户在需要重新验证之前,可以处于空闲状态的最长时间(以分钟为单位)。

时间限制由管理员在“会话管理服务”中定义。

在“用户 ID”字段中输入字符串,然后单击“过滤”可以显示特定的用户会话或用户会话中特定的部分。允许输入通配符。

单击“刷新”按钮将更新用户会话的显示。

终止会话

拥有适当权限的管理员可以随时终止用户会话。

Procedure终止会话

  1. 选择要终止的用户会话。

  2. 单击“终止”。

第 9 章 密码重置服务

Access Manager 提供的“密码重置”服务允许用户重新设置用于访问给定服务或受 Access Manager 保护的应用程序的密码。顶级管理员定义的“密码重置”服务属性控制了用户验证证书(以密码提示问题的形式),还控制了新的或现有密码通知的机制,以及为不正确用户验证设置可能的锁定间隔。

本章包括以下内容:

注册密码重置服务

用户所在领域无需注册“密码重置”服务。如果用户所在组织中不存在“密码重置”服务,它将继承为“服务配置”中的服务定义的值。

Procedure为不同领域中的用户注册密码重置

  1. 找到要为用户注册密码的领域。

  2. 单击领域名称,然后单击“服务”选项卡。

    如果尚未将其添加到领域,请单击“添加”按钮。

  3. 选择“密码重置”,然后单击“下一步”

    将显示“密码重置”服务属性。有关属性定义的信息,参见联机帮助。

  4. 单击“完成”。

配置密码重置服务

注册“密码重置”服务之后,必须由拥有管理员权限的用户配置该服务。

Procedure配置服务

  1. 选择已注册“密码重置”服务的领域。

  2. 单击“服务”选项卡。

  3. 单击服务列表中的“密码重置”。

  4. 出现“密码重置”属性,它允许定义“密码重置”服务的要求。确保启用“密码重置”服务(默认情况下)。必须至少定义以下属性:

    • 用户验证

      • 保密问题

      • 绑定 DN

      • 绑定密码

        “绑定 DN”属性必须包含拥有重置密码权限的用户(例如,帮助台管理员)。由于 Directory Server 中存在限制,因此当绑定 DN 为 cn=Directory Manager 时,“密码重置”将不生效。

        剩余属性则为可选。有关服务属性的说明,参见联机帮助。


      注 –

      Access Manager 将自动安装可随机生成密码的“密码重置”Web 应用程序。 但是,您也可写入自己的密码生成和密码通知插件类。有关这些插件类的范例,参见位于以下位置的 Readme.html 文件。

      PasswordGenerator:


      AccessManager-base/SUNWam/samples/console/PasswordGenerator

      NotifyPassword:


      AccessManager-base/SUNWam/samples/console/NotifyPassword

  5. 如果用户要定义他/她的唯一个人问题,则选择“已启用个人问题”属性。定义属性后,单击“保存”。

Procedure本地化密码提示问题

如果运行的是 Access Manager 的本地化版本并希望以特定于语言环境的字符集来显示密码提示问题,则执行以下操作:

  1. 向“密码重置”服务中“保密的问题”属性下的“当前值”列表添加密码提示问题关键字。例如,favorite-color

  2. amPasswordReset.properties 文件添加关键字,并附带要显示该关键字值的问题。例如:

    favorite-color=What is your favorite color?

  3. 将带本地化问题的相同关键字添加到位于 /opt/SUNWam/locale 内的 AMPasswordReset_locale.properties 中。当用户尝试更改其密码时,将显示本地化问题。

密码重置锁定

“密码重置”服务包含锁定功能,该功能限制了用户尝试正确回答其密码提示问题的次数。锁定功能是通过“密码重置”服务属性来配置的。有关服务属性的说明,参见联机帮助。“密码重置”支持两种类型的锁定:内存锁定和物理锁定。

内存锁定

这是一种临时锁定,仅当“密码重置失败锁定时间”属性中的值大于零且启用了“启用密码重置失败锁定”属性时才有效。该锁定将阻止用户通过“密码重置”Web 应用程序重置他们的密码。该锁定将持续到“密码重置失败锁定时间”中指定的时间,或是重新启动服务器前。有关服务属性的说明,参见联机帮助。

物理锁定

这是一种更为永久性的锁定。如果将“密码重置失败锁定计数”属性中的值设置为 0 且启用了“启用密码重置失败锁定”属性,则当用户未能正确回答密码提示问题时,其用户帐户的状态将变为不活动。有关服务属性的说明,参见联机帮助。

最终用户的密码重置

以下几节介绍“密码重置”服务的用户体验。

自定义密码重置

一旦启用了“密码重置”服务并且管理员定义了属性,用户便可登录到 Access Manager 控制台自定义他们的密码提示问题。

Procedure自定义密码重置

  1. 用户登录到 Access Manager 控制台,假设“用户名”和“密码”已验证成功。

  2. 在“用户概要文件”页面上,用户选择“密码重置”选项。此时将显示“可用问题答案”屏幕。

  3. 用户可看到管理员为服务定义的可用问题,如:

    • 您的宠物名称?

      • 您喜欢哪个电视节目?

      • 您母亲的娘家姓?

      • 您喜欢哪家餐馆?

  4. 用户选择密码提示问题,最多可选择管理员为领域定义问题的最大数目(“密码重置服务”定义的最大量)。然后,用户提供所选问题的答案。这些问题和答案会成为重置用户密码的依据(参见下一节)。如果管理员选择了“已启用个人问题”属性,则提供的文本字段将允许用户输入唯一密码提示问题并提供其答案。

  5. 用户单击“保存”。

重置忘记密码

如果用户忘记他们的密码,Access Manager 将使用“密码重置”Web 应用程序来随机生成新密码并将其告知用户。忘记密码的典型方案如下:

Procedure重置忘记密码

  1. 用户通过管理员赋予他们的 URL 登录到“密码重置”Web 应用程序。例如:

    http://hostname:port /ampassword(适用于默认领域)

    http://hostname: port/deploy_uri /UI/PWResetUserValidation?realm=realmname, 其中 realmname 为领域名称。


    注 –

    如果没有为父领域但为子领域启用了“密码重置”服务,则用户必须使用以下语法访问服务:


    http://hostname: port/deploy_uri/UI/PWResetUserValidation?realm=realmname

  2. 用户输入用户 ID。

  3. 用户将看到在“密码重置”服务中定义以及自定义期间由用户选择的个人问题。如果用户先前没有登录到“用户概要文件”页面且未自定义个人问题,将不会生成密码。

    一旦用户正确回答了问题,便会生成新密码并通过电子邮件发送给用户。无论用户是否正确回答了问题都将为用户发送尝试通知。为确保接收到新密码和尝试通知,用户必须在“用户概要文件”页面上输入他们的电子邮件地址。

密码策略

密码策略是一组规则,用于管理密码在给定目录中的使用方式。通常通过 Directory Server 控制台在 Directory Server 中定义密码策略。安全密码策略可通过执行以下操作将与易被猜中密码相关的风险降至最低:

Directory Server 提供了多种在树中的任意节点设置密码策略的方式,此外还有多种策略设置方式。 有关详细信息,参阅

Directory Server Enterprise Edition 6.0 管理指南中的“Directory Server 密码策略”。


注 –

在 Directory Server 中,密码策略包含属性 passwordExp,该属性定义了用户密码在给定秒数后是否会过期。如果管理员将 passwordExp 属性设置为 on,这将设置最终用户密码的失效期以及 Access Manager 管理帐户(例如 amldapdsamepuser)的失效期。当 Access Manager 管理员的帐户密码到期并且有最终用户登录时,该用户将收到密码更改屏幕。但是,Access Manager 不会指定密码更改屏幕属于哪个用户。在这种情况下,屏幕供管理员使用,而最终用户将无法更改密码。

要解决这一问题,管理员必须登录到 Directory Server 中并更改 amldapdsamepuser 的密码,或将 passwordExpirationTime 属性更改为将来的某个时间。


第 10 章 日志记录服务

Sun Java™ System Access Manager 提供了用于记录信息(如用户活动、流量模式和授权违规)的“日志记录服务”。此外,调试文件允许管理员排除其安装故障。

日志文件

日志文件为其监视的每项服务记录大量事件。管理员应定期查看这些文件。日志文件的默认目录为 /var/opt/SUNWam/logs(针对 SPARC 系统)、/var/opt/sun/identity(针对 Linux 系统)、/var/opt/sun/identity(针对 HP-UX)以及 jes-install-dir\identity(针对 Windows)。通过使用 Access Manager 控制台可以在“日志记录服务”中配置日志文件目录。

参见 Sun Java System Access Manager 技术概述《Sun Java System Access Manager 7.1 Technical Overview》一书中的 《Sun Java System Access Manager 7.1 Technical Overview》中的“Logging Overview”,以获取默认日志文件类型、所记录的信息和日志文件格式的详细列表。

有关“日志记录服务”的属性定义,请单击 Access Manager 控制台中的“帮助”按钮查看联机帮助。

Access Manager 服务日志

有两种不同类型的服务日志文件:访问和错误。访问日志文件可能包含操作尝试和成功结果的记录。错误日志文件记录 Access Manager 服务中出现的错误。平面日志文件附加有 .error.access 扩展名。Oracle 数据库的数据库列名以 _ERROR_ACCESS 结尾,而 MySQL 数据库的则是以 _error_access 结尾。例如,记录控制台事件日志的平面文件名为 amConsole.access, 而记录相同事件日志的数据库列名为 AMCONSOLE_ACCESS。以下各节介绍“日志记录服务”记录的日志文件。

会话日志

“日志记录服务”记录以下“会话服务”事件:

会话日志的前缀为 amSSO。

控制台日志

Access Manager 控制台日志记录对与身份相关的对象、策略和服务(其中包括组织、组织单位、用户、角色、策略、组)的创建、删除和修改操作。它还记录对用户属性(包括密码)的修改以及向角色和组中添加用户或从中移除的操作。另外,控制台日志写入委托操作和数据存储库操作。控制台日志的前缀为 amConsole。

验证日志

“验证”组件记录用户登录和注销日志。验证日志的前缀为 amAuthentication。

联合日志

“联合”组件记录与联合相关的事件的日志,其中包括(但不限于)创建“验证域”和创建“托管供应商”。联合日志的前缀为 amFederation。

策略日志

“策略”组件记录与策略相关的事件,其中包括(但不限于)策略管理(策略创建、删除和修改)和策略评估。策略日志的前缀为 amPolicy

代理日志

策略代理日志负责记录关于允许或拒绝用户访问的日志资源的异常日志。代理日志的前缀为 amAgentamAgent 日志仅驻留在代理服务器上。代理事件被记录在 Access Manager 服务器上的“验证日志”中。有关该功能的详细信息,参见论述策略代理的文档。

SAML 日志

SAML 组件记录与 SAML 相关的事件,其中包括(但不限于)创建或移除声明和辅件、响应和请求的详细信息以及 SOAP 错误。会话日志的前缀为 amSAML

amadmin 日志

命令行日志记录使用命令行工具进行操作期间出现的事件错误。其中包括(但不限于)加载服务模式、创建策略和删除用户。命令行日志的前缀为 amAdmin.amadmin.accessamadmin.error 日志文件驻留在主日志记录目录的子目录中。默认情况下,amadmin 命令行工具日志文件驻留在 /var/opt/SUNWam/logs 中。

日志记录功能

“日志记录服务”具有许多特殊功能,启用它们可以实现附加功能。其中包括“启用安全日志记录”、“命令行日志记录”和“远程日志记录”。

安全日志记录

此可选功能可以将其他安全性添加到日志记录功能中。启用安全日志记录后,可以检测对安全日志进行的未授权更改或篡改。无需特殊编码即可使用此功能。“安全日志记录”是通过使用系统管理员配置的预注册证书来完成的。此“清单分析和证书”(Manifest Analysis and Certification, MAC) 是为每个日志记录生成和存储的。定期插入的特殊“签名”日志记录代表了写入该点的日志内容签名。两个记录的组合可以确保日志未被篡改。启用安全日志记录有两种方法;通过 Java Security Server (JSS) 提供者和通过 Java Cryptography Extension (JCE) 提供者。

Procedure通过 JSS 提供者启用安全日志记录

  1. 创建一个名为 Logger 的证书,然后将其安装于运行 Access Manager 的部署容器内。

    有关 Application Server 的说明,参见《Sun Java System Application Server Enterprise Edition 8.2 管理指南》中的《Sun Java System Application Server Enterprise Edition 8.2 Administration Guide》中的“Working with Certificates and SSL”

    有关 Web Server 的说明,参见《Sun Java System Web Server 7.0 管理员指南》中的《Sun Java System Web Server 7.0 Administrator’s Guide》中的“Managing Certificates”

  2. 使用 Access Manager 控制台打开“日志记录服务”配置中的“安全日志记录”,然后保存更改。管理员也可修改“日志记录服务”中其他属性的默认值。

    如果日志记录目录从默认值 (/var/opt/SUMWam/logs) 进行了更改,则确保将权限设置为 0700。日志记录服务将创建目录(如果不存在),但它会按设置权限为 0755 的情况来创建目录。

    另外,如果指定了与默认目录不同的其他目录,则必须将 Web 容器的 server.policy 文件中的以下参数更改为新的目录:

    permission java.io.FilePermission “/var/opt/SUNWam/logs/*”,”delete,write”

  3. 在包含证书数据库密码的 AccessManager-base/SUNWam/config 目录下创建一个文件,然后将其命名为 .wtpass


    注 –

    可在 AMConfig.properties 文件中配置其文件名和路径。有关详细信息,参见 Access Manager Administration Reference 中 AMConfig.properties 文件参考章节内的“Certificate Database”。

    出于安全考虑,应确保部署容器用户是唯一拥有读取该文件权限的管理员。


  4. 重新启动服务器。

    由于某些可导致误解的验证错误在安全日志记录启动时可能会被写入 /var/opt/SUNWam/debug/amLog 文件,因此应清空安全日志目录。

    要检测未授权的安全日志更改或篡改,请查找由验证程序写入 /var/opt/SUNWam/debug/amLog 的错误信息。要手动检查篡改,请运行 VerifyArchive 实用程序。有关详细信息,参见 Access Manager Administration Reference 中的 VerifyArchive 命令行章节。

Procedure通过 JCE 提供者启用安全日志记录

  1. 使用 Java 的 keytool 命令创建名为 Logger 的证书,并将其安装在 JKS 密钥库中。例如:

    JAVA-HOME/jre/lib/security/Logger.jks

    有关 Application Server 的说明,参见《Sun Java System Application Server Enterprise Edition 8.2 管理指南》中的《Sun Java System Application Server Enterprise Edition 8.2 Administration Guide》中的“Working with Certificates and SSL”

    有关 Web Server 的说明,参见《Sun Java System Web Server 7.0 管理员指南》中的《Sun Java System Web Server 7.0 Administrator’s Guide》中的“Managing Certificates”

  2. 使用 Access Manager 控制台打开“日志记录服务”配置中的“安全日志记录”,然后保存更改。管理员也可修改“日志记录服务”中其他属性的默认值。

    如果日志记录目录从默认值 (/var/opt/SUMWam/logs) 进行了更改,则确保将权限设置为 0700。日志记录服务将创建目录(如果不存在),但它会按设置权限为 0755 的情况来创建目录。

    另外,如果指定了与默认目录不同的其他目录,则必须将 Web 容器的 server.policy 文件中的以下参数更改为新的目录:

    permission java.io.FilePermission “/var/opt/SUNWam/logs/*”,”delete,write”

  3. 在包含 JKS 密钥库密码的 AccessManager-base/SUNWam/config 目录下创建一个文件,然后将其命名为 .wtpass


    注 –

    可在 AMConfig.properties 文件中配置其文件名和路径。有关详细信息,参见 Access Manager Administration Reference 中 AMConfig.properties 文件参考章节内的“Certificate Database”。

    出于安全考虑,应确保部署容器用户是唯一拥有读取该文件权限的管理员。


  4. 编辑位于 AccessManager-base/config/xml 目录中的 amLogging.xml 内的以下条目:


    sun-am-logging-secure-log-helper
    
                    <AttributeSchema name="iplanet-am-logging-secure-log-helper"
                        type="single"
                        syntax="string"
                        i18nKey="">
                        <DefaultValues>
                            <Value>com.sun.identity.log.secure.impl.SecureLogHelperJCEImpl</Value>
                        </DefaultValues>
                    </AttributeSchema>
    
     sun-am-logging-secure-certificate-store
    
                    <AttributeSchema name="iplanet-am-logging-secure-certificate-store"
                        type="single"
                        syntax="string"
                        i18nKey="">
                        <DefaultValues>
                            <Value>/dir-to-signing-cert-store/Logger.jks</Value>
                        </DefaultValues>
                    </AttributeSchema>
  5. 删除现有的服务模式 iPlanetAMLoggingService。例如:

    ./amadmin -u amadmin -w netscape -r iPlanetAMLoggingService

  6. 使用 amadmin 命令行工具将已编辑的 amLogging.xml 加载到 Access Manager 中。例如:

    ./amadmin -u amadmin -w netscape -s /etc/opt/SUNWam/config/xml/amLogging.xml

  7. 重新启动服务器。

    要检测未授权的安全日志更改或篡改,请查找由验证程序写入 /var/opt/SUNWam/debug/amLog 的错误信息。要手动检查篡改,请运行 VerifyArchive 实用程序。有关详细信息,参见 Access Manager Administration Reference 中的 VerifyArchive 命令行章节。

命令行日志记录

amadmin 命令行工具能够在 Directory Server 中创建、修改或删除身份对象(例如,组织、用户和角色)。该工具也可加载、创建和注册服务模板。“日志记录服务”可通过调用 -t 选项来记录这些操作。如果 AMConfig.properties 中的 com.iplanet.am.logstatus 属性被启用 (ACTIVE),将创建日志记录。(默认情况下将启用该属性。)命令行日志前缀为 amAdmin.。有关详细信息,参见 Access Manager Administration Reference 中的“The amadmin Command Line Tool”。

日志记录属性

AMConfig.properties 文件中有影响日志记录输出的属性:

com.iplanet.am.logstatus=ACTIVE

该属性将启用或禁用日志记录。默认为 ACTIVE。

iplanet-am-logging.service.level= level

service 是服务的标准日志文件名。例如,要指定 amSAML.access 的日志记录级别,使用属性 iplanet-am-logging.amSAML.access.levelleveljava.util.logging.Level 的值之一,表示日志文件中所记录的详细信息的级别。级别可为:OFF、SEVERE、WARNING、INFO、CONFIG、FINE、FINER、FINEST 以及 ALL。大多数服务不记录详细信息级别高于 INFO 的日志。

远程日志记录

Access Manager 支持远程日志记录。从而允许客户机应用程序(使用安装有 Access Manager SDK 的主机)在部署于远程计算机上的 Access Manager 实例中创建日志记录。采用以下任意方案均可启动远程日志记录:

  1. 当 Access Manager 实例的“命名服务”中的日志记录 URL 指向远程实例,并且在两者之间有已配置的信任关系时,日志将被写入远程 Access Manager 实例。

  2. 当根据远程 Access Manager 实例安装 Access Manager SDK,并且在 SDK 服务器上运行的客户机(或简单 Java 类)使用日志记录 API 时,日志将被写入远程 Access Manager 计算机。

  3. 当 Access Manager 代理使用日志记录 API 时。

Procedure使用 Web 容器启用远程日志记录

  1. 登录到 Application Server 或 Web Server 的管理控制台并添加以下 JVM 选项:

    • java.util.logging.manager=com.sun.identity.log.LogManager

    • java.util.logging.config.file=/ AccessManager-base /SUNwam/lib/LogConfig.properties

      有关 Application Server 管理控制台的详细信息,参见《Sun Java System Application Server Enterprise Edition 8.2 Administration Guide》

      有关 Web Server 管理控制台的详细信息,参见《Sun Java System Web Server 7.0 Administrator’s Guide》

    • 如果正在使用的 Java™ 2 Platform, Standard Edition 为 1.4 或更高版本,此操作需要通过调用以下命令行来完成:

      java -cp /AccessManager-base /SUNWam/lib/am_logging.jar:/ AccessManager-base /SUNWam/lib/xercesImpl.jar:/ AccessManager-base /SUNWam/lib/xmlParserAPIs.jar:/ AccessManager-base /SUNWam/lib/jaas.jar:/ AccessManager-base /SUNWam/lib/xmlParserAPIs.jar:/ AccessManager-base /SUNWam/lib/servlet.jar:/ AccessManager-base /SUNWam/locale:/ AccessManager-base/SUNWam/lib/am_services.jar:/ AccessManager-base/SUNWam/lib/am_sdk.jar:/ AccessManager-base/SUNWam/lib/jss311.jar:/ AccessManager-base/SUNWam/lib:.

      -Djava.util.logging.manager=com.sun.identity.log.LogManager

      -Djava.util.logging.config.file=/ AccessManager-base /SUNwam/lib/LogConfig.properties

    • 如果正在使用的 Java 2 Platform, Standard Edition 的版本低于 1.4,此操作需要通过调用以下命令行来完成:

      java -Xbootclasspath/a:/ AccessManager-base /SUNWam/lib/jdk_logging.jar -cp /AccessManager-base /SUNWam/lib/am_logging.jar:/ AccessManager-base /SUNWam/lib/xercesImpl.jar:/ AccessManager-base /SUNWam/lib/xmlParserAPIs.jar:/ AccessManager-base /SUNWam/lib/jaas.jar:/ AccessManager-base /SUNWam/lib/xmlParserAPIs.jar:/ AccessManager-base /SUNWam/lib/servlet.jar:/ AccessManager-base /SUNWam/locale:/ AccessManager-base/SUNWam/lib/am_services.jar:/ AccessManager-base/SUNWam/lib/am_sdk.jar:/ AccessManager-base/SUNWam/lib/jss311.jar:/ AccessManager-base/SUNWam/lib:.

      -Djava.util.logging.manager=com.sun.identity.log.LogManager

      -Djava.util.logging.config.file=/ AccessManager-base /SUNwam/lib/LogConfig.properties

  2. 确保位于 AccessManager-base/SUNWam/libLogConfig.properties 中配置了以下参数:

    • iplanet-am-logging-remote-handler=com.sun.identity.

      log.handlers.RemoteHandler

    • iplanet-am-logging-remote-formatter=com.sun.

      identity.log.handlers.RemoteFormatter

    • iplanet-am-logging-remote-buffer-size=1

      远程日志以日志记录数目为基础支持缓冲技术。该值根据记录数目定义日志缓冲区的大小。 缓冲区满后,将刷新所有已缓冲的记录到服务器。

    • iplanet-am-logging-buffer-time-in-seconds=3600

      该值定义超时期限,可在其中调用日志缓冲区清理程序线程。

    • iplanet-am-logging-time-buffering-status=OFF

      该值定义是否启用日志缓冲技术(和缓冲区清理程序线程)。默认情况下,此功能被关闭。

      如果启用了基于计时器的缓冲 (iplanet-am-logging-time-buffering-status=ON),则当日志记录的数目达到在 iplanet-am-logging-remote-buffer-size 中指定的值或当超过计时器时间(超时时间在 iplanet-am-logging-buffer-time-in-seconds 中指定)时将刷新日志记录的缓冲区(转移到提供日志记录服务的 AM 服务器中)。如果在达到缓冲区大小之前发生计时器超时,则将发送包含在缓冲区中的记录。如果禁用远程日志记录基于计时器的缓冲,则缓冲区大小决定了何时刷新缓冲区。例如,如果缓冲区大小为 10 而应用程序只发送 7 个记录,则不会刷新缓冲区,也不会写入日志记录。如果应用程序终止,则将刷新缓冲区中的记录。


    注 –

    每当日志文件为空,安全日志记录便可能显示“验证失败”。这是由于创建的文件数量等于归档大小时,安全日志记录将从此归档并重新开始。在大部分实例中,可忽略此错误。一旦记录数等于归档大小,将不显示此错误。


  3. 如果配合 Client SDK 使用程序,则需要对 AMConfig.properties 文件中的以下属性进行相应设置:

    • com.iplanet.am.naming.url

    • com.sun.identityagents.app.username

    • com.iplanet.am.service.password

    • com.iplanet.am.server.protocol

    • com.iplanet.am.server.host

    • com.iplanet.am.server.port

    参阅 /opt/SUNWam/war 目录中的 Client SDK 范例 README.clientsdk。它详细介绍了如何为 /opt/SUNWam/war/clientsdk-samples 目录生成 AMConfig.properties 和 make 文件。而这些文件供范例的 makefile 的编译和运行条目使用。

错误日志和访问日志

存在两种类型的 Access Manager 日志文件:访问日志文件和错误日志文件。

访问日志文件记录与 Access Manager 部署有关的常见审计信息。日志可能包含某事件的单个记录,如验证成功。日志也可能包含同一事件的多个记录。例如,在管理员使用控制台更改属性值时,“日志记录服务”会将此更改尝试记录到一条记录中。“日志记录服务”还会将执行更改的结果记录到第二条记录中。

错误日志文件记录应用程序中发生的错误。将操作错误记录到错误日志的同时,操作尝试将被记录到访问日志文件中。

平面日志文件附加有 .error.access 扩展名。数据库表格名称以 _ERROR_ACCESS 结尾。例如,记录控制台事件的平面文件名称为 amConsole.access,而记录相同事件的数据库表格名称为 AMCONSOLE_ACCESSamConsole_access

下表对每个 Access Manager 组件所产生的日志文件进行了简要说明。

表 10–1 Access Manager 组件日志

组件 

日志文件名前缀 

已记入日志的信息 

会话 

amSSO

会话管理属性值(如:登录时间、注销时间、超时限制)。 

管理控制台 

amConsole

通过管理控制台执行的用户操作(如:创建、删除和修改与身份相关的对象、领域和策略)。 

验证 

amAuthentication

用户登录和注销。 

身份联合 

amFederation

与联合相关的事件(如:“验证域”的创建以及“托管提供者”的创建)。联合日志的前缀为 amFederation

验证(策略) 

amPolicy

与策略相关的事件(如:策略创建、删除或修改以及策略评估)。 

策略代理 

amAgent

与资源相关的异常,这些资源被用户访问过,或拒绝用户访问。amAgent 日志驻留在安装策略代理的服务器上。代理事件记录在 Access Manager 计算机上的“验证日志”中。

SAML 

amSAML

与 SAML 相关的事件(如:声明和辅件的创建或删除、响应和请求详细信息以及 SOAP 错误)。 

命令行 

amAdmin

使用 amadmin 命令行工具的操作过程中发生的事件错误。如果指定了平面文件日志记录,则 amAdmin 日志文件被放入主日志记录目录(默认为 /var/opt/SUNWam/logs)下的 amadmincli 子目录中。示例有:加载服务模式、创建策略以及删除用户。

有关 Access Manager 日志文件的列表和说明,参见 Access Manager Administration Reference 中的“Access Manager Log File Reference”

调试文件

调试文件不是“日志记录服务”的某一功能。使用独立于日志记录 API 的不同 API 可将其写入。调试文件存储在 /var/opt/SUNWam/debug 中。可在 AccessManager-base/SUNWam/lib/ 目录下的 AMConfig.properties 文件中配置此位置和调试信息的级别。有关调试属性的详细信息,参见 Access Manager Administration Reference 中的 AMConfig.properties 文件参考章节。

调试级别

有多个可记录到调试文件的信息级别。调试级别是通过 AMConfig.properties 中的 com.iplanet.services.debug.level 属性来设置的。

  1. Off— 未记录任何调试信息。

  2. Error— 该级别已用于产品。在生产期间,调试文件中不应有错误。

  3. Warning— 建议当前不使用该级别。

  4. Message— 该级别可对使用代码跟踪的可能问题发出警报。大多数 Access Manager 模块使用该级别发送调试消息。


    注 –

    不应在产品中使用“警告”级别和“消息”级别。它们会导致性能严重降低并生成大量调试消息。


调试输出文件

模块对调试文件进行写入操作前不会创建调试文件。因此,在默认的错误模式下,可能不生成任何调试文件。在设置调试级别为消息的基本登录上所创建的调试文件包括:

最常用的文件为 amSDKamProfile 以及所有与验证有关的文件。捕获的信息包括日期、时间和消息类型(错误、警告和消息)。

使用调试文件

默认情况下,调试级别设置为错误。出现以下情况时,调试文件对于管理员来说可能是有用的:

调试文件应与可能在将来拥有的任意故障排除指南同步。例如当 SSL 失败时,某人可能会打开消息调试,然后在 amJSS 调试文件中查找任意特定的证书错误。

第 11 章 通知服务

Sun Java System Access Manager 7.1 通知服务允许将会话通知发送至远程 Web 容器。有必要启用该服务,以供从 Access Manager 服务器本身远程运行的 SDK 应用程序使用。本章说明了如何启用远程 Web 容器来接收通知。包括以下各节:

概述

“通知服务”允许将会话通知发送至正在远程运行 Access Manager SDK 的 Web 容器。通知仅适用于“会话”、“策略”和“命名服务”。另外,远程应用程序必须正在 Web 容器中运行。通知的作用为:

注意,只有当远程 SDK 安装在 Web 容器上时才能接收到通知。

启用通知服务

以下是配置远程 SSO SDK 以接收会话通知的步骤。

Procedure接收会话通知

  1. 在计算机 1 上安装 Access Manager。

  2. 在计算机 2 上安装 Sun Java System Web Server。

  3. 在已安装 Web Server 的同一台计算机上安装 SUNWamsdk

    有关远程安装 Access Manager SDK 的说明,参见 Sun Java Enterprise System 5 安装指南

  4. 确保与安装有 SDK 的计算机有关的以下信息为真。

    1. 确保已正确设置安装有 SDK 的服务器上 /remote_SDK_server/SUNWam/lib 和 /remote_SDK_server/SUNWam/locale 目录的访问权限。

      这些目录包含远程服务器上的文件和 jar。

    2. 确保已在 Web Server 的 server.policy 文件的“授权”部分中设置以下权限。

      server.policy 在 Web Server 安装程序的 config 目录中。如有必要,可以复制和粘贴这些权限:

      permission java.security.SecurityPermission "putProviderProperty.Mozilla-JSS"

      permission java.security.SecurityPermission "insertProvider.Mozilla-JSS";

    3. 确保已在 server.xml 中正确设置类路径。

      server.xml 也位于 Web Server 安装程序的 config 目录中。以下是典型的类路径:

      <JAVA javahome="/export/home/ws61/bin/https/jdk" 
      serverclasspath="/export/home/ws61/bin/https/jar/webserv-rt.jar:${java.home}/lib/tools.jar:/export/home/ws61/bin/https/jar/webserv-ext.jar:/export/home/ws61/bin/https/jar/webserv-jstl.jar:/export/home/ws61/
      	bin/https/jar/nova.jar"
      classpathsuffix="::/IS_CLASSPATH_BEGIN_DELIM:				//usr/share/lib/xalan.jar:				//export/SUNWam/lib/xmlsec.jar:				//usr/share/lib/xercesImpl.jar:				//usr/share/lib/sax.jar:				//usr/share/lib/dom.jar:				//export/SUNWam/lib/dom4j.jar:				//export/SUNWam/lib/jakarta-log4j1.2.6.jar:				//usr/share/lib/jaxm-api.jar:				//usr/share/lib/saaj-api.jar:				//usr/share/lib/jaxrpc-api.jar:				//usr/share/lib/jaxrpc-impl.jar:				//export/SUNWam/lib/jaxm-runtime.jar:				//usr/share/lib/saaj-impl.jar:/export/SUNWam
      				//lib:/export/SUNWam/locale:				//usr/share/lib/mps/jss3.jar:				//export/SUNWam/lib/	am_sdk.jar:				//export/SUNWam/lib/am_services.jar:				//export/SUNWam/lib/am_sso_provider.jar:				//export/SUNWam/lib/swec.jar:				//export/SUNWam/lib/acmecrypt.jar:				//export/SUNWam/lib/iaik_ssl.jar:				//usr/share/lib/jaxp-api.jar:				//usr/share/lib/mail.jar:				//usr/share/lib/activation.jar:				//export/SUNWam/lib/servlet.jar:				//export/SUNWam/lib/am_logging.jar:				//usr/share/lib/commons-logging.jar:				//IS_CLASSPATH_END_DELIM:" 
      envclasspathignored="true" debug="false"
      debugoptions="-Xdebug -Xrunjdwp:transport=dt_socket,
      server=y,suspend=n" 
      javacoptions="-g" 
      dynamicreloadinterval="2">
      
  5. 使用安装在远程 SDK 服务器上的 SSO 范例进行配置。

    1. 转至 / remote_SDK_server /SUNWam/samples/sso 目录。

    2. 运行 gmake

    3. 将生成的类文件从 / remote_SDK_server /SUNWam/samples/sso 复制到 / remote_SDK_server /SUNWam/lib/

  6. am.encryption.pwd 的加密值从与 Access Manager 一起安装的 AMConfig.properties 文件复制到安装有 SDK 的远程服务器上的 AMConfig.properties 文件中。

    am.encryption.pwd 的值用于加密和解密密码。

  7. amadmin 身份登录到 Access Manager 中。

    http://AcceessManager-HostName :3000/amconsole

  8. 通过在浏览器位置字段中输入 http:// remote_SDK_host:58080/servlet/SSOTokenSampleServlet 并验证 SSOToken 来执行 servlet。

    SSOTokenSampleServlet 用于验证会话令牌和添加侦听程序。执行 servlet 将打印出以下消息:

    SSOToken host name: 192.18.149.33 SSOToken Principal name: uid=amAdmin,ou=People,dc=red,dc=iplanet,dc=com Authentication type used: LDAP IPAddress of the host: 192.18.149.33 The token id is AQIC5wM2LY4SfcyURnObg7vEgdkb+32T43+RZN30Req/BGE= Property: Company is - Sun Microsystems Property: Country is - USA SSO Token Validation test Succeeded

  9. 设置安装有 Client SDK 的计算机 AMConfig.properties 中的属性 com.iplanet.am.notification.url=


    com.iplanet.am.notification.url=http://clientSDK_host.domain:port
    /servlet
        com.iplanet.services.comm.client.PLLNotificationServlet
  10. 重新启动 Web Server。

  11. amadmin 的身份登录到 Access Manager 中。

    http://AcceessManager-HostName :3000/amconsole

  12. 通过再次在浏览器位置字段中输入 http:// remote_SDK_host:58080/servlet/SSOTokenSampleServlet 并验证 SSOToken 来执行 servlet。

    运行远程 SDK 的计算机收到通知后,将在会话状态发生更改时调用其自身的侦听程序。注意,只有当远程 SDK 安装在 Web 容器上时才能接收到通知。

Procedure在仅限门户安装中启用通知服务

本节说明在仅限门户安装(默认情况下,以轮询模式运行)中使用 WebLogic 8.1 来启用通知的步骤。对于还包含 amserver 组件的门户实例,则不需要这些步骤。amserver 组件会自动配置以执行通知。

  1. 在 WebLogic 中注册 PLLNotificationServlet

    WebLogic 8.1 要求部署 Web 应用程序。另外,servlet URL 必须有效,这样当从浏览器访问时,将返回以下消息:


    Webtop 2.5 Platform Low Level notification servlet
  2. AMConfig.properties 中输入已注册的 URL,如下所示:

    com.iplanet.am.notifaction.url=http:// weblogic_instance-host.domain:port/notification/PLLNotificationServlet

  3. 在 AMConfig.properties 中禁用轮询。这将自动启用通知:

    com.iplanet.am.session.client.polling.enable=false

  4. 重新启动 WebLogic 并测试配置。

    如果已将调试模式设置为 message,则将看到会话通知在触发后到达门户。例如,诸如从 Access Manager 控制台终止用户这种操作将引发通知事件。