편집

다음을 통해 공유


Azure API Management 및 Azure AD B2C를 사용하여 백엔드 API 보호

Azure API Management
Microsoft Entra 외부 ID
Azure Front Door

솔루션 아이디어

이 문서에서는 솔루션 아이디어를 설명합니다. 클라우드 설계자는 이 지침을 사용하여 이 아키텍처의 일반적인 구현을 위한 주요 구성 요소를 시각화할 수 있습니다. 이 문서를 시작점으로 사용하여 워크로드의 특정 요구 사항에 맞는 잘 설계된 솔루션을 디자인할 수 있습니다.

이 문서에서는 API Management 및 Azure AD(Azure Active Directory) B2C를 사용하여 전달자 토큰의 유효성을 검사하여 Azure 및 기타 환경에서 백 엔드 API를 보호하는 아키텍처를 살펴보겠습니다.

아키텍처

API Management 및 Azure AD B2C를 사용하여 전달자 토큰의 유효성을 검사하여 백엔드 API를 보호하는 아키텍처의 다이어그램입니다. API는 Azure 또는 다른 환경에 있을 수 있습니다.

이 아키텍처의 Visio 파일을 다운로드합니다.

데이터 흐름

  1. 애플리케이션에 대한 액세스 권한을 얻기 위해 API 클라이언트는 사용자 이름 및 암호와 같은 자격 증명을 제공하여 인증합니다. 이 솔루션에서 IdP는 Azure AD B2C이지만 다른 IdP를 사용할 수 있습니다.

  2. 인증 요청은 Azure Front Door를 통해 Azure AD B2C(로그인을 위한 사용자 지정 도메인으로 구성됨)로 이동합니다. Azure AD B2C는 사용자를 인증하고 JWT(JSON Web Token) 전달자 토큰을 사용자에게 다시 반환합니다.

  3. 클라이언트는 백엔드 API에 액세스하는 이벤트를 트리거합니다. 이 이벤트는 웹 애플리케이션 또는 모바일 디바이스에서 단추를 클릭하거나 백엔드 API의 엔드포인트에 대한 직접 호출일 수 있습니다.

  4. 요청은 백엔드가 API Management의 퍼블릭 엔드포인트에 매핑되는 Azure Front Door를 통과합니다. API Management는 요청을 가로채고 해당 validate-jwt 정책을 사용하여 Azure AD B2C에 대해 전달자 토큰의 유효성을 검사합니다. 토큰이 유효하지 않으면 API Management는 401 코드로 응답하여 요청을 거부합니다.

  5. 토큰이 유효하면 API Management는 요청을 적절한 백엔드 API에 전달합니다.

    다이어그램은 세 가지 환경에서 실행되는 백엔드 API를 보여줍니다.

    • App Service 환경
    • 함수 앱
    • AKS(Azure Kubernetes Services)

    API와 API Management 간에 네트워크 연결이 설정된 경우 온-프레미스 및 하이브리드 클라우드 환경에서 실행되는 API는 API Management와 통합될 수도 있습니다.

구성 요소

  • Azure Virtual Network는 VM(가상 머신)과 같은 Azure 리소스 간에 보안 통신을 제공합니다. 또한 인터넷 및 온-프레미스 네트워크에 대한 액세스를 제공합니다.
  • Azure Front Door는 웹 콘텐츠 및 애플리케이션에 대한 고성능, 확장성 및 안전한 사용자 환경을 제공하는 최신 클라우드 CDN(콘텐츠 배달 네트워크) 서비스입니다. SSL 오프로드, 경로 기반 라우팅, 빠른 장애 조치(failover) 및 캐싱과 같은 레이어 7 기능을 제공하여 애플리케이션의 성능과 가용성을 향상시킵니다.
  • Azure Application Gateway는 웹 애플리케이션에 대한 트래픽을 관리하는 레이어 7 부하 분산 장치입니다.
  • API Management는 외부 및 내부 클라이언트에 API를 게시하기 위한 턴키 방식 솔루션입니다. Microsoft Entra ID 또는 다른 IdP를 사용하는 속도 제한, IP 제한 및 인증을 포함하여 공용 API를 관리하는 데 유용한 기능을 제공합니다. API Management는 부하 분산을 수행하지 않으므로 Application Gateway 또는 역방향 프록시와 같은 부하 분산 장치와 함께 사용해야 합니다. Application Gateway에서 API Management를 사용하는 방법에 대한 자세한 내용은 내부 가상 네트워크의 API Management를 Application Gateway와 통합을 참조하세요.
  • Azure AD B2C 는 소비자 지향 애플리케이션을 위해 Microsoft Entra ID를 기반으로 하는 고가용성 글로벌 ID 관리 서비스입니다. 수억 개의 ID로 확장됩니다. 이 솔루션에서 사용하는 IdP입니다. 인증 성공 시 전달자 토큰(JWT)을 반환합니다.
  • Azure App Service는 웹앱을 빌드, 배포 및 스케일링하기 위한 완전 관리형 서비스입니다. .NET, .NET Core, Node.js, Java, Python 또는 PHP를 사용하여 앱을 빌드할 수 있습니다. 앱은 컨테이너에서 실행하거나 Windows 또는 Linux에서 실행할 수 있습니다. 메인프레임 마이그레이션에서 프런트 엔드 화면 또는 웹 인터페이스를 HTTP 기반 REST API로 코딩할 수 있습니다. 메인프레임 애플리케이션에서와 같이 분리될 수 있으며 마이크로 서비스 기반 시스템을 오케스트레이션하기 위해 상태 비저장일 수 있습니다.
  • Azure App Service Environment는 App Service의 단일 테넌트 배포입니다. App Service 앱을 대규모로 안전하게 실행할 수 있는 완벽하게 격리된 전용 환경에서 애플리케이션을 호스트할 수 있습니다.
  • AKS(Azure Kubernetes Service)는 컨테이너화된 애플리케이션을 실행하기 위한 Microsoft 관리되는 Kubernetes 서비스입니다.
  • Azure Functions는 이벤트 기반 서버리스 컴퓨팅 플랫폼입니다. Azure Functions는 요청 시 클라우드에서 대규모로 실행됩니다.

시나리오 정보

백엔드 API는 애플리케이션과 데이터의 진입점이며 악성 애플리케이션 및 사용자로부터 보호되어야 하는 진입점입니다. 여기에 설명된 아키텍처에서 Azure API Management는 클라이언트와 백엔드 API 사이의 게이트웨이 역할을 하며 다음을 비롯한 여러 가지 방법으로 API를 보호합니다.

  • 토큰 유효성 검사
  • 클레임 기반 권한 부여
  • SSL 인증서의 유효성 검사
  • IP 제한
  • 제한
  • 속도 제한
  • 요청 및 응답 유효성 검사

Microsoft 또는 다른 공급자의 OpenID Connect IdP(ID 공급자)를 사용하여 클라이언트를 인증할 수 있습니다. 이 솔루션은 Azure AD B2C를 사용합니다. OpenID Connect 이외의 다른 항목으로 인증한다면 대부분의 경우 Azure AD B2C를 사용하여 페더레이션할 수 있습니다. 자세한 내용은 Azure Active Directory B2C 테넌트에 ID 공급자 추가를 참조하세요.

잠재적인 사용 사례

이 아키텍처는 다음을 수행하려는 조직의 요구 사항을 해결합니다.

  • 권한이 없는 사용자로부터 백엔드 API를 보호합니다.
  • 대역폭 제한, 속도 제한 및 IP 필터링과 같은 API Management 기능을 사용하여 API의 오버로드를 방지합니다.
  • OpenID Connect로 인증하거나 다음을 비롯한 다른 IDP와의 페더레이션에 Azure AD B2C를 사용합니다.
    • Ping Identity 및 CA(Computer Associates) SiteMinder와 같은 타사 IdP
    • Facebook, Microsoft 계정, Google, Twitter
    • OAuth 1.0, OAuth 2.0 또는 SAML 프로토콜을 지원하는 IdP

참가자

Microsoft에서 이 문서를 유지 관리합니다. 원래 다음 기여자가 작성했습니다.

보안 주체 작성자:

기타 기여자:

비공개 LinkedIn 프로필을 보려면 LinkedIn에 로그인합니다.

다음 단계