第 35 章
SAML 服务属性
安全断言标记语言 (SAML) 服务属性是全局属性。SAML 属性所采用的值将被应用到整个 Sun ONE Identity Server 配置,并被每个已配置的组织所继承。(由于全局属性的目的在于自定义 Identity Server 应用程序,因此此类属性不能直接应用到角色和组织。)
有关 SAML 服务体系结构的详细信息,请参见 Sun ONE Identity Server Customization and API Guide。
SAML 属性包括:
站点 ID 和站点发布者姓名
该属性包含一个条目列表,其中每个条目都包含一个实例 ID、站点 ID 和站点发布者姓名。缺省值将在安装过程中指定。格式如下所示:
instanceid=serverprotocol://servername:portnumber|siteid=site_id|issuerName=site_issuer_na
me
为 SSL 配置完该属性后(在源站点和目标站点中),请确保 instanceid 协议为 HTTPS//。
签名请求
该属性指定在传送 SAML 请求前是否要对所有这些请求进行数字签名 (XML DSIG)。单击该选项将启用该功能。
签名响应
该属性指定在传送 SAML 响应前是否要对所有这些响应进行数字签名 (XML DSIG)。单击该选项将启用该功能。
不管该选项是否启用,都将对“SAML Web 公告”配置文件使用的所有 SAML 响应进行数字签名。
签名断言
该属性指定在传送 SAML 断言前是否要对所有这些断言进行数字签名 (XML DSIG)。单击该选项将启用该功能。
辅件名
该属性指定“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=S
SL|hostlist=ipaddress(或 server DNS name 或 cert alias)
所用参数包括:
表 35-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
|
定义在 Identity Server 中生成的断言创建者。语法为:hostname:port。
|
SOAPUrl
|
指定 SOAP 接收方服务 URL。
|
AuthType
|
定义 SAML 中使用的验证类型。它应为以下类型之一:
- NOAUTH
- BASICAUTH
- SSL
- SSLWITHBASICAUTH
该参数可选,如果未指定,缺省值为 NOAUTH。
如果指定为 BASICAUTH 或 SSLWITHBASICAUTH,“User”参数将为必需参数,并且 SOAPUrl 应为 HTTPS。
|
User
|
定义伙伴的 uid,用来保护伙伴的 SOAP 接收方。
|
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。