Хотите получить идентификатор Azure AD Id_token через мобильное приложение Azure?

Я пытаюсь получить Id_token через мобильное приложение Azure, но получаю mobileServiceAuthenticationToken.

MobileServiceAuthenticationToken получен моим iOS-приложением со следующей реализацией: Интегрируйте Azure AD в приложение для iOS

Мне нужен Id_token (с алгоритмом RS256), потому что моя внутренняя служба (java spring-boot) должна проверять этот токен, что невозможно с помощью mobileServiceAuthenticationToken. mobileServiceAuthenticationToken основан на алгоритме HS256 (которому требуется секрет клиента) и не позволяет запрашивать Azure AD для получения информации о пользователе через Microsoft Graph Api.

Вот ссылка на ссылку Microsoft для получения дополнительной информации: Справочник по токену Azure AD




Ответы (1)


id_token не может вызвать REST Microsoft Graph. Чтобы вызвать Microsoft Graph REST, нам нужно получить для него соответствующий access_token, для которого aud заявлено https://graph.microsoft.com.

Существует два типа потоков мобильной аутентификации: клиентский и серверный. Оба они должны работать в вашем сценарии, однако прогресс немного отличается.

Клиентский поток: для этого потока вы можете сначала получить id_token и access_token для Microsoft Graph из Azure Active Directory, используя ADAL SDK. Затем вы можете обменять id_token с EasyAuth на токен аутентификации и войти в свое мобильное приложение.

Поток сервера: вы можете настроить мобильное приложение для получения access_token для Microsoft Graph. Затем вы можете реализовать прокси в мобильной серверной части. После этого вам останется только позвонить на мобильный сервер как в службу владельца, так и в Microsoft Graph.

Вот несколько полезных статей по этой теме:

Как: аутентифицировать пользователей с помощью библиотеки аутентификации Active Directory

Проверка подлинности службы приложений и API-интерфейс Azure AD Graph

person Fei Xue - MSFT    schedule 24.10.2017
comment
Привет, Фэй Сюэ! Спасибо за Ваш ответ. Думаю, я недостаточно хорошо объяснил свои целевые решения. Я хотел бы получить токен из Azure AD и проверить на своем собственном Java-сервере, что токен действителен. Мое приложение для iOS должно получить токен Azure AD и отправить его в мою собственную серверную службу Java, которой нет в Azure. У тебя есть идеи, как я могу это решить? - person botscripter; 24.10.2017