使用Azure app / service principal列出privilegedRoles

时间:2018-06-06 18:51:40

标签: microsoft-graph

我正在尝试使用在Azure的Active Directory中创建的应用程序来请求"List privilegedRoles" resource

我已经在Graph API应用程序中提供了所有应用程序权限和委派权限,但无济于事。

响应总是:

"error": {
  "code": "UnknownError",
  "message": "{\"message\":\"An error has occurred.\"}",
  "innerError": {
    "request-id": "3e1bb5cf-2d2e-402f-8648-27193b28510a",
    "date": "2018-06-06T14:26:02"
  }
}

非常感谢任何帮助

更新1:
完整复制该问题 -

第1步:管理员同意

打开浏览器: https://login.microsoftonline.com/MY-TENANT-ID/adminconsent?client_id=MY_APP_ID&state=12345&redirect_uri=http://localhost/myapp/permissions

并授予管理员对所请求权限的同意

看成功重定向到:
http://localhost/myapp/permissions?admin_consent=True&tenant=MY_TENANT_ID&state=12345

第2步:获取令牌

curl -X POST -H "Content-Type: application/x-www-form-urlencoded" -d 'client_id=MY_APP_ID&scope=https%3A%2F%2Fgraph.microsoft.com%2F.default&client_secret=MY-APP-SECRET&grant_type=client_credentials' 'https://login.microsoftonline.com/MY_TENANT_ID/oauth2/v2.0/token'

得到回复:

{
    "token_type": "Bearer",
    "expires_in": 3599,
    "ext_expires_in": 0,
    "access_token": "SOME-VERY-LONG-TOKEN"
}

第3步:尝试获取资源

curl -X GET -H "Authorization: Bearer SOME-VERY-LONG-TOKEN" 'https://graph.microsoft.com/beta/privilegedRoles'

错误:

{
  "error": {
    "code": "UnknownError",
    "message": "{\"message\":\"An error has occurred.\"}",
    "innerError": {
      "request-id": "cc9c950c-369c-4fb5-8ec4-eb4048e32a5d",
      "date": "2018-06-10T09:09:57"
    }
  }
}

1 个答案:

答案 0 :(得分:0)

您只能使用委派权限来调用MSGraph PIM Api。 基本上,您需要进行以下设置:

  1. 创建原生AAD应用程序
  2. 授予它对Azure AD权限的读取和写入特权访问权限,并确保管理员同意
  3. 使用此应用程序使用委派令牌调用MSGraph PIM Api。
  4. 有关详细信息,请参阅https://blogs.msdn.microsoft.com/anujchaudhary/2018/06/07/powershell-sample-for-privileged-identity-management-pim-for-azure-ad-roles/