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

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

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

이 예시에서는 curl -u 옵션을 사용하여 기본 인증을 전달합니다. 사용자 인증 정보를 제공합니다 또는 Bearer 헤더에 OAuth2 토큰을 전달하여 에지 관리 API 호출을 보여줍니다.

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

인증을 위해 외부 IDP를 사용 설정한 후 원하는 경우 Basic을 사용 중지할 수 있습니다. 있습니다. 기본을 사용 중지하는 경우 모든 스크립트 (예: Maven, 셸, apigeetool)는 기본 인증을 지원하는 에지 관리 API 호출이 더 이상 작동하지 않음 업데이트해야 합니다. 기본 인증을 사용하여 OAuth2 액세스 토큰을 Bearer 헤더.

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

get_token 유틸리티는 기본 인증 사용자 인증 정보를 교환하며 경우에 따라 비밀번호)을 사용해야 합니다. get_token 유틸리티는 유효한 액세스 토큰을 반환합니다. 토큰을 새로고침할 수 있으면 유틸리티가 반환합니다. 갱신 토큰이 만료되면 사용자 인증 정보를 입력하라는 메시지가 표시됩니다.

get_token 유틸리티는 토큰을 디스크에 저장하므로 필요할 때 바로 사용할 수 있습니다. 그것은 stdout에 유효한 액세스 토큰도 출력합니다. 여기에서 다음과 같은 브라우저 확장 프로그램을 사용할 수 있습니다. curl에서 사용할 수 있도록 Postman 또는 환경 변수에 삽입합니다.

OAuth2 액세스 토큰을 가져와서 Edge 관리 API를 호출하려면 다음 안내를 따르세요.

  1. sso-cli 번들을 다운로드합니다.
    curl http://EDGE_SSO_IP_DNS:9099/resources/scripts/sso-cli/ssocli-bundle.zip -o "ssocli-bundle.zip"

    여기서 EDGE_SSO_IP_DNS는 Apigee SSO 모듈입니다. Apigee SSO에서 TLS를 구성한 경우 https을 사용하고 TLS 포트 번호입니다.

  2. 다음 예와 같이 ssocli-bundle.zip 번들의 압축을 풉니다.
    unzip ssocli-bundle.zip
  3. 다음 예에 표시된 대로 /usr/local/binget_token를 설치합니다.
    ./install -b PATH

    -b 옵션은 다른 위치를 지정합니다.

  4. 다음에서 SSO_LOGIN_URL 환경 변수를 로그인 URL로 설정합니다. 양식:
    export SSO_LOGIN_URL="http://EDGE_SSO_IP_DNS:9099"

    여기서 EDGE_SSO_IP_DNS는 Apigee SSO를 호스팅하는 머신의 IP 주소입니다. 모듈을 마칩니다 Apigee SSO에서 TLS를 구성한 경우 https 및 올바른 TLS 포트를 사용하세요. 있습니다.

  5. (SAML만 해당) 브라우저에서 다음 URL로 이동하여 일회성 비밀번호:
    http://EDGE_SSO_IP_DNS:9099/passcode

    Apigee SSO에서 TLS를 구성한 경우 https 및 올바른 TLS 포트를 사용하세요. 있습니다.

    이 요청은 URL을 새로 고칠 때까지 유효한 상태로 유지되는 일회성 비밀번호를 반환합니다. 새 비밀번호를 가져오거나 get_token와 함께 비밀번호를 사용하여 액세스할 수 있습니다.

    비밀번호는 SAML IDP로 인증할 때만 사용할 수 있습니다. 다음을 사용할 수 없습니다. LDAP IDP로 인증하기 위한 비밀번호

  6. 다음 예시와 같이 get_token를 호출하여 OAuth2 액세스 토큰을 가져옵니다.
    get_token -u EMAIL_ADDRESS

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

    (SAML에만 해당) 이메일과 함께 명령줄에 비밀번호를 입력합니다. 아래 예에 표시된 것처럼

    get_token -u EMAIL_ADDRESS -p PASSCODE

    get_token 유틸리티가 OAuth2 액세스 토큰을 가져와서 화면과 새로고침하고 갱신 토큰을 ~/.sso-cli에 씁니다.

  7. 액세스 토큰을 Edge 관리 API 호출에 Bearer 헤더로 전달합니다. 예를 들면 다음과 같습니다.
    curl -H "Authorization: Bearer ACCESS_TOKEN"
      https://MS_IP:8080/v1/organizations/ORG_NAME
  8. 새 액세스 토큰을 처음 받으면 다음 예와 같이 단일 명령어로 API 호출에 전달합니다.
    header=`get_token` && curl -H "Authorization: Bearer $header"
      https://MS_IP:8080/v1/o/ORG_NAME

    이러한 형식의 명령어를 사용하면 액세스 토큰이 만료된 경우 자동으로 새로고침 토큰이 만료될 때까지 새로고침되지 않습니다

(SAML만 해당) 갱신 토큰이 만료되면 get_token에서 새 비밀번호를 입력하라는 메시지를 표시합니다. 나 위의 3단계에 표시된 URL로 이동하여 새 비밀번호를 생성해야 새 OAuth 액세스 토큰을 생성할 수 있습니다

관리 API를 사용하여 가져오기 및 새로고침 토큰

OAuth2 사용 보안을 사용하면 토큰을 가져오고 갱신하는 Edge Management API입니다. Edge API 호출을 사용하여 토큰을 가져올 수도 있습니다. SAML 어설션에서 생성됩니다.

다음 문서에 설명된 API 호출 간의 유일한 차이점은 OAuth2 사용 보안에 대한 자세한 내용은 호출의 URL이 영역 이름 또한 SAML IDP로 초기 액세스 토큰을 생성하려면 비밀번호를 재설정합니다.

승인을 위해 Authorization에 예약된 OAuth2 클라이언트 사용자 인증 정보를 전달합니다. 헤더를 클릭하세요. 호출하면 액세스 및 갱신 토큰이 화면에 출력됩니다.

액세스 토큰 가져오기

(LDAP) 다음 API 호출을 사용하여 초기 액세스를 생성하고 새로고침합니다. 토큰:

curl -H "Content-Type: application/x-www-form-urlencoded;charset=utf-8" \
  -H "accept: application/json;charset=utf-8" \
  -H "Authorization: Basic ZWRnZWNsaTplZGdlY2xpc2VjcmV0" -X POST \
  http://EDGE_SSO_IP_DNS:9099/oauth/token -s \
  -d 'grant_type=password&username=USER_EMAIL&password=USER_PASSWORD'

(SAML) 다음 API 호출을 사용하여 초기 액세스를 생성하고 새로고침하세요. 토큰:

curl -H "Content-Type: application/x-www-form-urlencoded;charset=utf-8" \
  -H "accept: application/json;charset=utf-8" \
  -H "Authorization: Basic ZWRnZWNsaTplZGdlY2xpc2VjcmV0" -X POST \
  https://EDGE_SSO_IP_DNS:9099/oauth/token -s \
  -d 'grant_type=password&response_type=token&passcode=PASSCODE'

SAML IDP를 사용한 인증에는 임시 비밀번호가 필요하지만 LDAP IDP는 일치하지 않습니다.

액세스 토큰 새로고침

나중에 액세스 토큰을 갱신하려면 갱신 토큰이 포함된 다음 호출을 사용합니다.

curl -H "Content-Type:application/x-www-form-urlencoded;charset=utf-8" \
  -H "Accept: application/json;charset=utf-8" \
  -H "Authorization: Basic ZWRnZWNsaTplZGdlY2xpc2VjcmV0" -X POST \
  https://EDGE_SSO_IP_DNS:9099/oauth/token \
  -d 'grant_type=refresh_token&refresh_token=REFRESH_TOKEN'