Кажется, он также не работает с помощью Azure CLI ...?

аюсь включить службу для проверки подлинности с использованием токенов AAD. Мой план состоит в том, чтобы проверить утверждение «groups» в токене, чтобы убедиться, что вызывающий абонент является членом группы безопасности, которую мы создали.

Например, мы создадим group1 для читателей и group2 для писателей. Затем, основываясь на претензиях "групп", я выясню правильный уровень доступа.

Я использую приложение AAD для выдачи токенов (не пользователя), поэтому мне нужно, чтобы это приложение входило в группу безопасности. Кажется, Azure AD powershell не принимает идентификаторы приложений в качестве членов группы. Как это решить? Существуют ли другие рекомендуемые шаблоны, когда вызывающий абонент является другим приложением AAD?

Используемая команда:https://docs.microsoft.com/en-us/powershell/module/azuread/Add-AzureADGroupMember?view=azureadps-2.0

Error:  
Add-AzureADGroupMember : Error occurred while executing AddGroupMember
Code: Request_BadRequest
Message: An invalid operation was included in the following modified references: 'members'.
RequestId: 0441a156-3a34-484b-83d7-a7863d14654e
DateTimeStamp: Mon, 11 Dec 2017 21:50:41 GMT
HttpStatusCode: BadRequest
HttpStatusDescription: Bad Request
HttpResponseStatus: Completed
At line:1 char:1
+ Add-AzureADGroupMember -ObjectId "9c2cdf89-b8d6-4fb9-9116-7749adec85c ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (:) [Add-AzureADGroupMember], ApiException
    + FullyQualifiedErrorId : Microsoft.Open.AzureAD16.Client.ApiException,Microsoft.Open.AzureAD16.PowerShell.AddGroupMember
 e sung28 мар. 2018 г., 21:44
На самом деле, если у вас уже есть приложение Azure AD, похоже, что у вас уже есть субъект службы и вы можете получить его через Get-AzureADServicePrincipal:docs.microsoft.com/en-us/azure/data-lake-store/...
 jww29 авг. 2018 г., 23:41
Stack Overflow - сайт для вопросов программирования и разработки. Этот вопрос кажется не по теме, потому что он не касается программирования или разработки. ВидетьКакие темы я могу задать здесь в справочном центре. возможноОшибка сервера или жеWebmaster Stack Exchange было бы лучше спросить.

Ответы на вопрос(1)

Решение Вопроса
К сожалению, вы не можете добавить приложение в качестве члена группы Azure AD. Хотя официальный документ для командлета PowershellAdd-AzureADGroupMember не дает понять, что вы не можете использовать приложенияObjectId какRefObjectIdАбсолютно вы не можете его использовать. Вы также не можете добавить приложение в качестве члена группы Azure AD.

мы создадим group1 для читателей и group2 для писателей. Затем, основываясь на претензиях "групп", я выясню правильный уровень доступа.

Для вашего сценария, я боюсь, что вы не можете достичь этого на данный момент.Я понимаю, зачем тебе это нужно. По вашей просьбе моя мысльназначение приложения из корпоративного приложения группам или пользователям и управлять пользователями с разными правами доступа. Однако вы не можете выбрать больше ролей для выбранной группы. Единственная роль - это доступ по умолчанию. Если вы хотите определить больше ролей для приложения, вы можете обратиться кэта документация, Я также попытался использовать Azure AD RBAC и создать новый условный доступ для своего тестового приложения, но у всех их неттолько для чтения этот выбор. Вы также можете поместить свою идею вФорум обратной связи AzureЛазурная команда увидит это. Кроме того, я поддержу вашу идею.Обновить:

В настоящее время вы можете добавить участника службы в группу AAD:

Пример:

$spn = Get-AzureADServicePrincipal -SearchString "yourSpName"

$group = Get-AzureADGroup -SearchString "yourGroupName"

Add-AzureADGroupMember -ObjectId $($group.ObjectId) -RefObjectId $($spn.ObjectId)
Обновлено 2:

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

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

Вы можете открыть свое веб-приложение / API с разрешениями приложения, отредактировав манифест в регистрациях приложений.

Вы можете перейти на портал Azure> Azure Active Directory> Регистрация приложений> Выберите приложение> Манифест.

ВappRolesВы можете вставить контент следующим образом:

  {
      "allowedMemberTypes": [
        "Application"
      ],
      "displayName": "Access to the settings data",
      "id": "c20e145e-5459-4a6c-a074-b942bbd4cfe1",
      "isEnabled": true,
      "description": "Administrators can access to the settings data in their tenant",
      "value": "Settingsdata.ReadWrite.All"
    },

Затем вы можете пройти регистрацию другого приложения, для которого вы хотите дать разрешение> Настройки> требовать разрешения> Добавить> Поиск имени приложения, к которому вы хотите получить доступ> Выберите разрешение приложения, которое вы создали ранее.

Следовательно, ваш sp может получить токен с разрешениями этого приложения в заявках на токен.

Кроме того, для авторизации с ресурса необходимо добавить логику кода, чтобы задать политику управления для этого токена сSettingsdata.ReadWrite.All Запрос.

 Wayne Yang - MSFT19 июн. 2018 г., 03:29
Привет @ rudimenter, Это новая статья, позвольте мне проверить это.
 Sat Thiru28 мар. 2018 г., 22:04
Я не смог найти пользовательский голосовой элемент для этого, как предложил Уэйн, поэтому я продолжил и создал его. Пожалуйста, подпишите это на сайте Microsoft.feedback.azure.com/forums/169401-azure-active-directory/...
 Wayne Yang - MSFT20 июн. 2018 г., 10:02
Привет @ rudimenter, я проверил эту статью и протестирую ее. Это сработало! Я обновлю свой ответ. Спасибо за ваш комментарий.
 rudimenter18 июн. 2018 г., 20:20
Следующая ссылка говорит, что вы можете сделать это и объясняет, как:blogs.technet.microsoft.com/stefan_stranger/2018/06/06/...
 erewok05 сент. 2018 г., 01:44
Кажется, он также не работает с помощью Azure CLI ...?

Ваш ответ на вопрос