Arhn - архитектура программирования

Запросы гостевой учетной записи в Azure AD или Graph в приложении с одним клиентом

Я ищу информацию для поддержки следующего сценария.

Мы приглашаем пользователей из другой Azure AD в качестве гостей в нашу Azure AD, помещаем их в группу для определенной цели и должны иметь возможность получить этого гостевого пользователя в группах из нашей Azure AD. При попытке использовать Graph мы не можем подключиться к нашему графику, так как гостевая учетная запись все время запрашивает свой собственный график. Мы долго искали в Интернете и протестировали множество примеров приложений, которые на первый взгляд выглядят так, как будто они могут поддерживать наш сценарий, но пока безуспешно.

Одна из причин, по которой мы хотим зарегистрировать одно клиентское приложение, заключается в том, чтобы иметь возможность управлять лицензионной частью наших приложений и управлять исключительно доступом к нашему приложению вместо того, чтобы требовать участия ИТ-отдела клиента в процессе настройки и обслуживания. их часть мультитенантного решения.

Теперь я потерял все направления, и мне просто нужен толчок в каком-то направлении, чтобы двигаться дальше.


  • Я считаю, что AAD должен поддерживать ваш сценарий, но неясно, что именно вы в настоящее время пытаетесь и где вы в настоящее время терпите неудачу. Если бы вы могли поделиться более подробной информацией о ваших текущих методах аутентификации, а также о конкретных сообщениях об ошибках или поведении, которые вы получаете, я уверен, что сообщество может помочь вам решить ваши проблемы. 16.10.2017
  • Шон смотрите комментарий ниже.. 25.10.2017

Ответы:


1

Как упомянул Шон Табризи, Microsoft Graph поддерживает извлечение членов гостевого пользователя из других арендаторов. Вот пример для справки:

GET: https://graph.microsoft.com/v1.0/groups/{groupId}/members 
authorization: bearer {access_token}

Результат введите здесь описание изображения

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

Список участников

17.10.2017
  • Поиск гостевых участников в наших группах работает, но я хотел бы, чтобы гость находил группы, в которых он состоит memberOf, в нашем клиенте. Не могу найти поддержку для этого. Поиск пользователя во всех группах кажется слишком сложным. Я хотел бы иметь возможность найти пользователя memberOf приложения в нашем арендаторе, который не может найти способ указать запрос нашему арендатору. Вошедший в систему пользователь всегда видит свой memberOf в домашнем арендаторе. Корпоративные приложения необходимо будет использовать с гостями, которые могут работать, не вызывая собственного пользователя в домашнем клиенте. 25.10.2017
  • Как ответил Шон Табризи, чтобы получить членство пользователя, вам нужно вызвать GetUsersMemberships. Microsoft Graph также предоставляет эти REST, проверьте Список участников и получить группы участников 26.10.2017

  • 2

    Давайте пройдем через это!

    У меня есть арендатор: shawntest.onmicrosoft.com

    Я создал нового гостевого пользователя в этом арендаторе с помощью портала Azure: введите здесь описание изображения

    Я нажал кнопку «+ Новый гостевой пользователь» и создал гостевую учетную запись Gmail, которую вы можете видеть выше. Я дополнительно добавил этого пользователя в несколько групп, также на портале: введите здесь описание изображения

    Итак, давайте войдем в систему этого пользователя.

    Во-первых, в таких ситуациях важно указать арендатора, в котором вы хотите выполнить вход пользователя. Возможно, вам НЕ следует использовать конечную точку common для таких учетных записей, поскольку они могут быть связаны с несколькими арендаторами, а затем оставить ее включенной. в AAD, чтобы принять окончательное решение за вас. Вместо этого укажите конкретный контекст аутентификации с конкретным идентификатором арендатора:

    https://login.microsoftonline.com/shawntest.onmicrosoft.com

    Теперь получите токен, используя предпочитаемый вами процесс входа пользователя. Я использую поток собственного клиента, который можно легко смоделировать с помощью всего 13 строк PowerShell.

    Получив свой токен, я вызываю конечную точку /me, чтобы показать, что я работаю с внешним пользователем:

    GET https://graph.windows.net/me?api-version=1.6

    {
        "odata.metadata": "https://graph.windows.net/myorganization/$metadata#directoryObjects/Microsoft.DirectoryServices.User/@Element",
        "odata.type": "Microsoft.DirectoryServices.User",
        "objectType": "User",
        ...
        "displayName": "Shawn Tabrizi",
        ...
        "userPrincipalName": "xxxxxx_gmail.com#EXT#@shawntest.onmicrosoft.com",
        "userType": "Guest"
    }
    

    Выглядит хорошо для меня. Теперь давайте получим группы, членом которых является пользователь, используя запрос memberOf. Обратите внимание, что вы можете выполнить этот запрос сразу, он НЕ зависит от каких-либо данных из последнего запроса.

    GET https://graph.windows.net/me/memberOf?api-version=1.6

    {
        "odata.metadata": "https://graph.windows.net/myorganization/$metadata#directoryObjects",
        "value": [{
            "odata.type": "Microsoft.DirectoryServices.Group",
            "objectType": "Group",
            ...
            "displayName": "TestGroup",
            ...
            "securityEnabled": true
        }, {
            "odata.type": "Microsoft.DirectoryServices.Group",
            "objectType": "Group",
            ...
            "displayName": "MyTestGroup",
            ...
            "securityEnabled": true
        }]
    }
    

    И это все люди!

    25.10.2017
  • Извините, @Shawn Tabrizi, но я не смог заставить Powershell работать, на что он жаловался. Невозможно найти позиционный параметр, который принимает аргумент «Код». вероятно, в $authorzationUrl = ({0}/{1}/oauth2/authorize?response_type=code&client_id={2}&redirect_uri={3}&resource={4}&prompt=consent Возможно, я пропустил какой-то другой модуль в PowerShell. 26.10.2017
  • Я нашел пример проекта, чтобы проверить это github.com/microsoftgraph/aspnet-snippets-sample Проверена ваша теория об изменении полномочий = login.microsoftonline.com/common/v2.0 В авторитет = «login.microsoftonline.com/‹Наш домен›/v2.0» Неподвижные пользователи на самом деле не запрашивают у нашего арендатора ничего, кроме /me/. пользователь получает правильное имя участника-пользователя гостевой учетной записи из нашей Azure AD. однако идентификаторы Live.com больше не поддерживаются!? 26.10.2017
  • Групповые запросы по-прежнему нуждаются в утверждении администратором, и пользователь получает запрос об утверждении администратором в своем клиенте, даже если наш администратор утвердил его в нашей Azure AD. И у их администраторов не будет администраторов в нашей Azure AD, и точка. Это большая проблема. Я хочу получить гостевого пользователя memberOf в нашей Azure AD. 26.10.2017
  • Новые материалы

    Коллекции публикаций по глубокому обучению
    Последние пару месяцев я создавал коллекции последних академических публикаций по различным подполям глубокого обучения в моем блоге https://amundtveit.com - эта публикация дает обзор 25..

    Представляем: Pepita
    Фреймворк JavaScript с открытым исходным кодом Я знаю, что недостатка в фреймворках JavaScript нет. Но я просто не мог остановиться. Я хотел написать что-то сам, со своими собственными..

    Советы по коду Laravel #2
    1-) Найти // You can specify the columns you need // in when you use the find method on a model User::find(‘id’, [‘email’,’name’]); // You can increment or decrement // a field in..

    Работа с временными рядами спутниковых изображений, часть 3 (аналитика данных)
    Анализ временных рядов спутниковых изображений для данных наблюдений за большой Землей (arXiv) Автор: Рольф Симоэс , Жильберто Камара , Жильберто Кейрос , Фелипе Соуза , Педро Р. Андраде ,..

    3 способа решить квадратное уравнение (3-й мой любимый) -
    1. Методом факторизации — 2. Используя квадратичную формулу — 3. Заполнив квадрат — Давайте поймем это, решив это простое уравнение: Мы пытаемся сделать LHS,..

    Создание VR-миров с A-Frame
    Виртуальная реальность (и дополненная реальность) стали главными модными терминами в образовательных технологиях. С недорогими VR-гарнитурами, такими как Google Cardboard , и использованием..

    Демистификация рекурсии
    КОДЕКС Демистификация рекурсии Упрощенная концепция ошеломляющей О чем весь этот шум? Рекурсия, кажется, единственная тема, от которой у каждого начинающего студента-информатика..