Настройка Azure B2C AD для использования приложения Authenticator
В Azure B2C можно ли настроить многофакторную аутентификацию для использования приложения Microsoft Authenticator?
4 ответа
В настоящее время Azure AD B2C не поддерживает интеграцию с приложением Microsoft Authenticator.
Вы должны запросить это через форум Azure AD B2C в feedback.azure.com.
Меня заставили поверить, что теперь это возможно. Это ссылка на образец Github, показывающий, что его можно настроить с помощью "настраиваемых политик".
https://github.com/azure-ad-b2c/samples/tree/master/policies/custom-mfa-totp
На случай, если он когда-либо будет снят, вот шаги на 2019-10:
Azure AD B2C: многофакторная проверка подлинности TOTP
С помощью Azure Active Directory (Azure AD) B2C вы можете интегрировать многофакторную аутентификацию на основе TOTP, чтобы вы могли добавить второй уровень безопасности для регистрации и входа в свои приложения, ориентированные на потребителя. Для этого необходимо использовать настраиваемую политику и настраиваемую конечную точку REST API. Если вы уже создали политики регистрации и входа, вы все равно можете включить многофакторную аутентификацию.
В примере кода решения для многофакторной аутентификации Azure AD B2C TOTP задействован следующий компонент:
- Azure AD B2C - сервер авторизации, отвечающий за проверку личности пользователя, предоставление (и отзыв) доступа к ресурсам и выдачу токенов. Он также известен как поставщик удостоверений.
- Веб-приложение или мобильное приложение, также известное как приложение проверяющей стороны. Приложение, использующее для аутентификации поставщик удостоверений (Azure AD B2C).
- Custom Rest API - с помощью Identity Experience Framework, лежащего в основе AD B2C, вы можете интегрироваться с RESTful API в процессе взаимодействия с пользователем. Добавление собственной бизнес-логики. Платформа Identity Experience Framework отправляет данные в службу RESTful в коллекции входных утверждений и получает данные обратно из RESTful в коллекции выходных утверждений. Вызов REST API защищен сертификатом клиента. Мы используем специальный REST API для подготовки QR-кода, регистрации кода безопасности пользователя и проверки кода TOTP.
- TOTP - алгоритм одноразового пароля на основе времени, который вычисляет одноразовый пароль из общего секретного ключа (REST API и приложение для проверки подлинности) и текущего времени.
- QR-код - машиночитаемая оптическая этикетка, содержащая информацию об элементе, к которому она прикреплена. В этом случае QR-код содержит TOTP URI.
- Приложение Authenticator - приложение Microsoft (или Google) Authenticator обеспечивает дополнительный уровень безопасности за счет использования TOTP (и других методов).
Привилегии
Все компоненты поднялись вверх, работают и хорошо настроены.
URL-адрес для входа в Azure AD B2C b2clogin.com и клиентская сторона JavaScript включены (в общедоступной предварительной версии). Чтобы включить клиентский код JavaScript в политике Azure AD B2C:
- Добавьте элемент ScriptExecution в политику проверяющей стороны.
- Задайте контракт страницы для всех определений содержимого в политике базы / расширения с новым значением DataUri.
В основном решении.Net используются следующие пакеты NuGet: OtpSharp и QR Code.
Решение основано на атрибуте расширения. Прочтите здесь, как настроить атрибуты расширения.
1. Процесс входа
На следующей диаграмме показан процесс входа с регистрацией и проверкой MFA. Решение основано на TOTP. TOTP - это одноразовый пароль, основанный на времени, который предоставляет временный пароль, сгенерированный алгоритмом, работающим в службе REST API. Алгоритм генерирует пароль (временный код доступа), используя комбинацию секретного ключа (сгенерированного REST API и хранящегося в хранилище каталогов Azure AD B2C) с текущей меткой времени (гарантируя, что каждый пароль уникален). Во время регистрации и входа пользователь предоставляет пароль в Azure AD B2C для завершения процесса входа. Секретный ключ используется приложением для проверки подлинности пользователя и REST API (хранящимся в хранилище каталогов Azure AD B2C), что позволяет REST API проверять пароль.
2. Процесс регистрации мобильных устройств.
При первом входе пользователя в систему или когда MFA требуется впервые (например, для доступа к строго конфиденциальным данным), настраиваемая политика Azure AD B2C (далее B2C) проверяет, существует ли уже зарегистрированный пользователь (утверждение extension_StrongAuthenticationAppSecretKey в Azure Active Directory. учетная запись пользователя хранилища идентификационных данных). Если не существует, B2C вызывает конечную точку REST API GenerateTOTP для генерации секретного ключа и QR-кода для пользователя. REST API:
- Считывает имя пользователя для входа
- Создает случайный секретный ключ
- Создает TOTP URI (см. Формат URI позже)
- Генерирует QR-код для TOTP URI
- Возвращает растровое изображение QR-кода в формате based64 и сгенерированный секретный ключ в формате base64.
2.1 Генерация TOTP URI
URI включает в себя следующие данные и может содержать больше, например время TOTP (по умолчанию 30 секунд) и размер (по умолчанию 6 цифр): - Протокол - otpauth://totp - Имя пользователя: B2CDemo:something@contoso.com - Секретный ключ: F4KRXSGXYBYT7BQ5THURPPH2RQ27JGSJ - Эмитент: Azure AD B2C Demo
Ниже приведен пример такого URI:
otpauth://totp/B2CDemo%3asomeone%40contos.com?secret=F4KRXSGXYBYT7BQ5THURPPH2RQ27JGSJ&issuer=Azure%20AD%20B2C%20Demo
2.2 Сканирование и проверка QR-кода
После того, как REST API вернет регистрационную информацию обратно в Azure AD B2C. Пользователь переходит к следующему этапу оркестрации, указанному в пути пользователя. На этом этапе согласования считывается QR-код (в формате base64) и используется JavaScript для представления QR-кода, который может сканировать пользователь изображения.
2.3 Добавление новой учетной записи удостоверения личности в средство проверки подлинности Microsoft
На этом этапе пользователю необходимо загрузить и установить приложение для аутентификации (Microsoft, Google или любое другое приложение для аутентификации, такое как приложение Authy). В Microsoft Authenticator щелкните добавить учетную запись, выберите тип учетной записи и отсканируйте QR-код, предоставленный Azure AD B2C.
Вернувшись к Azure AD B2C, пользователю необходимо скопировать и ввести код доступа (выиграв 30-секундный временной интервал) в Azure AD B2C и нажать "Продолжить".
2.4 Проверка кода TOTP с помощью Azure AD B2C
Когда пользователь нажимает продолжить, Azure AD B2C вызывает конечную точку REST API VerifyTOTP. Отправка кода, предоставленного конечным пользователем, секрета пользователя и времени последнего совпадения (эти данные поступают из учетной записи пользователя Azure AD). Мы используем время последнего совпадения, чтобы предотвратить и проверить, что проверочный код уже использовался. REST API проверяет код, предоставленный конечным пользователем, с секретным ключом и временем последнего совпадения. Если код недействителен, конечному пользователю отображается удобная для пользователя ошибка с просьбой снова предоставить проверочный код TOTP. Примечание. Поскольку код TOTP действителен в течение 30 секунд, пользователь может указать новое значение. Azure AD B2C снова вызовет конечную точку проверки, пока пользователь не предоставит допустимое значение. На следующем этапе Azure AD B2C сохраняет секретный ключ пользователя и последнее совпадение в удостоверении Azure Active Directory.
3. Вход и проверка MFA.
- Azure AD проверяет, зарегистрирован ли пользователь (утверждение extension_StrongAuthenticationAppSecretKey). Если существует, Azure AD B2C просит пользователя ввести код подтверждения.
- Конечному пользователю необходимо открыть приложение аутентификации, скопировать проверочный код TOTP и нажать "Продолжить".
- Когда пользователь нажимает кнопку "Продолжить", Azure AD B2C запускает поток, описанный в разделе 2.4 Проверка кода TOTP с помощью Azure AD B2C.
Помощь и поддержка сообщества
Используйте stackru, чтобы получить поддержку от сообщества. Сначала задайте свои вопросы на stackru и просмотрите существующие проблемы, чтобы узнать, задавал ли кто-нибудь ваш вопрос раньше. Убедитесь, что ваши вопросы или комментарии отмечены тегом [azure-ad-b2c]. Если вы обнаружите ошибку в образце, поднимите вопрос на GitHub Issues. Для обеспечения обратной связи продукта, посетите Azure Active Directory B2C Обратной страницу.
Примечание. Этот образец политики основан на стартовом пакете SocialAndLocalAccounts. Все изменения помечены Demo: comment внутри файлов политики XML. Внесите необходимые изменения в требуемые разделы Демо-действия.
Теперь это возможно: включите многофакторную аутентификацию в Azure Active Directory B2C.
Согласно документации, он все еще находится в предварительной версии (по состоянию на июнь 2022 г.):
Приложение для проверки подлинности — TOTP (предварительная версия) . Пользователь должен установить приложение для проверки подлинности, которое поддерживает проверку одноразового пароля на основе времени (TOTP), например приложение Microsoft Authenticator , на принадлежащее ему устройство. Во время первой регистрации или входа пользователь сканирует QR-код или вводит код вручную с помощью приложения для проверки подлинности. Во время последующих входов пользователь вводит код TOTP, который отображается в приложении для проверки подлинности. Узнайте , как настроить приложение Microsoft Authenticator .
Из этого образца Microsoft Public Preview: Azure AD B2C MFA с TOTP с использованием любого приложения Authenticator :
Настройте TOTP с потоками пользователей
Это возможно только с помощью "настраиваемых политик" Azure прямо сейчас.
Пожалуйста, перейдите по следующей ссылке к образцу. https://github.com/azure-ad-b2c/samples/tree/master/policies/custom-mfa-totp
Если вы столкнулись с трудностями при настройке данного образца, прочтите следующую статью.https://medium.com/@snkaushi_9371/enable-totp-based-multi-factor-authentication-in-azure-ad-b2c-84e967d76aa4