Microsoft Graph API: 403 Forbidden error when trying to retrieve policies on tenant

Обновить

December 2018

Просмотры

3.4k раз

5

I'm trying to retrieve the policies created for my tenant on the Azure AD portal using the Microsoft Graph API. As I understand from the graph API documentation, all the policy CRUD operations require a scope of Directory.AccessAsUser.All.

This scope translates to the permission Access directory as the signed-in user as mentioned here - https://developer.microsoft.com/en-us/graph/docs/authorization/permission_scopes

I have been trying to configure my application on the both the new Azure portal and the old one with different failure points.

On the new portal:

I have created a Web Application in my tenant following instructions on https://docs.microsoft.com/en-us/azure/azure-resource-manager/resource-group-create-service-principal-portal.

When configuring access control, the only subscription for my tenant is Access to Azure Active Directory and I'm not able configure access control on this in the new portal. From the browser, when I select Access Control (IAM), I see the error - "Call to ARM failed with httpCode=BadRequest, errorCode=DisallowedOperation, message=The current subscription type is not permitted to perform operations on any provider namespace. Please use a different subscription., reason=Bad Request." The "Add" roles button is disabled as well.

Can I not configure Access control on the subscription Access to Azure Active Directory? If so, is there no other way to retrieve the policies for my tenant using the API?

On the old portal:

Для моего приложения, я настроил разрешение для:

Microsoft Graph
Windows Azure Active Directory

Я проверил на портале , что и интерфейсы настроены с разрешения доступа к каталогу в качестве подписанного в системе пользователя. Даже в этом случае, я получаю 403 Forbidden , когда я пытаюсь получить доступ к 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.All роль отсутствует в этом знак , который вызывает ошибку 403. Так что либо я что - то здесь отсутствует или есть ошибка в API , который предотвращает все разрешения от быть настроен правильно. Значительно признателен за любую помощь / указатели на это!

Пожалуйста, обратите внимание:

  1. Я только с помощью бета-API, потому что я не нашел соответствующую конечную точку для политики на API, v1.0 и документации API Azure Graph рекомендует использовать API Microsoft Graph.
  2. С той же самой конфигурации, используя API конечных точек Azure Graph также возвращает 403 Запретный ошибка для конечной политики ( https://msdn.microsoft.com/zh-cn/library/azure/ad/graph/api/policy-operations# список-политика )

1 ответы

6

Исходя из требований в маркере доступа, вы были получить маркер доступа с использованием учетных данных клиента потоку , который маркер используется для делегирования приложения. Там нет такого разрешения делегата для пользователя в этом виде маркеров.

Чтобы получить маркер доступа для разрешения делегата для пользователей, необходимо с помощью других потоков , как код авторизации потока гранта . Вы можете сослаться на эту ссылку для деталей .