Sun Java logo     上一页      目录      索引      下一页     

Sun logo
Sun Java System Identity Server 2004Q2 管理指南 

第 8 章
验证选项

Sun Java™ System Identity Server 2004Q2 提供了一个验证(验证在企业内部访问应用程序的用户的身份的进程)的框架。在访问 Identity Server 控制台或任何其他受 Identity Server 保护的资源之前,用户必须通过验证进程。验证是通过验证用户身份的插件来实现的。(在《Identity Server Developer's Guide》中对此插件体系结构进行了更为全面的介绍。)

Identity Server 控制台用于设置默认值、添加验证服务、创建验证模板以及启用服务。本章概括介绍了验证服务并提供了添加这些验证服务的操作说明。本章包含以下内容:


核心验证

默认情况下,除了核心验证服务以外,Identity Server 还提供了十一项不同的验证服务。核心验证服务为验证服务提供总体配置。在添加和启用匿名、基于证书、HTTP Basic、LDAP、成员资格、NT、RADIUS、SafeWord、SecurID、Windows 桌面 SSO 及 Unix 验证之前,必须先添加和启用核心验证。系统会自动为默认组织启用核心及 LDAP 验证服务。第 20 章,“核心验证属性”中包含核心属性的详细列表。

添加和启用核心服务

  1. 转到要为其添加核心服务的组织。
  2. 从“查看”菜单中选择“服务”。
  3. 在“浏览”窗格中单击“添加”。
  4. 此时“数据”窗格中会显示可用服务列表。

  5. 选中核心验证的复选框并单击“添加”。
  6. 核心验证服务将显示在“浏览”窗格中,向管理员证实已添加了该服务。

  7. 单击核心验证的属性箭头。
  8. 数据窗格中将显示消息“当前不存在用于该服务的模板。要现在创建一个模板吗?

  9. 单击“创建”。
  10. “数据”窗格中将显示核心属性。根据需要修改这些属性。您可以在第 20 章,“核心验证属性”中,或通过单击控制台右上角的“帮助”链接找到有关核心属性的说明。


匿名验证

默认情况下,如果启用了此模块,用户可以以匿名用户身份登录到 Identity Server 中。还可以通过配置有效匿名用户列表属性为此模块定义匿名用户的列表(参见(更多...) )。允许匿名访问意味着无需提供口令即可访问该服务器。可以将匿名访问限于特定的访问类型(例如,读取访问或搜索访问)或者限于目录中的特定子树或单个条目。

添加和启用匿名验证

您必须以组织管理员或顶层管理员身份登录到 Identity Server 中。

  1. 转到要为其添加匿名验证的组织。
  2. 从“查看”菜单中选择“服务”。
  3. 如果已添加,“核心”服务会显示在“浏览”窗格中。如果该服务尚未添加,可以与匿名验证服务一同添加。

  4. 在“浏览”窗格中单击“添加”。
  5. 此时“数据”窗格中会显示可用服务列表。

  6. 选中匿名验证的复选框并单击“添加”。
  7. 匿名验证服务将显示在“浏览”窗格中,向管理员证实已添加了该服务。

  8. 单击匿名验证的属性箭头。
  9. 数据窗格中将显示消息:当前不存在用于该服务的模板。要现在创建一个模板吗?

  10. 单击“创建”。
  11. “数据”窗格中将显示匿名验证属性。根据需要修改这些属性。您可以在第 18 章,“匿名验证属性”中,或通过单击控制台右上角的“帮助”链接找到这些属性的说明。

  12. 单击“保存”。
  13. 匿名验证服务已经启用。

使用匿名验证登录

为了使用匿名验证登录,必须修改核心验证服务属性(组织验证模块)以启用和选择匿名验证。这可以确保用户登录时使用 http(s)://hostname:port/SERVER_DEPLOY_URI//UI/Login?module=Anonymous&org=org_name要在不使用“匿名验证”登录窗口的情况下登录,请使用以下语法:

http(s)://hostname:port/SERVER_DEPLOY_URI//UI/Login?module=Anonymous&org=org_name&Login.Token1=user_id

根据正在使用的验证类型(例如服务、角色、用户和组织),如果将验证模块配置为默认模块,则无需在 URL 中指定模块名称。


匿名验证服务中的“默认匿名用户名”属性值为 anonymous。这是用户登录时使用的名称。必须在组织中创建默认的匿名用户。用户 ID 应当与在匿名验证属性中指定的用户名相同。此项也可要求区分大小写。



基于证书的验证

基于证书的验证中使用个人数字证书 (PDC) 来识别和验证用户。可以将 PDC 配置为必须与 Directory Server 中存储的某个 PDC 相匹配,并且必须对照证书撤回列表进行检验。

在将基于证书的验证服务添加到组织之前,需要完成若干事项。首先,需要保护与 Identity Server 一起安装的 Web 容器,并将其配置为使用基于证书的验证。在启用基于证书的服务之前,请先参见 Sun ONE Web Server 6.1 Administrator's Guide 中的第 6 章“Using Certificates and Keys”,以了解相应的初始 Web Server 配置步骤。可以在以下位置找到此文档:

http://docs.sun.com/db/prod/s1websrv#hic

或者,请参见 Sun ONE Application Sever Administrator's Guide to Security,其所在位置如下:

http://docs.sun.com/db/prod/s1appsrv#hic


每位将使用基于证书的服务进行验证的用户均必须为用户的浏览器请求一个 PDC。使用的浏览器不同,具体的说明也不同。有关详细信息,请参见您浏览器的文档。


添加和启用基于证书的验证

您必须以组织管理员身份登录到 Identity Server 中。

  1. 转到要为其添加基于证书的验证的组织。
  2. 从“查看”菜单中选择“服务”。
  3. 如果已添加,“核心”服务会显示在“浏览”窗格中。如果该服务尚未添加,可以与基于证书的验证服务一同添加。

  4. 在“浏览”窗格中单击“添加”。
  5. 此时“数据”窗格中会显示可用服务列表。

  6. 选中基于证书的验证的复选框并单击“添加”。
  7. 基于证书的验证服务将显示在“浏览”窗格中,向管理员证实已添加了该服务。

  8. 单击基于证书的验证的属性箭头。
  9. 数据窗格中将显示消息:当前不存在用于该服务的模板。要现在创建一个模板吗?

  10. 单击“创建”。
  11. “数据”窗格中将显示基于证书的验证属性。根据需要修改这些属性。您可以在第 19 章,“证书验证属性”中,或通过单击控制台右上角的“帮助”链接找到这些属性的说明。

  12. 单击“保存”。

在平台服务器列表中为基于证书的验证添加服务器 URL

为了添加此服务,您必须以组织管理员身份登录到 Identity Server,为 SSL 配置 Identity Server 和 Web 容器并且启用客户机验证。有关详细信息,参见在 SSL 模式中配置 Identity Server

使用基于证书的验证登录

为了使基于证书的验证成为默认验证方法,必须修改核心验证服务属性“组织验证模块”(参见(更多...) )。这可以确保当用户使用 http://hostname:port/deploy_URI/UI/Login?module=Cert 登录时,将看到“基于证书的验证”登录窗口。根据正在使用的验证类型(例如角色、用户和组织),如果将验证模块配置为默认模块,则无需在 URL 中指定模块名称。


HTTP Basic 验证

该模块使用基本验证,它是 HTTP 协议内置的验证支持。Web server 发出对用户名和口令的客户机请求,并将这些信息作为已验证的请求的一部分发送回服务器。Identity Server 将检索用户名和口令,然后在 LDAP 验证模块中内部验证该用户。为使 HTTP Basic 正常工作,还必须添加 LDAP 验证模块(只添加 HTTP Basic 模块将无法正常工作)。有关详细信息,请参见添加和启用 LDAP 验证。用户成功进行验证后,他/她将可以在不提供用户名和口令的情况下重新进行验证。

添加和启用 HTTP Basic 验证

您必须以组织管理员或顶层管理员身份登录到 Identity Server,而且必须已经注册 LDAP 验证服务。

  1. 转到要为其添加 HTTP Basic 验证的组织。
  2. 从“查看”菜单中选择“服务”。
  3. 如果已添加,“核心”服务会显示在“浏览”窗格中。如果该服务尚未添加,可以与 HTTP Basic 验证服务一同添加。

  4. 在“浏览”窗格中单击“添加”。
  5. 此时“数据”窗格中会显示可用服务列表。

  6. 选中 HTTP Basic 验证的复选框并单击“添加”。
  7. HTTP Basic 验证服务将显示在“浏览”窗格中,向管理员证实已添加了该服务。

  8. 单击 HTTP Basic 验证的属性箭头。
  9. 数据窗格中将显示消息:当前不存在用于该服务的模板。要现在创建一个模板吗?

  10. 单击“创建”。
  11. “数据”窗格中将显示 HTTP Basic 验证属性。根据需要修改这些属性。您可以在第 21 章,“HTTP Basic 验证属性”中,或通过单击控制台右上角的“帮助”链接找到这些属性的说明。

  12. 单击“保存”。
  13. HTTP Basic 验证服务已经启用。

使用 HTTP Basic 验证登录

为了使用 LDAP 验证登录,必须修改核心验证服务属性(组织验证模块)以启用和选择 HTTP Basic 验证。这可以确保当用户使用 http://hostname:port/server_deploy_URI/UI/Login?module=HTTPBasic 登录时,将看到验证登录窗口。根据正在使用的验证类型(例如服务、角色、用户和组织),如果将验证模块配置为默认模块,则无需在 URL 中指定模块名称。如果验证失败,将打开新的实例,用户将再次登录。要在使用 HTTP Basic 验证后彻底注销,必须关闭所有现有的浏览器实例,并启动新的浏览器实例。


LDAP 目录验证

在 LDAP 验证服务中,用户登录时需要使用特定的用户 DN 和口令绑定到 LDAP Directory Server 上。这是所有基于组织的验证的默认验证模块。如果用户提供的用户 ID 和口令在 Directory Server 中存在,则允许用户访问并为其创建一个有效的 Identity Server 会话。系统会自动为默认组织启用核心及 LDAP 验证服务。万一该服务被禁用,请参考下面所提供的操作说明。

添加和启用 LDAP 验证

您必须以组织管理员或顶层管理员身份登录到 Identity Server 中。

  1. 转到要为其添加 LDAP 验证的组织。
  2. 从“查看”菜单中选择“服务”。
  3. 如果已添加,“核心”服务会显示在“浏览”窗格中。如果该服务尚未添加,可以与 LDAP 验证服务一同添加。

  4. 在“浏览”窗格中单击“添加”。
  5. 此时“数据”窗格中会显示可用服务列表。

  6. 选中 LDAP 验证的复选框并单击“添加”。
  7. LDAP 验证服务将显示在“浏览”窗格中,向管理员证实已添加了该服务。

  8. 单击 LDAP 验证的属性箭头。
  9. 数据窗格中将显示消息:当前不存在用于该服务的模板。要现在创建一个模板吗?

  10. 单击“创建”。
  11. “数据”窗格中将显示 LDAP 验证属性。根据需要修改这些属性。您可以在第 22 章,“LDAP 验证属性”中,或通过单击控制台右上角的“帮助”链接找到这些属性的说明。

  12. 在“用户绑定的口令”属性中输入口令。默认情况下,安装过程中输入的 amldapuser 口令将用作绑定用户。如果您的 Directory Server 允许通过匿名访问来读取用户条目,则可跳过此步骤。
  13. 要使用其他绑定用户,请在“超级用户绑定的 DN”属性中更改用户的 DN,并在“超级用户绑定的口令”属性中输入该用户的口令。

  14. 单击“保存”。
  15. LDAP 验证服务已经启用。

使用 LDAP 验证登录

为了使用 LDAP 验证登录,必须修改核心验证服务属性(组织验证模块)以启用和选择 LDAP 验证。这可以确保当用户使用 http://hostname:port/server_deploy_URI/UI/Login?module=LDAP 登录时,将看到“LDAP 验证”登录窗口。根据正在使用的验证类型(例如服务、角色、用户和组织),如果将验证模块配置为默认模块,则无需在 URL 中指定模块名称。

启用 LDAP 验证故障转移

LDAP 验证属性包括主 Directory Server 和辅助 Directory Server 的值字段。如果主服务器不可用,则 Identity Server 将转向辅助服务器进行验证。有关详细信息,参见 LDAP 属性主 LDAP 服务器辅助 LDAP 服务器

多个 LDAP 配置

管理员可以在一个组织下定义多个 LDAP 配置,作为故障转移的形式或者在 Identity Server 控制台只提供一个值字段时为一个属性配置多个值。尽管这些附加配置无法通过控制台查看,但如果未找到对于请求用户的授权的初始搜索,这些配置将与主配置一起发挥作用。有关多 LDAP 配置的信息,参见《Identity Server Developer's Guide》中的“Multi LDAP Configuration”。


成员资格验证

成员资格验证的实现类似与个性化站点,例如 my.site.commysun.sun.com。启用了此服务后,用户可以创建帐户并对其进行个性化,而无需管理员的帮助。利用这个新帐户,用户可以作为已添加的用户来访问该服务。用户还可以访问作为授权数据和用户首选项保存在用户配置文件数据库中的查看器界面。

添加和启用成员资格验证

您必须以组织管理员或顶层管理员身份登录到 Identity Server 中。

  1. 转到要为其添加成员资格验证的组织。
  2. 从“查看”菜单中选择“服务”。
  3. 如果已添加,“核心”服务会显示在“浏览”窗格中。如果该服务尚未添加,可以与成员资格验证服务一同添加。

  4. 在“浏览”窗格中单击“添加”。
  5. 此时“数据”窗格中会显示可用服务列表。

  6. 选中成员资格验证的复选框并单击“添加”。
  7. 成员资格验证服务将显示在“浏览”窗格中,向管理员证实已添加了该服务。

  8. 单击成员资格验证的属性箭头。
  9. 数据窗格中将显示消息:当前不存在用于该服务的模板。要现在创建一个模板吗?

  10. 单击“创建”。
  11. “数据”窗格中将显示成员资格验证属性。根据需要修改这些属性。您可以在第 23 章,“成员资格验证属性”中,或通过选择控制台右上角的“帮助”链接找到这些属性的说明。

  12. 在“超级用户绑定的口令”属性中输入口令。默认情况下,安装过程中输入的 amldapuser 口令将用作绑定用户。
  13. 要使用其他绑定用户,请在“超级用户绑定的 DN”属性中更改用户的 DN,并在“超级用户绑定的口令”属性中输入该用户的口令。

  14. 单击“保存”。
  15. 成员资格验证服务已经启用。

使用成员资格验证登录

为了使用成员资格验证登录,必须修改核心验证服务属性(组织验证模块)以启用和选择成员资格验证。这可以确保当用户使用 http://hostname:port/deploy_URI/UI/Login?module=Membership(注意区分大小写)登录时,将看到“成员资格验证”登录(自注册)窗口。根据正在使用的验证类型(例如服务、角色、用户和组织),如果将验证模块配置为默认模块,则无需在 URL 中指定模块名称。


NT 验证

可以将 Identity Server 配置为与已安装的 NT/Windows 2000 服务器一起工作。Identity Server 提供了 NT 验证的客户机部分。只有 Solaris 平台上支持 NT 验证服务。

  1. 配置 NT 服务器。有关详细说明,请参见 NT 服务器文档。
  2. 必须先获得并在您的 Solaris 系统中安装与 Identity Server 进行通信的 Samba 客户机,才能添加和启用 NT 验证服务。有关详细信息,参见 NT 验证属性
  3. 添加和启用 NT 验证服务。

安装 Samba 客户机

要激活 NT 验证模块,必须下载 Samba Client 2.2.2 并将其安装到下面的目录:

IdentityServer_base/SUNWam/bin

Samba Client 是文件服务器和打印服务器,它将 Windows 计算机和 UNIX 计算机融合在一起而无需使用单独的 Windows NT/2000 服务器。有关该软件的详细信息及下载该软件,请访问 http://wwws.sun.com/software/download/products/3e3af224.html

Red Hat Linux 随 Samba 客户机一起提供,它位于以下目录中:

/usr/bin

为了使用 Linux 的 NT 验证服务进行验证,请将客户机二进制文件复制到以下 Identity Server 目录:

IdentityServer_base/sun/identity/bin


如果有多个界面,则需要额外配置。可通过在 smb.conf 文件中进行配置设置多个界面,这样它就会传递到 mbclient


添加和启用 NT 验证

您必须以组织管理员或顶层管理员身份登录到 Identity Server 中。

  1. 转到要为其添加 NT 验证的组织。
  2. 从“查看”菜单中选择“服务”。
  3. 如果已添加,“核心”服务会显示在“浏览”窗格中。如果该服务尚未添加,可以与 NT 验证服务一同添加。

  4. 在“浏览”窗格中单击“添加”。
  5. 此时“数据”窗格中会显示可用服务列表。

  6. 选中 NT 验证的复选框并单击“添加”。
  7. NT 验证服务将显示在“浏览”窗格中,向管理员证实已添加了该服务。

  8. 单击 NT 验证的属性箭头。
  9. 数据窗格中将显示消息:当前不存在用于该服务的模板。要现在创建一个模板吗?

  10. 单击“创建”。
  11. “数据”窗格中将显示 NT 验证属性。根据需要修改这些属性。您可以在第 24 章,“NT 验证属性”中,或通过选择控制台右上角的“帮助”链接找到这些属性的说明。

  12. 单击“保存”。
  13. NT 验证服务已经启用。

使用 NT 验证登录

为了使用 NT 验证登录,必须修改核心验证服务属性(组织验证模块)以启用和选择 NT 验证。这可以确保当用户使用 http://hostname:port/deploy_URI/UI/Login?module=NT 登录时,将看到“NT 验证”登录窗口。根据正在使用的验证类型(例如服务、角色、用户和组织),如果将验证模块配置为默认模块,则无需在 URL 中指定模块名称。


RADIUS 服务器验证

可以将 Identity Server 配置为与已安装的 RADIUS 服务器一起工作。如果您的企业中使用传统 RADIUS 服务器进行验证,此功能将很有用。启用 RADIUS 验证服务的过程分为两步:

  1. 配置 RADIUS 服务器。
  2. 有关详细说明,请参见 RADIUS 服务器文档。

  3. 注册和启用 RADIUS 验证服务。

添加和启用 RADIUS 验证

您必须以组织管理员身份登录到 Identity Server 中。

  1. 转到要为其添加 RADIUS 验证的组织。
  2. 从“查看”菜单中选择“服务”。
  3. 如果已添加,“核心”服务会显示在“浏览”窗格中。如果该服务尚未添加,可以与 RADIUS 验证服务一同添加。

  4. 在“浏览”窗格中单击“添加”。
  5. 此时“数据”窗格中会显示可用服务列表。

  6. 选中 RADIUS 验证的复选框并单击“添加”。
  7. RADIUS 验证服务将显示在“浏览”窗格中,向管理员证实已添加了该服务。

  8. 单击 RADIUS 验证的属性箭头。
  9. 数据窗格中将显示消息:当前不存在用于该服务的模板。要现在创建一个模板吗?

  10. 单击“创建”。
  11. “数据”窗格中将显示 RADIUS 验证属性。根据需要修改这些属性。您可以在第 25 章,“RADIUS 验证属性”中,或通过选择控制台右上角的“帮助”链接找到这些属性的说明。

  12. 单击“保存”。
  13. RADIUS 验证服务已经启用。

使用 RADIUS 验证登录

为了使用 RADIUS 验证登录,必须修改核心验证服务属性(组织验证模块)以启用和选择 RADIUS 验证。这可以确保当用户使用 http://hostname:port/deploy_URI/UI/Login?module=RADIUS 登录时,将看到“RADIUS 验证”登录窗口。根据正在使用的验证类型(例如服务、角色、用户和组织),如果将验证模块配置为默认模块,则无需在 URL 中指定模块名称。

使用 Sun ONE Application Server 配置 RADIUS

默认情况下,当 RADUIS 客户机建立到其服务器的套接字连接时,在 Application Server 的 server.policy 文件中只允许 SocketPermissions 连接权限。为使 RADUIS 验证正常工作,对于以下操作应授予权限:

要授予套接字连接权限,必须在 Application Server 的 server.policy 文件中添加一个条目。SocketPermission 由主机规范和指定连接到该主机的方式的一组操作组成。请按以下格式指定主机:

host = hostname | IPaddress:portrange:portrange = portnumber | -portnumberportnumber-portnumber

主机可以表示为 DNS 名称、数字 IP 地址或 localhost(对于本地计算机)。可以在指定的 DNS 主机名中包含一处通配符“*”。如果包含该通配符,它必须在最左侧的位置,如 *.example.com

端口(或 portrange)是可选的。形式为 N- 的端口规范(其中 N 为端口号)表示编号为 N 及以上的所有端口。形式为 -N 的规范表示编号为 N 及以下的所有端口。

listen 操作仅在与本地主机一起使用时才有意义。任意其他操作存在时,resolve(解析主机/IP 名称服务查找)操作才能执行。

例如,当创建 SocketPermissions 时,请注意如果将以下权限授予某些代码,将允许该代码连接到 machine1.example.com 上的 port 1645,并接受该端口上的连接:

permission java.net.SocketPermission machine1.example.com:1645, "connect,accept";

类似地,如果将以下权限授予某些代码,将允许该代码接受本地主机上 1024 和 65535 之间的所有端口上的连接、连接到这些端口或侦听它们:

permission java.net.SocketPermission machine1.example.com:1645, "connect,accept";

permission java.net.SocketPermission "localhost:1024-", "accept,connect,listen";


授予代码权限以接受或建立到远程主机的连接可能会引起问题,因为恶意代码可以更容易地在各方之间传送和共享机密数据,使可能不具有数据访问权限的人访问到数据。请确保通过指定确切的端口号(而不是指定一个端口号的范围)仅授予适当的权限。



SafeWord 验证

可以对 Identity Server 进行配置,以处理到 Secure Computing 的 SafeWord™ 或 SafeWord PremierAccess™ 验证服务器的 SafeWord 验证请求。Identity Server 提供 SafeWord 验证的客户机部分。SafeWord 服务器可以在安装了 Identity Server 的系统中存在,或者在单独的系统中存在。

添加和启用 SafeWord 验证

您必须以组织管理员或顶层管理员身份登录到 Identity Server 中。

  1. 转到要为其添加 SafeWord 验证的组织。
  2. 从“查看”菜单中选择“服务”。
  3. 如果已添加,“核心”服务会显示在“浏览”窗格中。如果该服务尚未添加,可以与 SafeWord 验证服务一同添加。

  4. 在“浏览”窗格中单击“添加”。
  5. 此时“数据”窗格中会显示可用服务列表。

  6. 选中 SafeWord 验证的复选框并单击“添加”。
  7. SafeWord 验证服务将显示在“浏览”窗格中,向管理员证实已添加了该服务。

  8. 单击 SafeWord 验证的属性箭头。
  9. 数据窗格中将显示消息:当前不存在用于该服务的模板。要现在创建一个模板吗?

  10. 单击“创建”。
  11. “数据”窗格中将显示 SafeWord 验证属性。根据需要修改这些属性。您可以在第 26 章,“SafeWord 验证属性”中,或通过单击控制台右上角的“帮助”链接找到有关这些属性的说明。

  12. 单击“保存”。
  13. SafeWord 验证服务已经启用。

使用 SafeWord 验证登录

为了使用 SafeWord 验证登录,必须修改核心验证服务属性(组织验证模块)以启用和选择 SafeWord 验证。这可以确保当用户使用 http://hostname:port/deploy_URI/UI/Login?module=SAFEWORD 登录时,将看到“SafeWord 验证”登录窗口。根据正在使用的验证类型(例如角色、用户和组织),如果将验证模块配置为默认模块,则无需在 URL 中指定模块名称。

使用 Sun ONE Application Server 配置 SafeWord

默认情况下,当 SafeWord 客户机建立到其服务器的套接字连接时,在 Application Server 的 server.policy 文件中只允许 SocketPermissions 连接权限。为使 SafeWord 验证正常工作,对于以下操作应授予权限:

要授予套接字连接权限,必须在 Application Server 的 server.policy 文件中添加一个条目。SocketPermission 由主机规范和指定连接到该主机的方式的一组操作组成。请按以下格式指定主机:

host = (hostname | IPaddress)[:portrange] portrange = portnumber | -portnumberportnumber-[portnumber]

主机可以表示为 DNS 名称、数字 IP 地址或 localhost(对于本地计算机)。可以在指定的 DNS 主机名中包含一处通配符“*”。如果包含该通配符,它必须在最左侧的位置,如 *.example.com

端口(或 portrange)是可选的。形式为 N- 的端口规范(其中 N 为端口号)表示编号为 N 及以上的所有端口。形式为 -N 的规范表示编号为 N 及以下的所有端口。

listen 操作仅在与本地主机一起使用时才有意义。任意其他操作存在时,resolve(解析主机/IP 名称服务查找)操作才能执行。

例如,当创建 SocketPermissions 时,请注意如果将以下权限授予某些代码,将允许该代码连接到 machine1.example.com 上的 port 1645,并接受该端口上的连接:

permission java.net.SocketPermission machine1.example.com:5030, "connect,accept";

类似地,如果将以下权限授予某些代码,将允许该代码接受本地主机上 1024 和 65535 之间的所有端口上的连接、连接到这些端口或侦听它们:

permission java.net.SocketPermission machine1.example.com:5030, "connect,accept";

permission java.net.SocketPermission "localhost:1024-", "accept,connect,listen";


授予代码权限以接受或建立到远程主机的连接可能会引起问题,因为恶意代码可以更容易地在各方之间传送和共享机密数据,使可能不具有数据访问权限的人访问到数据。请确保通过指定确切的端口号(而不是指定一个端口号的范围)仅授予适当的权限。



SecurID 验证

可以对 Identity Server 进行配置,以处理到 RSA 的 ACE/Server 验证服务器的 SecureID 验证请求。Identity Server 提供 SecurID 验证的客户机部分。ACE/Server 可能位于安装 Identity Server 的系统或单独的系统中。为了验证本地管理的用户 ID(请参见 admintool [1M]),必须具备 root 访问权限。

SecurID 验证使用验证帮助器 amsecuridd,后者是独立于主 Identity Server 进程以外的进程。在启动时,此帮助器将在端口上侦听配置信息。如果将 Identity Server 安装为以 nobody 运行,或以 root 以外的用户 ID 运行,IdentityServer_base/SUNWam/share/bin/amsecuridd 进程必须仍以 root 身份执行操作。有关 amsecuridd 帮助器的详细信息,请参见 amsecuridd 帮助器


对于本 Identity Server 发行版,SecurID 验证服务不可用于 Linux 或 Solaris x86 平台。


添加和启用 SecurID 验证

您必须以组织管理员或顶层管理员身份登录到 Identity Server 中。

  1. 转到要为其添加 SecurID 验证的组织。
  2. 从“查看”菜单中选择“服务”。
  3. 如果已添加,“核心”服务会显示在“浏览”窗格中。如果该服务尚未添加,可以与 SecurID 验证服务一同添加。

  4. 在“浏览”窗格中单击“添加”。
  5. 此时“数据”窗格中会显示可用服务列表。

  6. 选中 SecurID 验证的复选框并单击“添加”。
  7. SecurID 验证服务将显示在“浏览”窗格中,向管理员证实已添加了该服务。

  8. 单击 SecurID 验证的属性箭头。
  9. 数据窗格中将显示消息:当前不存在用于该服务的模板。要现在创建一个模板吗?

  10. 单击“创建”。
  11. “数据”窗格中将显示 SecurID 验证属性。根据需要修改这些属性。您可以在第 27 章,“SecurID 验证属性”中,或通过单击控制台右上角的“帮助”链接找到有关这些属性的说明。

  12. 单击“保存”。
  13. SecurID 验证服务已经启用。

使用 SecurID 验证登录

为了使用 SecurID 验证登录,必须修改核心验证服务属性(组织验证模块)以启用和选择 SecurID 验证。这可以确保当用户使用 http://hostname:port/deploy_URI/UI/Login?module=SecurID 登录时,将看到“SecurID 验证”登录窗口。根据正在使用的验证类型(例如角色、用户和组织),如果将验证模块配置为默认模块,则无需在 URL 中指定模块名称。


Unix 验证

可以配置 Identity Server 使其按照 Solaris 或 Linux 系统(其中安装了 Identity Server)已知的 Unix 用户 ID 和口令来处理验证请求。尽管 Unix 验证只有一个组织属性和几个全局属性,仍有一些面向系统的注意事项。为了验证本地管理的用户 ID(请参见 admintool [1M]),必须具备 root 访问权限。

Unix 验证使用验证帮助器 amunixd,后者是独立于主 Identity Server 进程以外的进程。在启动时,此帮助器将在端口上侦听配置信息。每个 Identity Server 仅有一个 Unix 帮助器为该服务器的所有组织服务。

如果将 Identity Server 安装为以 nobody 运行,或以 root 以外的用户 ID 运行,IdentityServer_base/SUNWam/share/bin/amunixd 进程必须仍以 root 身份执行操作。Unix 验证模块通过打开到 localhost:58946 的套接字调用 amunixd 守护程序以侦听 Unix 验证请求。要在默认端口上运行 amunixd 帮助器进程,请输入以下命令:

./amunixd

要在非默认端口上运行 amunixd,请输入以下命令:

./amunixd [-c portnm] [ipaddress]

IP 地址和端口号位于 AMConfig.properties 中的 UnixHelper.ipadrs(以 IPV4 格式)和 UnixHelper.port 属性中。您可以通过 amserver 命令行实用程序运行 amunixdamserver 自动运行进程,从 AMConfig.properties 中检索端口号和 IP 地址)。

/etc/nsswitch.conf 文件中的 passwd 条目确定是否查询 /etc/passwd/etc/shadow 文件或 NIS 以进行验证。

添加和启用 Unix 验证

在以下步骤中,您必须以顶层管理员身份登录到 Identity Server 中。

  1. 选择“服务配置”模块。
  2. 在“服务名称”列表中的 Unix 验证的属性箭头上单击。
  3. 将显示几个全局属性和一个组织属性。因为一个 Unix 帮助器为 Identity Server 服务器的所有组织服务,所以大多数 Unix 属性是全局属性。您可以在第 28 章,“Unix 验证属性”中,或通过单击控制台右上角的“帮助”链接找到有关这些属性的说明。

  4. 单击“保存”保存属性的新值。
  5. 您可以以组织管理员身份登录到 Identity Server,为组织启用 Unix 验证。

  6. 转到要为其添加 Unix 验证的组织。
  7. 从“查看”菜单中选择“服务”。
  8. 如果已添加,“核心”服务会显示在“浏览”窗格中。如果该服务尚未添加,可以与 Unix 验证服务一同添加。

  9. 在“浏览”窗格中单击“添加”。
  10. 此时“数据”窗格中会显示可用服务列表。

  11. 选中 Unix 验证的复选框并单击“添加”。
  12. Unix 验证服务将显示在“浏览”窗格中,向管理员证实已添加了该服务。

  13. 单击 Unix 验证的属性箭头。
  14. 数据窗格中将显示消息:当前不存在用于该服务的模板。要现在创建一个模板吗?

  15. 单击“创建”。
  16. “数据”窗格中将显示 Unix 验证组织属性。根据需要修改验证级别属性。您可以在第 28 章,“Unix 验证属性”中,或通过单击控制台右上角的“帮助”链接找到有关此属性的说明。

  17. 单击“保存”。Unix 验证服务即被启用。

使用 Unix 验证登录

为了使用 Unix 验证登录,必须修改核心验证服务属性(组织验证模块)以启用和选择 Unix 验证。这可以确保当用户使用 http://hostname:port/deploy_URI/UI/Login?module=Unix 登录时,将看到“Unix 验证”登录窗口。根据正在使用的验证类型(例如服务、角色、用户和组织),如果将验证模块配置为默认模块,则无需在 URL 中指定模块名称。


Windows 桌面 SSO 验证

Windows 桌面 SSO 验证服务是一个基于 Kerberos 的验证插件模块,用于 Windows 2000™。它允许已通过 Kerberos 分发中心 (KDC) 验证的用户无需重新提交登录条件即可验证到 Identity Server(单一登录)。

添加和启用 Windows 桌面 SSO 验证

启用 Windows 桌面 SSO 验证的过程分为三步:

  1. 在 Windows 2000 域控制器中创建用户。
  2. 设置 Internet Explorer。
  3. 添加和配置 Windows 桌面 SSO 验证服务。

在 Windows 2000 域控制器中创建用户

  1. 在域控制器中,为 Identity Server 验证服务创建用户帐户。
    1. 在“开始”菜单中,转到“程序”>“管理工具”。
    2. 选择“活动目录和计算机”。
    3. 以 Identity Server 主机名作为用户 ID(登录名)创建新用户。Identity Server 主机名中不能包括域名。
  2. 在用户帐户与服务提供商名称间建立关联,并将键表文件导出至装有 Identity Server 的系统。为此,请运行以下命令:
  3. ktpass -princ host/hostname.domainname@DCDOMAIN -pass password -mapuser userName-out hostname.host.keytab

    ktpass -princ HTTP/hostname.domainname@DCDOMAIN -pass password -mapuser userName-out hostname.host.keytab

    ktpass 命令接受下列参数:

    hostname。运行 Identity Server 的主机名(不含域名)。

    domainname。Identity Server 域名。

    DCDOMAIN。域控制器的域名。它可能与 Identity Server 域名不同。

    password。用户帐户的口令。请确保口令正确,因为 ktpass 不校验口令。

    userName。用户帐户 ID。它应与主机名相同。


    确保两个键表文件都已安全保管。


  4. 重新启动服务器。

设置 Internet Explorer

  1. 在“工具”菜单中,转到“Internet 选项”>“高级/安全”>“安全”。
  2. 选择“集成的 Windows 验证”选项。
  3. 转到“安全”>“本地 Internet”。
    1. 选择“自定义级别”。在“用户验证/登录”面板中,选择“只在内联网区域自动登录”选项。
    2. 转到“站点”并选择所有选项。
    3. 单击“高级”,将 Identity Server 添加到本地区域(如果尚未添加)。

    4. 以上步骤适用于 Microsoft Internet Explorer™ 6 及更高版本。如果您使用的是较早版本,请确保 Identity Server 位于浏览器的 internet 区域并启用“本地 Windows 验证”。


添加和配置 Windows 桌面 SSO 验证

您必须以组织管理员或顶层管理员身份登录到 Identity Server 中。

  1. 转到要为其添加 Windows 桌面 SSO 验证的组织。
  2. 从“查看”菜单中选择“服务”。
  3. 如果已添加,“核心”服务会显示在“浏览”窗格中。如果该服务尚未添加,可以与 Windows 桌面 SSO 验证服务一同添加。

  4. 在“浏览”窗格中单击“添加”。
  5. 此时“数据”窗格中会显示可用服务列表。

  6. 选中与 Windows 桌面 SSO 验证相应的复选框,然后单击“添加”。
  7. Windows 桌面 SSO 验证服务将显示在“浏览”窗格中,向管理员证实已添加了该服务。

  8. 单击 Windows 桌面 SSO 验证的属性箭头。
  9. 数据窗格中将显示消息:当前不存在用于该服务的模板。要现在创建一个模板吗?

  10. 单击“创建”。
  11. “数据”窗格中将显示 Windows 桌面 SSO 验证属性。根据需要修改这些属性。您可以在第 29 章,“Windows 桌面 SSO 验证属性”中,或通过选择控制台右上角的“帮助”链接找到这些属性的说明。

  12. 单击“保存”。Windows 桌面 SSO 验证服务即被启用。

使用 Windows 桌面 SSO 验证登录

为了使用 Windows 桌面 SSO 验证登录,必须修改核心验证服务属性(组织验证模块)以启用和选择 Windows 桌面 SSO 验证。这可确保当用户从一主机登录(该主机属于 Windows 2000 域控制器的一部分,并已使用 http://hostname:port/deploy_URI/UI/Login?module=WindowsDesktopSSO 以域用户身份登录),将会对用户进行验证。根据正在使用的验证类型(例如服务、角色、用户和组织),如果将验证模块配置为默认模块,则无需在 URL 中指定模块名称。


验证配置

验证配置服务用于定义以下任一验证类型的验证模块:

为其中一种验证类型定义了验证模块后,可以基于成功的或失败的验证进程配置该模块以提供重定向 URL 以及后处理 Java 类规范。

在能够配置验证模块之前,必须先修改核心验证服务属性“组织验证模块”以包含特定的验证模块名称。

验证配置用户界面

验证配置服务允许您定义一个或多个验证服务(或模块),用户必须先通过这些验证服务才能访问控制台或 Identity Server 中的任何受保护的资源。基于组织、角色、服务和用户的验证使用通用用户界面定义验证模块。(随后的各节中介绍了访问特定对象类型的“验证配置”界面的说明)。

  1. 单击对象的“验证配置”属性旁边的“编辑”链接,以显示“模块列表”窗口。
  2. 此窗口列出了已指定给对象的验证模块。如果不存在任何模块,请单击“添加”以显示“添加模块”窗口。
  3. “添加模块”窗口包含三个要定义的文件:

“模块名称”。此下拉列表允许您选择可用于 Identity Server 的验证模块(包括可以添加的自定义模块)。默认情况下,这些模块包括:

标志。该下拉菜单允许您指定验证模块要求,可以指定以下值之一:

这些标志建立了其定义的验证模块的执行标准。执行是有等级的:必需等级最高,可选等级最低。

例如,如果管理员定义了一个具有必需标志的 LDAP 模块,则用户的凭证必须通过 LADP 验证要求才能访问给定的资源。

如果添加多个验证模块,并将每个模块的“标志”都设置成必需,则用户必须通过所有验证要求才能被授予权限。

有关标志定义的详细信息,请参考 JAAS(Java 验证和授权服务),网址为:

http://java.sun.com/security/jaas/doc/module.html

选项。模块的其他选项,格式为“关键字=值”对。多个选项之间用空格分隔。

图 8-1 用于用户的“添加模块”列表窗口

Identity Server 控制台 - 验证配置, 用于用户的添加模块列表。

  1. 选择了字段后,请单击“确定”返回“模块列表”窗口。此窗口中将列出已定义的验证模块。单击“保存”。
  2. 您可以根据需要将任意数目的验证模块添加到此列表。添加多个验证模块称为链式添加。如果要链式添加验证模块,请注意模块列出的顺序将决定执行的层次结构的顺序。

    要更改验证模块的顺序,请执行以下步骤:

    1. 单击“重新排序”按钮。
    2. 选择要重新排序的模块。
    3. 使用“上移”和“下移”按钮将其放置到必需的位置。
  3. 要从列表中移除任一验证模块,请选中验证模块旁边的复选框并单击“删除”。

  4. 如果在链中的任一模块中输入 amadmin 凭证,您将会收到 amadmin 配置文件。在这种情况下,验证不检查别名映射,也不检查链中的模块。


用于组织的验证配置

组织的验证模块是在首次将核心验证服务添加到该组织时设置的。

要配置组织的验证属性,请执行以下操作:

  1. 找到您将为其配置验证属性的组织。
  2. 从“查看”菜单中选择“服务”。
  3. 在服务列表中单击核心属性箭头。
  4. “数据”窗格中将显示核心验证属性。

  5. 单击“管理员验证”属性旁边的“编辑”链接。此操作只允许您为管理员定义验证服务。管理员是需要访问 Identity Server 控制台的用户。如果需要将管理员的验证模块与最终用户的验证模块区别开来,则可以使用该属性。默认验证模块为 LDAP。
  6. 定义了验证服务之后,请单击“保存”以保存所作的更改,然后单击“关闭”返回组织的核心验证属性。

  7. 单击“组织验证配置”属性旁边的“编辑”链接。此操作允许您为组织中的所有用户定义验证模块。默认验证模块为 LDAP。
  8. 定义了验证服务之后,请单击“保存”以保存所作的更改,然后单击“关闭”返回组织的核心验证属性。

用于角色的验证配置

角色的验证模块是在角色级别添加了验证配置服务之后设置的。

  1. 找到您将为其配置验证属性的组织。
  2. 从“查看”菜单中选择“角色”。
  3. 选择要为其设置验证配置的角色并单击属性箭头。
  4. “数据”窗格中将显示角色的属性。

  5. 从“数据”窗格的“查看”菜单中选择“服务”。
  6. 根据需要修改验证配置属性。您可以在第 30 章,“验证配置服务属性”中,或通过单击控制台右上角的“帮助”链接找到有关这些属性的说明。
  7. 单击“保存”。

  8. 如果要创建新角色,验证配置服务将不会自动指定给该角色。请确保在创建新角色之前先选择“角色配置文件”页面顶部的“验证配置服务”选项。

    如果启用了基于角色的验证,可以将 LDAP 验证模块保留为默认设置,因为不需要配置成员资格。


用于服务的验证配置

服务的验证模块是在添加了验证配置服务之后设置的。为此,请执行以下步骤:

  1. 从“身份管理”模块的“查看”菜单中选择“服务”。
  2. 将显示已添加服务的列表。如果未添加验证配置服务,请继续执行以下步骤。如果已添加了该服务,请跳到步骤 4

  3. 在“浏览”窗格中单击“添加”。
  4. “数据”窗格中将显示可用服务的列表。

  5. 选中验证配置的复选框并单击“添加”。
  6. 验证配置服务将显示在“浏览”窗格中,向管理员证实已添加了该服务。

  7. 单击验证配置属性箭头。
  8. “数据”窗格中将显示“服务实例列表”。

  9. 单击要为其配置验证模块的服务实例。
  10. 修改验证配置属性并单击“保存”。可以在第 30 章,“验证配置服务属性”中,或通过单击控制台右上角的“帮助”链接,找到这些属性的说明。

用于用户的验证配置

  1. 从“身份管理”模块的“查看”菜单中选择“用户”。
  2. “浏览”窗格中将显示用户列表。

  3. 选择要修改的用户,然后单击属性箭头。
  4. 数据窗格中将显示用户配置文件。


    如果要创建新用户,验证配置服务将不会自动指定给该用户。请确保在创建用户之前先选择“用户配置文件”页面顶部的“验证配置服务”选项。如果未选择此选项,用户将不会继承为角色定义的验证配置。


  5. 要确保将验证配置服务指定给该用户,请从“查看”菜单中选择“服务”。指定之后,验证配置服务将被列为已指定的服务。
  6. 从“数据”窗格的“查看”菜单中选择“用户”。
  7. 单击“用户验证配置”属性旁边的“编辑”链接,以定义用于用户的验证模块。
  8. 单击“保存”。


验证级别验证

每个验证模块均可以与其验证级别的整数值相关联。单击“服务配置”中验证模块的属性箭头,然后更改模块的“验证级别”属性相应的值,可以指定验证级别。用户通过一个或多个验证模块的验证后,较高的验证级别将决定较高的用户信任级别。

用户成功地通过模块的验证之后,系统将在用户的 SSO 令牌中设置验证级别。如果用户需要通过多个验证模块的验证并且成功地通过了这些验证,系统将在用户的 SSO 令牌中设置最高的验证级别值。

如果用户试图访问某个服务,该服务可以通过查看用户的 SSO 令牌中的验证级别来确定是否允许该用户进行访问。随后服务将用户重定向到具有相应验证级别的验证模块进行验证。

用户还可以访问具有特定验证级别的验证模块。例如,用户使用以下语法进行登录:

http://hostname:port/deploy_URI/UI/Login?authlevel=auth_level_value

所有验证级别高于或等于 auth_level_value 的模块将显示为验证菜单以供用户选择。如果只找到一个匹配的模块,则将直接显示该验证模块的登录页面。


基于模块验证

用户可以使用以下语法访问特定的验证模块:

http://hostname:port/deploy_URI/UI/Login?module=module_name

在能够访问验证模块之前,必须先修改核心验证服务属性“组织验证模块”以包含该验证模块名称。如果此属性中不包含该验证模块名称,则当用户尝试进行验证时,将会显示“验证模块被拒绝”页面。有关详细信息,参见组织验证模块


URL 重定向

在验证配置服务中,您可以指定 URL 重定向以进行成功的或不成功的验证。而 URL 本身是在该服务的“登录成功 URL”和“登录失败 URL”属性中进行定义的。为了启用 URL 重定向,必须将验证配置服务添加到您的组织中,以便可以为角

色、组织或用户进行配置。添加验证配置服务时,请确保添加一个验证模块,例如 LDAP - 必需。有关为身份对象添加验证配置服务的信息,请参见验证配置


验证服务故障转移

如果主服务器因硬件或软件故障失败或者服务器被临时关闭,则验证服务故障转移会自动将验证请求重定向到辅助服务器。

必须首先在提供验证服务的 Identity Server 实例上创建验证环境。如果此 Identity Server 实例不可用,则可通过验证故障转移机制在其他的 Identity Server 实例上创建验证环境。验证环境将按以下顺序检查服务器可用性。

  1. 验证服务 URL 将被传递给 AuthContext API。例如:
  2. AuthContext(orgName, url)

    如果使用此 API,则它将仅使用由 URL 所引用的服务器。即使在该服务器中提供了验证服务,也不会进行故障转移。

  3. 验证环境将检查在 AMConfig.properties 文件的 com.iplanet.am.server* 属性中定义的服务器。
  4. 如果步骤 2 失败,则验证环境将从提供有命名服务的服务器查询平台列表。此平台列表是在安装共享同一个 Directory Server 实例的多个 Identity Server 实例(通常是为故障转移目的)时自动创建的。
  5. 例如,如果该平台列表包含 Server1Server2Server3 的 URL,则验证环境会在 Server1Server2Server3 之间循环,直到验证在其中一个服务器上成功为止。

平台列表不可能始终从同一个服务器获得,因为它取决于命名服务的可用性。而且,命名服务故障转移可能会首先进行。在 com.iplanet.am.naming.url 属性(在 AMConfing.properties 中)中将指定多个命名服务 URL。第一个可用的命名服务 URL 将用于确定服务器,该服务器中包含将会进行验证故障转移的服务器(限于其平台服务器列表范围内)的列表。



上一页      目录      索引      下一页     


版权所有 2004 Sun Microsystems, Inc. 保留所有权利。