중요합니다
2025년 5월 1일부터 새 고객을 위해 Azure AD B2C를 더 이상 구매할 수 없습니다. FAQ에서 자세히 알아보세요.
이 연습에서는 Azure AD B2C(Azure Active Directory B2C)의 샘플 온라인 결제 앱을 Twilio Verify API와 통합하는 방법을 알아봅니다. Azure AD B2C 고객은 Twilio Verify 앱을 사용하여 동적 연결 및 강력한 고객 인증을 통해 PSD2(Payment Services Directive 2) 트랜잭션 요구 사항을 준수할 수 있습니다.
필수 조건
시작하려면 다음이 필요합니다.
- Azure 구독. 구독이 없는 경우 무료 계정을 얻을 수 있습니다.
- Azure 구독에 연결된 Azure AD B2C 테넌트입니다.
- Twilio의 체험 계정.
시나리오 설명
Twilio 솔루션을 구성하는 구성 요소는 다음과 같습니다.
.NET PSD2 데모 웹앱은 로그인 또는 가입하고 더미 고위험 트랜잭션을 수행할 수 있는 기능을 제공합니다.
Azure AD B2C 결합 로그인 및 가입 정책.
Azure AD B2C 정책이
id_token_hint
를 사용하여 Twilio Verify API와 통합되었습니다..NET 웹 앱은
.well-known
OpenIdConnect 엔드포인트를 호스트하여id_token_hint
을(를) 검증할 수 있도록 합니다.
단계 | 설명 |
---|---|
1 | 사용자가 PSD2 데모 앱에 대한 로그인 또는 등록을 시작합니다. 사용자는 Azure AD B2C 결합 로그인 및 등록 정책을 통해 인증됩니다. 토큰이 애플리케이션으로 반환됩니다. 등록 시 사용자의 전화 번호는 SMS/전화를 사용하여 확인되고 Azure AD B2C 계정에 기록됩니다. |
2 | 사용자가 $50.00의 이체와 같은 고위험 거래를 시작합니다. 사용자의 현재 액세스 토큰은 PolicyId에 대해 평가되어 사용자가 Step-Up 사용자 지정 정책을 통해 이미 인증되었는지 확인합니다. |
3 | 애플리케이션은 트랜잭션 금액과 수취인, $50.00 및 John Doe를 기록하고 서명된 토큰을 생성합니다. 이 토큰은 id_token_hint 이라고 하며, amount:$500, payee:john doe 이라는 클레임을 포함합니다.
id_token_hint Twilio와 통합된 Azure AD B2C 사용자 지정 정책으로 요청과 함께 전송됩니다. |
4 | Azure AD B2C는 애플리케이션 /.well-known OpenId Connect 엔드포인트를 확인하여 id_token_hint의 서명을 확인합니다. 확인 후, 이 토큰에서 클레임을 추출하는데, 특히 amount 및 payee 가 포함됩니다. 사용자는 SMS 메시지를 통해 휴대폰 번호를 확인할 수 있는 페이지를 볼 수 있습니다. |
5 | 사용자는 SMS 메시지를 통해 전화 번호를 확인하도록 요청하고 Azure AD B2C는 Twilio Verify API 엔드포인트에 REST API 요청을 합니다. 또한 트랜잭션 amount 을 payee PSD2 프로세스의 일부로 전송하여 OTP(One-Time-Passcode)를 생성합니다. Twilio는 사용자의 등록된 전화 번호로 SMS 메시지를 보냅니다. |
6 | 사용자는 SMS 메시지에 수신된 OTP를 입력하고 Azure AD B2C에 제출합니다. Azure AD B2C는 이 OTP를 사용하여 Twilio의 확인 API에 API 요청을 하여 OTP가 올바른지 확인합니다. 마지막으로 애플리케이션에 토큰이 발급되며, 새 PolicyId는 사용자가 인증을 강화했음을 나타냅니다. |
Twilio를 사용하여 온보딩
Twilio에서 평가판 계정을 얻습니다.
이 문서에 설명된 대로 Twilio에서 전화 번호를 구입합니다
Twilio 콘솔에서 Verify API 로 이동하고 지침에 따라 서비스를 만들고 PSD2 옵션을 사용하도록 설정합니다.
PSD2 데모 앱 구성
B2CWebAPI-DotNet 솔루션을 열고 다음 값을 web.config고유한 테넌트별 값으로 바꿉다.
<add key="ida:Tenant" value="yourtenant.onmicrosoft.com" /> <add key="ida:TenantId" value="aaaabbbb-0000-cccc-1111-dddd2222eeee" /> <add key="ida:ClientId" value="00001111-aaaa-2222-bbbb-3333cccc4444" /> <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/" />
또한 웹앱은 ID 토큰 힌트 생성기 및 메타데이터 엔드포인트를 호스트합니다.
이 샘플 설명에 설명된 대로 서명 인증서를 만듭니다.
web.config의 인증서에 따라 다음 줄을 업데이트합니다.
<add key="ida:SigningCertThumbprint" value="4F39D6014818082CBB763E5BA5F230E545212E89" /> <add key="ida:SigningCertAlgorithm" value="RS256" />
선택한 호스팅 제공업체에 데모 애플리케이션을 업로드합니다. Azure App Service에 대한 지침은 인증서를 업로드하기 위한 지침을 포함하여 이 샘플 설명에 제공됩니다.
응용 프로그램이 호스팅되는 URL에 해당하는 회신 URL을 추가하여 Azure AD B2C 응용 프로그램 등록을 업데이트합니다.
정책 파일을 열고 의
contoso
모든 인스턴스를 테넌트 이름으로 바꿉니다.Twilio REST API 기술 프로필 Custom-SMS-Enroll을 찾습니다. Twilio AccountSID 및 발신자 번호를 구매한 전화번호로 업데이트하려면,
ServiceURL
를 해당 정보로 교체하십시오.Twilio REST API 기술 프로필, TwilioRestAPI-Verify-Step1 및 TwilioRestAPI-Verify-Step2를 찾아 Twilio AccountSID로 업데이트합니다
ServiceURL
.
Azure AD B2C와 통합
Azure AD B2C에 정책 파일을 추가합니다.
- Azure AD B2C 테넌트의 B2C IEF 정책 관리자로Azure Portal에 로그인합니다.
- 여러 테넌트에 액세스할 수 있는 경우 상단 메뉴의 설정 아이콘을 선택하여 디렉터리 + 구독 메뉴에서 Azure AD B2C 테넌트로 전환합니다.
- Azure Portal의 왼쪽 위 모서리에 있는 모든 서비스를 선택하고 Azure AD B2C를 검색하여 선택합니다.
- Azure AD B2C>Identity Experience Framework>정책 키로 이동합니다.
- B2cRestTwilioClientId라는 이름의 새 키를 추가합니다. 수동을 선택하고 Twilio AccountSID의 값을 제공합니다.
- B2cRestTwilioClientSecret이라는 이름의 새 키를 추가합니다. manual을 선택하고 Twilio AUTH TOKEN의 값을 제공합니다.
- 모든 정책 파일을 테넌트에 업로드합니다.
- 가입 SMS 텍스트에 대한 GenerateOTPMessageEnrol 클레임 변환의 문자열을 사용자 지정합니다.
솔루션 테스트
- 응용 프로그램으로 이동하여 로그인, 등록 및 송금 작업을 테스트합니다.
다음 단계
자세한 내용은 다음 문서를 검토하세요.
Twilio 통합 코드 샘플은 GitHub를 참조하세요.