Edge 관리 API와 함께 외부 IDP 사용

기본 인증은 Edge Management API를 호출할 때 인증하는 한 가지 방법입니다. 예를 들어 다음 curl 요청을 Edge Management API에 실행하여 조직에 관한 정보에 액세스할 수 있습니다.

curl -u USER_NAME:PASSWORD http://MS_IP_DNS:8080/v1/organizations/ORG_NAME

이 예에서는 curl -u 옵션을 사용하여 기본 인증 사용자 인증 정보를 전달합니다. 또는 다음 예와 같이 Authorization: Bearer 헤더에서 OIDC/OAuth2 토큰을 전달하여 Edge Management API 호출을 수행할 수 있습니다.

curl -H "Authorization: Bearer ACCESS_TOKEN" http://MS_IP_DNS:8080/v1/organizations/ORG_NAME

인증을 위해 외부 IDP를 사용 설정한 후에는 선택적으로 기본 인증을 사용 중지할 수 있습니다. 기본 인증을 사용 중지하면 기본 인증을 지원하는 Edge Management API 호출에 의존하는 모든 스크립트 (예: Maven, 셸, apigeetool)가 더 이상 작동하지 않습니다. 기본 인증을 사용하는 API 호출 및 스크립트를 업데이트하여 Bearer 헤더에서 OAuth2 액세스 토큰을 전달해야 합니다.

get_token으로 토큰 가져오기 및 갱신

get_token 유틸리티는 표준 OAuth 2.0 기기 코드 흐름을 사용하여 OIDC/OAuth2 액세스 및 갱신 토큰을 가져옵니다. 이 유틸리티는 브라우저에서 URL을 방문하여 외부 IDP (또는 로컬 LDAP)를 통해 인증하라는 메시지를 표시한 후 터미널의 차단을 자동으로 해제하여 유효한 액세스 토큰을 출력합니다.

get_token 유틸리티는 필요할 때 사용할 수 있도록 ~/.sso-cli/의 디스크에 토큰을 안전하게 캐시합니다. 또한 유효한 액세스 토큰을 stdout에 출력합니다. 기존 토큰을 갱신할 수 있는 경우 유틸리티가 자동으로 갱신합니다. 갱신 토큰이 만료되면 새 브라우저 기반 승인 흐름이 시작됩니다.

Edge Management API 호출을 실행하기 위한 OAuth2 액세스 토큰을 가져오려면 다음 단계를 따르세요.

  1. get_token 및 acurl 유틸리티는 Apigee SSO (OpenLDAP 노드)를 호스팅하는 노드에 사전 설치되어 있습니다. /opt/apigee/apigee-openldap/bin/
  2. (선택사항) SSO_LOGIN_URL 환경 변수를 다음과 같은 형식으로 SSO 발급기관 URL로 설정합니다.
    export SSO_LOGIN_URL="http://EDGE_SSO_IP_DNS:9099"

    여기서 EDGE_SSO_IP_DNS는 Apigee SSO를 호스팅하는 머신의 IP 주소 또는 DNS 이름입니다. Apigee SSO에서 TLS를 구성한 경우 https 및 올바른 TLS 포트 번호를 사용합니다.

  3. 이메일 주소로 get_token을 호출하여 OAuth 2.0 기기 코드 흐름을 시작합니다.
    /opt/apigee/apigee-openldap/bin/get_token -u EMAIL_ADDRESS

    여기서 EMAIL_ADDRESS는 Edge 사용자의 이메일 주소입니다.

  4. 유틸리티가 일시중지되고 URL과 8자리 기기 코드를 터미널에 출력합니다.
    Please visit: http://EDGE_SSO_IP_DNS:9099/device
    And enter code: ABCD-EFGH
  5. 브라우저에서 지정된 URL을 열고 기기 코드를 입력한 후 제출 을 클릭합니다. 인증하고 요청을 승인하기 위해 외부 IDP (또는 로컬 LDAP 양식)로 리디렉션됩니다.
  6. 브라우저에서 인증을 완료한 후 터미널로 돌아갑니다. get_token 유틸리티가 승인을 자동으로 감지하고 OAuth2 액세스 토큰을 가져와 화면에 출력하고 안전하게 캐시합니다.
  7. 캐시된 토큰을 자동으로 읽고 Bearer 헤더를 삽입하는 acurl 유틸리티를 사용하여 액세스 토큰을 Edge Management API 호출에 전달합니다.
    /opt/apigee/apigee-openldap/bin/acurl http://MS_IP_DNS:8080/v1/organizations/ORG_NAME

    또는 표준 curl을 사용하여 토큰을 수동으로 전달할 수 있습니다.

    curl -H "Authorization: Bearer ACCESS_TOKEN" \
      http://MS_IP_DNS:8080/v1/organizations/ORG_NAME

관리 API를 사용하여 토큰 가져오기 및 갱신

기존 /passcode 엔드포인트가 삭제되었습니다. 따라서 사용자는 앞에서 설명한 대로 get_token 유틸리티를 사용하여 초기 인증을 위한 브라우저 기반 OAuth 2.0 기기 코드 흐름을 시작해야 합니다.

브라우저와 상호작용할 수 없는 스크립트 또는 CI/CD 파이프라인을 작성하는 경우 머신 사용자로 작업 자동화를 참조하세요. 유효한 사용자 인증 정보가 있는 자동화된 머신 사용자 또는 애플리케이션은 표준 API 호출을 사용하여 토큰을 가져오고 갱신 토큰을 갱신할 수 있습니다.