首页 文章

Azure AD / B2C用户的安全API

提问于
浏览
5

我的用例是:

  • 通过API使用自定义字段创建用户,使用任何电子邮件地址指定密码

  • 通过API更新/禁用这些用户

  • 'Sign in'到Azure AD应用程序,通过rest API获取用户详细信息以获取令牌

  • 在Http标头中传递令牌时向Web API发出授权请求

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

Edit 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中创建的应用程序 - 工作,可以创建用户,但我可以't see the newly created application in the Azure Portal, and can'进行更改 .

  • Azure B2C - 在B2C UI中创建的应用程序 - 不起作用,使用'insufficient permissions'对Graph Api的请求失败 . 我在Powershell中手动添加了读/写权限,但这不起作用 .

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

1 回答

  • 1

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

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

    Edit

    要连接到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创建用户的用户,您可以在应用程序中编写自己的逻辑来控制它 .

    Update :

    B2C应用程序(在b2c刀片中创建)可以帮助您登录和注册用户,但B2C应用程序可以在我的门户中选择任何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中的应用程序和服务主体对象的更多详细信息

相关问题