Edge Management API で外部 IDP を使用する

Basic 認証は、Edge Management API を呼び出す際の認証方法の一つです。 たとえば、Edge 管理 API に次の curl リクエストを行うと、 組織に関する情報:

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

この例では、curl -u オプションを使用して基本認証を渡します。 認証情報が必要です。または、Bearer ヘッダーで OAuth2 トークンを渡して、 Edge Management API 呼び出しは、次の例のようになります。

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

認証用の外部 IDP を有効にした後、必要に応じて基本認証を無効にできます。 あります。Basic を無効にした場合 すべてのスクリプト(Maven、シェル、apigeetool など)を Basic 認証をサポートする Edge Management API 呼び出しは機能しなくなりました。更新が必要です 基本認証を使用して OAuth2 アクセス トークンを渡すすべての API 呼び出しとスクリプト Bearer ヘッダー。

get_token を使用してトークンを取得および更新する

get_token ユーティリティは、あなたの基本認証情報(場合によっては あります。get_token ユーティリティは、 有効なアクセス トークンを返します。トークンを更新できる場合、ユーティリティは それを返します。更新トークンの有効期限が切れると、ユーザー認証情報の入力を求められます。

get_token ユーティリティはトークンをディスクに格納し、必要なときにすぐに使用できます。これは、 また、有効なアクセス トークンを stdout に出力します。そこから、次のようなブラウザ拡張機能を使用できます。 Postman を使用するか、curl で使用するために環境変数に埋め込みます。

OAuth2 アクセス トークンを取得して Edge Management 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 は、ホストしているマシンの IP アドレスまたは DNS 名です。 Apigee SSO モジュール。Apigee SSO で TLS を構成した場合は、https と正しい TLS ポート番号。

  2. 次の例のように、ssocli-bundle.zip バンドルを解凍します。
    unzip ssocli-bundle.zip
  3. 次の例のように、get_token/usr/local/bin にインストールします。
    ./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 に移動して 1 回限りの パスコード:
    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. アクセス トークンを Bearer ヘッダーとして Edge Management API 呼び出しに渡します。 次の例をご覧ください。
    curl -H "Authorization: Bearer ACCESS_TOKEN"
      https://MS_IP:8080/v1/organizations/ORG_NAME
  8. 新しいアクセス トークンを初めて取得したら、そのアクセス トークンを取得し、 次の例のように、1 つのコマンドで API 呼び出しに渡します。
    header=`get_token` && curl -H "Authorization: Bearer $header"
      https://MS_IP:8080/v1/o/ORG_NAME

    この形式のコマンドを使用すると、アクセス トークンが期限切れになると、 更新トークンの有効期限が切れるまでデータが保持されます。

(SAML のみ)更新トークンの有効期限が切れると、get_token から新しいパスコードの入力を求められます。マイページ パスコードを生成するには、上記の手順 3 で示した URL に移動して新しいパスコードを生成する必要があります。 新しい OAuth アクセス トークンを作成します。

Management API を使用して取得と更新を行う トークン

OAuth2 を使用する Apigee Edge Management API を使用してセキュリティを保護するでは、 トークンを取得および更新する Edge Management API。Edge API 呼び出しを使用して、トークンや SAML アサーションによって生成されます。

API 呼び出しの違いは、 OAuth2 の使用 Apigee Edge Management API を使用したセキュリティがありますが、呼び出しの URL は ゾーン名を指定します。また、SAML IDP を使用して初期アクセス トークンを生成するには、 パスコードを入力します。

認可のため、予約済みの OAuth2 クライアント認証情報を Authorization に渡します。 できます。この呼び出しにより、アクセス トークンと更新トークンが画面に出力されます。

アクセス トークンを取得する

(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'