중요합니다
2025년 5월 1일부터 새 고객을 위해 Azure AD B2C를 더 이상 구매할 수 없습니다. FAQ에서 자세히 알아보세요.
Azure AD B2C(Azure Active Directory B2C)로 인증된 클라이언트로 Azure API Management API에 대한 액세스를 제한하는 방법을 알아봅니다. 이 문서의 지침에 따라 Azure API Management에서 유효한 Azure AD B2C 발급 액세스 토큰을 포함하는 요청으로만 액세스를 제한하는 인바운드 정책을 만들고 테스트합니다.
필수 조건
시작하기 전에 다음 리소스가 있는지 확인합니다.
- Azure AD B2C 테넌트
- 귀하의 테넌트에 등록된 애플리케이션
- 귀하의 테넌트에서 생성된 사용자 흐름
- Azure API Management에서 게시된 API
Azure AD B2C 애플리케이션 ID 가져오기
Azure AD B2C를 사용하여 Azure API Management에서 API를 보호하는 경우 Azure API Management 에서 만드는 인바운드 정책에 대한 몇 가지 값이 필요합니다. 먼저 Azure AD B2C 테넌트에서 이전에 만든 애플리케이션의 애플리케이션 ID를 기록합니다. 만든 애플리케이션을 사용하여 필수 구성 요소를 충족하는 경우 webapp1의 애플리케이션 ID를 사용합니다.
Azure AD B2C 테넌트에 애플리케이션을 등록하려면 새로운 통합 앱 등록 환경 또는 레거시 애플리케이션 환경을 사용할 수 있습니다 . 새 등록 환경에 대해 자세히 알아봅니다.
- Azure Portal에 로그인합니다.
- 여러 테넌트에 액세스할 수 있는 경우 상단 메뉴의 설정 아이콘을 선택하여 디렉터리 + 구독 메뉴에서 Azure AD B2C 테넌트로 전환합니다.
- 왼쪽 창에서 Azure AD B2C를 선택합니다. 또는 모든 서비스를 선택한 다음 Azure AD B2C를 검색하여 선택할 수 있습니다.
- 앱 등록을 선택한 다음 소유 애플리케이션 탭을 선택합니다.
- Webapp1 또는 이전에 만든 다른 애플리케이션의 애플리케이션(클라이언트) ID 열에 값을 기록합니다.
토큰 발급자 엔드포인트 가져오기
다음으로, Azure AD B2C 사용자 흐름 중 하나에 대해 잘 알려진 구성 URL을 가져옵니다. Azure API Management에서 지원하려는 토큰 발급자 엔드포인트 URI도 필요합니다.
Azure Portal에서 Azure AD B2C 테넌트로 이동합니다.
정책 아래에서 사용자 흐름을 선택합니다.
기존 정책(예: B2C_1_signupsignin1)을 선택한 다음 사용자 흐름 실행을 선택합니다.
페이지 위쪽의 실행 사용자 흐름 제목 아래에 표시되는 하이퍼링크의 URL을 기록합니다. 이 URL은 사용자 흐름에 대해 잘 알려진 OpenID Connect 검색 엔드포인트이며, Azure API Management에서 인바운드 정책을 구성할 때 다음 섹션에서 사용합니다.
하이퍼링크를 선택하여 OpenID Connect 잘 알려진 구성 페이지로 이동합니다.
브라우저에서 열리는 페이지에서 값을 기록합니다
issuer. 다음은 그 예입니다.https://<tenant-name>.b2clogin.com/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/v2.0/Azure API Management에서 API를 구성할 때 다음 섹션에서 이 값을 사용합니다.
이제 다음 섹션에서 사용하기 위해 두 개의 URL인 OpenID Connect 잘 알려진 구성 엔드포인트 URL과 발급자 URI를 기록해야 합니다. 다음은 그 예입니다.
https://<tenant-name>.b2clogin.com/<tenant-name>.onmicrosoft.com/B2C_1_signupsignin1/v2.0/.well-known/openid-configuration
https://<tenant-name>.b2clogin.com/aaaabbbb-0000-cccc-1111-dddd2222eeee/v2.0/
Azure API Management에서 인바운드 정책 구성
이제 API 호출의 유효성을 검사하는 인바운드 정책을 Azure API Management에 추가할 준비가 되었습니다. 액세스 토큰에서 대상 그룹 및 발급자를 확인하는 JWT(JSON 웹 토큰) 유효성 검사 정책을 추가하면 유효한 토큰이 있는 API 호출만 수락되도록 할 수 있습니다.
Azure Portal에서 Azure API Management 인스턴스로 이동합니다.
API를 선택합니다.
Azure AD B2C를 사용하여 보호하려는 API를 선택합니다.
디자인 탭을 선택합니다.
인바운드 처리에서 /<를 선택하여> 정책 코드 편집기를 엽니다.
정책 내에 다음
<validate-jwt>태그를<inbound>배치한 다음 다음을 수행합니다.a.
url요소에서<openid-config>값을 정책의 잘 알려진 구성 URL로 업데이트하십시오.
b.<audience>B2C 테넌트에서 이전에 만든 애플리케이션의 애플리케이션 ID(예: webapp1)로 요소를 업데이트합니다.
다.<issuer>앞에서 기록한 토큰 발급자 엔드포인트로 요소를 업데이트합니다.<policies> <inbound> <validate-jwt header-name="Authorization" failed-validation-httpcode="401" failed-validation-error-message="Unauthorized. Access token is missing or invalid."> <openid-config url="https://<tenant-name>.b2clogin.com/<tenant-name>.onmicrosoft.com/B2C_1_signupsignin1/v2.0/.well-known/openid-configuration" /> <audiences> <audience>00001111-aaaa-2222-bbbb-3333cccc4444</audience> </audiences> <issuers> <issuer>https://<tenant-name>.b2clogin.com/aaaabbbb-0000-cccc-1111-dddd2222eeee/v2.0/</issuer> </issuers> </validate-jwt> <base /> </inbound> <backend> <base /> </backend> <outbound> <base /> </outbound> <on-error> <base /> </on-error> </policies>
여러 애플리케이션 및 발급자 지원
여러 애플리케이션은 일반적으로 단일 REST API와 상호 작용합니다. API가 여러 애플리케이션에 대한 토큰을 수락할 수 있도록 하려면 Azure API Management 인바운드 정책의 <audiences> 요소에 해당 애플리케이션 ID를 추가합니다.
<!-- Accept tokens intended for these recipient applications -->
<audiences>
<audience>00001111-aaaa-2222-bbbb-3333cccc4444</audience>
<audience>11112222-bbbb-3333-cccc-4444dddd5555</audience>
</audiences>
마찬가지로, 여러 토큰 발급자를 지원하려면 Azure API Management 인바운드 정책의 <issuers> 요소에 해당 엔드포인트 URI를 추가합니다.
<!-- Accept tokens from multiple issuers -->
<issuers>
<issuer>https://<tenant-name>.b2clogin.com/aaaabbbb-0000-cccc-1111-dddd2222eeee/v2.0/</issuer>
<issuer>https://login.microsoftonline.com/aaaabbbb-0000-cccc-1111-dddd2222eeee/v2.0/</issuer>
</issuers>
b2clogin.com으로 마이그레이션하십시오
레거시 login.microsoftonline.com 엔드포인트에서 발급한 토큰의 유효성을 검사하는 Azure API ManagementM API가 있는 경우 API 및 API를 호출하는 애플리케이션을 마이그레이션하여 b2clogin.com 발급한 토큰을 사용해야 합니다.
이 일반 프로세스에 따라 스테이징된 마이그레이션을 수행할 수 있습니다.
- b2clogin.com 및 login.microsoftonline.com 발급된 토큰에 대한 Azure API Management 인바운드 정책에 지원을 추가합니다.
- 애플리케이션을 한 번에 하나씩 업데이트하여 b2clogin.com 엔드포인트에서 토큰을 가져옵니다.
- 모든 애플리케이션이 b2clogin.com 토큰을 올바르게 가져온 후 API에서 login.microsoftonline.com 발급된 토큰에 대한 지원을 제거합니다.
다음 예제 Azure API Management 인바운드 정책은 b2clogin.com 및 login.microsoftonline.com 발급된 토큰을 수락하는 방법을 보여 줍니다. 또한 정책은 두 애플리케이션의 API 요청을 지원합니다.
<policies>
<inbound>
<validate-jwt header-name="Authorization" failed-validation-httpcode="401" failed-validation-error-message="Unauthorized. Access token is missing or invalid.">
<openid-config url="https://<tenant-name>.b2clogin.com/<tenant-name>.onmicrosoft.com/B2C_1_signupsignin1/v2.0/.well-known/openid-configuration" />
<audiences>
<audience>00001111-aaaa-2222-bbbb-3333cccc4444</audience>
<audience>11112222-bbbb-3333-cccc-4444dddd5555</audience>
</audiences>
<issuers>
<issuer>https://login.microsoftonline.com/aaaabbbb-0000-cccc-1111-dddd2222eeee/v2.0/</issuer>
<issuer>https://<tenant-name>.b2clogin.com/aaaabbbb-0000-cccc-1111-dddd2222eeee/v2.0/</issuer>
</issuers>
</validate-jwt>
<base />
</inbound>
<backend> <base /> </backend>
<outbound> <base /> </outbound>
<on-error> <base /> </on-error>
</policies>
다음 단계
Azure API Management 정책에 대한 자세한 내용은 Azure API Management 정책 참조 인덱스입니다.
OWIN 기반 웹 API 및 해당 애플리케이션을 b2clogin.com 마이그레이션하는 방법에 대한 자세한 내용은 OWIN 기반 웹 API를 b2clogin.com 마이그레이션을 참조하세요.