目录

> # SAML 服务属性

> 安全声明标记语言 (SAML) 服务属性是全局属性。SAML 属性所采用的值将被应用到整个 Sun Java System Access Manager 配置，并被每个已配置的组织所继承。（由于全局属性的目的在于自定义 Access Manager 应用程序，因此此类属性不能直接应用到角色和组织。）

> 有关 SAML 服务体系结构的详细信息，请参见“Access Manager Developer's Guide”。

> SAML 属性包括：

> - “站点 ID 和站点发布者姓名”
> - “签署 SAML 请求”
> - “签署 SAML 响应”
> - “签名声明”
> - “SAML 辅件名称”
> - “目标说明符”
> - “辅件超时”
> - “声明不早于偏差因数”
> - “声明超时”
> - “可信赖的伙伴站点”
> - “发送给目标 URL 的 POST”

> ## 站点 ID 和站点发布者姓名

> 该属性包含一个条目列表，其中每个条目都包含一个实例 ID、站点 ID 和站点发布者姓名。缺省值将在安装过程中指定。格式如下所示：

> instanceid=serverprotocol://servername:portnumber|siteid=site_id|issuerName=site_issuer_name

> 为 SSL 配置完该属性后（在源站点和目标站点中），请确保 instanceid 协议为 HTTPS//。

> ## 签署 SAML 请求

> 该属性指定在传送 SAML 请求前是否要对所有这些请求进行数字签名 (XML DSIG)。单击该选项将启用该功能。

> ## 签署 SAML 响应

> 该属性指定在传送 SAML 响应前是否要对所有这些响应进行数字签名 (XML DSIG)。单击该选项将启用该功能。

> 不管该选项是否启用，都将对“SAML Web 公告”配置文件使用的所有 SAML 响应进行数字签名。

> ## 签名声明

> 该属性指定在传送 SAML 声明前是否要对所有这些声明进行数字签名 (XML DSIG)。单击该选项将启用该功能。

> ## SAML 辅件名称

> 该属性指定“SAML 服务”配置中定义的 SAML 辅件的变量名。SAML 辅件是一种用来标识声明和源站点的限定了大小的数据。它作为 URL 查询字符串的一部分并通过重定向被传送到目标站点。缺省值为 SAMLart。例如，使用缺省 SAMLart 服务配置，重定向查询字符串可以为：

> http:/host:port/deploy_URI/SamlAwareServlet?TARGET=http://URL/&SAMLart=artifact123

> ## 目标说明符

> 该属性指定重定向中使用的目标站点 URL 的变量名。缺省值为 Target。

> ## 辅件超时

> 该属性指定为辅件创建的声明超时。缺省端口为 400。

> ## 声明不早于偏差因数

> 该属性用于计算声明的“不早于”时间。例如，如果 IssueInstant 的值为 2002-09024T21:39:49Z，并且“声明不早于偏差因数”的值设为 300 秒（缺省值为 180），则声明的条件元素的“不早于”属性将是 2002-09-24T21:34:49Z。

> ## 声明超时

> 该属性指定经过多少秒后发生声明超时。缺省端口为 420。

> 注 | 声明的总有效时间由“声明不早于偏差因素”和“声明超时”属性中设置的值定义。

> ## 可信赖的伙伴站点

> 该属性用于存储伙伴的信息，这样，一个站点可以与其伙伴站点之间建立一种可信赖的通信关系。

> 该属性包含一个条目列表，其中每个条目都包含“关键字/值”对（对与对之间由“|”分隔）。每个条目都要求具有源 ID。例如：

> SourceID=siteid|SOAPURL=https://servername:portnumber/amserver/SAMLSOAPReceiver|AuthType=SSL|hostlist=ipaddress（或 server DNS name 或 cert alias）

> 所用参数包括：

> 表 0-1 可信赖的伙伴站点参数

> SourceID | 该参数为长 20 字节的序列，它是站点 ID 和发布者姓名的的一部分。
> target | 该参数在一个特定的域中定义，可带端口号，也可不带。如果您希望联系该特定域中提供的某个 Web 页，target 用于指定在下一步的操作中重定向到由 SAMLUrl 或 POSTUrl 参数定义的 URL。 如果同时存在两个条目（一个含有端口号，另一个不含有端口号），这两个条目都具有“可信赖的伙伴站点”属性中指定的同一个域属性，则包含端口号的条目具有更高的优先级。 例如，如果您具有以下两个可信赖的伙伴站点定义： target=sun.com|SAMLUrl=http://machine1.sun.com:8080/amserver/SAMLAwareServlet 和 target=sun.com:8080|SAMLUrl=httyp://machine2.sun.com:80/amserver/SAMLAwareServlet 并且要查找以下页面： http://somemachine.sun.com:8080/index.html 第二个定义将被选中来提供 SAML 服务，因为其 target 参数中同时存在匹配的域和端口。
> SAMLUrl | 定义提供 SAML 服务的 URL。URL 中指定的 servlet 实现在 OASIS-SAML 绑定和配置文件规范中定义的 Web-browser SSO with Artifact 配置文件。
> POSTUrl | 定义提供 SAML 服务的 URL。该 URL 中指定的 servlet 实现在 OASIS-SAML 绑定和配置文件规范中定义的 Web-browser SSO with POST 配置文件。
> issuer | 定义在 Access Manager 中生成的声明创建者。语法为：hostname:port。
> SOAPUrl | 指定 SOAP 接收方服务 URL。
> AuthType | 定义 SAML 中使用的验证类型。它应为以下类型之一： NOAUTH BASICAUTH SSL SSLWITHBASICAUTH 该参数可选，如果未指定，缺省值为 NOAUTH。 如果指定为 BASICAUTH 或 SSLWITHBASICAUTH，“User”参数将为必需参数，并且 SOAPUrl 应为 HTTPS。
> 用户 | 定义伙伴的 uid，用来保护伙伴的 SOAP 接收方。
> 版本 | 定义用于发送 SAML 请求的 SAML 版本。指定 SAML 版本为 1.0 版或 1.1 版。如果未定义此参数，将从 AMConfig.properties 使用以下缺省值： com.example.identity.saml.asertion.version-1.1 com.example.identity.saml.protocol.version=1.1
> hostlist | 该属性列出所有主机的 IP 地址和/或 certAlias，在指定的伙伴站点中，这些主机都可以向该站点发送请求。这样就确保了请求者确实是 SAML 辅件的预定接收方。 如果请求者的主机或客户机证书在接收方站点的这个列表中，服务将继续进行。如果主机或客户机证书与 hostlist 中的任何主机或证书都不匹配，SAML 服务将拒绝请求。
> AccountMapper | 指定一个可插接的类，用来定义声明主题与目标站点中的标识之间的相关方式。它的缺省值为： com.sun.identity.saml.plugins.DefaultAccountMapper
> attributeMapper | 指定一个类，该类包含 attributeMapper 所在的路径。利用应用程序可以开发一个 attributeMapper 来获得 SSOToken ID，或者获得包含来自查询的 AuthenticationStatement 的声明。接着将使用该映射程序来检索主题的属性。如果未指定 attributeMapper，将使用 DefaultAttributeMapper。
> actionMapper | 指定一个类，该类包含 actionMapper 所在的路径。利用应用程序可以开发一个 actionMapper 来获得 SSOToken ID，或者获得包含来自查询的 AuthenticationStatement 的声明。接着将使用该映射程序来检索查询中定义的操作的授权决定。如果未指定 actionMapper，将使用 DefaultActionMapper。
> siteAttributeMapper | 指定一个类，该类包含 siteAttributeMapper 所在的路径。利用应用程序可以开发一个 siteAttributeMapper 来获得要在 SSO 期间包含在声明中的属性。如果未找到任何 siteAttributeMapper，则在 SSO 期间将不会有任何属性被包含到声明中。
> certAlias=aliasName | 指定出现以下情况时用来验证声明中签名的 certAlias 名称：当声明已由伙伴签名，而在已签名声明的 KeyInfo 部分中又找不到该伙伴的证书。

> 下表用于列出可信赖的伙伴站点的配置示例。由于并不是所有的实例都需要用到所有的参数，因此可选参数被放在括号中。

> | 发送方 | 接收方
> --- | --- | ---
> 辅件 | sourceid | sourceid
> | target | SOAPUrl
> | SAMLUrl | [accountMapper]
> | hostlist | [AuthType]
> | [siteAttributeMapper] | [User]
> |  | [certAlias]
> POST 配置文件 | sourceid | sourceid
> | target | issuer
> | POSTUrl | [accountMapper]
> | [siteAttributeMapper] | [certAlias]
> SOAP 请求 |  | sourceid
> |  | hostlist
> |  | [attributeMapper]
> |  | [actionMapper]
> |  | [certAlias]
> |  | [issuer]

> ## 发送给目标 URL 的 POST

> 如果该属性中列出了站点中通过 SSO（可为辅件配置文件或 POST 配置文件）接收到的目标 URL，则从 SSO 接收到的一个或多个声明将通过 http:FORM POST 发送到目标 URL。避免使用 POST 中的测试 URL 或任何其他的 URL。

目录