SAML を有効にする(ベータ版)

このセクションでは、Apigee Edge の SAML を有効にして、組織のメンバーの認証を独自の ID サービスに委任する方法について説明します。SAML の概要と Edge での ID ゾーン管理については、SAML の概要をご覧ください。

動画: SAML を使用したシングル サインオン(SSO)を有効にする前と有効にした後の Apigee Edge API へのアクセス方法について説明する短い動画をご覧ください。

zoneadmin のロールについて

Edge で ID ゾーンを管理するには、zoneadmin になる必要があります。zoneadmin のロールは、ID ゾーンの管理に関してのみ、完全な CRUD 権限を持っています。

Apigee Edge アカウントに zoneadmin のロールを割り当てるには、Apigee のサポートに連絡してください。

始める前に

始める前に、サードパーティの SAML ID プロバイダから次の情報を取得します。

  • 証明書(PEM または PKCSS 形式)
    必要であれば、x509 証明書を PEM 形式に変換してください。
  • 構成情報(次の表に定義)

    構成 説明
    ログイン URL SAML ID プロバイダにログインするためにユーザーがリダイレクトされる URL。
    ログアウト URL SAML ID プロバイダからログアウトするためにユーザーがリダイレクトされる URL。
    IDP エンティティ ID この ID プロバイダの一意の URL。例: https://idp.example.com/saml

さらに、サードパーティ SAML ID プロバイダを次のように構成します

  • NameID 属性がユーザーのメールアドレスにマッピングされていることを確認します。ユーザーのメールアドレスは、Edge デベロッパー アカウントの一意の識別子として機能します。次に Okta を使用した例を示します。ここでは、[Name ID format] フィールドで NameID 属性を定義しています。

  • Edge UI の認証済みセッションの存続期間に合わせて、認証済みセッションの存続期間を 15 日に設定します。そうしないと、Edge UI の 15 日間のセッションが終了した後に次のエラーが発生する可能性があります。Response doesn't have any valid assertion. Authentication statement is too old to be used. Please re-login to your Identity Provider

Edge SSO Zone Administration ページの使い方

[Edge SSO Zone Administration] ページを使用して、ID ゾーンを管理します。[Edge SSO Zone Administration] ページは組織外に存在し、複数の組織に同じ ID ゾーンを割り当てることができます。

[Edge SSO Zone Administration] ページにアクセスするには:

  1. zoneadmin 特権を持つ Apigee Edge ユーザー アカウントを使用して https://apigee.com/edge にログインします。
  2. 左側のナビゲーション バーで [Admin] > [SSO] を選択します。

[Edge SSO Zone Administration] ページが表示されます(組織外)。

図でハイライト表示されているように、[Edge SSO Zone Administration] ページでは次のことを行えます。

ID ゾーンを追加する

ID ゾーンを追加するには:

  1. [Edge SSO Zone Administration] ページにアクセスします
  2. [Identity zones] セクションで、[+] をクリックします。
  3. ID ゾーンの名前と説明を入力します。
    ゾーン名はすべての Edge 組織の間で一意にする必要があります。

    : Apigee は不適切とみなされるゾーン名を削除する権利を有します。

  4. 必要に応じて、サブドメインの末尾に追加する文字列を入力します。
    たとえば、acme がゾーン名の場合、本番環境ゾーン acme-prod とテストゾーン acme-test を定義できます。
    この本番環境ゾーンを作成するには、サブドメイン接尾辞として「prod」と入力します。この場合、Edge UI へのアクセスに使用される URL は acme-prod.apigee.com になります。詳細については、ID ゾーンを使用して組織にアクセスするをご覧ください。

    : 全てのゾーンの中でサブドメイン DNSサフィックスは、一意である必要があります。

  5. [OK] をクリックします。

  6. SAML ID プロバイダを構成します

SAML ID プロバイダを構成する

SAML ID プロバイダを構成するには、次の手順に従います。

  1. SAML 設定を構成します
  2. 新しい証明書をアップロードします
    必要であれば、x509 証明書を PEM 形式に変換してください。

SAML 設定を構成する

SAML 設定を構成するには:

  1. [Edge SSO Zone Administration] ページにアクセスします
  2. SAML ID プロバイダを構成する ID ゾーンの行をクリックします。
  3. [SAML Settings] セクションで、 をクリックします。
  4. [SP metadata URL] の横の [Copy] をクリックします。

  5. サービス プロバイダ(SP)メタデータ ファイルの情報を使用して、ご利用の SAML ID プロバイダを構成します。

    SAML ID プロバイダでは、メタデータ URL のみを提供するよう求められる場合と、メタデータ ファイルから特定の情報を抽出してそれをフォームに入力しなければならない場合があります。

    後者の場合は、コピーしたメタデータ URL をブラウザのアドレスバーに貼り付けて SP メタデータ ファイルをダウンロードし、必要な情報を抽出します。たとえば、エンティティ ID またはログイン URL は、SP メタデータ ファイル内の次の要素から抽出できます。

    : SP メタデータ ファイルでは、ログイン URL はAssertionConsumerService(ACS)URL とされています。

    • <md:EntityDescriptor xmlns:md="urn:oasis:names:tc:SAML:2.0:metadata" ID="diyyaumzqchrbui-a5vnmu1sp8qzekbd.apigee-saml-login" entityID="diyyaumzqchrbui-a5vnmu1sp8qzekbd.apigee-saml-login">
    • <md:AssertionConsumerService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" Location="https://diyyaumzqchrbui-a5vnmu1sp8qzekbd.portal-login.apigee.com/saml/SSO/alias/diyyaumzqchrbui-a5vnmu1sp8qzekbd.apigee-saml-login" index="0" isDefault="true"/>

    : SAML ID プロバイダでそのように要求されている場合は、オーディエンス制限を zoneID.apigee-saml-login に設定します。これは、SP メタデータ ファイル内の entityID 要素からコピーできます(上記を参照)。

  6. SAML ID プロバイダの SAML 設定を構成します。

    [SAML Settings] セクションで、次のフィールドを SAML ID プロバイダのメタデータ ファイルから取得した値に設定します。

    SAML 設定説明
    ログイン URLSAML ID プロバイダにログインするためにユーザーがリダイレクトされる宛先 URL。
    例: https://dev-431871.oktapreview.com/app/googledev431871_devportalsaml_1/exkhgdyponHIp97po0h7/sso/saml
    ログアウト URLSAML ID プロバイダからログアウトするためにユーザーがリダイレクトされる宛先 URL。
    : ご利用の SAML ID プロバイダでログアウト URL が提供されていない場合は、このフィールドを空白のままにしてください。その場合、このフィールドはログイン URL と同じ値に設定されます。
    IDP エンティティ IDSAML ID プロバイダの一意の URL。
    例: http://www.okta.com/exkhgdyponHIp97po0h7

    注: このフィールドの名前は SAML ID プロバイダによって異なります(Entity IDSP Entity IDAudience URI など)。

  7. [Save] をクリックします。

次に、次のセクションで説明するように、PEM 形式または PKCSS 形式で証明書をアップロードします。

新しい証明書をアップロードする

新しい証明書をアップロードするには:

  1. ご利用の SAML ID プロバイダから証明書をダウンロードします。

    : 証明書は PEM または PKCSS 形式である必要があります。必要であれば、x509 証明書を PEM 形式に変換してください。

  2. [Edge SSO Zone Administration] ページにアクセスします

  3. 新しい証明書をアップロードする ID ゾーンの行をクリックします。

  4. [Certificate] セクションで、 をクリックします。

  5. [Browse] をクリックし、ローカル ディレクトリにある証明書を選択します。

  6. [Open] をクリックして新しい証明書をアップロードします。
    [Certificate] の各フィールドが更新され、選択した証明書の情報が反映されます。

  7. 証明書が有効で、期限切れになっていないことを確認します。

  8. [Save] をクリックします。

x509 証明書を PEM 形式に変換する

ダウンロードした証明書が x509 形式の場合は、PEM 形式に変換する必要があります。

x509 証明書を PEM 形式に変換するには:

  1. SAML ID プロバイダのメタデータ ファイルから ds:X509Certificate element の内容をコピーし、任意のテキスト エディタに貼り付けます。
  2. ファイルの先頭に次の行を追加します。
    -----BEGIN CERTIFICATE-----
  3. ファイルの末尾に次の行を追加します。
    -----END CERTIFICATE-----
  4. .pem 拡張子を使用してファイルを保存します。

次に、PEM ファイルの内容の例を示します。

-----BEGIN CERTIFICATE-----
MIICMzCCAZygAwIBAgIJALiPnVsvq8dsMA0GCSqGSIb3DQEBBQUAMFMxCzAJBgNV
BAYTAlVTMQwwCgYDVQQIEwNmb28xDDAKBgNVBAcTA2ZvbzEMMAoGA1UEChMDZm9v
MQwwCgYDVQQLEwNmb28xDDAKBgNVBAMTA2ZvbzAeFw0xMzAzMTkxNTQwMTlaFw0x
ODAzMTgxNTQwMTlaMFMxCzAJBgNVBAYTAlVTMQwwCgYDVQQIEwNmb28xDDAKBgNV
BAcTA2ZvbzEMMAoGA1UEChMDZm9vMQwwCgYDVQQLEwNmb28xDDAKBgNVBAMTA2Zv
bzCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAzdGfxi9CNbMf1UUcvDQh7MYB
OveIHyc0E0KIbhjK5FkCBU4CiZrbfHagaW7ZEcN0tt3EvpbOMxxc/ZQU2WN/s/wP
xph0pSfsfFsTKM4RhTWD2v4fgk+xZiKd1p0+L4hTtpwnEw0uXRVd0ki6muwV5y/P
+5FHUeldq+pgTcgzuK8CAwEAAaMPMA0wCwYDVR0PBAQDAgLkMA0GCSqGSIb3DQEB
BQUAA4GBAJiDAAtY0mQQeuxWdzLRzXmjvdSuL9GoyT3BF/jSnpxz5/58dba8pWen
v3pj4P3w5DoOso0rzkZy2jEsEitlVM2mLSbQpMM+MUVQCQoiG6W9xuCFuxSrwPIS
pAqEAuV4DNoxQKKWmhVv+J0ptMWD25Pnpxeq5sXzghfJnslJlQND
-----END CERTIFICATE-----

Edge 組織を ID ゾーンに接続する

Edge 組織を ID ゾーンに接続するには:

  1. [Edge SSO Zone Administration] ページにアクセスします
  2. [Organization mapping] セクションで、ゾーンに割り当てる組織に関連付けられた [Identity zone] プルダウン メニューから、ID ゾーンを選択します。
    組織に対して Basic 認証を有効にするには、[None (Apigee default)] を選択します。
  3. [Confirm] をクリックして変更を確定します。

ID ゾーンを使用して組織にアクセスする

Edge UI へのアクセスに使用する URL は、ID ゾーンの名前で定義されます。

https://zonename.apigee.com

同様に、次に示す URL を使用して Classic Edge UI にアクセスします。

https://zonename.enterprise.apigee.com

たとえば、Acme Inc. が SAML を使用し、ゾーン名として「acme」を選択したとします。この場合、Acme Inc. のユーザーは次の URL で Edge UI にアクセスします。

https://acme.apigee.com

ゾーンは、SAML をサポートする Edge 組織を識別します。たとえば、Acme Inc. に OrgA、OrgB、OrgC という 3 つの組織があるとします。Acme では、すべての組織を SAML ゾーンに追加することも、一部の組織だけを追加することもできます。追加しなかった組織は、引き続き Basic 認証を使用するか、Basic 認証の認証情報から生成された OAuth2 トークンを使用します。

複数の ID ゾーンを定義できます。すべてのゾーンが同じ ID プロバイダを使用するように構成できます。

たとえば、Acme では、OrgAProd と OrgBProd を含む本番環境ゾーン「acme-prod」と、OrgATest、OrgBTest、OrgADev、OrgBDev を含むテストゾーン「acme-test」を定義できます。

そうすれば、次の URL を使用して異なるゾーンにアクセスできます。

https://acme-prod.apigee.com
https://acme-test.apigee.com

Edge ユーザーを SAML 認証に登録する

組織に対して SAML を有効にした後、まだ組織に登録されていない SAML ユーザーを登録する必要があります。詳細については、組織ユーザーを管理するをご覧ください。

OAuth2 のアクセス トークンを渡すようにスクリプトを更新する

SAML を有効にすると、Edge API に対する Basic 認証が無効になります。Basic 認証をサポートする Edge API 呼び出しに依存したスクリプト(Maven スクリプト、シェル スクリプト、apigeetool など)はすべて機能しなくなります。そのため、Basic 認証を使用して OAuth2 アクセス トークンを Bearer ヘッダーで渡す API 呼び出しとスクリプトを更新する必要があります。詳細については、Edge API で SAML を使用するをご覧ください。

ID ゾーンを削除する

ID ゾーンを削除するには:

  1. [Edge SSO Zone Administration] ページにアクセスします
  2. 削除する ID ゾーンの行にカーソルを合わせて、操作メニューを表示します。
  3. をクリックします。
  4. [Delete] をクリックして削除操作を確認します。

Edge SSO Zone Administration ページからログアウトする

Edge ID ゾーンの管理は組織外で行います。そのため、Apigee Edge のその他の機能にアクセスするには、[Edge SSO Zone Administration] ページからログアウトして組織にログインし直す必要があります。