2017-04-03 57 views
3

我正尝试使用Microsoft Graph API检索为Azure AD门户上的租户创建的策略。据我所知,从图形API文档中,所有策略CRUD操作都需要Directory.AccessAsUser.All的范围。Microsoft Graph API:403尝试检索租户上的策略时出现禁止的错误

这个范围转化为许可访问目录作为登录用户这里提到 - https://developer.microsoft.com/en-us/graph/docs/authorization/permission_scopes

我一直在试图配置我的新Azure的门户网站和旧有不同的两种应用失败点。

在新的门户:

我已经创建了我的房客继https://docs.microsoft.com/en-us/azure/azure-resource-manager/resource-group-create-service-principal-portal指令的Web应用程序。

当配置访问控制时,我的租户的唯一订阅是访问Azure Active Directory并且我无法在新门户中为此配置访问控制。从浏览器中,当我选择访问控制(IAM),我看到错误 - “呼吁ARM失败,httpCode =错误请求,错误码= DisallowedOperation,消息=目前的订阅类型不允许任何供应商执行操作命名空间,请使用不同的订阅,原因=错误的请求。“ “添加”角色按钮也被禁用。

我能不能配置订阅的访问控制访问Azure Active Directory?如果是这样,是否没有其他方式来使用API​​检索我的租户的策略?

在旧的门户网站:

对于我的应用程序,我配置的权限为:

Microsoft Graph 
Windows Azure Active Directory 

我验证了这两个API的配置与许可访问目录中的门户网站登录用户。即使在这种情况下,我不断收到故宫403,当我尝试访问https://graph.microsoft.com/beta/policies端点列出我的房客的政策。

这里是我得到我的访问令牌(https://login.microsoftonline.com/{my租户名} /的oauth2 /令牌

{ 
    "aud": "https://graph.microsoft.com", 
    "iss": "https://sts.windows.net/8b49696d-462a-4a71-9c5c-f570b2222727/", 
    "iat": 1491256764, 
    "nbf": 1491256764, 
    "exp": 1491260664, 
    "aio": "Y2ZgYAi68q2XUTk0ykH7/TZzrhYbAA==", 
    "app_displayname": "test-app", 
    "appid": "951bb92d-5b68-45ae-bb8b-d768b2696ccc", 
    "appidacr": "1", 
    "idp": "https://sts.windows.net/8b49696d-462a-4a71-9c5c-f570b2222727/", 
    "oid": "7ccea836-d389-4328-a155-67092e2805e9", 
    "roles": [ 
     "Device.ReadWrite.All", 
     "User.ReadWrite.All", 
     "Directory.ReadWrite.All", 
     "Group.ReadWrite.All", 
     "IdentityRiskEvent.Read.All" 
     ], 
    "sub": "7ccea836-d389-4328-a155-67092e2805e9", 
    "tid": "8b49696d-462a-4a71-9c5c-f570b2222727", 
    "uti": "4fmUDNWWHkSoTn2-7gtTAA", 
    "ver": "1.0" 
} 

显然Directory.AccessAsUser有效载荷。所有角色在导致403错误的此令牌上缺失。因此,无论我在这里丢失了什么,或者API中存在一个阻止所有权限被正确配置的错误。非常感谢任何帮助/指示!

请注意:

  1. 我只使用了测试版的API,因为我没有找到在V1政策相应的端点。0 API和Azure图形API文档建议使用Microsoft Graph API。
  2. 使用相同的配置,使用Azure图形API端点还会为策略端点返回403 Forbidden错误(https://msdn.microsoft.com/zh-cn/library/azure/ad/graph/api/基于在访问令牌中的声明政策的操作#列表政策

回答

3

,你使用获得访问令牌客户端凭证流该令牌用于授权的应用程序。这种令牌中没有用户的这种委托权限。

要获取用户的代理权限的访问令牌,您需要使用其他流程,如授权代码授权流程。您可以参考detail的链接。

+0

谢谢,这有帮助! – sdworld

相关问题