Azure B2C应用需要什么权限才能在B2C租户中创建用户?

goqiplq2  于 2023-02-16  发布在  其他
关注(0)|答案(1)|浏览(237)

我需要将用户从旧应用程序迁移到Azure B2C。
我使用这个代码示例:https://github.com/azure-ad-b2c/user-migration/tree/master/pre-migration
我已经在B2C目录中创建了一个应用程序,并授予了以下权限。

但是当应用程序调用用户创建端点时,我得到了这个错误。

我错过了什么?

ubof19bj

ubof19bj1#

我尝试通过Postman在我的环境中重现相同的问题,结果如下:

我在B2C目录中注册了一个应用程序,并添加了与您相同的API权限,如下所示:

现在,我使用带有以下参数的授权代码流生成了访问令牌

POST https://login.microsoftonline.com/<tenantID>/oauth2/v2.0/token
client_id:<appID>
grant_type:authorization_code
scope: https://graph.microsoft.com/.default
code:code
redirect_uri: https://jwt.ms
client_secret: <secret>
    • 答复:**

当我尝试使用上面的访问令牌和下面的查询创建B2C用户时,我得到了类似的错误如下:

POST https://graph.microsoft.com/v1.0/users
Content-type: application/json

{
  "displayName": "Sri Test",
  "identities": [
    {
      "signInType": "userName",
      "issuer": "sritenantb2c.onmicrosoft.com",
      "issuerAssignedId": "sritest"
    },
    {
      "signInType": "emailAddress",
      "issuer": "sritenantb2c.onmicrosoft.com",
      "issuerAssignedId": "xxxsridevim@microsoft.com"
    }
  ],
  "passwordProfile" : {
    "password": "password-value",
    "forceChangePasswordNextSignIn": false
  },
  "passwordPolicies": "DisablePasswordExpiration,DisableStrongPassword"
}
    • 答复:**

解决错误,请确保添加以下**Delegated**API权限,如下所示:

同意上述权限后,我通过Postman再次生成了访问令牌,如下所示:

POST https://login.microsoftonline.com/<tenantID>/oauth2/v2.0/token
client_id:<appID>
grant_type:authorization_code
scope: https://graph.microsoft.com/.default
code:code
redirect_uri: https://jwt.ms
client_secret: <secret>
    • 答复:**

当我在下面的查询中使用此标记时,我成功地得到了响应:

POST https://graph.microsoft.com/v1.0/users
Content-type: application/json

{
  "displayName": "Sri Test",
  "identities": [
    {
      "signInType": "userName",
      "issuer": "sritenantb2c.onmicrosoft.com",
      "issuerAssignedId": "sritest"
    },
    {
      "signInType": "emailAddress",
      "issuer": "sritenantb2c.onmicrosoft.com",
      "issuerAssignedId": "xxxsridevim@microsoft.com"
    }
  ],
  "passwordProfile" : {
    "password": "password-value",
    "forceChangePasswordNextSignIn": false
  },
  "passwordPolicies": "DisablePasswordExpiration,DisableStrongPassword"
}
    • 答复:**

当我在Portal中选中相同选项时,B2C用户成功创建,如下所示:

在您的情况下,请确保通过根据您的要求授予管理员同意,在应用程序中添加User.ReadWrite.AllDirectory.ReadWrite.AllDelegated权限。

    • 更新日期:**

如果您希望根据最低权限标准限制访问,User.ReadWrite.All就足够了。

相关问题