在 Azure Active Directory B2C 自定义策略中定义 SAML 令牌颁发者的技术配置文件

注意

在 Azure Active Directory B2C 中,自定义策略主要用于解决复杂的情况。 在大多数情况下,建议你使用内置用户流。 如果尚未这样做,请从 Active Directory B2C 中的自定义策略入门了解自定义策略新手包。

Azure Active Directory B2C (Azure AD B2C) 在处理每个身份验证流时颁发多种安全令牌。 SAML 令牌颁发者的技术配置文件发出返回给信赖方应用(服务提供者)的 SAML 令牌。 通常,此技术配置文件是用户旅程中的最后一个业务流程步骤。

协议

“Protocol”元素的“Name”属性必须设置为 SAML2。 将 OutputTokenFormat 元素设置为 SAML2

以下示例演示了 Saml2AssertionIssuer 的技术配置文件:

<TechnicalProfile Id="Saml2AssertionIssuer">
  <DisplayName>Token Issuer</DisplayName>
  <Protocol Name="SAML2"/>
  <OutputTokenFormat>SAML2</OutputTokenFormat>
  <Metadata>
    <Item Key="IssuerUri">https://tenant-name.b2clogin.cn/tenant-name.partner.onmschina.cn/B2C_1A_signup_signin_SAML</Item>
    <Item Key="TokenNotBeforeSkewInSeconds">600</Item>
  </Metadata>
  <CryptographicKeys>
    <Key Id="MetadataSigning" StorageReferenceId="B2C_1A_SamlIdpCert"/>
    <Key Id="SamlMessageSigning" StorageReferenceId="B2C_1A_SamlIdpCert"/>
  </CryptographicKeys>
  <InputClaims/>
  <OutputClaims/>
  <UseTechnicalProfileForSessionManagement ReferenceId="SM-Saml-issuer"/>
</TechnicalProfile>

输入、输出和保存声明

InputClaimsOutputClaimsPersistClaims 元素为空或不存在。 InutputClaimsTransformationsOutputClaimsTransformations 元素也不存在。

Metadata

Attribute 必须 说明
IssuerUri SAML 响应中出现的颁发者名称。 该值应与信赖方应用中配置的名称相同。
XmlSignatureAlgorithm Azure AD B2C 用于对 SAML 断言请求进行签名的方法。 可能的值:Sha256Sha384Sha512Sha1。 确保在两端配置具有相同值的签名算法。 仅使用证书支持的算法。 若要配置 SAML 响应,请参阅用于注册 SAML 应用程序的选项
TokenNotBeforeSkewInSeconds 以整数形式为标记有效期开始时间的时间戳指定倾斜。 此数字越大,有效期开始的时间相对于为信赖方发出声明的时间就越早。 例如,当 TokenNotBeforeSkewInSeconds 设置为 60 秒时,如果令牌是在 UTC 13:05:10 颁发的,则该令牌从 UTC 13:04:10 起有效。 默认值为 0。 最大值为 3600(1 小时)。
TokenLifeTimeInSeconds 指定 SAML 断言的生存期。 此值(以秒为单位)基于上面提到的 NotBefore 值。默认值为 300 秒(5 分钟)。

加密密钥

元素包含以下属性:

属性 必须 说明
MetadataSigning X509 证书(RSA 密钥集),用于对 SAML 元数据进行签名。 Azure AD B2C 使用此密钥对元数据进行签名。
SamlMessageSigning 指定 X509 证书(RSA 密钥集),用于对 SAML 消息进行签名。 Azure AD B2C 使用此密钥对发送到信赖方的响应 <samlp:Response> 进行签名。
SamlAssertionSigning 指定 X509 证书(RSA 密钥集),用于对 SAML 令牌的 SAML 断言 <saml:Assertion> 元素进行签名。 如果未提供,则改用 SamlMessageSigning 加密密钥。

会话管理

用于在信赖方应用、UseTechnicalProfileForSessionManagement 元素的属性之间配置 Azure AD B2C SAML 会话,请参考 SamlSSOSessionProvider SSO 会话。

后续步骤

有关使用 SAML 颁发者技术配置文件的示例,请参阅以下文章: