第 41 章
SAML 服务属性
安全声明标记语言 (SAML) 服务属性是全局属性。它们所采用的值将被应用到整个 Sun Java System Acceess Manager 配置,并被每个已配置的组织所继承。(由于全局属性的目的在于自定义 Access Manager 应用程序,因此此类属性不能直接应用到角色和组织。)
有关 SAML 服务体系结构的详细信息,参见 Access Manager Developer's Guide。
SAML 属性包括:
站点 ID 和站点发布者姓名
该属性包含一个条目列表,其中每个条目都包含一个实例 ID、站点 ID 和站点发布者姓名。默认值将在安装过程中指定。格式如下所示:
instanceid=serverprotocol://servername:portnumber|siteid=site_id|issuerName=si
te_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)
所用参数包括:
表 41-1 可信赖的伙伴站点参数
|
|
SourceID
|
该参数是在 SiteID 和发布者姓名中定义的一个 20 字节长的序列。
|
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 接收方。
|
version
|
定义用于发送 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
|
PartnerAccountMapper
|
类 PartnerAccountMapper 是一个实现将伙伴帐户映射到 Sun Java System Access Manager 用户帐户的接口。
|
attributeMapper
|
指定一个类,该类包含 attributeMapper 所在的路径。利用应用程序可以开发一个 attributeMapper 来获得 SSOToken ID,或者获得包含来自查询的 AuthenticationStatement 的声明。接着将使用该映射程序来检索主题的属性。如果未指定 attributeMapper,将使用 DefaultAttributeMapper。
|
actionMapper
|
指定一个类,该类包含 actionMapper 所在的路径。利用应用程序可以开发一个 actionMapper 来获得 SSOToken ID,或者获得包含来自查询的 AuthenticationStatement 的声明。接着将使用该映射程序来检索查询中定义的操作的授权决策。如果未指定 actionMapper,将使用 DefaultActionMapper。
|
siteAttributeMapper
|
指定一个类,该类包含 siteAttributeMapper 所在的路径。利用应用程序可以开发一个 siteAttributeMapper 来获得要在 SSO 期间包含在声明中的属性。如果未找到任何 siteAttributeMapper,则在 SSO 期间将不会有任何属性被包含到声明中。
|
PartnerSiteAttributeMapper
|
此接口需要由伙伴站点实现以返回属性对象列表,这些对象被请求作为 AttributeStatements 元素返回,在浏览器辅件和 POST 配置文件的 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。