Вызовите Azure защищенный от рекламы API из powershell с именем пользователя / паролем - PullRequest
0 голосов
/ 18 июня 2019

У меня есть веб-интерфейс, защищенный Azure AD.Мой javascript отправляет обратный URL-адрес, по которому пользовательский токен доступа отправляется на

https://login.microsoftonline.com/{my_tenant}/oauth2/v2.0/token/?redirect_uri={my_url}&...

. Теперь я хочу получить доступ к своему API-интерфейсу с помощью powershell, и по этой причине я хотел бы просто получить токен в качестве ответа.Я пробовал этот пароль владельца ресурса с кодом ниже, но он просто говорит, что имя пользователя или пароль неверны ... (я использую то же самое для ручного входа)

   $creds =  @{
        client_id = $clientId
        username = $username
        password = $password
        grant_type = "password"
        scope="User.Read" 
    }

$headers = @{        
    "Content-Type"="application/x-www-form-urlencoded"
}
Invoke-RestMethod $authUrl -Method Post -Body $creds -Headers $headers;  

Итак, вкратце, я хочу войти в систему, используя имя пользователя и пароль с powershell, это возможно?

1 Ответ

1 голос
/ 19 июня 2019

Я не могу воспроизвести вашу проблему, пожалуйста, проверьте ваш логин и пароль.

Или вы можете попробовать мой рабочий пример, и если вы хотите получить токен из вашего собственного API, scope должно быть {Application ID URI or Application ID}/User.Read, если вы используете scope="User.Read", он представляет API-интерфейс MS Graph по умолчанию.

Sample

 $authUrl = "https://login.microsoftonline.com/{tenant-id}/oauth2/v2.0/token/"

 $clientId = "xxxxxxxxxxxxxxxxxxx"
 $username = "xxxxxx@xxx.onmicrosoft.com"
 $password = "xxxxxx"

   $creds =  @{
        client_id = $clientId
        username = $username
        password = $password
        grant_type = "password"
        scope="{Application ID URI or Application ID}/User.Read" 
    }

$headers = @{        
    "Content-Type"="application/x-www-form-urlencoded"
}
Invoke-RestMethod $authUrl -Method Post -Body $creds -Headers $headers
* +1012 *enter image description here

Обновление:

При использовании потока учетных данных для пароля владельца ресурса обратите внимание на важные вещи, приведенные ниже.

enter image description here

...