2015-02-23 2 views
0

Я использую ADAL для входа в мое приложение, которое выполняется в Xamarin.Forms против Azure AD. Это все работает нормально, однако теперь я хочу иметь возможность регистрировать нового пользователя, и для этого нужно, чтобы токен доступа передавался конструктору одного из моих методов.Получение маркера доступа из Azure AD без учетных данных пользователя

Однако, поскольку пользователь еще не зарегистрирован, мне необходимо получить токен доступа от Azure AD без фактического предоставления каких-либо учетных данных пользователя. Мне сказали, что в обычном веб-приложении я могу отправить идентификатор клиента и ключ приложения, чтобы Azure AD знал, кто я, а затем отправил мне токен доступа, но я не могу понять, как реализовать это в кросс-платформенном приложении Xamarin.

Если кто-то столкнулся с этим раньше, ваша помощь будет принята с благодарностью.

Спасибо.

ответ

0

Использование ключа приложения в родном приложении не рекомендуется, независимо от того, какой стек dev вы используете для его реализации. Причина в том, что в целом устройствам не следует доверять секреты. Кроме того, секретное распространение сложно (вы не можете вставлять его в код приложения). В результате ADAL для Xamarin (и всех других ароматов ADAL, предназначенных для использования в родных приложениях) не предоставляет никакого способа получения токенов с помощью ключа приложения. Из антивирусного приложения вам действительно нужно загружать безопасную связь с идентификатором пользователя. После этого вы можете делать всевозможные интересные вещи на стороне сервера (например, вы, API, с учетом того, что работает на сервере, получают токены в качестве приложения). HTH V.

+0

Итак, если я защищаю соединение с использованием идентификатора пользователя, значит ли это, что я могу получить токен доступа из Azure AD без ввода или отправки учетных данных пользователя? – Mike

+0

Из собственного приложения в ваш веб-API вам необходимо * для аутентификации пользователя, чтобы получить токен. Как только ваш API будет запущен, он может получить новые маркеры на стороне сервера без вмешательства пользователя, но вы не можете защитить звонок от вашего API без первоначального токена и подчеркнуть, что на родном клиенте этот токен должен быть получен из Пользователь. См. Https://msdn.microsoft.com/en-us/library/azure/dn499820.aspx для списка шаблонов получения токенов. Azure AD поддерживает – vibronet

+0

Итак, если я не могу получить токен без аутентификации в качестве пользователя, как зарегистрировать новых пользователей в Azure AD? Если я зарегистрирую нового пользователя, у них еще не будет учетных данных, необходимых для аутентификации с помощью API, или мне не нужно передавать токен при регистрации нового пользователя для моего приложения? – Mike

Смежные вопросы