在 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>
输入、输出和保存声明
InputClaims、OutputClaims 和 PersistClaims 元素为空或不存在。 InutputClaimsTransformations 和 OutputClaimsTransformations 元素也不存在。
Metadata
Attribute | 必须 | 说明 |
---|---|---|
IssuerUri | 否 | SAML 响应中出现的颁发者名称。 该值应与信赖方应用中配置的名称相同。 |
XmlSignatureAlgorithm | 否 | Azure AD B2C 用于对 SAML 断言请求进行签名的方法。 可能的值:Sha256 、Sha384 、Sha512 或 Sha1 。 确保在两端配置具有相同值的签名算法。 仅使用证书支持的算法。 若要配置 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 颁发者技术配置文件的示例,请参阅以下文章: