Xamarin Forms Многофакторная аутентификация

Необходимо иметь многофакторную аутентификацию в приложении Xamarin Forms Mobile для iOS, Android и Windows UWP. После того, как пользователь введет правильное имя пользователя и пароль, должен быть второй фактор AUTH - телефонный звонок/SMS на зарегистрированное устройство. Пошаговое руководство и пример приложения помогут ускорить реализацию этого сценария.


person Romuald Zdebskiy    schedule 20.02.2018    source источник
comment
Здесь не место для пошаговой документации. SO - это место для конкретных вопросов по проблеме   -  person Nico Haase    schedule 20.02.2018
comment
Я просто хотел поделиться тем, что я нашел в качестве решения - пожалуйста, взгляните на мое решение ниже и дайте мне отзыв о том, подходит ли оно для решения конкретной проблемы/вопроса или нет. заранее спасибо   -  person Romuald Zdebskiy    schedule 20.02.2018


Ответы (1)


Одна из реализаций, которой я хотел бы поделиться:

  • Azure Active Directory в качестве каталога и службы многофакторной проверки подлинности. Вы можете использовать учетные записи Azure AD для доступа или интегрировать Azure AD с корпоративным доменом Active Directory со службами федерации Active Directory. Здесь вы получаете управление учетной записью и многофакторную инфраструктуру (регистрация телефона, служба звонков / SMS и политики).
  • Библиотека проверки подлинности Active Directory (ADAL) для использования внутри приложения Xamarin Forms.
  • Использование службы зависимостей в приложении Xamarin.Forms для определения интерфейса проверки подлинности, например:

    public interface IAuthenticator
    {
      Task<AuthenticationResult> Authenticate(string authority, string resource, string clientId, string returnUri);
    }
    
  • Обеспечить реализацию для каждой платформы (здесь все подробности) с метаданными зависимости сборки атрибут:

    [assembly: Dependency(typeof(MFATestPCL.Droid.Helper.Authenticator))]
    namespace MFATestPCL.Droid.Helper
    
  • Выполните вызов из общего кода:

    var auth = DependencyService.Get<IAuthenticator>();
    authResult = await auth.Authenticate(authority, graphResourceUri, clientId, returnUri);
    

Вот полный GitHub пример репозитория приложения Xamarin с пошаговым руководством по настройке Azure AD — iOS, Предоставлены реализации UWP для Android и Windows 10.

person Romuald Zdebskiy    schedule 20.02.2018