Entra ID로 인증과 권한 부여

Azure API Management

Fiodar Sazanavets

Senior Software Engineer at Microsoft

OAuth 기본 개념

Entra ID - APIM 통합

Azure API Management

왜 IdP를 사용하는가

발렛파킹 비유

  • IdP는 발렛파킹에 비유할 수 있습니다
  • 차의 글러브박스에는 귀중품(보안 데이터)이 있습니다
  • 발렛에게 발렛 키를 줍니다
    • 주차만 가능하고 귀중품 접근은 불가
  • 마찬가지로 IdP는 앱 보안을 관리하지만 앱 내부의 보안 데이터에는 접근 못 합니다
  • 예: Entra ID는 IdP, API Manager는 클라이언트
Azure API Management

Entra ID 앱 등록

  • Entra ID는 Azure Portal에서 찾을 수 있습니다
  • 관리를 위해 고권한 Contributor 권한이 필요합니다
  • OAuth 적용을 위해 App Registration에 새 엔터티 추가
  • 각 등록에는 사용자 지정 이름과 유효한 리디렉션 URL이 필요
  • APIM의 경우 리디렉션 URL은 APIM 인스턴스 주소
  • 로그인 후 Entra ID가 요청을 APIM으로 되돌리도록 보장

Entra ID 앱 등록

Azure API Management

클라이언트 정보 캡처

Entra ID 클라이언트 정보

  • Client ID와 Tenant ID

    • 애플리케이션의 공개 주소를 구성
    • 코드가 Entra ID에 앱이 누구인지 알리는 데 사용
  • Client Secret

    • 애플리케이션의 비밀번호 역할
    • 신원 증명을 위해 코드가 제시
    • 항상 안전하게 저장하고 클라이언트 사이드 코드에 노출 금지
Azure API Management

엔드포인트 URL 확보

  • 클라이언트를 IdP에 연결하기 전 IdP 엔드포인트 URL 확보

    • Entra ID에서 앱 등록의 Overview 페이지에서 Endpoints 클릭
    • OAuth 2.0 authorizationtoken 엔드포인트 확인
  • Authorization Endpoint

    • 사용자를 로그인으로 리디렉션하는 위치
  • Token Endpoint

    • 백엔드가 인증 코드를 액세스 토큰으로 교환

Entra ID 인증 플로우

Azure API Management

APIM을 Entra ID에 연결

APIM의 OAuth 및 OIDC 연결

  • APIM에서 APIs의 OAuth 2.0 + OpenID Connect 열기

    • 새 authorization server 정의
  • 서버 구성:

    • Authorization 및 token 엔드포인트
    • Client ID와 Client Secret
    • API가 노출하는 스코프
Azure API Management

연습해 봅시다!

Azure API Management

Preparing Video For Download...