OCI IAMとAuth0の間のシングル・サインオンの設定 (2026/08/17)

OCI IAMとAuth0の間のシングル・サインオンの設定 (2026/08/17)

https://www.ateam-oracle.com/set-up-single-sign-on-between-oci-iam-and-auth0

投稿者:Tonmendu Bose | Senior Cloud Engineer

はじめに

OCI IAMとAuth0間でシングルサインオン(SSO)を設定することで、OCI管理者はAuth0の認証情報を使用してOCIコンソールにシームレスにログインできます。Auth0は外部IDプロバイダー(IdP)として機能し、OCI IAMのIDドメインはサービスプロバイダー(SP)として機能します。

この統合は、認証プラットフォームとしてAuth0を使用している組織で、ユーザー向けに個別のパスワードベースの認証エクスペリエンスを維持することなく、Oracle Cloud Infrastructureへのフェデレーションアクセスを提供したい場合に役立ちます。

Auth0を使用してユーザーが認証を行い、OCIコンソールへのアクセスが許可される前に、署名付きSAMLレスポンスをOCI IAMに送信する様子を示す図。
ソリューションアーキテクチャ

このアーキテクチャでは、SAML 2.0を介してAuth0をIDプロバイダー(IdP)として使用し、OCIコンソールのユーザー認証を行うプロセスについて説明します。

  1. ログイン試行:ユーザーがOCIコンソールへのログインを試みます。
  2. SAMLリクエスト:サービスプロバイダーとして機能するOCI IAMは、ユーザーをAuth0にリダイレクトし、SAML認証リクエストを送信します。
  3. 認証要求: Auth0はユーザーにログインページを表示し、認証を促します。
  4. 認証成功:ユーザーはAuth0で設定された認証方法を使用して正常に認証されました。
  5. SAMLレスポンス:認証が成功すると、Auth0は署名付きSAMLアサーションを生成し、そのレスポンスをOCI IAMアサーションコンシューマーサービス(ACS)に送信します。
  6. IDマッピング: OCI IAMはSAMLのSubject/NameIDを読み取り、それをIAM IDドメイン内の対応するユーザーにマッピングします。
  7. アクセスが許可されました: OCI IAM は SAML レスポンスを検証し、ユーザーセッションを確立して、OCI コンソールへのアクセスを許可します。

さらに、OCI IAMユーザーはグループに分けることができます。これらのグループは、OCIリソースへの認証とアクセスを定義するためのIAMポリシーで参照できます。

目的

  • アクセス管理のためにSAMLベースのSSOを設定する
  • Auth0を設定して、ユーザーのメールアドレスをSAMLのSubject/NameIDとして渡すようにします。
  • フェデレーションログインをテストおよび検証する

前提条件

  • OCIテナントへのアクセス
  • OCI IAM IDドメインのIDドメイン管理者ロール
  • Auth0テナントへのアクセス
  • Auth0でアプリケーションを作成および構成するための管理者権限
  • Auth0およびOCI IAMで利用可能なテストユーザー

注記:

  • この記事では、自動ID管理のためのSCIMやジャストインタイム(JIT)プロビジョニングについては取り上げていません。執筆時点では、Auth0はアウトバウンドSCIMをネイティブにサポートしていません。
  • イベントストリームを使用してカスタムコードをトリガーし、ユーザーのみを同期する(グループではない)回避策は、Auth0 コードカスタマイズに記載されています。
  • したがって、SSOをテストするには、ユーザーが既にOCI IAMアイデンティティドメインに存在している必要があります。

セクション1:アクセス管理のためのSAMLベースのSSOの設定

Auth0はIDプロバイダー(IdP)として機能し、ユーザーを認証して認証情報をOCI IAMに安全に渡します。OCI IAMはサービスプロバイダー(SP)として機能します。SAMLフェデレーションを設定するには、両者間で設定情報を交換する必要があります。

タスク 1.1: OCI IAM からサービス プロバイダー メタデータを取得する

OCI IAM IDドメインからのサービスプロバイダーメタデータが最初にエクスポートされます。これらの値は、Auth0でSAMLアプリケーションを設定するために使用されます。

  1. ブラウザのタブを開き、OCIコンソールのURL(https://cloud.oracle.com )を入力してください。
  2. クラウドアカウント名(テナント名とも呼ばれます)を入力し「次へ」をクリックします。
  3. SSOの設定に使用するIDドメインを選択してください。
  4. OCIコンソールにログインするには、管理者認証情報を入力してください。
  5. 「IDとセキュリティ」に移動し「ID」を選択して「ドメイン」をクリックします。SSOを設定する必要があるIDドメインの名前をクリックします。
OCIコンソールのドメインページで、「ドメイン」ナビゲーション項目が表示され、アイデンティティドメインがハイライト表示されています。
OCI IAMドメインに移動します

注:ドメインが表示されない場合は、コンパートメントを変更して適切なIDドメインを見つけてください。

  1. 「フェデレーション」をクリックします「IDプロバイダー」の下にある「SAMLメタデータのエクスポート」をクリックします
OCI IAMフェデレーションとSAMLメタデータのエクスポート。
  1. 「手動エクスポート」を選択し、値をメモしてください。参考として、サンプル値を以下に示します。
IDドメインで、フェデレーションを開き、「SAMLメタデータのエクスポート」を選択します。
OCI IAM SAMLメタデータのエクスポート
クリップボードにコピーされました
エラー: コピーできませんでした
Provider ID
https://idcs-XXX.identity.oraclecloud.com:443/fed

Assertion consumer service URL
https://idcs-XXX.identity.oraclecloud.com/fed/v1/sp/sso

Logout service endpoint URL
https://idcs-XXX.identity.oraclecloud.com/fed/v1/sp/slo

Logout service return URL
https://idcs-XXX.identity.oraclecloud.com/fed/v1/sp/slo

タスク1.2:Auth0でSSOアプリケーションを作成および構成する

OCI IAMアイデンティティドメインを表すアプリケーションがAuth0で作成および構成されます。

  1. 管理者アカウントでAuth0テナントにサインインし、ダッシュボードに移動します。
  2. 「アプリケーション」から「アプリケーション」を選択し「アプリケーションの作成」をクリックします。
Auth0ダッシュボードで、OCI IAM用のアプリケーションを作成します。
Auth0アプリケーションを作成する
  1. アプリケーションの名前を入力します(例:Oracle Cloud Infrastructure IAM)。タイプとして「ネイティブ」を選択し、「作成」をクリックします。
  2. 新しく作成したアプリケーションを開き、「アドオン」タブに移動します。「SAML2 Web App」を有効にします。
Auth0アプリケーションの「アドオン」タブで、SAML2 Webアプリのトグルがハイライト表示されている。
SAML2 Webアプリアドオンを有効にする
  1. SAML2 Web Appアドオンの[設定]タブで、タスク1.1で収集したアサーションコンシューマーサービスURLを[アプリケーションコールバックURL]として入力します。
クリップボードにコピーされました
エラー: コピーできませんでした
https://idcs-XXX.identity.oraclecloud.com/fed/v1/sp/sso
  1. 次に、設定セクションでSAMLパラメータを設定します。以下のプレースホルダー値を、タスク1.1でOCI IAMからエクスポートした正確な値に置き換えてください。
クリップボードにコピーされました
エラー: コピーできませんでした
{
  "audience": "<OCI_PROVIDER_ID>",
  "recipient": "<OCI_ACS_URL>",
  "destination": "<OCI_ACS_URL>",
  "mappings": {
    "email": "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress",
    "name": "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name",
    "given_name": "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/givenname",
    "family_name": "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/surname"
  },
  "createUpnClaim": false,
  "passthroughClaimsWithNoMapping": false,
  "mapUnknownClaimsAsIs": false,
  "mapIdentities": false,
  "signatureAlgorithm": "rsa-sha256",
  "digestAlgorithm": "sha256",
  "signResponse": false,
  "typedAttributes": true,
  "includeAttributeNameFormat": true,
  "nameIdentifierFormat": "urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress",
  "nameIdentifierProbes": [
    "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress"
  ],
  "authnContextClassRef": "urn:oasis:names:tc:SAML:2.0:ac:classes:unspecified",
  "binding": "urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST",
  "logout": {
    "callback": "<OCI_SLO_URL>",
    "slo_enabled": true
  }
}
Auth0 SAML2 Webアプリの設定ダイアログに、アプリケーションコールバックURLとSAML設定フィールドが表示されます。
Auth0 SAML設定を構成する

重要:nameIdentifierFormatnameIdentifierProbes設定は、この統合において重要です。デフォルトでは、Auth0 は Auth0 をuser_idSAML の Subject/NameID として使用します。

この構成では、OCI IAMはSAML NameIDをアイデンティティドメインのUsernameにマッピングします。そのため、Auth0はNameIDにメールクレームを使用するように明示的に構成されています。

以下の設定は、NameIDの形式と値を定義します。

クリップボードにコピーされました
エラー: コピーできませんでした
"nameIdentifierFormat": "urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress"
"nameIdentifierProbes": [
  "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress"
]
  1. 保存して「使用方法」セクションに移動します「IDプロバイダーメタデータ」を見つけて、メタデータXMLファイルをダウンロードします。このメタデータは、次のタスクでOCI IAMにインポートされます。
Auth0 SAML2 Webアプリの使用状況タブで、IDプロバイダーメタデータのダウンロードリンクがハイライト表示されています。
Auth0 IDプロバイダーメタデータをダウンロードする
  1. ウィンドウを閉じて、アドオンが有効になっていることを確認してください。
Auth0アプリケーションの「アドオン」タブに、SAML2 Webアプリアドオンが有効になっていることが表示されています。
Auth0 SAMLアドオンを確認する

タスク 1.3: OCI IAM の IdP として Auth0 を有効にする

OCI IAMにAuth0を表す新しいSAML IDプロバイダーが作成されます。設定が完了すると、OCIコンソールでAuth0認証を有効にするためのIDプロバイダーポリシーが作成されます。

  1. OCI コンソールで、タスク 1.1 で使用した ID ドメインに移動し、[フェデレーション]を選択します。[ID プロバイダー]の下にある[アクション]をクリックし[SAML IdP の追加] を選択します。
OCI IAMフェデレーションページで、「アクション」メニューが開いており、「SAML IdPの追加」がハイライト表示されています。
OCI IAMにSAML IDプロバイダーを追加する
  1. SAML IDプロバイダーの名前(例:Auth0)を入力し、 「次へ」をクリックします。
OCI IAMのSAML IDプロバイダー追加ページで、「名前」フィールドにAuth0を入力します。
Auth0 SAML IDプロバイダーの名前を指定してください
  1. 「IdPメタデータのインポート」を選択します「IDプロバイダーメタデータのアップロード」で、タスク1.2でダウンロードしたAuth0メタデータXMLファイルをアップロードし、「次へ」をクリックします。
OCI IAM IDプロバイダーウィザードに、[IdPメタデータのインポート]オプションとアップロードされたXMLメタデータファイルが表示されています。
Auth0メタデータをOCI IAMにインポートする
  1. マップのユーザーIDでは、属性が以下のように設定されていることを確認してください。
    • 要求されたNameID形式:メールアドレスを選択してください
    • ID プロバイダーのユーザー属性: SAML アサーション名 IDを選択します
    • IDドメインのユーザー属性:ユーザー名を選択します
OCI IAM マップのユーザー ID 画面には、メールアドレスの形式と SAML アサーション名 ID がユーザー名にマッピングされている様子が表示されます。
Auth0 NameIDをOCI IAMユーザー名にマッピングする

注:このマッピングは、Auth0 SAML Subject/NameIDとして送信されるメールアドレスが、対応するOCI IAMユーザーのユーザー名と一致することを保証します。ただし、OCIにおけるユーザー名とメールアドレスが同じであることが前提となります。一致しない場合は、マッピングを別の属性に変更できます。

  1. 「確認と作成」、構成を確認し、「IdP の作成」をクリックします。
OCI IAMのレビューおよび作成画面には、Auth0 IDプロバイダーの詳細、メタデータ、および名前IDとユーザー名のマッピングが表示されます。
SAML IDプロバイダーの設定を確認する
  1. IdPが作成されたら、「IdPを有効化」をクリックします。
OCI IAM Auth0 IDプロバイダーの詳細ページで、「IdPを有効化」ボタンがハイライト表示されています。
Auth0 IDプロバイダーを有効化する

注: OCIコンソールアプリケーションを対象とする新しいIDプロバイダーポリシーが作成されます。認証方法として、ユーザー名とパスワード、およびAuth0の両方が利用可能になります。ローカル認証オプションを保持することで、緊急時における代替の管理アクセス経路が確保されます。

  1. IAMドメインで、[IDプロバイダーポリシー]に移動し、[IdPポリシーの作成]をクリックします。
OCI IAMフェデレーションページに、IDプロバイダーポリシーセクションと「IDPポリシーの作成」ボタンが表示されています。
IDプロバイダーポリシーを作成する
  1. 名前(例:OCI管理者向けAuth0ポリシー)を入力し「IDプロバイダーポリシーの作成」をクリックします。
OCI IAMで、Auth0ポリシー名を入力してIDプロバイダーポリシーを作成するページを開きます。
IDプロバイダーポリシーの名前を指定する
  1. 「IDプロバイダールール」タブに移動し「IDプロバイダールールの追加」をクリックします。
  1. ルール名を入力します(例:OCIコンソールアクセスルール)「IDプロバイダーの割り当て」で、「ユーザー名/パスワード」「Auth0」を選択します。完了したら、IdPルールを追加します。
OCI IAMのIDプロバイダールール追加ページ。ルール名と選択されたユーザー名/パスワードおよびAuth0プロバイダーが表示されます。
IDプロバイダールールを追加する
  1. 「アプリケーション」タブで「アプリの追加」をクリックし、リストから「OCI Console」を検索して選択します。アプリケーションを追加したら、ダイアログを閉じます。
OCI IAM アプリケーションの追加ダイアログで、OCI コンソールが選択されています。
OCIコンソールアプリケーションを割り当てる

注:以下の手順12~15は、必ずしも実装する必要はありません。一部のお客様は、IdPレイヤーでMFAを設定し、Oracle MFAをバイパスすることを希望されます。この方法を選択する場合は、必要に応じてAuth0でMFAが適用されていることを確認してください。作業を進める前に、OCIコンソールに適用されているサインオンおよびMFAポリシーを慎重に確認してください。ロックアウトを回避するために、緊急時の管理者アクセス方法を確保しておくことを検討してください。

  1. IAM ドメインに戻り、  [ドメイン ポリシー]タブに移動して、 [OCI コンソールのセキュリティ ポリシー] の サインオン ポリシーをクリックします
OCI IAMドメインポリシーページで、OCIコンソールのセキュリティポリシーが強調表示されています。
OCIコンソールのサインオンポリシーを開く
  1. サインオンルールの下にある 「サインオンルールの追加」 をクリックします ルール名を入力します(例:  Auth0 ユーザー)。認証IDプロバイダーとして Auth0を選択し、「アクション」で「アクセスを許可する」が選択されていることを確認します「追加」をクリックします。
OCI IAMのサインオンルール追加ページで、認証IDプロバイダーとしてAuth0を選択します。
Auth0のサインオンルールを作成する
  1. 同じセクションの 「アクション」の下にある「サインオンルールの優先順位を編集」をクリックします
OCI IAMのサインオンルールの優先順位編集ダイアログで、Auth0ユーザーのルールが優先度1に設定されています。
Auth0サインオンルールを優先する
  1. 新しいルールの優先度番号を 1に更新します。また、他のルールの優先度も対応する番号を1増やして更新します。完了したら、  「変更を保存」をクリックします。
Oracle Cloudアカウントのサインインページに、Auth0が利用可能なサインインオプションとして表示されている。
Auth0を使用してOCIにサインインする

セクション2:ログインのテストと検証

最後に、フェデレーション認証のテストを実施する。

  1. テストユーザーがOCI IAMアイデンティティドメインに存在することを確認してください。
  2. 新しいブラウザウィンドウを開き、OCIコンソールに移動します。
  3. クラウドアカウント名(テナント名とも呼ばれます)を入力し「次へ」をクリックします。
  4. Auth0フェデレーションが設定されているIDドメインを選択してください。
  5. Oracle Cloudアカウントのサインインページで、 「Auth0」を選択してください。ブラウザがAuth0のログインページにリダイレクトされます。
Oracle Cloudアカウントのサインインページに、Auth0が利用可能なサインインオプションとして表示されている。
Auth0を使用してOCIにサインインする
  1. 連携ユーザーのAuth0認証情報を使用してログインしてください。
  2. 認証が成功すると、ユーザーはOCIコンソールにリダイレクトされます。

注: Auth0 認証が成功しても OCI IAM がユーザーを認識しない場合は、まず SAML Subject/NameID を確認してください。値がユーザーのメールアドレスであること、NameID の形式が であることemailAddress、そしてメールアドレスが OCI IAM ユーザー名と完全に一致していることを確認してください。

まとめ

本番環境でこの構成を使用する前に、テストユーザーを使用してフェデレーションサインインフローを検証し、緊急時対応のための適切なローカル管理者アクセス方法を確保してください。これにより、外部IDプロバイダーが利用できない場合でも管理者アクセスを維持しながら、集中認証への制御された経路が提供されます。

コメント