Мне нужно добавить ReplyUrl в приложение AAD с помощью субъекта-службы с помощью Azure CLI, но я получаю сообщение об ошибке «Недостаточно прав для завершения операции». Изначально я пробовал это в Azure DevOps, но теперь воспроизвел это только с помощью интерфейса командной строки.
Я начал использовать DevOps и принципала службы, созданного при подключении клиента Target AAD к моей организации DevOps. Я предоставил разрешения API Microsoft.Graph.Application.ReadWrite.All субъекту службы и дал согласие администратора. Я создал новый ClientSecret и использовал его для входа в систему клиента с помощью интерфейса командной строки. Когда я запускаю команду для обновления URL-адресов ответов, я получаю ошибку недостаточных прав, описанную выше.
Если я запускаю команду CLI из Cloud Shell bash, она работает нормально.
az login --service-principal -u xxxxxx-xxxx-xxxx-xxxx-xxxxxxxxx -p xxxxxxxxxxxxx --tenant xxxxxxxxxx
[
{
"cloudName": "AzureCloud",
"id": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
"isDefault": true,
"name": "Windows Azure MSDN - Visual Studio Ultimate",
"state": "Enabled",
"tenantId": "xxxxxxxxxxxxxxxxxxx",
"user": {
"name": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
"type": "servicePrincipal"
}
}
]
тогда
az ad app update --id xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx --reply-urls https://localhost:44381/
Insufficient privileges to complete the operation.
Если я запускаю команду обновления приложения az ad из облачной оболочки, она работает нормально.
Если я попытаюсь использовать субъект службы, созданный DevOps, я получу сообщение об ошибке.
Я только что создал чистого нового принципала вне DevOps (az ad app create-for-rbac), а затем вручную добавил разрешение Application.ReadWrite.All и согласился на это - и это тоже дает мне ту же ошибку!
Разрешения и согласие API приложения
Я рассмотрел похожие вопросы, но на самый близкий был ответ, в котором нам нужно предоставить правильные разрешения и предоставить согласие в качестве ответа, что я уже сделал.