【问题标题】:Azure B2C custom saml policy: Different claims per AppAzure B2C 自定义 saml 策略:每个应用程序的不同声明
【发布时间】:2020-02-20 17:55:03
【问题描述】:

我按照本手册将 SAML 注册到我的 azure b2c:https://docs.microsoft.com/en-us/azure/active-directory-b2c/connect-with-saml-service-providers

有了这个,我可以在我的新 TechnicalProfile 中定义 SAML 声明,例如

<OutputClaim ClaimTypeReferenceId="surname"/>

现在,我有一个应用程序,它需要一些具有特定名称的属性。将 PartnerClaimType 设置为某个自定义字符串将产生一个 saml 属性,该字符串作为属性名称:

<OutputClaim ClaimTypeReferenceId="surname" PartnerClaimType="LastName" />

这将导致:

<saml:Attribute Name="LastName"
    NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:basic"
    FriendlyName="Surname">
    <saml:AttributeValue xsi:type="xs:string">Peters</saml:AttributeValue>
</saml:Attribute>

但我只能在该配置文件上配置声明 - 我需要在 azure 的应用注册中指定它。 所以第一个应用需要属性“surname”,接下来需要“FamilyName”,第三个需要“LastName”。

如何使用政策中定义的声明并在应用程序中进行更改?我看到清单中有一些属性“optionalClaims”,并且有“saml2Token”。但是这方面的文档对我没有帮助 (https://docs.microsoft.com/de-de/azure/active-directory/develop/active-directory-optional-claims)。

【问题讨论】:

    标签: azure azure-ad-b2c saml-2.0


    【解决方案1】:

    如果您连接 3 个 SAML 依赖方,您将拥有 3 个应用程序注册和 3 个依赖方技术配置文件作为您的自定义策略的一部分。每个信赖方部分都将具有所需的声明映射。

    【讨论】:

    • 那么,是否需要为每个需要特定声明的应用创建技术配置文件?这不聪明,但谢谢你的回答。我会这样做的。
    • 是的,没错。每个依赖方部分都应该针对特定的 RP(应用程序)。
    • 谢谢。我创建了非常相似的技术配置文件,并为每个应用使用一个配置文件并在那里定义声明。你能告诉我为什么我也可以在应用注册本身中定义声明吗?
    • 这些应用注册在技术上在 AAD 和 AAD B2C 之间共享。如果您针对 AAD 端点(甚至是您的 B2C)租户使用 App Reg 配置,则将尊重这些属性。但在 B2C 的情况下,B2C 会在幕后与 AAD 对话,并且会从 AAD 中获取属性的静态映射,并且不会关心 App Registration 配置。 2 种不同的 STS,它们的工作方式不同。
    猜你喜欢
    • 2022-01-10
    • 2018-12-07
    • 1970-01-01
    • 2018-03-28
    • 1970-01-01
    • 1970-01-01
    • 2022-11-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多