#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 в этом случае?