#### 自定义 SAMLv2 服务提供者

SAMLv2 服务提供者包含以下属性组：

- 声明内容

- 声明处理

- 服务

- 高级

##### 声明内容

- 请求/响应签署

- 加密

- 证书别名

- 名称 ID 格式

- 验证环境

- 声明时间偏差

- 基本验证

##### 请求/响应签署

选中任意复选框来为以下 SAMLv2 服务证明者请求或响应启用签署：

已签署验证请求 | 必须签署此服务提供者接收的所有验证请求。
已签署声明 | 必须签署此服务提供者接收的所有声明。
已签署 POST 响应 | 身份认证提供者必须签署 `PostResponse` 元素。
工件响应 | 身份认证提供者必须签署 `ArtifactResponse` 元素。
注销请求 | 身份认证提供者必须签署 `LogoutRequest` 元素。
注销响应 | 身份认证提供者必须签署 `LogoutResponse` 元素。
管理名称 ID 请求 | 身份认证提供者必须签署 `ManageNameIDRequst` 元素。
管理名称 ID 响应 | 身份认证提供者必须签署 `ManageNameIDResponse` 元素。

##### 加密

选中任意复选框来为以下元素启用加密：

属性 | 身份认证提供者必须加密所有 `AttributeStatement` 元素。
声明 | 身份认证提供者必须加密所有 `Assertion` 元素。
NameID | 身份认证提供者必须加密所有 `NameID` 元素。

##### 证书别名

此属性为服务提供者定义证书别名元素。`签署`指定用于在密钥库中查找正确的签署证书的提供者证书别名。`加密`指定用于在密钥库中查找正确的加密证书的提供者证书别名。

##### 名称 ID 格式

定义服务提供者所支持的名称标识符格式。提供者可通过名称标识符进行涉及到用户的通信。单点登录交互支持以下标识符类型：

- `urn:oasis:names:tc:SAML:2.0:nameid-format:persistent`

- `urn:oasis:names:tc:SAML:2.0:nameid-format:transient`

- `urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress`

- `urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified`

持久标识符作为两个属性的值保存到特定的用户数据存储库条目中。临时标识符是临时的，不会有任何数据写入用户的持久数据存储库。

##### 验证环境

此属性将 SAMLv2 定义的验证环境类映射到服务提供者提供的验证方法。

映射程序

  指定 `SPAuthnContextMapper` 接口的实现，该接口用于创建请求的验证环境。默认实现是 `com.sun.identity.saml2.plugins.``DefaultSPAuthnContexteMapper`。

支持

  如果身份认证提供者支持验证环境类，请选中其旁边的复选框。

环境参考

  SAMLv2 定义的验证环境类为：

  - InternetProtocol

  - InternetProtocolPassword

  - Kerberos

  - MobileOneFactorUnregistered

  - MobileTwoFactorUnregistered

  - MobileOneFactorContract

  - MobileTwoFactorContract

  - Password

  - Password-ProtectedTransport

  - Previous-Session

  - X509

  - PGP

  - SPKI

  - XMLDSig

  - Smartcard

  - Smartcard-PKI

  - Software-PKI

  - Telephony

  - NomadTelephony

  - PersonalTelephony

  - AuthenticaionTelephony

  - SecureRemotePassword

  - TLSClient

  - Time-Sync-Token

  - Unspecified

级别

  映射到 OpenSSO 验证框架中定义的验证级别的正数值。验证级别表示验证方法的可信程度。

  在此框架中，每个服务提供者都配置了默认验证环境（首选验证方法）。然而，提供者可能想将指定的验证环境更改为基于已定义验证级别的验证环境。例如，提供者 B 想要生成验证级别为 3 的本地会话，所以它请求身份认证提供者使用指定为该级别的验证环境对用户进行验证。此查询参数的值确定身份认证提供者使用的验证环境。

比较类型

  指定与此属性的值相比较时必须采用的验证环境。接受的值包括：

  - exact：声明中的验证环境语句必须精确地匹配至少一种指定的验证环境。

  - minimum：声明中的验证环境语句必须至少和一种指定的验证环境一样强大（由身份认证提供者确认）。

  - maximum：声明中的验证环境语句必须不能强于指定的任何验证环境。

  - better：声明中的验证环境语句必须不能弱于指定的任何验证环境。

  默认值是 exact。

##### 声明时间偏差

声明在一段时间内有效，在这之前或之后都无效。此属性为 `notBefore` 值指定宽限期（以秒为单位）。默认值为 `300`。它与 `notAfter` 值无关。

##### 基本验证

可启用基本验证来保护 SOAP 端点。任何访问这些端点的提供者必须具有以下两个属性中定义的用户和密码：`用户名`和`密码`。

##### 声明处理

- 属性映射程序

- 自动联合

- 帐户映射程序

- 临时用户

- URL

- 默认中继状态

- 适配器

##### 属性映射程序

指定值，用于定义默认属性映射程序插件所使用的映射。默认的插件类为 `com.sun.identity.saml2.plugins.DefaultSPAttributeMapper`。

映射应该按以下格式配置：

SAML-attribute=local-attribute

例如，`EmailAddress=mail` 或 `Address=postaladdress`。将映射作为“新值”键入，并单击“添加”。

##### 自动联合

如果启用，那么自动联合将基于公共属性自动联合用户的不同提供者帐户。“属性”字段指定用于在启用自动联合时匹配用户的不同提供者帐户的属性。

##### 帐户映射程序

指定 `AccountMapper` 接口的实现，该接口用于将远程用户帐户映射到本地用户帐户以进行单点登录。默认值是 `com.sun.identity.saml2.plugins.``DefaultSPAccountMapper`，即默认实现。

##### 工件消息编码

此属性定义工件的消息编码格式：`URI` 或 `FORM`。

##### 临时用户

此属性指定特定的用户标识符，如果使用临时名称标识符进行单点登录，那么服务提供者端的所有身份认证提供者用户都将被映射到该用户标识符。

##### URL

“本地验证 URL”指定本地登录页面 URL。

“中间 URL”指定在验证之后到原始请求 URL 之前，可将用户导向到的 URL。例如自动创建用户帐户之后的成功帐户创建页面。

“外部应用程序注销 URL”定义外部应用程序的注销 URL。一旦服务器接收到来自远程伙伴的注销请求，就会使用后备通道 `HTTP POST` 向包含所有 cookie 的注销 URL 发送请求。可以选择在 URL 中含有查询参数 `appsessionproperty`（设置为会话属性名称）时，将用户会话属性作为 `HTTP 标头`和 `POST` 参数发送。

##### 默认中继状态

在 SAML v2 操作成功（单点登录、单点注销或联合终止）之后，会显示一个页面。此页面通常为原始请求资源，在初始请求中使用 `RelayState` 元素来指定。如果没有指定 `RelayState`，则会显示此 `defaultRelayState` 属性的值。

注意 – 当 `RelayState` 或 `defaultRelayState` 含有特殊字符（例如 `&`）时，它必须进行 URL 编码。例如，如果 `RelayState` 的值为 `http://www.sun.com/apps/myapp.jsp?param1=abc&param2=xyz`，那么它必须 URL 编码为：

`http%3A%2F%2Fwww.sun.com%2Fapps%2Fmyapp.jsp%3Fparam1%3Dabc%26param2%3Dxyz`

然后附加到 URL。例如，服务提供者启动的单点登录 URL 将会是：

`http://`host`:`port`/` deploy-uri`/saml2/jsp/spSSOInit.jsp?metaAlias=/sp&idpEntityID=http://www.idp.com&RelayState=http%3A%2F%2Fwww.sun.com%2Fapps%2Fmyapp.jsp%3Fparam1%3Dabc%26param2%3Dxyz`

##### 适配器

为 `com.sun.identity.federation.plugins.FederationSPAdapter` 接口定义实现类，以用于在联合过程中添加应用程序特定处理。

##### 服务

- 元数据别名

- 单点注销服务

- 管理名称 ID 服务

- 工件声明使用方服务

##### 元数据别名

为正在配置的提供者指定 `metaAlias`。`metaAlias` 用于查找提供者的实体标识符和它所属的组织。该值是一个字符串，由领域名称或组织名称（这取决于 OpenSSO 中是否安装了 SAML v2 Plug-in for Federation Services）加上正斜杠和提供者名称组成。例如，`/suncorp/travelprovider`。

注意 – `metaAlias` 中使用的名称绝不能包含 `/`。

##### 单点注销服务

单点注销服务会在服务提供者验证的所有会话间对注销功能进行同步。

`位置`指定请求所发送到的提供者的 URL。`响应位置`指定预期的响应提供者的 URL。绑定类型为：

- 重定向 HTTP

- POST

- SOAP

##### 管理名称 ID 服务

此服务定义特定 URL，当与服务提供者进行通信来为主体指定新的名称标识符时，会使用这些 URL。（只能在建立联合会话后注册。）

`位置`指定请求所发送到的提供者的 URL。`响应位置`指定预期的响应提供者的 URL。绑定类型为：

- 重定向 HTTP

- POST

- SOAP

##### 工件声明使用方服务

此服务处理服务提供者从身份认证提供者接收的响应。服务提供者想验证用户时，它会向身份认证提供者发送验证请求。

- HTTP-Artifact 指定基于 SOAP 的非浏览器协议。

- HTTP-Post 指定基于浏览器的 HTTP POST 协议。

- PAOS 定义 PAOS 绑定的 URL 位置。

`位置`指定请求所发送到的提供者的 URL。`索引`在标准元数据中指定 URL。`默认`是用于绑定的默认 URL。

##### 高级

- SP URL

- SP 注销 URL

- 应用程序密钥列表

- 请求 IDP 列表查找器实现

- 请求 IDP 列表获取完成

- 请求 IDP 列表

- IDP 代理

- 导言

- 代理计数

- IDP 代理列表

##### SP URL

定义能处理 SAE（Secure Attribute Exchange, 安全属性交换）请求的服务提供者的 URL 端点。如果此 URL 为空（未配置），则不会启用 SAE 单点登录。常规 SAMLv2 单点登录响应将发送给服务提供者。

##### SP 注销 URL

定义能处理 SAE 全局注销请求的服务提供者的 URL 端点。

##### 应用程序密钥列表

此属性定义应用程序安全配置。每个应用程序必须有一个条目。每个条目具有以下格式：

`url=SPAppURL|type=`symmetric_orAsymmetric`|secret=` ampassword encoded shared secret``

##### 请求 IDP 列表查找器实现

定义 IDP 列表查找器 SPI 的实现类。而且会返回 ECP 信任的首选身份认证提供者的列表。

##### 请求 IDP 列表获取完成

如果 `IDPList` 元素不完整，则指定可用于检索完整身份认证提供者列表的 URI 参考。

##### 请求 IDP 列表

定义供 ECP 联系的身份认证提供者的列表。此列表供 IDP 查找器（例如，`com.sun.identity.saml2.plugins.ECPIDPFinder`）的默认实现使用。

##### IDP 代理

“代理验证配置”属性定义了动态身份认证提供者代理值。选中复选框来为服务提供者启用代理验证。

##### 导言

如果您要使用引入 Cookie 来查找代理身份认证提供者，请选中此复选框。

##### 代理计数

输入可用于代理验证的身份认证提供者的最大数目。

##### IDP 代理列表

添加可用于代理验证的身份认证提供者的列表。在“新值”中键入定义为提供者标识符的 URI，并单击“添加”。