Как предоставить приложению Azure AD доступ к необходимым разрешениям с помощью модуля PowerShell Az

Я пытаюсь переписать сценарий powershell, который создает приложение Azure AD и назначает ему разрешение. Сценарий использует модуль AzureAD, я хотел бы использовать новый модуль Az, чтобы запустить его в Linux/MacOS.

Создать новое приложение легко (New-AzADApplication), но у меня проблема с разрешениями.

Старый скрипт использует этот код для назначения разрешений:

#=============Graph Permissions========================
$req = New-Object -TypeName "Microsoft.Open.AzureAD.Model.RequiredResourceAccess"
$acc1 = New-Object -TypeName "Microsoft.Open.AzureAD.Model.ResourceAccess" -ArgumentList "df021288-bdef-4463-88db-98f22de89214","Role"

$req.ResourceAccess = $acc1
$req.ResourceAppId = "00000003-0000-0000-c000-000000000000" #Microsoft Graph   

Set-AzureADApplication -ObjectId $AppObjectId  -RequiredResourceAccess $req

Но это не будет работать в Linux/MacOS. Есть какой-либо способ сделать это? Если не из powershell, то, возможно, с помощью какого-то другого метода? Основная цель — запустить его из-под Linux.


person paulpb    schedule 27.03.2019    source источник
comment
Сценарий, которым вы делитесь, на самом деле не предоставляет разрешения, а просто помечает разрешения по мере необходимости. Вам также нужно предоставить разрешения в арендаторе?   -  person Philippe Signoret    schedule 28.03.2019
comment
@PhilippeSignoret Действительно, мне нужно, но это уже решено с помощью согласия администратора через запрос URL-адреса - docs.microsoft.com/bs-latn-ba/azure/active-directory/   -  person paulpb    schedule 28.03.2019


Ответы (1)


Azure CLI легко получить начинается с и лучше всего используется для межплатформенного интерфейса командной строки Microsoft для управления ресурсами Azure в macOS, Linux или Windows и запуска его из командной строки.

Ваше дело

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

разрешение приложения az ad add --api --api-permissions --id [--subscription]

Например

См. раздел Добавление разрешения Graph API "Войти и прочитать профиль пользователя" ниже:

az ad app permission add --id eeba0b46-78e5-4a1a-a1aa-cafe6c123456 --api 00000002-0000-0000-c000-000000000000 --api-permissions 311a71cc-e848-46a1-bdf8-97ff7156d8e6=Scope

Обязательные параметры

Для этого необходимы следующие параметры: разрешение

--апи

Целевой API для доступа.

--api-разрешения

Разделенный пробелами список =.

--id

Идентификатор uri, идентификатор приложения или идентификатор объекта.

Для получения более подробной информации о команде CLI вы также можете обратиться к здесь

Примечание:

Чтобы выполнить приведенную выше команду, вам необходимо установить CLI локально, запустить его в браузере с помощью Azure Cloud Shell или запустить в контейнере Docker. Для справки по установке вы можете увидеть здесь

Команда PowerShell

Подробнее см. шаги здесь

Я надеюсь, что это будет полезно, что вы ожидали сделать. Давайте попробуем. Благодарю вас!

person Md Farid Uddin Kiron    schedule 28.03.2019
comment
@paulpb В вашем случае вы можете попробовать. Дайте мне знать, если у вас есть еще вопросы относительно вашей проблемы. - person Md Farid Uddin Kiron; 28.03.2019
comment
Привет, твой ответ был очень полезен. Docker с Azure Cloud Shell выглядит лучшим решением. Я собираюсь попробовать это прямо сейчас! - person paulpb; 28.03.2019
comment
Я сделал это, но из-за моей низкой репутации мои голоса не отображаются. - person paulpb; 28.03.2019
comment
Этот ответ скопирован из справочника по API. Но чего все еще не хватает, так это того, где найти сопоставление guid (311a71cc...) для входа и чтения профиля пользователя? - person Nikolai Koudelia; 03.05.2019
comment
@Nikolai Koudelia Вы правы, мы всегда стараемся направить наш официальный документ пользователю, поскольку я также указал здесь ссылку на API. Что обычно происходит, иногда трудно найти точный ресурс, когда это необходимо, если в документе есть точное исправление, лучше сослаться на них, я сделал то же самое. Спасибо за ваш комментарий. - person Md Farid Uddin Kiron; 03.05.2019
comment
@MdFaridUddinKiron Когда я пытаюсь использовать ваш пример az ad app permission add --id [my ID here] --api 00000002-0000-0000-c000-000000000000 --api-permissions 311a71cc-e848-46a1-bdf8-97ff7156d8e6=Scope, он возвращает Updates to converged applications are not allowed in this version. Есть идеи, что здесь происходит? Я до сих пор не могу понять, как добавить разрешения через командную строку. - person Eric Hansen; 03.07.2019
comment
@EricHansen К какой роли вы принадлежите или у вашего арендатора есть это разрешение на выполнение? - person Md Farid Uddin Kiron; 04.07.2019
comment
Для ошибки «Обновления конвергентных приложений в этой версии не разрешены» я провел тест в своей среде, но не смог воспроизвести ошибку. Кажется, это связано с типом приложения. Не могли бы вы поделиться дополнительной информацией о том, как вы создали приложение? Вы добавили его из регистрации приложения? Это специально разработанное приложение? - person Md Farid Uddin Kiron; 04.07.2019
comment
@MdFaridUddinKiron Это в моем личном кабинете. Я верховный повелитель. Я создал регистрацию приложения на портале. Регистрация приложения максимально проста. Я просто дал ему имя и создал его. - person Eric Hansen; 05.07.2019
comment
Значит, это невозможно с Az PowerShell, как запросил OP? - person James Love; 04.05.2020
comment
Здравствуйте, я обновил ответ. Пожалуйста, посмотрите и дайте мне знать. Спасибо. - person Md Farid Uddin Kiron; 04.05.2020