来自 JavaScript 客户端的 Azure AD B2C 用户帐户管理

时间:2020-12-28 17:45:23

标签: angular azure-active-directory azure-ad-b2c

我使用这个 dotnetcore 示例 ms-identity-dotnetcore-b2c-account-managementAD B2C 目录中获取所有用户。

这是否可以使用某些 API 从像 Angular 这样的 JavaScript 客户端实现?我试图不使用带有 SDK 代码的 Azure 函数,而是直接从 Angular 应用程序本身调用任何现有的 Azure 服务来获取用户。

更新:

我用过

    "@azure/@azure/msal-angular": "^2.0.0-alpha.0",
    "@azure/msal-browser": "^2.7.0"

并且可以从 Azure AD B2C 登录和注销。

但是登录需要用户名和密码。我无法使用登录后获得的令牌获取 B2C 中的所有用户。我收到身份验证失败错误。

我认为我的应用程序需要按照此处的说明在没有登录名和密码的情况下访问 B2C 目录:https://docs.microsoft.com/en-us/graph/auth-v2-service。这适用于后台服务(守护进程) 应用程序。现在我必须使用两个库来获取令牌(一个用于登录,一个用于获取用户)。

我也对一些不同的库感到困惑:

https://developer.microsoft.com/en-us/graph/get-started/angular https://docs.microsoft.com/en-us/graph/sdks/sdk-installation#install-the-microsoft-graph-javascript-sdk https://docs.microsoft.com/en-us/graph/toolkit/get-started/use-toolkit-with-angular

  1. 我能否使用单个库 @azure/msal-angular 和相同的令牌实现登录以及读取用户
  2. 我能否仅使用后台服务(守护进程) 流读取用户,而不是通过 "@azure/msal-angular": "^2.0.0-alpha.0"< /strong>?

2 个答案:

答案 0 :(得分:1)

正如您所看到的标题使用 .NET Core 和 Microsoft Graph 进行的 Azure AD B2C 用户帐户管理,它调用了 Microsoft Graph API。

Microsoft Graph 提供了 Javascript SDK

您可以参考this example列出 Azure AD B2C 用户。

const options = {
    authProvider,
};

const client = Client.init(options);

let res = await client.api('/users')
    .get();

一个 Angular sample 供您参考。

答案 1 :(得分:1)

  1. 您可以使用同一个应用程序(网站)通过图表“读取用户”并通过 AAD B2C 用户流登录。 这些不是相同的代币,它们是从不同的代币发行者 -AAD/AAD B2C 获得的。 MSAL 支持两种令牌端点。你要求做什么没有多大意义。用户读取操作通常在服务器端(AAD 令牌端点/Graph API/client_credential)。用户登录是客户端(AAD B2C 授权端点/您的 API/身份验证代码)。这意味着通过 AAD B2C 登录的用户无法调用 Graph API。阅读了解更多信息 - https://github.com/MicrosoftDocs/azure-docs/issues/56756#issuecomment-652903203

  2. 当然,只需按照 Azure AD 指南进行图形 API 访问即可。是的,它适用于 AAD B2C 目录。 https://docs.microsoft.com/en-us/graph/tutorials/node