Azure AD/B2C用户的安全API

Mat*_*ett 5 asp.net-web-api azure-active-directory auth0 identityserver3 azure-ad-b2c

我的用例是:

  • 通过API使用自定义字段创建用户,使用任何电子邮件地址指定密码
  • 通过API更新/禁用这些用户
  • 通过rest API使用用户详细信息"登录"Azure AD应用以获取令牌
  • 在Http标头中传递令牌时,向Web API发出授权请求

所有这些都可以通过直接的Azure AD/B2C实现,还是应该查看其他身份提供商,例如IdentityServer/Auth0?

编辑1

我在AAD应用程序/用户和B2C应用程序/用户之间变得非常困惑,在这种情况下很少有关于使用什么的指导.

使用https://docs.microsoft.com/en-us/azure/active-directory-b2c/active-directory-b2c-devquickstarts-graph-dotnet作为起点我在插入客户端ID时得到以下结果秘密来自:

  • Azure AD - 应用程序类型Web应用程序/ Api - 工作,可以创建用户
  • Azure AD - 应用程序类型本机 - 不起作用,无法创建用户
  • Azure B2C - 根据链接在Powershell中创建的应用程序 - 可以创建用户,但是我无法在Azure门户中看到新创建的应用程序,并且无法进行更改.
  • Azure B2C - 在B2C UI中创建的应用程序 - 不起作用,对Graph Api的请求失败并且"权限不足".我在Powershell中手动添加了读/写权限,但这不起作用.

在这一点上,我不知道我的方案的正确方法是什么.

Nan*_* Yu 1

如果要在 Azure AD B2C 中添加本地帐户,可以使用 Azure AD Graph API 来实现,要将本地帐户用户添加到 Azure Active Directory B2C 租户,请参阅创建用户(本地帐户)api 文档

如果您想添加 Facebook 和 Google 等社交帐户,您需要检查这些身份提供者是否提供 REST API 来管理其用户。

编辑

要连接到 Graph API,当前您需要在 Azure AD 中设置另一个应用程序(不是在 azure ad b2c 刀片中):

在此输入图像描述 在该应用程序中,您可以设置应用程序密钥并授予使用 Azure AD Graph API 的权限。另一种方法是使用 powershell 服务主体并附加 3 个 Graph API 权限:

https://azure.microsoft.com/en-us/documentation/articles/active-directory-b2c-devquickstarts-graph-dotnet/

用户登录 B2C 应用程序后,在调用图形 api 时,您可以使用 ADAL v2 或 v3 来获取可与 Azure AD 图形 API 一起使用的访问令牌(使用客户端凭据流)。请参阅上面链接中的代码示例。

如果您想限制可以使用 Graph api 创建用户的用户,您可以在应用程序中编写自己的逻辑来控制它。

更新 :

B2C应用程序(在b2c刀片中创建)可以帮助您登录和注册用户,但B2C应用程序当前无法访问API(在预览中,但无法在我的门户中选择任何api),因此您需要使用 AD 应用程序(在 azure adblade 中),该应用程序可以授予访问其他 API(例如 Microsoft Graph API)的权限。当点击链接时: https: //learn.microsoft.com/en-us/azure/active-directory-b2c/active-directory-b2c-devquickstarts-graph-dotnet,在文章中他创建了一个 ServicePrincipal 而不是一个应用程序,所以你找不到该应用程序,请单击此处了解有关 Azure Active Directory 中的应用程序和服务主体对象的更多详细信息