OCI IAMとJumpCloudの間のシングル・サインオンおよびユーザー・プロビジョニングの設定

はじめに

Oracle Cloud Infrastructure Identity and Access Management (OCI IAM)とJumpCloudの間にシングル・サインオン(SSO)を設定することで、OCI管理者は、JumpCloud資格証明を使用してOCIコンソールにシームレスにログインできます。さらに、RESTful APIを介したユーザー・プロビジョニングにより、JumpCloudからOCIへのリアルタイムのユーザー同期を実現できます。

このチュートリアルでは、Security Assertion Markup Language (SAML)フェデレーションおよびクロスドメイン・アイデンティティ管理(SCIM) 2.0接続用のシステムを設定することで、OCI IAMをJumpCloudと統合できる例を示します。

OCI IAMフェデレーションとJumpCloud(アーキテクチャ)。

さらに、SSOが確立され、アイデンティティが同期された後、OCI IAMポリシーを定義して、様々なOCIリソースに対するアクセス制御を設定できます。詳細は、ポリシーの開始およびタグ・ベースのOracle Cloud Infrastructure Identity and Access Managementポリシーの詳細説明を参照してください。

ノート:このチュートリアルは、IDドメインのあるOCI IAMに固有です。

目的

前提条件

ノート: JumpCloud統合でOCI製品を使用しているときに、ユーザー作成/更新アクションに不整合があることに気づきました。したがって、このチュートリアルでは、かわりにカスタム・アプリケーションを使用します。

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

JumpCloud acts as the identity provider (IdP), authenticating users and passing authentication tokens securely to OCI IAM, which functions as the service provider (SP). SAMLフェデレーションを設定するには、メタデータを両方のパーティで交換する必要があります。

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

OCI IAMアイデンティティ・ドメインからのSPメタデータが最初にエクスポートされます。

  1. ブラウザ・タブを開き、URL https://cloud.oracle.comを入力します。

  2. 「クラウド・アカウント名」(テナンシ名とも呼ばれる)を入力し、「次」をクリックします。

  3. サインインするアイデンティティ・ドメインを選択します。これは、SSOの構成に使用されるアイデンティティ・ドメインです(Defaultなど)。

  4. OCIコンソールにログインするための管理者資格証明を入力します。

  5. 「アイデンティティとセキュリティ」に移動し、「アイデンティティ」「ドメイン」をクリックします。

    ドメインへの移動

  6. アイデンティティ・ドメイン名をクリックします。ドメインが表示されない場合は、コンパートメントを変更して適切なドメインを見つけます。

    ドメインの選択。

  7. 「セキュリティ」で、「アイデンティティ・プロバイダ」および「SAMLメタデータのエクスポート」をクリックします。

    SPメタデータへの移動。

  8. 「メタデータ・ファイル」を選択します。「自己署名証明書を含むメタデータ」で、「XMLのダウンロード」をクリックし、このXMLファイルをコンピュータでローカルに保存します。これはSPメタデータです。

    SPメタデータをダウンロードしています。

タスク1.2: SSOアプリケーションの作成

OCIコンソールを表すSSOアプリケーションをJumpCloudポータルに作成します。

  1. ブラウザで、URL https://console.jumpcloud.com/loginを使用してJumpCloudポータルにサインインします。

  2. 「ユーザー認証」で、「SSOアプリケーション」を選択し、「スタート・ガイド」をクリックします。

    JumpCloud管理コンソール・アプリケーション。

  3. 「カスタム・アプリケーション」で、「選択」「次へ」の順にクリックします。

    カスタムアプリを検索しています。

  4. 「シングル・サインオン(SSO)の管理」「SAMLを使用したSSOの構成」の順に選択します。「このアプリケーションへのユーザーのエクスポート(Identity Management)」を選択し、「次へ」をクリックします。

    SSOおよびアイデンティティ管理の選択

  5. 「ラベルの表示」の下に名前(OCI Consoleなど)を入力し、「アプリケーションの保存」をクリックします。次に、「アプリケーションの構成」をクリックします。

    アプリケーション詳細を更新します。

タスク1.3: SSOアプリケーションの構成

新しく作成したカスタム・アプリケーションでSSO構成が必要です。

  1. 「SSO」タブの「サービス・プロバイダ・メタデータ」で、「メタデータのアップロード」をクリックして、タスク1.1.8に保存されているSPメタデータ・ファイルを選択します。

    SPメタデータをアップロードしています。

  2. SPエンティティIDおよびACS URLが自動移入されると、XMLファイルが正しく解析されました。

    JumpCloud「メタデータ」で、「メタデータのエクスポート」をクリックし、このXMLファイルをコンピュータでローカルに保存します。これはIdPメタデータです。終了したら、「保存」をクリックします。

    IdPメタデータをエクスポートしています。

タスク1.4: OCI IAMのIdPとしてJumpCloudを有効化

JumpCloudを表す新しいIdPが作成されます。完了すると、SSO認証を有効にするようにIdPポリシーが設定されます。

  1. OCIコンソールで、ドメインに移動し、「セキュリティ」を選択して、「アイデンティティ・プロバイダ」をクリックします。

  2. 「IdPの追加」を選択し、「SAMLの追加」IdPをクリックします。

    SAML IdPの追加。

  3. SAML IdPの「名前」(JumpCloudなど)を入力し、「次へ」をクリックします。

    IdP名を入力します。

  4. 「IdPメタデータのインポート」を選択してください。「アイデンティティ・プロバイダ・メタデータのアップロード」で、タスク1.3.2からIdPメタデータをアップロードし、「次へ」をクリックします。

    IdPメタデータのインポート。

  5. 「ユーザー・アイデンティティのマップ」で、次の情報を入力して「次へ」をクリックします。

    • リクエストされたNameID形式: 「なし」を選択します。
    • アイデンティティ・プロバイダ・ユーザー属性: 「SAMLアサーションName ID」を選択します。
    • アイデンティティ・ドメイン・ユーザー属性: 「ユーザー名」を選択します。

    SAMLアイデンティティ・プロバイダの属性。

  6. 「確認および作成」で、構成を確認し、「作成」IdPをクリックします。

    設定のレビュー

  7. 「アクティブ化」「IdPポリシーに追加」の順にクリックします。

    IdPをアクティブ化しています。

    ノート:すぐに使用できるデフォルトのIdPポリシーは、関連付けられたアプリケーションがないドメイン内に1つのみ存在します。これは基本的に、すべてのアプリケーションがOCIコンソールを含め、このポリシーの範囲内にあることを意味します。ドメインに、特定のアプリケーションを個別にターゲット指定するカスタムIdPポリシーがある場合は、必要に応じてOCIコンソールをターゲット指定するルールを追加してください。構成の誤りによってロックアウトが発生する可能性があるため、注意してください。

  8. 「IdPポリシーの作成」をクリックします。

    IdPポリシーの作成。

  9. 「ポリシーの追加」で、「名前」(OCI Consoleなど)を入力し、「ポリシーの追加」をクリックします。

    名前を入力します。

  10. 「アイデンティティ・プロバイダ・ルールの追加」で、「IdPルールの追加」をクリックし、「ルール名」を入力します。たとえば、OCI Console access ruleです。

    「アイデンティティ・プロバイダの割当て」で、「ユーザー名- パスワード」およびJumpCloudを選択します。完了したら、「IdPルールの追加」「次へ」の順にクリックします。

    ルールを定義します。

    ノート:ローカル認証を保持するために、「ユーザー名- パスワード」オプションが追加されています。これにより、フェデレーション設定に問題がある場合にロックアウトを回避できます。

  11. 「アプリケーションの追加」をクリックし、リストから「OCIコンソール」を検索して選択します。「アプリケーションの追加」「閉じる」の順にクリックします。

    OCIコンソール・アプリケーションの選択。

セクション2: SCIM 2.0ベースのユーザー・プロビジョニングの設定

ユーザー・ライフサイクル管理は、JumpCloudとOCI IAMの間で構成され、JumpCloudはアイデンティティ・ストアとして機能します。ダウンストリームのプロビジョニングを目的としたすべてのユーザーに、次の属性に適切な値が移入されていることを確認します。

ノート: 会社Eメールとユーザー名のマッピングにより、SAML Subject/NameIDの一貫性が確保され、SSOが機能するには必須です。たとえば:

><saml2:Subject><saml2:NameID Format="urn:oasis:names:tc:SAML:1.0:nameid-format:unspecified">XXX+test4@oracle.com</saml2:NameID>
   >

タスク2.1: OCI IAMでの機密アプリケーションの作成およびシークレット・トークンの生成

OAuth 2.0クライアントは、OCI IAMに登録されます。適切なフローが有効になり、権限が付与されます。このクライアントの資格証明が収集されます。

  1. OCIコンソールに移動し、「ドメイン」に移動して、セクション1で使用されたドメインを選択します。

  2. 「統合アプリケーション」に移動し、「アプリケーションの追加」「機密アプリケーション」を選択して、「ワークフローの起動」をクリックします。

    機密アプリケーション・ワークフロー。

  3. 機密アプリケーションの名前(SCIMclientなど)を入力し、「次へ」をクリックします。

  4. 「クライアント構成」セクションで、「このアプリケーションをクライアントとして今すぐ構成」を選択し、「認可」「クライアント資格証明」を選択します。

    OAuth 2.0クライアント設定。

  5. 「アプリケーション・ロールの追加」を選択し、「ロールの追加」をクリックします。「アプリケーション・ロールを追加」ページで、「ユーザー管理者」を選択し、「追加」をクリックします。

    アプリケーション・ロールの選択。

  6. 「次へ」「終了」の順にクリックします。

  7. 「アクティブ化」をクリックして、新しいアプリケーションをアクティブ化します。

    クライアントをアクティブ化します。

  8. 「一般情報」セクションで、「クライアントID」および「クライアント・シークレット」に注意し、「シークレットの表示」を選択してプレーン・テキストを表示します。

    資格証明

  9. シークネット・トークンは、clientIDおよびclientsecretのbase64エンコーディングです。

    • Windowsの場合は、PowerShellを開き、次のコマンドを実行してbase64エンコーディングを生成します。

      [Convert]::ToBase64String([Text.Encoding]::UTF8.GetBytes("<clientID>:<clientsecret>”))
    • MacOSの場合は、ターミナルを使用して次のコマンドを実行します。

      echo -n <clientID>:<clientsecret> | base64

      シークレット・トークンが返されます。たとえば:

      echo -n 392357752xxxx7523923457437:3454-9853-7843-3554 | base64
       Nk0NzUyMzxxxxxxxxxxxxxxxMzMtNTQzNC05ODc4LTUzNQ==

    ターミナル。

  10. シークレット・トークンを書き留めます。

タスク2.2: OCI IAM GUIDの検索

SCIMエンドポイントの詳細は、クライアントがAPIコールを行うために必要です。

  1. OCIコンソールに移動し、「ドメイン」に移動して、セクション1で使用されたドメインを選択します。

  2. 「ドメイン情報」「ドメインURL」の横にある「コピー」を選択し、これをノートにとります。次のように表示されます。

    https://<IdentityDomainID>.identity.oraclecloud.com:443
  3. URLの最後に/admin/v1を追加します。最後のURLは次のようになります。

    https://<IdentityDomainID>.identity.oraclecloud.com:443/admin/v1
  4. URLをメモします。

タスク2.3: JumpCloudアプリケーションでのアイデンティティ管理の構成

JumpCloudに移動し、SCIMエンドポイントおよびOAuth 2.0資格証明が移入されます。

  1. タスク1.1.2で作成したSSOアプリケーションを開き、Identity Managementに移動します。

  2. 次の情報を入力し、「接続のテスト」をクリックします。

    • APIタイプ: 「SCIM API」を選択します。
    • SCIMバージョン: 「SCIM 2.0」を選択します。
    • ベースURL:タスク2.2.4のベースURLを入力します。
    • トークン・キー:タスク2.1.10から生成されたシークレット・トークンを入力します。
    • ユーザーの電子メールのテスト: JumpCloudディレクトリにユーザーの電子メールを入力します。

    接続をテストしています。

    ノート:接続が成功すると、SCIMユーザー属性カスタマイズが使用可能になります。グループはデフォルトでOCIに同期されますが、これは「グループ管理」オフにすることで変更できます。

  3. 「SCIM属性名」で、「+属性の追加」をクリックして、次のイメージに基づいて属性マッピングを作成します。完了したら、「アクティブ化」をクリックします。

    接続をアクティブ化しています。

  4. 検証中の接続に関する通知が表示されます。「保存」をクリックします。

    接続を保存しています。

タスク2.4: JumpCloudアプリケーションへのグループの割当て

ノート:前提条件として、続行する前に、JumpCloudにOCI管理者のグループを作成します。

これで、Oracleリソースへのアクセスが必要なグループがプロビジョニング用に調整されました。

  1. SSOアプリケーションを開き、「ユーザー・グループ」タブに移動します。

  2. OCIにプロビジョニングする必要があるグループを選択し、「保存」をクリックします。

    グループを選択します。

セクション3: テストと検証

ノート: SSOが機能するには、SSOユーザー・アカウントがOCI IAMとJumpCloudの両方に存在する必要があります。

最後に、同期されたアイデンティティが検証され、フェデレーテッド認証がテストされます。

  1. JumpCloudとOCIコンソールの両方でユーザーの1つを開き、詳細が一致することを検証します。

    JumpCloudコンソール。

    OCIコンソール

  2. 同じプロセスを繰り返して、グループが同期されていることを確認します。

    JumpCloudコンソール。

    OCIコンソール

ノート:アイデンティティが同期されたので、SSOログインを検証します。

  1. 新しいブラウザ・ウィンドウで、OCIコンソールを開きます。「クラウド・アカウント名」(テナンシ名とも呼ばれる)を入力し、「次」をクリックします。

  2. JumpCloudフェデレーションが構成されているアイデンティティ・ドメインを選択します。

  3. 「Oracle Cloudアカウントのサインイン」ページで、JumpCloudを選択します。JumpCloudログイン・ページへのリダイレクトがあるはずです。

    OCI IAMのサインイン・ページ

  4. フェデレーテッド・ユーザーのJumpCloud資格証明を入力します。認証に成功すると、OCIコンソールにリダイレクトされます。

まとめ

この統合により、管理者は個別のOCI資格証明を管理する必要がなくなり、セキュリティが向上し、アクセス管理が簡素化されます。これは、アイデンティティ管理にも役立ち、管理オーバーヘッドを削減し、冗長性を排除します。

確認

その他の学習リソース

docs.oracle.com/learnで他のラボを確認するか、Oracle Learning YouTubeチャネルで無料のラーニング・コンテンツにアクセスしてください。また、education.oracle.com/learning-explorerにアクセスして、Oracle Learning Explorerになります。

製品ドキュメントについては、Oracle Help Centerを参照してください。