Azure Active Directory B2C - 没有足够的权限来完成操作

时间:2017-11-10 11:01:02

标签: c# asp.net azure azure-active-directory azure-ad-b2c

我创建了Azure AD B2C«MyApplication»。 在请求阅读AD B2C应用程序«MyApplication»的所有用户时,我们收到以下错误:

{
  "odata.error": {
    "code": "Authorization_RequestDenied",
    "message": {
      "lang": "en",
      "value": "Insufficient privileges to complete the operation."
    }
  }
}

对于授权,使用了具有全局管理员权限的本地帐户(myuser@myapplication.onmicrosoft.com)。

我使用下一个URL来获取Graph API的HTTP请求:“https://graph.windows.net/myapplication.onmicrosoft.com/users?api-version=1.6

已成功接收AccessToken并将其添加到请求标头中。

ASP.NET MVC 5应用程序(4.5.2)

使用过的库:

  • Microsoft.Azure.ActiveDirectory.GraphClient version =“2.1.1”
  • Microsoft.IdentityModel.Clients.ActiveDirectory“version =”3.17.1“
  • Microsoft.IdentityModel.Logging“version =”1.1.4“
  • Microsoft.IdentityModel.Protocol.Extensions“version =”1.0.0“
  • Microsoft.IdentityModel.Tokens“version =”5.1.4“
  • Microsoft.Identity.Client“version =”1.1.0-preview“
  • Microsoft.Owin.Security.OpenIdConnect“version =”3.1.0“

在应用注册部分(更多服务 - >安全+身份 - >应用注册)中,有一个名为b2c-extensions-app的嵌入式应用。我是否应该使用此应用程序并将其更改为“所需权限”以访问AD B2C应用程序“«MyApplication»”,以便与AD B2C用户进行CRUD操作?

或者是否有另一个最正确的解决方案?

1 个答案:

答案 0 :(得分:1)

请参阅本指南:Use the Azure AD Graph API: Get an access token

您通过共享密钥获取访问权限,而不是用户。

// The ClientCredential is where you pass in your client_id and client_secret, which are
// provided to Azure AD in order to receive an access_token by using the app's identity.
this.credential = new ClientCredential(clientId, clientSecret);