Какой самый простой способ получить идентификатор приложения AAD службы приложений с поддержкой MSI - PullRequest
0 голосов
/ 10 июля 2019

У меня служба приложения, развернутая с включенным MSI (с назначенной системой идентификацией). Эта служба приложений будет использовать MSI для получения токена доступа к защищенному веб-API AAD. Веб-API извлечет appid из токена и проверит appid по предварительно настроенному белому списку. Если appid отсутствует в белом списке, доступ запрещен.

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

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

$apiVersion = "2017-09-01"
$resourceURI = "<resource uri of AAD protected Web API>"
$tokenAuthURI = $env:MSI_ENDPOINT + "?resource=$resourceURI&api-version=$apiVersion"
$tokenResponse = Invoke-RestMethod -Method Get -Headers @{"Secret"="$env:MSI_SECRET"} -Uri $tokenAuthURI
$accessToken = $tokenResponse.access_token 

Но мне интересно, есть ли более простой способ получить appid службы приложений MSI без получения токена.

1 Ответ

0 голосов
/ 10 июля 2019

Вы можете использовать (Get-AzADServicePrincipal -ObjectId xxxx).ApplicationId, идентификатор объекта легко найти, когда вы проверите его на портале веб-приложений.

enter image description here

enter image description here

Вы также можете искать приложение в Корпоративных приложениях по идентификатору приложения.enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...