Получить информацию из Azure AD с помощью curl и accestoken - PullRequest
0 голосов
/ 01 апреля 2020

Repost-предупреждение, но в течение нескольких часов борется с curl (приглашение и сценарий оболочки Ubuntu), Azure Active Directory (AAD), токены на предъявителя, передача параметров и кавычек Я не могу понять это со всей помощью, найденной еще на net.

Я получил accesToken = {действительно длинная неработоспособная и часто нуждающаяся в обновлении строка}

1) Когда я выполняю:

response = curl --location --request GET 'https://graph.microsoft.com/v1.0/users?$select=userPrincipalName' --header "Authorization: Bearer { this long string from above }"

Я получаю правильный ответ, список всех userPrincipalNames пользователей, которые у меня есть в AAD.

2) При выполнении любого из нижеперечисленных команды:

экспорт аутентификации = "Авторизация: Носитель" $ accessToken

response = curl --location --request GET 'https://graph.microsoft.com/v1.0/users?$select=userPrincipalName' --header "'"$authentication"'"

response = curl --location --request GET 'https://graph.microsoft.com/v1.0/users?$select=userPrincipalName' --header ""$authentication""

response = curl --location --request GET 'https://graph.microsoft.com/v1.0/users?$select=userPrincipalName' --header "$authentication"

response = curl --location --request GET "https://graph.microsoft.com/v1.0/users?$select=userPrincipalName" --header $authentication

Я получил сообщение «Не удается устранить ошибку хоста» или значение, подобное «} date»: «2020-03-31T15: 26 : 58 "40e8-a128-67f994881632", '...

3) Когда я выполняю эту команду:

response = curl --location --request GET "https://graph.microsoft.com/v1.0/users?$select=userPrincipalName" --header "Authorization: Bearer $accessToken"

Я получить всю информацию обо всех пользователях, перечисленных в AAD, а не только userPrincipalName, хотя и упоминается в URL.

Мой главный и только 2 вопроса:

1) что именно я делаю неправильно в отношении кавычек и

2) Как я могу получить только это userPrincipalName, не набирая этот длинный accesToken в моей команде?

Заранее благодарен за совет, умение и добрые пожелания,

Aad Dijksman

1 Ответ

0 голосов
/ 01 апреля 2020

1) что именно я делаю неправильно в отношении кавычек

Я тестирую на своем сайте, и он работает с кодом, как показано ниже:

export accessToken="eyJoexxxxxxxxxxxxxxxx"
export authentication="Authorization: Bearer "$accessToken
curl --location --request GET 'https://graph.microsoft.com/v1.0/users' --header "$authentication"

Весь снимок команды как показано ниже:

enter image description here

2) Как я могу получить только это userPrincipalName, не вводя этот длинный accesToken в моей команде?

Нет, это невозможно . Если вы хотите получить доступ к Graph API в Azure AD, вы должны указать свой токен доступа.

...