Управление пользователем из Azure AD B2C с помощью AD Graph API - безопасный доступ

Мы создаем мобильные приложения Xamarin Native и используем Azure AD B2C для аутентификации пользователей с помощью их учетных записей в социальных сетях.

Мы решили использовать собственную библиотеку MSAL (Xamarin) для аутентификации с помощью B2C. А нашему мобильному приложению необходимо управлять (полный доступ) профилем пользователя, вошедшего в систему. Поскольку эта функция недоступна в MSAL, мы решили пока использовать ADAL. Следуйте инструкциям, приведенным в ссылке ниже, и образец работает. Но я начал экспериментировать, удалив доступ к API, предоставленный в приложении (созданном в тенанте b2c), и запустил приложение с параметром «Get-user». И приложение по-прежнему может получать пользователей из AD. Не знаете, насколько безопасна эта штука?

Затем удалил ключ приложения из клиентского приложения B2c и запустил образец консольного приложения. И получил ошибку AADSTS70002: Error validating credentials. AADSTS50012: Invalid client secret is provided. Trace ID: cef09957-06bf-462e-a0c3-4ed6bae11e00 Correlation ID: afab126d-8694-479a-8a21-c12eb7cb176c

https://docs.microsoft.com/en-us/azure/active-directory-b2c/active-directory-b2c-devquickstarts-graph-dotnet

Любая идея, почему это происходит. Я хотел бы реализовать это в приложении xamarin.ios, и любые рекомендации очень ценны.


person Jeeva    schedule 10.06.2017    source источник


Ответы (1)


Ответ на этот вопрос очень похож на ответ на ваш другой вопрос: Исключительный доступ к Azure AD B2C с использованием библиотеки ADAL для управления пользователями, которую можно резюмировать следующим образом:

Azure AD B2C еще не поддерживает делегированные разрешения для Azure AD или Microsoft Graph. Правильный способ обойти это ограничение в настоящее время - заставить ваше собственное клиентское приложение вызывать веб-API ( используя MSAL), который, в свою очередь, вызовет Graph API (используя ADAL). Этот веб-API - это созданный вами API, который имеет логику авторизации для определения объема операций управления пользователями.

После того, как управление пользователями в Azure AD B2C будет поддерживаться через Microsoft Graph, вам не понадобится этот API, и вы сможете использовать делегированные разрешения (в отличие от разрешений приложений с использованием учетных данных клиента), чтобы ваше собственное клиентское приложение напрямую взаимодействовало с Microsoft Graph. Тем временем вам придется создать собственный веб-API в соответствии с приведенными выше инструкциями.

ОБНОВЛЕНИЕ: конечная точка Azure AD v2.0 и Microsoft Graph API теперь поддерживают поток учетных данных клиента, поэтому вы также можете использовать MSAL для вызовов Microsoft Graph API. Однако, если вам нужно вызвать Azure AD Graph, вам все равно нужно будет использовать ADAL.

person Saca    schedule 16.06.2017