你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
重要
自 2025 年 5 月 1 日起,Azure AD B2C 将不再可供新客户购买。 在我们的常见问题解答中了解详细信息。
Azure Active Directory B2C (Azure AD B2C) 支持与 SAML 2.0 标识提供者的联合。 本文介绍如何分析安全断言,以及使用 SAML 标识提供者启用登录时可用的配置选项。
在开始之前,请使用此页面顶部的 “选择策略类型 选择器”来选择要设置的策略类型。 Azure Active Directory B2C 提供了两种定义用户如何与应用程序交互的方法:通过预定义的用户流,或者通过可完全配置的自定义策略。 对于每种方法,本文中所需的步骤都不同。
此功能仅适用于自定义策略。 对于设置步骤,请在前面的选择器中选择“自定义策略”。
声明映射
OutputClaims 元素包含 SAML 标识提供者返回的声明列表。 需要将策略中定义的声明名称映射到标识提供者中定义的名称。 检查标识提供者以获取声明(断言)的列表。 还可以检查标识提供者返回的 SAML 响应的内容。 有关详细信息,请参阅 调试 SAML 消息。 若要添加声明,请先 定义声明,然后将声明添加到输出声明集合。
只要设置了 DefaultValue 属性,就还可以包含并非由标识提供者返回的声明。 默认值可以是静态的,也可以是动态的,使用 上下文声明。
输出声明元素包含以下属性:
- ClaimTypeReferenceId 是对声明类型的引用。
- PartnerClaimType 是 SAML 断言中的属性名称。
- DefaultValue 是预定义的默认值。 如果声明为空,则使用默认值。 还可以将 声明解析程序 与上下文值一起使用,例如相关 ID 或用户 IP 地址。
使用者名称
若要将 Subject 中的 SAML 断言 NameId 读取为规范化声明,请将声明 PartnerClaimType 设置为特性的值SPNameQualifier。 如果未出现 SPNameQualifier 属性,请将声明 PartnerClaimType 设置为 属性的值NameQualifier。
SAML 断言:
<saml:Subject>
<saml:NameID SPNameQualifier="http://your-idp.com/unique-identifier" Format="urn:oasis:names:tc:SAML:2.0:nameid-format:transient">david@contoso.com</saml:NameID>
<SubjectConfirmation Method="urn:oasis:names:tc:SAML:2.0:cm:bearer">
<SubjectConfirmationData InResponseTo="_cd37c3f2-6875-4308-a9db-ce2cf187f4d1" NotOnOrAfter="2020-02-15T16:23:23.137Z" Recipient="https://<your-tenant>.b2clogin.com/<your-tenant>.onmicrosoft.com/B2C_1A_TrustFrameworkBase/samlp/sso/assertionconsumer" />
</SubjectConfirmation>
</saml:SubjectConfirmation>
</saml:Subject>
输出声明:
<OutputClaim ClaimTypeReferenceId="issuerUserId" PartnerClaimType="http://your-idp.com/unique-identifier" />
如果 SAML 断言中未显示这两个 SPNameQualifier 或 NameQualifier 属性,请将声明 PartnerClaimType 设置为 assertionSubjectName。 请确保 NameId 是断言 XML 中的第一个值。 定义多个断言时,Azure AD B2C 将从最后一个断言中选择主题值。
配置 SAML 协议绑定
SAML 请求将按照标识提供者的元数据 SingleSignOnService 元素中指定的方式发送到标识提供者。 大多数标识提供者的授权请求是通过在 HTTP GET 请求的 URL 查询字符串中直接承载的(因为消息相对较短)。 请参阅标识提供者文档,了解如何为这两个 SAML 请求配置绑定。
以下 XML 是包含两个绑定的 Microsoft Entra 元数据单一登录服务的示例。 因为在 SAML 身份提供者元数据中 HTTP-Redirect 先于 HTTP-POST 出现,所以其优先于 HTTP-POST。
<IDPSSODescriptor protocolSupportEnumeration="urn:oasis:names:tc:SAML:2.0:protocol">
...
<SingleSignOnService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect" Location="https://login.microsoftonline.com/00000000-0000-0000-0000-000000000000/saml2"/>
<SingleSignOnService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" Location="https://login.microsoftonline.com/00000000-0000-0000-0000-000000000000/saml2"/>
</IDPSSODescriptor>
断言使用者服务
Azure AD B2C 在断言使用者服务(简称 ACS)中发送和接收标识提供者 SAML 响应。 SAML 响应通过 HTTP POST 绑定传输到 Azure AD B2C。 ACS 位置指向信赖方的基本策略。 例如,如果信赖策略 B2C_1A_signup_signin,则 ACS 是 B2C_1A_signup_signin的基本策略,例如 B2C_1A_TrustFrameworkBase。
以下 XML 是 Azure AD B2C 策略元数据断言使用者服务元素的示例。
<SPSSODescriptor AuthnRequestsSigned="true" protocolSupportEnumeration="urn:oasis:names:tc:SAML:2.0:protocol">
...
<AssertionConsumerService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" Location="https://your-tenant.b2clogin.com/your-tenant/B2C_1A_TrustFrameworkBase/samlp/sso/assertionconsumer" index="0" isDefault="true"/>
</SPSSODescriptor>
配置 SAML 请求签名
Azure AD B2C 使用 SamlMessageSigning 加密密钥对所有传出身份验证请求进行签名。 若要禁用 SAML 请求签名,请将 WantsSignedRequests 设置为 false. 如果元数据设置为 false,则从请求中省略 SigAlg 和 Signature 参数(查询字符串或 post 参数)。
此元数据还控制 AuthnRequestsSigned 属性,该属性包含在与标识提供者共享的 Azure AD B2C 技术配置文件的元数据中。 如果技术配置文件元数据中的 WantSignedRequests 值设置为 false ,并且标识提供者元数据 WantAuthnRequestsSigned 设置为 false 或未指定,则 Azure AD B2C 不会对请求进行签名。
以下示例从 SAML 请求中删除签名。
<Metadata>
...
<Item Key="WantsSignedRequests">false</Item>
</Metadata>
签名算法
Azure AD B2C 用于 Sha1 对 SAML 请求进行签名。 使用 XmlSignatureAlgorithm 元数据配置要使用的算法。 可能的值为 Sha256、 Sha384、 Sha512或 Sha1 (默认值)。 此元数据控制 SAML 请求中的 SigAlg 参数(查询字符串或 post 参数)的值。 确保在两端配置具有相同值的签名算法。 仅使用证书支持的算法。
包括密钥信息
当标识提供者指示 Azure AD B2C 绑定设置为 HTTP-POST 时,Azure AD B2C 会在 SAML 请求的正文中包含签名和算法。 还可以将Microsoft Entra ID 配置为在绑定设置为 HTTP-POST时包含证书的公钥。 将 IncludeKeyInfo 元数据用于 或 truefalse。 在以下示例中,Microsoft Entra ID 不包括证书的公钥。
<Metadata>
...
<Item Key="IncludeKeyInfo">false</Item>
</Metadata>
配置 SAML 请求名称 ID
SAML 授权请求 <NameID> 元素指示 SAML 名称标识符格式。 本部分介绍默认配置以及如何自定义名称 ID 元素。
首选用户名
在登录用户旅程中,信赖方应用程序可能面向特定用户。 Azure AD B2C 允许向 SAML 标识提供者发送首选用户名。 InputClaims 元素用于在 SAML 授权请求的 主体 中发送 NameId。
若要在授权请求中包含使用者名称 ID,请在 <InputClaims> 后面添加以下 <CryptographicKeys> 元素。
PartnerClaimType 必须设置为 subject。
<InputClaims>
<InputClaim ClaimTypeReferenceId="signInName" PartnerClaimType="subject" />
</InputClaims>
在此示例中,Azure AD B2C 发送 SAML 授权请求的 Subject 中具有 NameId 的 signInName 声明的值。
<samlp:AuthnRequest ... >
...
<saml:Subject>
<saml:NameID>sam@contoso.com</saml:NameID>
</saml:Subject>
</samlp:AuthnRequest>
可以使用 上下文声明,例如 {OIDC:LoginHint} 填充声明值。
<Metadata>
...
<Item Key="IncludeClaimResolvingInClaimsHandling">true</Item>
</Metadata>
...
<InputClaims>
<InputClaim ClaimTypeReferenceId="signInName" PartnerClaimType="subject" DefaultValue="{OIDC:LoginHint}" AlwaysUseDefaultValue="true" />
</InputClaims>
名称 ID 策略格式
默认情况下,SAML 授权请求指定 urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified 策略。 此名称 ID 表明所请求主体的标识提供者支持的任何类型的标识符均可使用。
若要更改此行为,请参阅标识提供者的文档,获取有关支持哪些名称 ID 策略的指导。 然后,以相应的策略格式添加 NameIdPolicyFormat 元数据。 例如:
<Metadata>
...
<Item Key="NameIdPolicyFormat">urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress</Item>
</Metadata>
以下 SAML 授权请求包含名称 ID 策略。
<samlp:AuthnRequest ... >
...
<samlp:NameIDPolicy Format="urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress" />
</samlp:AuthnRequest>
允许创建新帐户
如果指定 名称 ID 策略格式,还可以指定 AllowCreateNameIDPolicy 的属性,以指示是否允许标识提供者在登录流期间创建新帐户。 请参考您的身份提供商的文档以获取指导。
默认情况下,Azure AD B2C 省略 AllowCreate 该属性。 您可以使用NameIdPolicyAllowCreate元数据来更改此行为。 此元数据的值为 true 或 false。
以下示例演示如何将AllowCreate属性设置为NameIDPolicy。
<Metadata>
...
<Item Key="NameIdPolicyFormat">urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress</Item>
<Item Key="NameIdPolicyAllowCreate">true</Item>
</Metadata>
下面的示例演示其中包含 NameIDPolicy 元素的 AllowCreate 的授权请求。
<samlp:AuthnRequest ... >
...
<samlp:NameIDPolicy
Format="urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress"
AllowCreate="true" />
</samlp:AuthnRequest>
强制身份验证
可以通过在 SAML 身份验证请求中传递 ForceAuthN 属性来强制外部 SAML IDP 提示用户进行身份验证。 您的身份提供商还必须支持此属性。
该 ForceAuthN 属性是布尔值 true 或 false 值。 默认情况下,Azure AD B2C 将 ForceAuthN 值设置为 false。 如果会话随后重置(例如,通过使用 OIDC 的 prompt=login),则将 ForceAuthN 的值设置为 true。 将 ForceAuthN 元数据设置为 true 将会强制设置向外部 IDP 发出的所有请求的值。
以下示例显示属性 ForceAuthN 设置为 true:
<Metadata>
...
<Item Key="ForceAuthN">true</Item>
...
</Metadata>
以下示例演示 ForceAuthN 授权请求中的属性:
<samlp:AuthnRequest AssertionConsumerServiceURL="https://..." ...
ForceAuthN="true">
...
</samlp:AuthnRequest>
提供者名称
可以选择在 SAML 授权请求中包含该 ProviderName 属性。 设置 ProviderName 元数据,使其在发往外部 SAML IDP 的所有请求中包含提供商名称。 以下示例显示属性 ProviderName 设置为 Contoso app:
<Metadata>
...
<Item Key="ProviderName">Contoso app</Item>
...
</Metadata>
以下示例演示 ProviderName 授权请求中的属性:
<samlp:AuthnRequest AssertionConsumerServiceURL="https://..." ...
ProviderName="Contoso app">
...
</samlp:AuthnRequest>
包含身份验证上下文类引用
SAML 授权请求可能包含 AuthnContext 元素,该元素指定授权请求的上下文。 该元素可以包含身份验证上下文类引用,该引用告知 SAML 标识提供者要向用户呈现哪个身份验证机制。
若要配置身份验证上下文类引用,请添加 IncludeAuthnContextClassReferences 元数据。 在值中,指定一个或多个标识身份验证上下文类的 URI 引用。 将多个 URI 指定为逗号分隔的列表。 有关支持的 AuthnContextClassRef URI 的指南,请参阅标识提供者的文档。
以下示例允许用户使用用户名和密码登录,并通过受保护的会话(SSL/TLS)使用用户名和密码登录。
<Metadata>
...
<Item Key="IncludeAuthnContextClassReferences">urn:oasis:names:tc:SAML:2.0:ac:classes:Password,urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport</Item>
</Metadata>
以下 SAML 授权请求包含身份验证上下文类引用。
<samlp:AuthnRequest ... >
...
<samlp:RequestedAuthnContext>
<saml:AuthnContextClassRef>urn:oasis:names:tc:SAML:2.0:ac:classes:Password</saml:AuthnContextClassRef>
<saml:AuthnContextClassRef>urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport</saml:AuthnContextClassRef>
</samlp:RequestedAuthnContext>
</samlp:AuthnRequest>
在授权请求中包含自定义数据
您可以选择性地包括 Azure AD B2C 和您的标识提供者双方都同意的协议消息扩展元素。 该扩展以 XML 格式显示。 可以通过将 XML 数据添加到 CDATA 元素 <![CDATA[Your Custom XML]]> 中来包含扩展元素。 检查标识提供者的文档,查看扩展元素是否受支持。
以下示例演示了扩展数据的用法:
<Metadata>
...
<Item Key="AuthenticationRequestExtensions"><![CDATA[
<ext:MyCustom xmlns:ext="urn:ext:custom">
<ext:AssuranceLevel>1</ext:AssuranceLevel>
<ext:AssuranceDescription>Identity verified to level 1.</ext:AssuranceDescription>
</ext:MyCustom>]]></Item>
</Metadata>
注释
根据 SAML 规范,扩展数据必须是命名空间限定的 XML(例如示例中显示的“urn:ext:custom”),并且它不能是特定于 SAML 的命名空间之一。
使用 SAML 协议消息扩展时,SAML 响应如以下示例所示:
<samlp:AuthnRequest ... >
...
<samlp:Extensions>
<ext:MyCustom xmlns:ext="urn:ext:custom">
<ext:AssuranceLevel>1</ext:AssuranceLevel>
<ext:AssuranceDescription>Identity verified to level 1.</ext:AssuranceDescription>
</ext:MyCustom>
</samlp:Extensions>
</samlp:AuthnRequest>
需要签名的 SAML 响应
Azure AD B2C 要求对所有传入断言进行签名。 通过将 WantsSignedAssertions 设置为 false 来删除此要求。 在这种情况下,标识提供者不应对断言进行签名,但即使这样做,Azure AD B2C 也不会验证签名。
WantSignedAssertions 元数据控制 SAML 元数据标志 WantAssertionsSigned,该标志包含在与标识提供者共享的 Azure AD B2C 技术配置文件的元数据中。
<SPSSODescriptor AuthnRequestsSigned="true" WantAssertionsSigned="true" protocolSupportEnumeration="urn:oasis:names:tc:SAML:2.0:protocol">
如果禁用断言验证,可能还需要禁用响应消息签名验证。 将 ResponsesSigned 元数据设置为 false. 在这种情况下,标识提供者不应对 SAML 响应消息进行签名,但即使这样做,Azure AD B2C 也不会验证签名。
以下示例同时删除消息和断言签名:
<Metadata>
...
<Item Key="WantsSignedAssertions">false</Item>
<Item Key="ResponsesSigned">false</Item>
</Metadata>
需要加密的 SAML 响应
若要要求加密所有传入断言,请设置 WantsEncryptedAssertions 元数据。 需要加密时,标识提供者在 Azure AD B2C 技术配置文件中使用加密证书的公钥。 Azure AD B2C 使用加密证书的专用部分解密响应断言。
如果启用断言加密,则可能需要禁用响应签名验证(有关详细信息,请参阅 “需要签名的 SAML 响应”。
当 WantsEncryptedAssertions 元数据设置为 true时,Azure AD B2C 技术配置文件的元数据包括 加密 部分。 标识提供者读取元数据,并使用 Azure AD B2C 技术配置文件元数据中提供的公钥加密 SAML 响应断言。
以下示例显示了用于加密的 SAML 元数据的密钥描述符部分:
<SPSSODescriptor AuthnRequestsSigned="true" protocolSupportEnumeration="urn:oasis:names:tc:SAML:2.0:protocol">
<KeyDescriptor use="encryption">
<KeyInfo xmlns="https://www.w3.org/2000/09/xmldsig#">
<X509Data>
<X509Certificate>valid certificate</X509Certificate>
</X509Data>
</KeyInfo>
</KeyDescriptor>
...
</SPSSODescriptor>
若要加密 SAML 响应断言:
创建具有唯一标识符的策略密钥。 例如,
B2C_1A_SAMLEncryptionCert。在 SAML 技术配置文件 CryptographicKeys 集合中。 将 StorageReferenceId 设置为在第一步中创建的策略密钥的名称。 ID
SamlAssertionDecryption指示使用加密密钥来加密和解密 SAML 响应的断言。<CryptographicKeys> ... <Key Id="SamlAssertionDecryption" StorageReferenceId="B2C_1A_SAMLEncryptionCert"/> </CryptographicKeys>将技术配置元数据 WantsEncryptedAssertions 设置为
true.<Metadata> ... <Item Key="WantsEncryptedAssertions">true</Item> </Metadata>使用新的 Azure AD B2C 技术配置文件元数据更新标识提供者。 应会看到 KeyDescriptor ,其 use 属性设置为
encryption包含证书的公钥。
允许使用上下文声明
在输入和输出声明集合中,只要设置 DefaultValue 属性,就可以包含那些标识提供者未返回的声明。 还可以使用 上下文声明 包含在技术配置文件中。 若要使用上下文声明,
将声明类型添加到 BuildingBlocks 中的 ClaimsSchema 元素。
将输出声明添加到输入或输出集合。 在以下示例中,第一个声明设置标识提供者的值。 第二个声明使用用户 IP 地址 上下文声明。
<OutputClaims> <OutputClaim ClaimTypeReferenceId="identityProvider" DefaultValue="contoso.com" AlwaysUseDefaultValue="true" /> <OutputClaim ClaimTypeReferenceId="IpAddress" DefaultValue="{Context:IPAddress}" AlwaysUseDefaultValue="true" /> </OutputClaims>
禁用单一注销
在请求注销应用程序时,Azure AD B2C 会尝试从 SAML 标识提供者注销。 有关详细信息,请参阅 Azure AD B2C 会话注销。若要禁用单一注销行为,请将 SingleLogoutEnabled 元数据设置为 false。
<Metadata>
...
<Item Key="SingleLogoutEnabled">false</Item>
</Metadata>
调试 SAML 协议
若要帮助配置和调试与 SAML 标识提供者的联合身份验证,可以使用 SAML 协议的浏览器扩展,例如 Chrome 的 SAML DevTools 扩展 、Firefox 的 SAML 跟踪程序 或 Microsoft Edge 或 Internet Explorer 开发人员工具。
使用这些工具,可以检查 Azure AD B2C 与 SAML 标识提供者之间的集成。 例如:
- 检查 SAML 请求是否包含签名并确定用于登录授权请求的算法。
- 获取
AttributeStatement部分下的声明(断言)。 - 检查标识提供者是否返回错误消息。
- 检查断言部分是否已加密。
SAML 请求和响应示例
安全断言标记语言 (SAML) 是在标识提供者和服务提供商之间交换身份验证和授权数据的开放标准。 当 Azure AD B2C 与 SAML 标识提供者联合时,它充当服务提供商,向 SAML 标识提供者发起 SAML 请求,并等待 SAML 响应。
成功的 SAML 响应包含安全 断言,这些断言 是由外部 SAML 标识提供者发出的语句。 Azure AD B2C 会分析断言并将其映射到声明。
授权请求
若要请求用户身份验证,Azure AD B2C 会将元素 AuthnRequest 发送到外部 SAML 标识提供者。 示例 SAML 2.0 AuthnRequest 如以下示例所示:
<samlp:AuthnRequest
xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion"
ID="_11111111-0000-0000-0000-000000000000"
Version="2.0"
IssueInstant="2023-03-20T07:10:00.0000000Z"
Destination="https://fabrikam.com/saml2"
ForceAuthn="false"
IsPassive="false"
ProtocolBinding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST"
AssertionConsumerServiceURL="https://contoso.b2clogin.com/contoso.onmicrosoft.com/B2C_1A_TrustFrameworkBase/samlp/sso/assertionconsumer"
ProviderName="https://fabrikam.com"
xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol">
<saml:Issuer
Format="urn:oasis:names:tc:SAML:2.0:nameid-format:entity">https://contoso.b2clogin.com/contoso.onmicrosoft.com/B2C_1A_TrustFrameworkBase
</saml:Issuer>
</samlp:AuthnRequest>
响应
请求的登录成功完成后,外部 SAML 标识提供者会向 Azure AD B2C 断言使用者服务 终结点发布响应。 成功登录尝试的响应如以下示例所示:
<samlp:Response
ID="_98765432-0000-0000-0000-000000000000"
Version="2.0"
IssueInstant="2023-03-20T07:11:30.0000000Z"
Destination="https://contoso.b2clogin.com/contoso.onmicrosoft.com/B2C_1A_TrustFrameworkBase/samlp/sso/assertionconsumer"
InResponseTo="_11111111-0000-0000-0000-000000000000"
xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol">
<Issuer
xmlns="urn:oasis:names:tc:SAML:2.0:assertion">https://fabrikam.com/
</Issuer>
<samlp:Status>
<samlp:StatusCode
Value="urn:oasis:names:tc:SAML:2.0:status:Success"/>
</samlp:Status>
<Assertion
ID="_55555555-0000-0000-0000-000000000000"
IssueInstant="2023-03-20T07:40:45.505Z"
Version="2.0"
xmlns="urn:oasis:names:tc:SAML:2.0:assertion">
<Issuer>https://fabrikam.com/</Issuer>
<Signature
xmlns="http://www.w3.org/2000/09/xmldsig#">
...
</Signature>
<Subject>
<NameID
Format="urn:oasis:names:tc:SAML:2.0:nameid-format:persistent">ABCDEFG
</NameID>
...
</Subject>
<AttributeStatement>
<Attribute Name="uid">
<AttributeValue>12345</AttributeValue>
</Attribute>
<Attribute Name="displayname">
<AttributeValue>David</AttributeValue>
</Attribute>
<Attribute Name="email">
<AttributeValue>david@contoso.com</AttributeValue>
</Attribute>
....
</AttributeStatement>
<AuthnStatement
AuthnInstant="2023-03-20T07:40:45.505Z"
SessionIndex="_55555555-0000-0000-0000-000000000000">
<AuthnContext>
<AuthnContextClassRef>urn:oasis:names:tc:SAML:2.0:ac:classes:Password</AuthnContextClassRef>
</AuthnContext>
</AuthnStatement>
</Assertion>
</samlp:Response>
注销请求
在请求注销应用程序时,Azure AD B2C 会尝试从 SAML 标识提供者注销。 Azure AD B2C 向外部 IDP 发送消息 LogoutRequest ,指示会话已终止。 以下摘录显示了一个示例 LogoutRequest 元素。
元素NameID的值与正在注销用户的NameID匹配。SessionIndex元素与登录 SAML 响应中的SessionIndex的AuthnStatement属性匹配。
<samlp:LogoutRequest
xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
ID="_22222222-0000-0000-0000-000000000000"
Version="2.0"
IssueInstant="2023-03-20T08:21:07.3679354Z"
Destination="https://fabrikam.com/saml2/logout"
xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol">
<saml:Issuer
Format="urn:oasis:names:tc:SAML:2.0:nameid-format:entity">https://contoso.b2clogin.com/contoso.onmicrosoft.com/B2C_1A_TrustFrameworkBase
</saml:Issuer>
<saml:NameID>ABCDEFG</saml:NameID>
<samlp:SessionIndex>_55555555-0000-0000-0000-000000000000</samlp:SessionIndex>
</samlp:LogoutRequest>
后续步骤
- 了解如何使用 Application Insights 诊断自定义策略的问题。