从Azure AD B2C获取用户:此API版本不支持此用户

时间:2016-07-15 14:38:14

标签: azure-ad-b2c

我从一位使用Azure AD B2C的同事那里接管了一个项目的一部分。

目前我们使用old Azure portal中的用户列表来获取用户的身份验证令牌,然后我们可以将这些用户条目与我们自己的数据库中的用户条目联系起来。即我们从这里的列中复制并粘贴:

Azure Portal (old) screenshot

以编程方式执行此操作会更加明智。

文章Azure AD B2C Preview: Use the Graph API包含要下载的示例代码。为了让它运行,我需要这些东西:

<appSettings>
    <add key="b2c:Tenant" value="[Enter tenant name, e.g. contoso.onmicrosoft.com]" />
    <add key="b2c:ClientId" value="[Enter the client ID (a.k.a AppPrincipalId) as obtained from the Azure AD Powershell, e.g. 82692da5-a86f-44c9-9d53-2f88d52b478b]" />
    <add key="b2c:ClientSecret" value="[Enter the client secret that you generated, e.g. ONHJGaI232VenJIboyg8hmTlyNXh0Ef0brRRRNWBRfc=]" />
</appSettings>

我可以从新的Azure门户网站获取租户和应用程序ID:

Azure portal (new) screenshot

我的同事从他制作目录时就把客户的秘密传给了我。

在文章之后,我现在编译应用程序并运行

  

B2C Get-User

但是,我的Azure AD B2C目录中没有预期的用户列表,而是收到错误消息

  

AADSTS70001:此API版本不支持应用程序my-app-id   跟踪ID:a-guid
  相关ID:另一个指导   时间戳:2016-07-15 10:27:15Z

如何以编程方式获取Azure AD B2C目录中的用户?

1 个答案:

答案 0 :(得分:1)

从此处运行powershell命令以注册新的服务主体: https://azure.microsoft.com/en-us/documentation/articles/active-directory-b2c-devquickstarts-graph-dotnet/

这个新的服务主体拥有自己的appId,它是自己的客户机密。

您混合其中一些(您选择的AppId来自B2C应用程序,而不是B2C / AD服务主体)