Поделиться через


Интеграция Twilio Verify с Azure Active Directory B2C

В этом пошаговом руководстве описано, как интегрировать пример приложения для оплаты в Интернете в Azure Active Directory B2C (Azure AD B2C) с помощью API Twilio Verify. С помощью приложения Twilio Verify, клиенты Azure AD B2C могут соответствовать требованиям транзакций PSD2 (директивы оплаты 2) благодаря динамической компоновке и надежной проверки подлинности клиента.

Необходимые компоненты

Чтобы приступить к работе, потребуется следующее.

Описание сценария

Решение Twilio включает следующие компоненты:

  • Демонстрационное веб-приложение PSD2 .NET, которое предоставляет возможность входа или регистрации и выполнения фиктивной транзакции с высоким риском.

  • В Azure AD B2C объединены политики входа и регистрации.

  • Политика Azure AD B2C интегрирована с API Twilio Verify с использованием id_token_hint.

  • Веб-приложение .NET, которое размещает конечную точку OpenIdConnect .well-known, чтобы разрешить проверку id_token_hint.

    twilio flow

Этап Описание:
1 Пользователь инициирует вход или регистрацию в демонстрационном приложении PSD2. Пользователь проходит проверку подлинности с помощью объединенной политики входа и регистрации Azure AD B2C. Маркер возвращается в приложение. При регистрации номер телефона пользователя проверяется с помощью SMS или телефона и записывается в учетную запись Azure AD B2C.
2 Пользователь инициирует транзакцию с высоким риском, например перевод 500 долл. США. Текущий маркер доступа пользователя оценивается для PolicyId, чтобы определить, прошел ли пользователь проверку подлинности с помощью пошаговой пользовательской политики.
3 Приложение записывает значения транзакции и получателя платежа — 500 долл. США и John Doe — и создает подписанный маркер. Этот маркер называется id_token_hint и содержит утверждение amount:$500, payee:john doe. id_token_hint отправляется вместе с запросом к пользовательской политике Azure AD B2C, которая интегрирована с Twilio.
4 Azure AD B2C проверяет подпись id_token_hint, проверяя конечную точку подключения приложений OpenID Connect /.well-known. После проверки служба извлекает утверждения из этого маркера, в особенности amount и payee. Пользователь увидит страницу для проверки номера мобильного телефона через SMS-сообщение.
5 Пользователь запрашивает проверку номера телефона через SMS-сообщение, а Azure AD B2C выполняет запрос REST API в конечную точку API Twilio Verify. Служба также отправляет сведения о транзакции amount и payee в рамках процесса PSD2 для создания одноразового секретного кода (OTP). Twilio отправляет сообщение SMS на зарегистрированный номер телефона пользователя.
6 Пользователь вводит одноразовый секретный код (OTP), полученный в сообщении SMS, и отправляет его в Azure AD B2C. Azure AD B2C отправляет запрос API с этим OTP в API Twilio Verify, чтобы подтвердить, что код верен. Наконец, в приложение выдается маркер с новым PolicyId, обозначающим, что пользователь выполнил пошаговую проверку подлинности.

Подключение с помощью Twilio

  1. Получите пробную учетную запись Twilio.

  2. Приобретите номер телефона на сайте Twilio, следуя шагам в этой статье.

  3. Перейдите к разделу Verify API в консоли Twilio и следуйте инструкциям по созданию службы и включению параметра PSD2.

Настройка демонстрационного приложения PSD2

  1. Откройте решение B2C-WebAPI-DotNet и замените следующие значения собственными значениями для конкретного клиента в web.config:

    <add key="ida:Tenant" value="yourtenant.onmicrosoft.com" />
    <add key="ida:TenantId" value="d6f33888-0000-4c1f-9b50-1590f171fc70" />
    <add key="ida:ClientId" value="6bd98cc8-0000-446a-a05e-b5716ef2651b" />
    <add key="ida:ClientSecret" value="secret" />
    <add key="ida:AadInstance" value="https://yourtenant.b2clogin.com/tfp/{0}/{1}" />
    <add key="ida:RedirectUri" value="https://your hosted psd2 demo app url/" />
    
  2. В веб-приложении также размещается генератор указания маркера ИД и конечная точка метаданных.

    • Создайте сертификат для подписи, как указано в описании этого примера.

    • Обновите следующие строки на основе сертификата в web.config:

      <add key="ida:SigningCertThumbprint" value="4F39D6014818082CBB763E5BA5F230E545212E89" />
      <add key="ida:SigningCertAlgorithm" value="RS256" />
      
  3. Отправьте демонстрационное приложение на выбранный поставщик услуг размещения. В этом примере представлено руководство по Службе приложений Azure, включая инструкции по отправке сертификата.

  4. Обновите регистрацию приложения Azure AD B2C, добавив URL-адрес ответа, эквивалентный URL-адресу, по которому размещено приложение.

  5. Откройте файлы политики и замените все экземпляры contoso именем своего клиента.

  6. Найдите технический профиль Twilio REST API Custom-SMS-Enroll. Обновите ServiceURL с помощью Twilio AccountSID и замените номер отправителя на приобретенный номер телефона.

  7. Найдите технические профили Twilio REST API TwilioRestAPI-Verify-Step1 и TwilioRestAPI-Verify-Step2 и обновите ServiceURL с помощью Twilio AccountSID.

Интеграция с Azure AD B2C

Добавьте файлы политики в Azure AD B2C:

  1. Войдите на портал Azure с правами глобального администратора клиента Azure AD B2C.
  2. Если у вас есть доступ к нескольким клиентам, выберите значок Параметры в верхнем меню, чтобы переключиться на клиент Azure AD B2C из меню каталогов и подписок.
  3. Выберите Все службы в левом верхнем углу окна портала Azure, найдите службу Azure AD B2C и выберите ее.
  4. Перейдите в раздел Azure AD B2C > Identity Experience Framework > Ключи политики.
  5. Добавьте новый раздел с именем B2cRestTwilioClientId. Выберите ручной ввод и укажите значение параметра Twilio AccountSID.
  6. Добавьте новый ключ с именем B2cRestTwilioClientSecret. Выберите ручной ввод и укажите значение маркера проверки подлинности Twilio.
  7. Отправьте все файлы политики в клиент.
  8. Настройте строку в преобразовании утверждений GenerateOTPMessageEnrol для своего текста SMS-регистрации.

Тестирование решения

  • Перейдите к приложению и протестируйте действия входа, регистрации и отправки средств.

Следующие шаги

Дополнительные сведения см. в следующих статьях: