Интеграция Twilio Verify с Azure Active Directory B2C
В этом пошаговом руководстве описано, как интегрировать пример приложения для оплаты в Интернете в Azure Active Directory B2C (Azure AD B2C) с помощью API Twilio Verify. С помощью приложения Twilio Verify, клиенты Azure AD B2C могут соответствовать требованиям транзакций PSD2 (директивы оплаты 2) благодаря динамической компоновке и надежной проверки подлинности клиента.
Необходимые компоненты
Чтобы приступить к работе, потребуется следующее.
- Подписка Azure. Если у вас нет подписки, вы можете получить бесплатную учетную запись.
- Клиент Azure AD B2C, связанный с вашей подпиской Azure.
- Пробная учетная запись Twilio.
Описание сценария
Решение Twilio включает следующие компоненты:
Демонстрационное веб-приложение PSD2 .NET, которое предоставляет возможность входа или регистрации и выполнения фиктивной транзакции с высоким риском.
В Azure AD B2C объединены политики входа и регистрации.
Политика Azure AD B2C интегрирована с API Twilio Verify с использованием
id_token_hint
.Веб-приложение .NET, которое размещает конечную точку OpenIdConnect
.well-known
, чтобы разрешить проверкуid_token_hint
.
Этап | Описание: |
---|---|
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
Получите пробную учетную запись Twilio.
Приобретите номер телефона на сайте Twilio, следуя шагам в этой статье.
Перейдите к разделу Verify API в консоли Twilio и следуйте инструкциям по созданию службы и включению параметра PSD2.
Настройка демонстрационного приложения PSD2
Откройте решение 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/" />
В веб-приложении также размещается генератор указания маркера ИД и конечная точка метаданных.
Создайте сертификат для подписи, как указано в описании этого примера.
Обновите следующие строки на основе сертификата в web.config:
<add key="ida:SigningCertThumbprint" value="4F39D6014818082CBB763E5BA5F230E545212E89" /> <add key="ida:SigningCertAlgorithm" value="RS256" />
Отправьте демонстрационное приложение на выбранный поставщик услуг размещения. В этом примере представлено руководство по Службе приложений Azure, включая инструкции по отправке сертификата.
Обновите регистрацию приложения Azure AD B2C, добавив URL-адрес ответа, эквивалентный URL-адресу, по которому размещено приложение.
Откройте файлы политики и замените все экземпляры
contoso
именем своего клиента.Найдите технический профиль Twilio REST API Custom-SMS-Enroll. Обновите
ServiceURL
с помощью Twilio AccountSID и замените номер отправителя на приобретенный номер телефона.Найдите технические профили Twilio REST API TwilioRestAPI-Verify-Step1 и TwilioRestAPI-Verify-Step2 и обновите
ServiceURL
с помощью Twilio AccountSID.
Интеграция с Azure AD B2C
Добавьте файлы политики в Azure AD B2C:
- Войдите на портал Azure с правами глобального администратора клиента Azure AD B2C.
- Если у вас есть доступ к нескольким клиентам, выберите значок Параметры в верхнем меню, чтобы переключиться на клиент Azure AD B2C из меню каталогов и подписок.
- Выберите Все службы в левом верхнем углу окна портала Azure, найдите службу Azure AD B2C и выберите ее.
- Перейдите в раздел Azure AD B2C > Identity Experience Framework > Ключи политики.
- Добавьте новый раздел с именем B2cRestTwilioClientId. Выберите ручной ввод и укажите значение параметра Twilio AccountSID.
- Добавьте новый ключ с именем B2cRestTwilioClientSecret. Выберите ручной ввод и укажите значение маркера проверки подлинности Twilio.
- Отправьте все файлы политики в клиент.
- Настройте строку в преобразовании утверждений GenerateOTPMessageEnrol для своего текста SMS-регистрации.
Тестирование решения
- Перейдите к приложению и протестируйте действия входа, регистрации и отправки средств.
Следующие шаги
Дополнительные сведения см. в следующих статьях: