Получить роль пользователя из Azure AD по Laravel azure ad oauth - PullRequest
0 голосов
/ 19 февраля 2020

Я пытаюсь получить форму роли Azure AD, используя плагин metrogistics / laravel - azure -ad-oauth.

Я получил имя, адрес электронной почты и azure_id от Azure. Но я не могу получить роль пользователя.

user: array:12 [
    "@odata.context" => "https://graph.microsoft.com/v1.0/$metadata#users/$entity"
    "businessPhones" => []
    "displayName" => "Test4"
    "givenName" => "Test4"
    "jobTitle" => null
    "mail" => null
    "mobilePhone" => null
    "officeLocation" => null
    "preferredLanguage" => null
    "surname" => null
    "userPrincipalName" => "test4@xyz.com"
    "id" => "xyz"
  ]

Можно получить роль от Azure. Моя настройка:

image1 image2 image3

Ответы [ 2 ]

0 голосов
/ 22 февраля 2020

У вас есть роль приложения , и, как следует из названия, они принадлежат приложению. Простой поиск объекта пользователя из Microsoft Graph не предоставит их.

И да, как указано в другом ответе, они будут предоставлены приложению в id_token после входа пользователя.

Чтобы получить их независимо от приложения, используйте Get appRoleAssignment Api.

0 голосов
/ 21 февраля 2020

Согласно моим исследованиям, определенная AppRole будет возвращена в id_token. Для получения более подробной информации, пожалуйста, обратитесь к официальной документации и документу

enter image description here

Относительно того, как получить идентификатор пользователя, вы можете использовать Azure AD поток кода авторизации OAuth 2.0 для его реализации. Здесь я использую почтальон для получения access_token и id_token:

enter image description here

И тогда я могу получить id_token

enter image description here

Анализируя идентификатор токена, вы можете получить роль пользователя:

enter image description here


Обновление

Относительно того, как назначить пользователю роль приложения, см. Следующие шаги

  1. Объявление ролей приложения enter image description here enter image description here

  2. Назначить роль пользователю

    a. В панели Azure Active Directory выберите Корпоративные приложения в левом меню навигации Azure Active Directory.

    b. Выберите Все приложения , чтобы просмотреть список всех ваших приложений. Если вы не видите приложение, которое хотите отобразить здесь, используйте различные фильтры в верхней части списка Все приложения , чтобы ограничить список, или прокрутите список вниз, чтобы найти приложение.

    c. назначить роль enter image description here

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