Azure AD / B2C用户的安全API

时间:2017-04-06 19:48:20

标签: asp.net-web-api azure-active-directory identityserver3 auth0 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中创建的应用程序 - 不起作用,对图Api的请求失败并且“权限不足”。我在Powershell中手动添加了读/写权限,但这不起作用。

此时我不知道我的方案的正确方法是什么。

1 个答案:

答案 0 :(得分:1)

如果要在Azure AD B2C中添加本地帐户,可以使用Azure AD Graph API实现此目的,将本地帐户用户添加到Azure Active Directory B2C租户,请参阅Create a user (local account) api document

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

修改

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

enter image description here 在该应用程序中,您可以设置应用程序密钥并授予使用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 Graph API一起使用的访问令牌(使用客户端凭据流)。请参阅上面链接中的代码示例。

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

更新:

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