Edge Management API での SAML の使用

Edge for Private Cloud v4.18.01

Basic 認証は、Edge Management API を呼び出す際の認証方法の 1 つです。たとえば、組織に関する情報にアクセスするには、次の cURL リクエストを Edge Management API に送信します。

> curl -u userName:pWord https://ms_IP_DNS:8080/v1/organizations/orgName

この例では、cURL -u オプションを使用して Basic 認証の認証情報を渡します。または Bearer ヘッダーで OAuth2 トークンを渡して、Edge 管理 API を作成できます。 できます。例:

> curl -H "Authorization: Bearer <access_token>" https://ms_IP_DNS:8080/v1/organizations/orgName

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

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

get_token ユーティリティは、Basic 認証の認証情報とパスコードを、OAuth2 アクセス トークンおよびリフレッシュ トークンと交換します。「 get_token ユーティリティが 有効なアクセス トークンが出力されます。トークンを更新できる場合は、更新して出力します。更新トークンの有効期限が切れると、ユーザー認証情報の入力を求められます。

get_token ユーティリティは、 必要なときにすぐに使用できる状態になっています。また、有効なアクセス トークンを stdout に出力します。 そこから Postman を使用することも、トークンを環境変数に埋め込んで curl で使用することもできます。

get_token を使用して OAuth2 アクセス トークンを取得し、Edge Management API を呼び出す方法を説明します。

  1. sso-cli をダウンロードする セット販売:
    &gt;curl http://edge_sso_IP_DNS:9099/resources/scripts/sso-cli/ssocli-bundle.zip -o "ssocli-bundle.zip"

    ここで、edge_sso_IP_DNS はマシンの DNS 名の IP アドレスです。 バックエンドサービスプロバイダを ホストしていますEdge SSO で TLS を構成した場合は、https と正しい TLS ポート番号を使用します。
  2. ssocli-bundle.zip バンドルを解凍します。
    > unzip ssocli-bundle.zip
  3. get_token を次の場所にインストールします。 /usr/local/bin:
    &gt;./install-b オプションを使用して、 別の場所: >./install -b パス
  4. SSO_LOGIN_URL を設定します 環境変数を
    の形式で設定します。 エクスポート SSO_LOGIN_URL=&quot;http://edge_sso_IP_DNS:9099&quot;

    ここで、edge_sso_IP_DNS はマシンの DNS 名の IP アドレスです。 バックエンドサービスプロバイダを ホストしていますEdge SSO で TLS を構成した場合は、https と正しい TLS ポート番号を使用します。
  5. ブラウザで次の URL にアクセスして、ワンタイム パスコードを取得します。
    http://edge_sso_IP_DNS:9099/passcode

    Edge SSO で TLS を構成した場合は、https と正しい TLS ポート番号を使用します。

    : 現在 ID プロバイダによってログインしていない場合は、ログインするように求められます。

    この URL からワンタイム パスコードが返されます。このパスコードは、URL を更新して認証情報を取得するまで有効です。 新しいパスコードを生成するか、get_token でパスコードを使用してアクセス トークンを生成します。
  6. get_token を呼び出して取得します。 次のトークンを使用します。
    &gt;get_token -u emailAddress

    ここで、emailAddress は Edge ユーザーのメールアドレスです。ステップ 3 で取得したワンタイム パスコードを入力するよう求められます。
    ワンタイム コード(https://edge_sso_IP.com/passcode で取得)
    SAML が有効になっている場合はパスコードを入力します。そうでなければ、Enter キーを押します。


    パスコードを入力します。get_token ユーティリティは OAuth2 アクセス トークンを取得します。 そのトークンを画面に出力し、更新トークンと ~/.sso-cli に書き込みます。

    コマンドラインでパスコードを入力するには、次の形式の get_token コマンドを使用します。
    > get_token -u emailAddress -p passcode
  7. アクセス トークンを Bearer ヘッダーとして Edge Management API 呼び出しに渡します。
    &gt;curl -H "Authorization: Bearer access_token&quot; https://ms_IP:8080/v1/organizations/orgName

    新しいアクセス トークンを初めて取得した後、そのアクセス トークンを取得し、 以下に示すように、1 つのコマンドで API 呼び出しに渡します。
    &gt;header=`get_token` && curl -H "Authorization: Bearer $header" https://ms_IP:8080/v1/o/orgName

    この形式のコマンドを使用すると、アクセス トークンが期限切れになると、トークンが自動的に更新されます。 更新トークンが期限切れになるまで表示されます。

更新トークンが期限切れになると、get_token によって新しいパスコードの入力が求められます。上記のステップ 3 に示されている URL にアクセスして新しいパスコードを生成してからでないと、新しい OAuth アクセス トークンは生成できません。

Management API を使用した取得と更新 トークン

OAuth2 の使用 セキュリティと Apigee Edge 管理 API を使用するでは、Apigee Edge 管理 API トークンを取得および更新する Edge Management API。Edge API 呼び出しを使用して、SAML アサーションからトークンを生成することもできます。

API 呼び出しの違いは、OAuth2 セキュリティの使用 呼び出しの URL がゾーンを参照する必要がある点です。 表示されます。さらに、初期アクセス トークンを生成するには、次のようにパスコードを含める必要があります。 ステップ 3 で確認できます

たとえば、初期アクセス トークンとリフレッシュ トークンを生成するには、次の 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'  

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

後でアクセス トークンを更新するには、更新トークンを含む次の呼び出しを使用します。

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=refreshToken'