gpt4 book ai didi

asp.net-web-api - Azure AD/B2C 用户的安全 API

转载 作者:行者123 更新时间:2023-12-04 21:34:01 25 4
gpt4 key购买 nike

我的用例是:

  • 通过带有自定义字段的 API 创建用户,使用任何电子邮件地址指定密码
  • 通过 API
  • 更新/禁用这些用户
  • 通过 REST API 使用用户详细信息“登录”到 Azure AD 应用程序以获取 token
  • 当 token 在 Http header 中传递时,向 Web API 发出授权请求

  • 所有这些都可以通过直接的 Azure AD/B2C 来实现,还是我应该查看其他一些身份提供商,例如身份服务器/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 - 应用程序类型 native - 不起作用,无法创建用户
  • Azure B2C - 根据链接在 Powershell 中创建的应用程序 - 有效,可以创建用户,但是我在 Azure 门户中看不到新创建的应用程序,也无法进行更改。
  • Azure B2C - 在 B2C UI 中创建的应用程序 - 不起作用,对 Graph Api 的请求因“权限不足”而失败。我在 Powershell 中手动添加了读/写权限,但这不起作用。

  • 在这一点上,我不知道我的场景的正确方法是什么。

    最佳答案

    如果要在 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
    在该应用程序中,您可以设置应用程序 key 并授予使用 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(使用客户端凭据流)一起使用的访问 token 。请引用上面链接中的代码示例。

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

    更新:

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

    关于asp.net-web-api - Azure AD/B2C 用户的安全 API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43264520/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com