получить все группы AAD, в которых участник службы добавлен в качестве участника - PullRequest
0 голосов
/ 20 апреля 2020

У меня есть сценарий, мне нужно написать функциональные тесты для моих API. API использует Azure AD аутентификацию. В системе существует несколько ролей, и роль пользователя определяется на основе членства в различных группах AD. поэтому для функционального тестирования мне нужны разные пользователи в разных группах.

Я создал принципалов службы с правами участника в подписке, добавил их в группы и получил в соответствии с графическим разрешением API типа приложения API. - Application.Read.All - Directory.Read.All

Теперь я использовал эти apis для завершения моего варианта использования.

1- https://login.microsoftonline.com/ {tenant-Id} / oauth2 / token

для получения токена доступа для субъекта службы.

2-GET https://graph.microsoft.com/v1.0/me/memberOf

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

{
    "error": {
        "code": "Request_ResourceNotFound",
        "message": "Resource 'xxxx471-bxxxa-45a2-b61b-18xxxxx42af88' does not exist or one of its queried reference-property objects are not present.",
        "innerError": {
            "request-id": "fxxxxc41-319e-xxxx-xxxx-360xxxx58077",
            "date": "2020-04-13T11:41:01"
        }
    }
}

Я также попробовал это

3- https://graph.microsoft.com/v1.0/users/ {princialId} / memberOf

и получите следующий ответ

    "error": {
        "code": "Request_ResourceNotFound",
        "message": "Resource 'xxxxx-xxxx-xxxx-b61b-18421142af88' does not exist or one of its queried reference-property objects are not present.",
        "innerError": {
            "request-id": "fxxxxc41-319e-xxxx-xxxx-360xxxx58077",
            "date": "2020-04-14T05:59:03"
        }
    }
}

Я использовал идентификатор объекта приложения, зарегистрированного в azure AD. Когда я искал принципала службы с помощью Power Shell с помощью следующей команды, я нашел другой Object_Id, чем тот, который написан в приложении AD на azure portal

команда: get-AzureADServicePrincipal

с этим Object_Id я смог чтобы получить группы участников службы с помощью бета-служб.

https://graph.microsoft.com/beta/servicePrincipals/ {идентификатор объекта} / memberOf

любой может объяснить, почему я не смог получить группы обслуживания принципал, использующий сервис v1.0. Спасибо

Ответы [ 2 ]

0 голосов
/ 25 апреля 2020

Я согласен, что бета-сервис не был частью V1.0, но согласно документации V1

https://graph.microsoft.com/v1.0/users/ {id | userPrincipalName} / memberOf

должно работать.

пожалуйста, посетите https://docs.microsoft.com/en-us/graph/api/user-list-memberof?view=graph-rest-1.0&tabs=http

Пожалуйста, найдите документацию здесь

0 голосов
/ 21 апреля 2020

кто-нибудь может объяснить, почему мне не удалось получить группы участника службы с помощью службы v1.0.

Поскольку версия v1.0 не поддерживает этот API GET /servicePrincipals/{id}/memberOf , это может быть доступно только в версии Beta.

Вы можете проверить это, сделав c - List servicePrincipal memberOf, выберите Version с помощью 1.0, затем он выдаст сообщение, как показано ниже:

enter image description here

enter image description here


Я использовал идентификатор объекта приложения, зарегистрированного в azure AD. когда я искал участника службы с помощью Power Shell с помощью следующей команды, я обнаружил, что Object_Id отличается от того, который написан в приложении AD на azure portal

Object Id участника службы не совпадает с регистрации приложения, то, что вы получили с PowerShell, является правильным, также вы можете найти его на портале в Enterprise applications, как показано ниже.

enter image description here

...