为 Azure AD B2C 自定义策略调用 New-CpimCertificate 时出现问题

Posted

技术标签:

【中文标题】为 Azure AD B2C 自定义策略调用 New-CpimCertificate 时出现问题【英文标题】:Issue when calling New-CpimCertificate for Azure AD B2C custom policy 【发布时间】:2018-01-18 15:30:18 【问题描述】:

我正在尝试使用 Azure AD B2C 作为 SAML 身份提供程序。

我知道网络上的几个位置表明 B2C 不(尚)支持将 SAML 作为身份提供者(例如,对此问题的回答:Can I integrate a SAML application with Azure AD B2C?)。

但是,当我阅读 "Azure AD B2C Custom Policies" docs 上内置策略和自定义策略之间的比较时,我发现 SAML 作为身份提供者现在已经得到支持。

另外,我发现这个 GitHub 演练:https://github.com/Azure-Samples/active-directory-b2c-advanced-policies/blob/master/Walkthroughs/RP-SAML.md

在完成之后,我在执行New-CpimCertificate 时在第一部分"Create the SAML Token Issuer" 的第5 步“上传证书”中遇到了问题。

我可以成功导入模块 ExploreAdmin.dll。但是在调用 New-CpimCertificate 时提供我的凭据,我在控制台上收到此错误:

New-CpimCertificate : Unauthorized.
Access to this Api requires feature: 'Advanced' for the tenant: '<myazureb2ctenant>.onmicrosoft.com'.

非常欢迎任何帮助、想法、cmets...!

【问题讨论】:

【参考方案1】:

Azure AD B2C 仍不正式支持(即使是预览版)connecting with apps via SAML(也称为 SAML 身份提供者)。

它只支持connecting to other identity providers via SAML(又名是 SAML 中继方)。

您遇到的 GitHub 演练是 Azure AD B2C 自定义策略预览版正式发布之前的旧演练。它讨论了未包含在预览范围内的功能,例如作为 SAML IdP 的 B2C。它还引用了不再适用的工具(那些 PowerShell 脚本)和步骤。

"Azure AD B2C Custom Policies" doc 的身份提供者部分中提到的 SAML 是指支持 B2C 作为连接到 SAML 身份提供者的中继方,而不是相反(其中 B2C 是 SAML 身份提供者本身)。

话虽如此,您可以使您的方案正常工作,但清楚地了解它不受支持。

您可以使用您引用的 GitHub 文档,将涉及 ExploreAdmin 和 New-CpimCertificate 的步骤替换为允许您通过门户上传证书的 these instructions:

    转到您的 Azure AD B2C 租户。点击设置 > 身份体验框架 > 策略键。 点击+添加,然后:
      点击选项>上传。 输入一个名称(例如,YourAppNameSamlCert)。 B2C_1A_ 前缀会自动添加到您的密钥名称中。 要选择您的证书,请选择上传文件控制。 输入证书的密码。
    点击创建。 验证您是否已创建密钥(例如,B2C_1A_YourAppNameSamlCert)。

【讨论】:

非常感谢 Saca 的明确回答!我会按照你的指示试一试,谢谢。

以上是关于为 Azure AD B2C 自定义策略调用 New-CpimCertificate 时出现问题的主要内容,如果未能解决你的问题,请参考以下文章

Azure AD B2C 自定义策略 - Javascript

Azure AD B2C 自定义登录策略显示 SignUpSignIn

Azure AD B2C:自定义策略 - 登录不起作用

Azure AD B2C - 自定义策略中的“电子邮件”声明

Azure AD B2C密码更改自定义策略,用户每次都需要登录

Azure AD B2C 自定义密码重置策略不会使用 + char\sign 验证电子邮件