【问题标题】:MS Azure AD B2C as SAML IDP not workingMS Azure AD B2C 作为 SAML IDP 不起作用
【发布时间】:2017-09-28 18:10:18
【问题描述】:

背景

我有一个用户通过 AD B2C 注册/签名的应用程序。在应用程序中,有一个链接将重定向到另一个在 SAML 上工作的应用程序,因此希望 MS Azure 作为 IDP 工作并将 SAML 发送到第三个应用程序。

我们通过非图库应用在 AAD(不是 AD B2C)中实现了这一点,但在 AD B2C 中遇到了问题。

我们关注了这份文件https://github.com/Azure-Samples/active-directory-b2c-advanced-policies/blob/master/Walkthroughs/RP-SAML.md 但是当我们点击 URL 时,它会显示“AADB2C:发生异常”。

基础文件 - https://www.dropbox.com/s/ro6arbs57c43el2/base.xml?dl=0

扩展文件 - https://www.dropbox.com/s/uqojtk432b3wny1/base_Extensions.xml?dl=0

SignInSaml 文件 - https://www.dropbox.com/s/i950s4bwwagry5k/signinsaml.xml?dl=0

【问题讨论】:

  • 我不能,我无权访问。
  • 将旅程记录器端点添加到您的策略中,可以是应用洞察,也可以下载旅程记录器端点以及示例策略并部署到 Azure

标签: azure-ad-b2c


【解决方案1】:

您可以做的最好的事情是首先与 OIDC 合作并确认策略有效,然后覆盖您使用 SAML 颁发 JWT 令牌的步骤

在使用 SAML 时,我采用这种格式

基础 基础扩展(如果你想要的话——我倾向于不这样做) 策略 OIDC(这扩展了基础) 策略 SAML(这扩展了 OIDC)

然后,在策略 SAML 中,我会覆盖调用 JWTIssuer 的用户旅程编排步骤,然后调用我的 SAML 令牌创建者

这种方法的原因是 B2C 被设计为与 OIDC 一起使用,您可以确认旅程在 OIDC 中按预期工作,然后切换到您的 SAML

我也使用旅程记录器,我发现旧的 B2C 旅程记录器比应用洞察力更好,但两者都跟踪相同的数据

在办公室检查我的 SAML 后,您丢失了一些 META 数据来告诉 SAML 如何在您的政策中行事

      <Metadata>
    <Item Key="IdpInitiatedProfileEnabled">true</Item>
    <Item Key="RequestsSigned">false</Item>
    <Item Key="WantsSignedResponses">true</Item>
    <Item Key="ResponsesSigned">true</Item>
    <Item Key="AssertionsEncrypted">false</Item>
    <Item Key="WantsEncryptedAssertions">false</Item>
    <Item Key="PartnerEntity">https://my-calling-application/authservices</Item>
  </Metadata>
  <SubjectNamingInfo ClaimType="UserId"  />  

您的 SubjectNamingInfo 也需要 http://schemas.microsoft.com/identity/claims/userprincipalname

因为这是您在基本策略中定义的 SAAML 名称

【讨论】:

  • 我找到了上述问题的解决方案,即我没有在请求中发送 SAMLRequest。但是现在,当 Azure 发送 SAML 响应时,它包含不应该存在的“InResponseTo”属性,因为它是 IDP 发起的 SAML。你对此有什么想法吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-31
  • 1970-01-01
  • 1970-01-01
  • 2022-01-04
  • 2020-09-06
  • 2022-08-05
相关资源
最近更新 更多