背景
我有一个用户通过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然后它说'#34; 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
答案 0 :(得分:0)
您可以做的最好的事情是首先使用OIDC并确认策略正在运行,然后覆盖使用SAML发布JWT令牌的步骤
使用SAML时,我有这种格式
基地 基础扩展(如果你想要它 - 我倾向于不) policy-OIDC(扩展基础) policy-SAML(扩展了OIDC)
在策略SAML中,我覆盖调用JWTIssuer的用户旅程编排步骤,然后调用我的SAML令牌创建者
这种方法的原因是B2C设计为与OIDC一起使用,您可以确认行程在OIDC中按预期工作然后切换到您的SAML
我也使用行车记录仪,我发现旧的B2C行车记录仪比app洞察力更好,但都跟踪相同的数据
在办公室检查我的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名称