Лучший способ создать логин пользователя в мобильном приложении с Azure

#azure #authentication #xamarin.forms

#azure #аутентификация #xamarin.forms

Вопрос:

Я создаю мобильное приложение Xamarin.forms с Azure. Я включил аутентификацию / авторизацию в Azure для защиты API в серверной части.

Что мне нужно, так это попросить пользователя войти в Facebook или Google и получить некоторую информацию о пользователе, такую как имя, адрес электронной почты и …, а затем сохранить эти данные в таблице как информацию о пользователе. Мне нравится запрашивать пользователя только один раз для входа в систему и получать данные, и мне не нужно сохранять токен, предоставленный Facebook, например, и обновлять его всегда (который, я думаю, не поддерживается Facebook), но также необходимо, чтобы пользователь входил в систему и имел безопасный доступ к внутренним API. Я новичок в этом и полностью запутался в использовании Azure AD, facebook и…

Каков наилучший способ сделать это? Я следовал этому руководству и теперь могу войти в Facebook.

Ответ №1:

Возможно, вам нужна Azure AD B2C (Business to Customer), которая предоставит средства, позволяющие вашим клиентам создавать учетную запись для вашего приложения, а также входить в Facebook (см. Здесь) или Google (см. Здесь).

Поскольку Azure AD B2C реализует OAuth2, интегрируя его в Xamarin.Формирует приложение с помощью Xamarin.Аутентификация должна быть возможной (смотрите здесь). После того, как вы приобрели токен OAuth2, вы можете включить токен в заголовки своих HTTP-запросов в Authorization заголовке с Bearer типом (см. Здесь)

 Authorization: Bearer <token>
  

Затем на стороне сервера вы можете проверить токен. Я не использовал Xamarin.Аутентификация с помощью веб-токенов Json (JWT), но, возможно, вы сможете получить JWT с помощью Xamarin.Аутентификация, которую вы сможете проверить самостоятельно. В противном случае, если Xamarin.Аутентификация ограничена токенами доступа, возможно, вам придется обратиться к серверу аутентификации для проверки токена. Если токен успешно проверен, вы можете предоставить пользователю доступ, в противном случае ответьте на него 401.

Комментарии:

1. Спасибо за ваш четкий ответ. Просто есть пара вопросов. У меня есть мобильное приложение, созданное в Azure, и мне нужно получить текущего пользователя в серверной части и возвращает данные с помощью API в зависимости от пользователя. Должен ли я использовать поток клиента B2C или поток сервера B2C в этом случае?