Sun logo      上一个      目录      索引      下一个     

Sun ONE Identity Server 6.1 管理指南

第 2 章
身份管理

本章介绍 Sun™ ONE Identity Server 的身份管理功能。“身份管理”模块界面提供了查看、管理和配置所有 Identity Server 对象和身份的方法。本章包含以下内容:


“身份管理”界面

Identity Server 图形用户界面有两种基本视图。用户可以访问“身份管理”视图或“用户配置文件”视图,具体取决于用户登录的角色。

“身份管理”视图

当具有管理角色的用户在 Identity Server 中进行验证时,其缺省视图为“身份管理”视图。管理员可以在该视图中执行管理任务。这些任务可以包括创建、删除和管理对象(用户、组织、策略等)及配置服务,具体取决于管理员的角色。

图 2-1 显示了组织属性的“身份管理”视图

Identity Server 控制台 - 显示了组织属性的“身份管理”视图。

“用户配置文件”视图

当未被指定管理角色的用户在 Identity Server 中进行验证时,缺省视图为用户自己的“用户配置文件”视图。在该视图中,用户可以修改其个人配置文件特定的属性值。包括但不限于姓名、家庭地址和密码。“用户配置文件”视图中显示的属性可以扩展。有关为对象和身份添加自定义属性的详细信息,请参见 Sun ONE Identity Server Customization and API Guide

图 2-2 “用户配置文件”视图

Identity Server 控制台 -“用户配置文件”视图。


管理 Identity Server 对象

“用户管理”界面包含查看和管理 Identity Server 对象(组织、组、用户、服务、角色和策略)所需的所有组件。本节说明对象类型及其详细配置方法。

属性函数

要查看或修改条目的属性,请单击对象名称旁边的“属性”箭头。对象的属性和相应的值将显示在数据框中。不同的对象显示不同的属性。

有关如何扩展条目属性的信息,请参见 Sun ONE Identity Server Customization and API Guide

组织

在企业用来管理部门和资源的层次结构中,该对象代表最高一级。安装时,Identity Server 会动态创建一个顶层组织(在安装过程中定义)以管理 Identity Server 企业配置。安装后可以创建其它组织,以管理单独的企业。所有创建的组织均位于顶层组织之下。

创建组织

  1. 从“身份管理”模块的“查看”菜单中选择“组织”。
  2. 单击浏览框中的“新建”。
  3. 数据框中将显示“新建组织”模板。

  4. 在“新建组织”模板中输入组织的名称。
  5. 选择“有效”或“无效”状态。
  6. 缺省值为“有效”。在组织存在期间,可以随时选择属性图标来更改该状态。如果选择“无效”,则当登录到组织时,将禁用用户访问。

  7. 根据需要输入其它可选字段的值。这些字段包括:
  8. 组织别名。该字段定义组织的别名,以允许您在通过 URL 登录时使用别名进行验证。例如,如果组织的名称为 exampleorg,将 123abc 定义为组织的别名,则可以使用以下任一 URL 登录到组织:

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

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

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

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

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

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

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

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

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

    PreferredDomain, AssociatedDomain

    并且针对特定用户 PreferredDomain 被定义为 http://www.example.com,从而使整个以逗号分隔的列表在 URL 中唯一。

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

  9. 单击“创建”。
  10. 浏览框中将显示新创建的组织。

删除组织

  1. 从身份管理模块的“查看”菜单中选择“组织”。
  2. 将显示所有已创建的组织。要显示特定的组织,请输入搜索字符串并单击“过滤”。

  3. 选中要删除的组织名称旁边的复选框。
  4. 单击“删除”。

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


将组织添加到策略

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

组代表具有共同功能、特性或利益的用户集合。通常来说,这种分组不会涉及特权。可以在两个级别创建组:组织中和其它被管理的组中(作为子组)。可以静态或动态地(通过过滤)将用户添加到管理的组中。

按订阅指定成员

当按订阅指定组成员时,将根据您指定的“管理的组类型”创建静态组。如果“管理的组类型”值为“静态”,则使用 groupOfNamesgroupOfUniqueNames 对象类将组成员添加到组条目中。如果“管理的组类型”值为“动态”,则使用特定的 LDAP 过滤器来搜索并只返回包含 memberof 属性的用户条目。有关详细信息,请参见管理的组类型

按过滤指定成员

过滤的组是指通过使用 LDAP 过滤器创建的动态组。所有条目都会被过滤器过滤并被动态指定给组。过滤器将搜索条目中的属性,并返回包含该属性的条目。例如,如果您想基于楼房编号创建组,可以使用过滤器返回一个包含楼房编号属性的所有用户的列表。


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


创建管理的组

  1. 找到要在其中创建组的组织(或组)。
  2. 从“查看”菜单中选择“组”。
  3. 单击“新建”。
  4. 从数据框中选择组类型。
    • 如果要创建静态订阅组,请选择“按订阅指定成员”。

    1. 在“名称”字段中输入组的名称。单击“下一步”。
    2. 选择“用户可以订阅该组”属性可以使用户自行订阅组。
    3. 从“成员列表”中选择“添加”可以将用户添加到组。
    4. 输入搜索条件并单击“过滤”。当返回到用户列表时,选择要添加的用户并单击“提交”。将用户添加到组是可选的。可以在创建完组后再添加用户。
    5. 单击“创建”。

      如果要创建动态(通过 LDAP 过滤的)组,请选择“按过滤指定成员”。

    1. 在“名称”字段中输入组的名称。单击“下一步”。
    2. 构造 LDAP 搜索过滤器。
    3. 构造过滤器的字段使用 OR 或 AND 运算符。UI 中列出的所有字段都会用到。如果某个字段保留为空,则该字段将匹配该特定属性的所有可能条目。
    4. 单击“创建”。

删除管理的组

  1. 找到要删除的组所在的组织。
  2. 从“查看”菜单中选择“组”。
  3. 选中要删除的组名称旁边的复选框。
  4. 单击“删除”。

  5. 应与 Directory Server 一同对 Identity Server 进行配置以使用引用完整性插件。启用引用完整性插件后,该插件会在删除或重命名操作后立即对指定属性执行完整性更新。这就确保了数据库中的所有相关项之间总保持相应的关系。数据库索引则增强了 Directory Server 中的搜索性能。有关启用插件的详细信息,请参见《Sun One Identity Server 移植指南》


将组添加到策略

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

用户

用户代表个人的身份。通过 Identity Server“身份管理”模块,可以在组织、容器和组中创建和删除用户,从角色和/或组中添加或删除用户,还可以给用户指定服务。

创建用户

  1. 找到要在其中创建用户的组织、容器或人员容器(也可以从“用户创建”页面选择人员容器)。
  2. 从“查看”菜单中选择“用户”。
  3. 单击“新建”。
  4. 数据框中将显示“新建用户”页面。

  5. 输入所需的属性值,并在所有可选字段中输入值。
  6. 有关用户配置文件属性的信息,请参见用户属性

  7. 单击“创建”。

将用户添加到角色和组

  1. 找到要修改的用户所属的组织。
  2. 从“查看”菜单中选择“用户”。
  3. 在浏览框中选择要修改的用户,然后单击属性箭头。
  4. 从数据框的“查看”菜单中选择“角色”或“组”。
  5. 在“用户”视图中,您可以修改定义了用户服务的属性。

  6. 选择要向其添加用户的角色或组,然后单击“保存”。无法显示已过滤的角色和组。

将服务添加到用户

  1. 找到要修改的用户所属的组织。
  2. 从“查看”菜单中选择“用户”。
  3. 在浏览框中选择要修改的用户,然后单击属性箭头。
  4. 从数据框的“查看”菜单中选择“服务”。
  5. 单击“添加”以选择要指定到用户的服务。
  6. 单击“保存”。

删除用户

  1. 找到要删除的用户所在的组织。
  2. 从“查看”菜单中选择“用户”。
  3. 选中要删除的用户名称旁边的复选框。
  4. 单击“删除”。

将用户添加到策略

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

服务

激活组织或容器(容器与组织的行为相同)的服务要通过两个步骤来完成。首先,需要将服务注册到组织。注册服务之后,必须创建一个专门为该组织配置的模板。有关其它信息,请参见第 3 章“服务配置”


新服务必须先通过命令行的 amadmin 命令导入到 Identity Server 中。有关导入服务的 XML 模式的信息,请参见 Sun ONE Identity Server Customization and API Guide


注册服务

  1. 找到要向其中添加服务的组织。
  2. 从“身份管理”模块的“查看”菜单中选择“组织”,然后从浏览框中选择组织。“位置”路径可以显示缺省的顶层组织和选定的组织。

  3. 从“查看”菜单中选择“服务”。
  4. 单击“注册”。
  5. 数据框中将显示可注册到该组织的服务列表。

  6. 选中要添加的服务旁边的复选框。
  7. 单击“注册”。浏览框中将显示已注册的服务。

  8. 只有为顶层组织注册的服务才会在角色级别显示。


创建服务的模板

  1. 找到注册的服务所在的组织或角色。
  2. 从“身份管理”模块的“查看”菜单中选择“组织”,然后从浏览框中选择组织。

  3. 从“查看”菜单中选择“服务”。
  4. 单击要激活的服务名称旁边的属性图标。
  5. 数据框中将显示消息没有适用于此服务的模板要创建模板吗?

  6. 单击“创建”。
  7. 将为父组织或角色的该服务创建模板。数据框中将显示该服务的缺省属性和值。有关缺省服务属性的说明,请参见属性参考指南

  8. 接受或修改缺省值,然后单击“保存”。

撤消注册服务

  1. 找到要删除的服务所在的组织。
  2. 从“身份管理”模块的“查看”菜单中选择“组织”,然后从浏览框中选择组织。

  3. 从“查看”菜单中选择“服务”。
  4. 选中要删除的服务的复选框。
  5. 单击“撤消注册”。

  6. 如果服务是在子组织级别注册的,则无法在父组织级别撤消注册该服务。


角色

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


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


用户可以拥有一个或多个角色。例如,可以创建具有“会话服务”和“URL 策略代理服务”中的属性的承包商角色。启动新承包商时,管理员可以将其指定为该角色,而不需在承包商条目中分别设置各个属性。如果承包商随后将成为全职员工,管理员只需重新为用户指定其它的角色即可。

Identity Server 使用角色来应用访问控制指令。首次安装 Identity Server 时,Identity Server 会配置用于定义管理员权限的访问控制指令 (ACI)。这些 ACI 随后会被指定为角色(例如,组织管理角色和组织帮助桌面管理角色),当这些角色被指定到用户时会定义用户的访问权限。

只有当管理服务中启用了“显示用户的角色”属性时,用户才可以查看给他们指定的角色。有关详细信息,请参见显示用户的角色

与组类似,角色也可以通过过滤创建,或者以静态方式创建。

过滤的角色。过滤的角色是指通过使用 LDAP 过滤器创建的动态角色。在创建角色时,所有用户都会被过滤器过滤并被指定到角色。过滤器会搜索条目中的所有属性值对(例如,ca=user*),并自动将包含该属性的用户指定到角色。

静态角色。与过滤的角色相比,静态角色在创建时可以不添加用户。这样,在向给定的角色添加特定用户时,您可以更好的进行控制。

创建过滤的角色

  1. 在浏览框中,找到要在其中创建角色的组织。
  2. 从“查看”菜单中选择“角色”。
  3. 在配置组织时会创建一组缺省角色,这些角色就显示在浏览框中。

    有关这些角色的说明,请参见“属性参考”一节中的动态管理员角色 ACI

  4. 单击浏览框中的“新建”。数据框中将显示“新建角色”模板。
  5. 选择“过滤的角色”,然后输入名称。单击“下一步”。
  6. 输入角色的说明。
  7. 从“类型”菜单中选择角色类型。
  8. 角色可以是管理角色,也可以是服务角色。角色类型由控制台使用,以确定在 DIT 中从何处启动用户。管理角色会通知控制台,角色的所有人拥有管理特权;服务角色会通知控制台,角色的所有人为最终用户。

  9. 从“访问权限”菜单中选择缺省的一组权限,以应用到角色。
  10. 拥有这些权限,可以访问组织中的项。缺省角色权限 (ACI) 一节中对这些权限进行了说明。(显示的缺省权限未按照特定顺序排列。)

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

  11. 输入搜索条件信息。这些字段包括:
  12. 逻辑运算符。允许您使用逻辑运算符连接所有用于过滤的字段。AND 将根据所有指定字段返回用户。OR 将根据指定的任一字段返回用户。

    用户 ID。按照用户 ID 搜索用户。

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

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

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

    用户状态。按照用户的状态(有效或无效)搜索用户。

    另外,您可以选择“高级”按钮来自行定义过滤器属性。例如:

    (&(uid=user1)(|(inetuserstatus=active)(!(inetuserstatus=*))))

    如果过滤器保留为空,将缺省创建以下角色:

    (objectclass = inetorgperson)

    单击“重置”以清除过滤器属性,或者单击“取消”以取消创建角色进程。

  13. 单击“创建”以启动基于过滤条件的搜索。通过过滤条件定义的用户会自动被指定到角色。

创建静态角色

  1. 在浏览框中,找到要在其中创建角色的组织。
  2. 从“查看”菜单中选择“角色”。
  3. 在配置组织时会创建一组缺省角色,这些角色就显示在浏览框中。

    有关这些角色的说明,请参见“属性参考”一节中的动态管理员角色 ACI

  4. 单击浏览框中的“新建”。数据框中将显示“新建角色”模板。
  5. 选择“静态角色”,然后输入名称。单击“下一步”。
  6. 输入角色的说明。
  7. 从“类型”菜单中选择角色类型。
  8. 角色可以是管理角色,也可以是服务角色。角色类型由控制台使用,以确定在 DIT 中从何处启动用户。管理角色会通知控制台,角色的所有人拥有管理特权;服务角色会通知控制台,角色的所有人为最终用户。

  9. 从“访问权限”菜单中选择缺省的一组权限,以应用到角色。
  10. 拥有这些权限,可以访问组织中的项。缺省角色权限 (ACI) 一节中对这些权限进行了说明。(显示的缺省权限未按照特定顺序排列。)

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

  11. 单击“创建”。
  12. 创建的角色显示在浏览框中,角色的状态信息显示在数据框中。

    角色可用的服务是从角色的父组织中继承的。如果尚未创建服务模板,可以通过单击“编辑”链接为角色创建服务模板。如果已经存在服务模板,将显示服务属性,并且可以进行配置。有关详细信息,请参见自定义角色的服务

向静态角色添加用户

  1. 选择要修改的角色,然后单击属性箭头。
  2. 从数据框中的“查看”菜单中选择“用户”。
  3. 单击“添加”。
  4. 输入搜索条件信息。可以选择一个或多个显示的字段,根据这些字段来搜索用户。这些字段包括:
  5. 逻辑运算符。允许您使用逻辑运算符连接所有用于过滤的字段。AND 将根据所有指定的字段返回用户。OR 将根据指定的任一字段返回用户。

    用户 ID。按照用户 ID 搜索用户。

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

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

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

    用户状态。按照用户的状态(有效或无效)搜索用户。

    根据值返回用户。用于指定搜索要返回的值。

  6. 单击“过滤”开始搜索。
  7. 选中用户名称旁边的复选框,可以从返回的名称中选择用户。
  8. 单击“保存”。
  9. 用户将被分配到角色。


    可以通过“角色配置文件”页面和/或“用户配置文件”页面将用户添加到角色中。


从角色删除用户

  1. 找到包含要修改的角色的组织。
  2. 从“身份管理”模块的“查看”菜单中选择“组织”,然后从浏览框中选择组织。

  3. 从“查看”菜单中选择“角色”。
  4. 选择要修改的角色。
  5. 从“查看”菜单中选择“用户”。
  6. 选中要删除的用户的复选框。
  7. 单击“删除”。
  8. 用户将从角色中删除。


    应该将 Identity Server 配置为与 Directory Server 一起工作以使用引用完整性插件。启用引用完整性插件后,该插件会在删除或重命名操作后立即对指定属性执行完整性更新。这就确保了数据库中的所有相关项之间总保持相应的关系。数据库索引则增强了 Directory Server 中的搜索性能。有关启用插件的详细信息,请参见《Sun One Identity Server 移植指南》


将角色添加到策略

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

自定义角色的服务

可以基于各个角色自定义角色可用的服务,以及服务属性的访问级别。使用“常规”视图,管理员可以自定义“服务”和“用户”页面,并创建仅对特定服务拥有访问权限的服务管理员。例如,管理员可以拒绝某个给定角色对用户服务中的一个或多个属性拥有写权限,而拥有该角色的用户也不能修改这些属性。通过允许对所有策略服务进行访问,而拒绝对其它服务进行访问,可以创建策略管理员角色。拥有策略管理员角色的管理员将能够创建并指定策略,但无法执行用户管理任务。

您必须在组织级别注册服务,以便能显示这些服务。添加到角色的用户将继承该角色的服务属性。

自定义服务访问
  1. 单击要修改的角色的属性箭头。
  2. 从“查看”菜单中选择“常规”。
  3. 在“角色属性”页面中,单击“服务”列表中的“编辑”。
  4. 将显示“服务访问”页面,如图 2-3 所示。

  5. 单击“显示”列中的服务名称,以选择允许角色访问的服务。缺省情况下,角色可以访问所有服务。
  6. 单击“保存”。

  7. 当对某项服务的访问被拒绝(未选中),将不会为拥有角色的用户在 Identity Server 控制台中显示该服务。另外,不能注册用户或撤消注册用户,不能将服务指定到用户,也不能创建、删除、查看或修改“服务”模板。


    图 2-3 “服务访问”页面
    Identity Server 控制台 - 组织管理角色的“服务访问”页面。

自定义属性访问
  1. 在“角色属性”页面中,单击“服务属性”列表中的“编辑”。将显示“属性访问”页面,如图 2-4 所示。
  2. 使用“跳转”菜单以显示特定服务的属性。
  3. 通过选中“读/写”或“只读”复选框,为属性指定访问级别。
  4. 单击“保存”。

  5. 如果对于某项给定的属性,“读/写”和“只读”选项均未选中,则将拒绝对该属性的读和写访问。


    图 2-4 “属性访问”页面
    Identity Server 控制台 -“属性访问”页面。

有关特定服务属性的详细信息,请参见本手册的第 3 部分“属性参考指南”。

删除角色

  1. 找到包含要删除的角色的组织。
  2. 从“身份管理”模块的“查看”菜单中选择“组织”,然后从浏览框中选择组织。“位置”路径可以显示缺省的顶层组织和选定的组织。

  3. 从“查看”菜单中选择“角色”。
  4. 选中角色名称旁边的复选框。
  5. 单击“删除”。

策略

策略定义用于保护组织的 Web 资源的规则。尽管策略的创建、修改和删除是通过“身份管理”模块来实现的,但是具体过程在策略管理中进行了说明。

容器

当由于对象类和属性的不同而无法使用组织项时,会使用容器项。有一点很重要,Identity Server 容器项和 Identity Server 组织项不必等同于 LDAP 对象类 organizationalUnitorganization。它们是抽象的身份项。理想情况下,将使用组织项而不使用容器项。


容器的显示是可选的。要查看容器,必须在 Identity Server 管理服务的“菜单”中选择“显示容器”。有关详细信息,请参见在菜单中显示容器


创建容器

  1. 找到要在其中创建新容器的组织或容器。
  2. 从“查看”菜单中选择“容器”。

  3. 单击“新建”。
  4. 数据框中将显示“容器”模板。

  5. 输入要创建的容器的名称。
  6. 单击“创建”。

删除容器

  1. 找到包含要删除容器的组织或容器。
  2. 从“查看”菜单中选择“容器”。
  3. 选中要删除的容器名称旁边的复选框。
  4. 单击“删除”。

  5. 删除容器会删除容器中存在的所有对象,包括所有对象和子容器。


人员容器

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


人员容器的显示是可选的。要查看人员容器,必须在 Identity Server 管理服务中选择“显示人员容器”。有关详细信息,请参见显示人员容器


创建人员容器

  1. 找到要在其中创建新人员容器的组织或人员容器。
  2. 从“查看”菜单中选择“人员容器”。

  3. 单击“新建”。
  4. 数据框中将显示“人员容器”模板。

  5. 输入要创建的人员容器的名称。
  6. 单击“创建”。

删除人员容器

  1. 找到包含要删除的人员容器的组织或人员容器。
  2. 从“查看”菜单中选择“人员容器”。
  3. 选中要删除的人员容器名称旁边的复选框。
  4. 单击“删除”。

  5. 删除人员容器会同时删除容器中存在的所有对象,包括所有用户和子人员容器。


组容器

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


组容器的显示是可选的。要查看组容器,必须在 Identity Server 管理服务中选择“显示组容器”。有关详细信息,请参见显示组容器


创建组容器

  1. 找到要在其中创建组容器的组织或组容器。
  2. 从“查看”菜单中选择“组容器”。
  3. 创建组织时会同时创建缺省组。

  4. 单击“新建”。
  5. 在“名称”字段中输入值,然后单击“创建”。

删除组容器

  1. 找到包含要删除的组容器的组织。
  2. 从“查看”菜单中选择“组容器”。
  3. 浏览框中将显示缺省组和所有已创建的组容器。

  4. 选中要删除的组容器旁边的复选框。
  5. 单击“删除选定”。



上一个      目录      索引      下一个     


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