SAML로 Edge API 액세스

<ph type="x-smartling-placeholder"></ph> 현재 Apigee Edge 문서를 보고 있습니다.
Apigee X 문서.
정보

SAML은 싱글 사인온 (SSO) 환경을 지원합니다. Edge에서 SAML을 사용하면 SSO를 지원할 수 있습니다. 사용자가 제공하고 지원하는 다른 서비스 외에 Edge UI 및 API SAML을 클릭합니다.

전제 조건: 최소한 SAML을 사용 설정해야 합니다. 이를 사용하여 Edge API에 액세스할 수 있어야 합니다.

SAML과 OAuth2의 차이점

SAML을 설정한 후 이를 사용하는 것은 OAuth2로 액세스에 OAuth2를 사용하는 것과 Edge API를 참조하세요. Edge API를 호출할 때 OAuth2 액세스 토큰을 요청할 수 있습니다

Edge API에 액세스할 때 SAML과 OAuth2의 주요 차이점은 토큰을 얻게 됩니다 SAML을 사용하면 사용자 인증 정보를 받을 때 다음을 포함해야 합니다. 토큰 쌍:

  1. 영역: 퍼블릭 클라우드용 Edge 사용자는 토큰을 가져올 때 영역 이름을 참조해야 합니다.
  2. 비밀번호: 액세스/새로고침을 요청할 때 일회용 비밀번호 포함 토큰 쌍입니다.

SAML은 적절한 영역 이름 외에 Edge OAuth2 서비스에서 동일한 엔드포인트를 사용합니다.

SAML로 액세스 토큰을 받으려면 이 섹션에 설명된 다음 방법 중 하나를 사용하면 됩니다.

또한 토큰 생성 프로세스 자동화에 설명된 대로 머신 사용자를 위한 토큰 생성 프로세스를 자동화할 수 있습니다.

get_token으로 액세스 토큰 받기

get_token 유틸리티를 사용하여 사용자 인증 정보를 OAuth2 액세스로 교환할 수 있습니다. 토큰을 새로고침할 수 있습니다

get_token으로 액세스 토큰을 가져오는 방법은 다음과 같습니다.

  1. 로그인 URL에 SSO_LOGIN_URL 환경 변수를 설정합니다. 로그인 URL에는 다음 양식을 작성해 주시기 바랍니다.
    https://zoneName.login.apigee.com

    예를 들어 'acme'라는 영역의 경우 SSO_LOGIN_URL을 'https://acme.login.apigee.com'으로 설정합니다. 예를 들면 다음과 같습니다.

    export SSO_LOGIN_URL=https://acme.login.apigee.com
  2. get_token를 호출하여 OAuth2 액세스 토큰을 가져옵니다.
    get_token -u me@example.com

    일회용 비밀번호를 얻기 위해 표시된 URL로 이동하라는 메시지가 표시됩니다.

    Get passcode from https://acme.login.apigee.com/passcode
    [Note:  Passcode can be used only time time and expires] Input passcode (no spaces) and then press ENTER:

    최근에 ID 공급업체를 통해 로그인하지 않은 경우 로그인하라는 메시지가 표시됩니다. 인치

    이 URL은 새 비밀번호를 가져오거나 get_token와 함께 비밀번호를 사용하여 액세스할 수 있습니다. 예를 들면 다음과 같습니다.

  3. 비밀번호를 입력합니다. get_token 유틸리티가 OAuth2 토큰을 가져옵니다. 액세스 토큰을 stdout로 출력하고 액세스 토큰과 갱신 토큰을 작성합니다. ~/.sso-cli에게 전송합니다.

  4. Edge API를 호출하고 Authorization: Bearer에서 액세스 토큰을 전달합니다. 헤더의 '예'를 사용합니다.
    curl https://api.enterprise.apigee.com/v1/organizations/ahamilton-eval \
      -H "Authorization: Bearer ACCESS_TOKEN"

    액세스 토큰의 값은 stdout에서 복사할 수 있습니다.

    이 예시에서는 특정 조직에 대한 세부정보를 가져옵니다. 전체 관리 목록 보기 API 엔드포인트는 Apigee Edge API 참조를 확인하세요.

액세스 토큰이 만료되면 get_token를 다시 호출하여 새 액세스 권한을 얻을 수 있습니다. 토큰입니다. 예를 들면 다음과 같습니다.

get_token -u me@example.com

갱신 토큰이 만료될 때까지 새 비밀번호를 입력하라는 메시지가 표시되지 않습니다.

갱신 토큰이 만료되면 get_token에서 새 비밀번호를 입력하라는 메시지를 표시합니다. 다음을 수행해야 합니다. 새 OAuth2 액세스 토큰을 생성하려면 먼저 새 비밀번호를 생성해야 합니다.

Edge OAuth2 서비스로 액세스 토큰 가져오기

Edge OAuth2 서비스를 사용하여 SAML에서 사용하는 액세스 토큰을 가져올 수 있습니다. 인증 방법 Edge API를 직접 사용한다면 초기 요청에 비밀번호를 사용하여 액세스/새로고침을 다시 새 토큰 쌍을 가져옵니다.

Edge API로 토큰 쌍을 가져오려면 다음 안내를 따르세요.

  1. 브라우저에서 다음 URL로 이동하여 일회용 비밀번호를 가져옵니다.
    https://zoneName.login.apigee.com/passcode

    예를 들어 'acme'라는 영역의 경우 다음 URL로 이동합니다.

    https://acme.login.apigee.com/passcode

    최근에 ID 공급업체를 통해 로그인하지 않은 경우 로그인하라는 메시지가 표시됩니다. 인치

    이 URL은 토큰을 받기 위한 사용자 인증 정보 역할을 하는 일회성 비밀번호를 반환하며 새 비밀번호를 가져오거나 get_token와 함께 비밀번호를 사용하여 액세스할 수 있습니다. 예를 들면 다음과 같습니다.

  2. 다음 예시와 같이 Edge API에 요청을 전송합니다.
    curl https://zoneName.login.apigee.com/oauth/token \
          -s \
          -H "Accept: application/json" \
          -d 'grant_type=password&response_type=token&passcode=passcode'

    passcode은 승인을 위한 사용자 인증 정보 역할을 합니다.

    각 항목의 의미는 다음과 같습니다.

    • Authorization 헤더: 'Basic ZWRnZWNsaTplZGdlY2xpc2VjcmV0' ( 정확한 값).
    • 요청 유형은 POST입니다.
    • 요청 본문에는 다음이 포함됩니다. <ph type="x-smartling-placeholder">
        </ph>
      • grant_type은 '비밀번호'입니다.
      • response_type은 'token'입니다.
      • passcode: 여기서 passcode는 이전 단계에서 반환된 비밀번호입니다.

    호출하면 액세스 및 갱신 토큰이 화면에 출력됩니다.

액세스 토큰을 갱신하려면 다음 단계를 따르세요.

https://zoneName.login.apigee.com/oauth/token님에게 요청을 제출합니다. 예를 들면 다음과 같습니다.

curl https://zoneName.login.apigee.com/oauth/token \
      -d 'grant_type=refresh_token&refresh_token=REFRESH_TOKEN'

각 항목의 의미는 다음과 같습니다.

  • 요청 본문에는 다음이 포함됩니다. <ph type="x-smartling-placeholder">
      </ph>
    • grant_type는 'refresh_token'입니다.
    • refresh_token는 갱신 토큰의 값입니다.
  • Authorization 헤더: 'Basic ZWRnZWNsaTplZGdlY2xpc2VjcmV0' ( 정확한 값).
  • 요청 유형은 POST입니다.

SAML로 Edge API에 액세스

curl 또는 Apigee 편의 유틸리티 acurl와 같은 도구를 사용할 수 있습니다. ~ Edge API에 액세스합니다

curl를 사용하여 Edge API를 호출하고 Authorization: Bearer 헤더를 사용하여 다음 예시를 확인할 수 있습니다.

curl https://api.enterprise.apigee.com/v1/organizations/ahamilton-eval \
  -H "Authorization: Bearer ACCESS_TOKEN"

acurl를 사용하면 Authorization 헤더를 지정할 필요가 없습니다. 예를 들면 다음과 같습니다.

acurl https://api.enterprise.apigee.com/v1/organizations/ahamilton-eval

이러한 예시에서는 지정된 조직에 대한 세부정보를 가져오는 Edge API 엔드포인트를 호출합니다. Edge API 엔드포인트의 전체 목록은 Apigee Edge API 참조를 확인하세요.

토큰이 유지되는지 확인하는 방법 등 API를 호출하는 추가 메서드의 경우 OAuth2로 Edge API에 액세스를 참조하세요.

SAML 영역의 머신 사용자

acurlget_token 유틸리티를 사용하여 자동 액세스를 스크립트로 작성할 수 있습니다. Edge API에 제공합니다. 다음 예는 다음을 실행하는 방법을 보여줍니다. 다음 용도로 get_token 사용 액세스 토큰을 요청한 후 curl 호출에 토큰 값을 추가합니다.

  USER=me@example.com
  PASS=not-that-secret
  TOKEN=$(get_token -u $USER:$PASS -m '' --force-basic-auth)
  curl -H "Authorization: Bearer $TOKEN" 'https://api.enterprise.apigee.com/v1/organizations/...'

위의 예에서 -m 값을 빈 문자열로 설정하면 머신 사용자가 MFA 코드를 입력하라는 메시지가 표시되지 않습니다. --force-basic-auth 플래그를 사용하면 SAML 영역(zone)으로 요청에 의해 트리거되는 비밀번호의 표준 프롬프트입니다.

또는 acurl 유틸리티를 사용하여 토큰 요청과 curl 호출을 결합할 수 있습니다. 예를 들면 다음과 같습니다.

  USER=me@example.com
  PASS=not-that-secret
  acurl -u $USER:$PASS -m '' --force-basic-auth 'https://api.enterprise.apigee.com/v1/organizations/...'