주:

Microsoft Entra ID를 사용하여 OAuth 및 OpenID Connect를 사용하여 OCI API 게이트웨이 보안

소개

OCI(Oracle Cloud Infrastructure) API 게이트웨이는 API 엔드포인트 및 웹 애플리케이션을 보호하는 데 사용할 수 있는 OCI의 서버리스 완전 관리형 서비스입니다. 이 기능은 비율 제한, 권한 부여 적용, 동적 경로 지정, SSL 적용 등과 같은 다양한 보안 기능을 제공합니다. Microsoft Entra ID OAuth 토큰을 사용하여 OCI API Gateway에서 실행되는 API를 보호하는 방법 또는 Microsoft Entra ID 토큰을 활용하여 OCI API Gateway에 대해 인증하는 방법을 묻는 고객으로부터 많은 요청을 받았습니다. OCI API 게이트웨이 인증에 대한 자세한 내용은 인증 및 API 배치에 권한 부여를 추가하기 위한 토큰 검증을 참조하십시오.

목표

필요 조건

작업 1: Microsoft Entra ID를 OAuth ID 제공자로 구성(IdP)

Microsoft Entra ID 측에서는 Microsoft Entra ID로 두 개의 클라이언트 애플리케이션을 구성해야 합니다. 하나는 Microsoft Entra ID, 다른 클라이언트 앱에 인증하는 데 사용됩니다. Microsoft Entra ID에 API를 노출하는 데 사용되며, Postman을 통해 첫번째 앱의 암호인 클라이언트 ID를 사용하여 이 노출된 API에 대한 토큰을 검색합니다. 이 토큰을 검토하고 OCI API 게이트웨이 구성에서 임포트할 대상자(감사) 및 발행자 필드를 사용합니다.

Microsoft Entra ID에서 두 개의 클라이언트 앱을 만들고 설정하려면 다음 단계를 수행하십시오.

  1. 첫 번째 앱을 생성하려면 Microsoft Entra ID 포털을 열고 앱 등록새 등록을 눌러 새 애플리케이션을 등록합니다.

  2. 다음 정보를 입력하고 등록을 누릅니다.

    • 이름: 애플리케이션 이름을 입력합니다.
    • 지원되는 계정 유형: 이 조직 디렉토리에 있는 계정만(기본 디렉토리만 - 단일 테넌트)을 선택합니다.

    이미지 1

  3. API 노출을 눌러 애플리케이션 ID URI를 추가하여 클라이언트 앱에 노출하고 범위 추가를 눌러 범위를 추가합니다. 이 자습서에서는 API를 노출하고 범위를 추가하기 위해 다음 이미지에 표시된 대로 테스트 값을 제공했습니다.

    웹 API를 등록하고 범위를 통해 노출하고 앱 롤을 지정하면 API에 액세스하는 권한이 부여된 사용자 및 클라이언트 앱에 대한 리소스에 대한 권한 기반 액세스를 입력할 수 있습니다.

    주: 애플리케이션 ID URI를 참고하십시오. 이 URI는 나중에 Microsoft Entra ID에서 토큰을 가져오는 동안 사용됩니다.

    이미지 2

    이미지 3

  4. 앱 롤을 눌러 첫번째 애플리케이션에 대한 앱 롤을 추가합니다.

    이미지 4

  5. 두번째 앱을 생성하려면 Microsoft Entra ID 포털을 열고 앱 등록새 등록을 눌러 새 애플리케이션을 등록합니다.

  6. 다음 정보를 입력하고 등록을 누릅니다.

    • 이름: 애플리케이션 이름을 입력합니다.
    • 지원되는 계정 유형: 이 조직 디렉토리에 있는 계정만(기본 디렉토리만 - 단일 테넌트)을 선택합니다.

    이미지 6

  7. 애플리케이션(클라이언트) ID는 API로 노출된 첫번째 클라이언트 앱에 대한 토큰을 가져오는 데 토큰 생성 API에서 인증서로 사용되므로 참고하십시오.

    이미지 5

  8. 인증서 및 암호, 새 클라이언트 암호를 누르고 다음 정보를 입력한 다음 추가를 누릅니다.

    • 설명: 짧은 암호 설명을 입력합니다.
    • 만료: 만료를 선택합니다. 기본적으로 암호 만료는 6개월로 설정됩니다.

    이미지 7

    주: 값 필드를 복사하여 암호를 기록해 둡니다.

    암호는 위의 응용 프로그램(클라이언트) ID와 쌍으로 이동합니다.

    이미지 8

  9. API 권한Api_App에 대한 권한 추가를 누릅니다. API 선택 섹션에서 내 조직에서 사용하는 API를 선택하고 첫 번째 앱을 구성하는 동안 노출된 API를 선택합니다.

    이미지 9

    이미지 10

  10. 애플리케이션 권한 및 노출된 권한을 선택한 다음 권한 추가를 누릅니다.

    이미지 11

    이미지 12

  11. 개요, 끝점을 누르고 OAuth 2.0 토큰 끝점(v1) URL을 복사합니다. 이 URL은 JWT 토큰 발행에 사용됩니다.

    이미지 13

  12. 끝점에서는 원격 JWKS URI가 포함된 잘 알려진 OpenID 끝점 URL을 가져옵니다.

    이미지 14

Microsoft Entra ID 파트로 완료되었으며 이제 OCI API Gateway 구성을 향해 나아갑니다. 그러나 OCI에서 API 게이트웨이를 구성하기 전에 Postman을 사용하여 Microsoft Entra ID에서 JWT 및 openid-configuration에서 필요한 세부정보를 수집합니다. 우리는 아래의 세부 사항을 수집해야합니다 :

Postman을 사용하여 Microsoft Entra ID에서 액세스 토큰을 가져옵니다. 범위 값을 확인합니다. 이 URI는 Api_App의 API 노출 섹션에 생성된 애플리케이션 ID URI이고 다음 이미지에 표시된 대로 끝에 /.default를 추가해야 합니다.

Postman을 사용하여 Microsoft Entra ID에서 JWT 토큰을 검색합니다. {tenant-ID}을 Azure 테넌트 ID로 바꾸는 동안 토큰 API URL https://login.microsoftonline.com/{tenant-ID}/oauth2/token를 입력합니다. 요청을 전송하고 access_token 값을 복사합니다.

이미지 15

이제 JWT 토큰을 디코딩하여 JWT 허용 발행자 및 JWT 허용 대상자와 같은 일부 값을 가져올 수 있습니다.

이미지 16

OCI API 게이트웨이에서 구성된 재고 응답에 대해 Microsoft Entra ID에서 발행한 JWT(JSON 웹 토큰)를 사용합니다.

작업 2: OCI API 게이트웨이 구성

  1. OCI API 게이트웨이로 이동하고 인증 섹션에서 단일 인증을 선택하고 다음 정보를 입력합니다.

    • 인증 유형: OAuth 2.0/ OpenID Connect.
    • 토큰 위치: Header.
    • JWT 토큰 헤더 이름: Authorization.
    • 인증 체계: Bearer.

    이미지 17

  2. 추가 JWT 검증 섹션에서 허용된 발행자대상자를 정의합니다. v1 토큰 API를 사용했으므로 허용된 발행자https://sts.windows.net/{tenant-id}/로 설정해야 합니다. {tenant-ID}를 Azure 테넌트 ID로 바꿉니다. 허용된 대상자에는 태스크 1에서 얻은 aud 청구 값이 포함되어야 합니다.

    이미지 18

  3. 검증 유형 섹션에 잘 알려진 OpenID 끝점인 Microsoft Entra ID에서 가져온 JWKS URI를 입력합니다.

    이미지 19

  4. 경로를 생성하려면 다음 정보를 입력하고 다음을 누릅니다.

    • 경로: 경로를 정의합니다.
    • 메소드: 메소드를 선택합니다.
    • 단일 백엔드 추가를 선택합니다.
    • 백엔드 유형: 재고 응답을 선택합니다.
    • 상태 코드: 상태 코드를 입력합니다.
    • 본문: 단순 본문을 정의합니다.

    참고: 간단히 말해 재고 응답을 API 게이트웨이의 백엔드 유형으로 노출하는 것입니다. 일반적으로 API 게이트웨이를 통해 보호되는 API이지만 Microsoft Entra ID OIDC 인증 구성도 비슷합니다.

    이미지 20

  5. 검토 섹션에서 배치를 검토하고 생성을 누릅니다. 배치가 Active 상태일 때까지 기다렸다가 끝점 URL을 복사합니다.

    이미지 21

Postman을 사용하여 보안 API 끝점을 테스트합니다. 끝점을 입력하고 경로 경로를 사용하여 접미어로 지정합니다. 권한 부여 헤더를 추가하고 Bearer 체계를 사용하며 Microsoft Entra ID에서 가져온 JWT 토큰을 붙여넣습니다.

이미지 22

이제 OCI API Gateway 배치가 Microsoft Entra ID로 보호됩니다.

확인

추가 학습 자원

docs.oracle.com/learn에서 다른 실습을 살펴보거나 Oracle Learning YouTube 채널에서 더 많은 무료 학습 콘텐츠에 액세스하십시오. 또한 education.oracle.com/learning-explorer를 방문하여 Oracle Learning Explorer가 되십시오.

제품 설명서는 Oracle Help Center를 참조하십시오.