Встроенный Powershell или CLI не поддерживает установку oauth2AllowIdTokenImplicitFlow
в настоящее время.Кроме того, кажется, что это свойство можно было просто найти в манифесте приложения AD, я не смог найти его ни в одном документе (включая MS Graph или Azure AD Graph).
Но в моем тесте вы могли установить oauth2AllowIdTokenImplicitFlow
через API-интерфейс Azure AD Graph.
Существует два способа вызова API-интерфейса Azure AD Graph: использовать Azure AD Graph Explorer илиPowershell.
- Использование Azure AD Graph Explorer
Использование Azure AD Graph Explorer , просто войдите в свою учетную запись пользователя (создайтеубедитесь, что у вас есть разрешение на обновление приложения), затем вызовите API, как показано ниже.
PATCH https://graph.windows.net/myorganization/applications/{object id of the application}?api-version=1.6
{
"oauth2AllowIdTokenImplicitFlow":true
}
Примечание : при отправке запроса кажется, что индикатор выполнения никогда не завершится,Я не уверен, что это ошибка, но на самом деле она работает через некоторое время, вам просто нужно изменить PATCH
на GET
, чтобы проверить oauth2AllowIdTokenImplicitFlow
приложения.
Если вы хотите использовать PowerShell, выполните следующие действия.
1. Создайте приложение Azure Active Directory , затем Создайте новый секретный ключ приложения и Получите значения для входа в систему.
2. Перейдите к Azure Active Directory
на портале -> App registrations
-> найдите и щелкните свое приложение -> API permissions
-> Add a permission
-> выберите Azure Active Directory Graph
-> нажмите Application permissions
-> выберите разрешение Application.ReadWrite.All
-> нажмите Add permissions
-> нажмите Grant admin consent for xxx
.
3.При использовании скрипта powershell, приведенного ниже, он отлично работает на моей стороне (он ничего не даст при успешном завершении), вы можете проверить результат на портале или использовать Azure AD Graph Explorer.
$ClientID = "a6ec906d-xxxxx00dd3" #ApplicationID
$ClientSecret = "XwaNxxxxx/44" #key from Application
$tennantid = "bb58xxxxxxd6c65"
$objectid = "ca8xxxef66db07c0" #object id of the application
$TokenEndpoint = {https://login.windows.net/{0}/oauth2/token} -f $tennantid
$ARMResource = "https://graph.windows.net/";
$Body = @{
'resource'= $ARMResource
'client_id' = $ClientID
'grant_type' = 'client_credentials'
'client_secret' = $ClientSecret
}
$params = @{
ContentType = 'application/x-www-form-urlencoded'
Headers = @{'accept'='application/json'}
Body = $Body
Method = 'Post'
URI = $TokenEndpoint
}
$token = Invoke-RestMethod @params
$accesstoken = $token.access_token
$url = {https://graph.windows.net/{0}/applications/{1}?api-version=1.6} -f $tennantid,$objectid
$header = @{
'Authorization' = 'Bearer ' + $accesstoken
'Content-Type' = 'application/json'
}
$json = @{
oauth2AllowIdTokenImplicitFlow = 'false' #or true
}
$body = $json | ConvertTo-Json
Invoke-RestMethod –Uri $url –Headers $header -Body $body –Method PATCH