Правильный OAuth-поток с использованием Azure AD для проверки подлинности внутреннего мобильного приложения с одним владельцем - PullRequest
0 голосов
/ 17 октября 2019

В моей компании есть внутреннее веб-приложение и несколько других служб, которые используют Azure AD для проверки подлинности. Поскольку они являются SPA и однопользовательскими, они могут использовать неявный поток предоставления, чтобы избежать использования маркеров доступа и обновления.

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

Кроме того, все клиентские библиотеки, которые я вижу, настроены на токен доступа и не отправляют необработанные токены ID или не обновляют их. Является ли что-то вроде firebase сверху в моем приложении решением? Я был во всех документах Microsoft по этому вопросу и изо всех сил.

1 Ответ

2 голосов
/ 18 октября 2019

Я понимаю, что могу предоставить свой внутренний API, но это не разрешено в Azure AD с конфигурацией с одним владельцем.

Это неверно. Вы можете использовать Azure AD для защиты доступа к вашему API, даже если оно используется клиентским приложением с одним клиентом.

Вы можете создать регистрацию приложения для своего внутреннего API (где вы можете указать вкак минимум одна область) и отдельная регистрация приложения для вашего клиентского приложения (которое будет запрашивать область, определенную для вашего бэкэнд-API).

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

В обоих случаях клиентское приложение получает токен доступа к внутреннему API и может использовать егодля запросов API.

I Настоятельно рекомендую не реализовывать потоки напрямую. Используйте SDK, который будет обрабатывать все манипуляции с токенами. Библиотека аутентификации Microsoft (MSAL) для iOS и Android теперь доступна для производственного использования и действительно делает это довольно тривиальным: https://developer.microsoft.com/en-us/graph/blogs/microsoft-authentication-libraries-for-android-ios-and-macos-are-now-generally-available/

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