ノート:

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)フェデレーションとSystem for Cross-domain Identity Management (SCIM) 2.0接続を設定することで、OCI IAMをJumpCloudと統合する方法を説明します。

JumpCloud (アーキテクチャ)を使用したOCI IAMフェデレーション。

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

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

目的

前提条件

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

セクション1: Access Management用のSAMLベースのSSOの設定

JumpCloudは、アイデンティティ・プロバイダ(IdP)として機能し、ユーザーを認証し、認証トークンをOCI IAMに安全に渡します。OCIは、サービス・プロバイダ(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アプリケーションの作成

SSOアプリケーションは、OCIコンソールを表すために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をアクティブ化しています。

    ノート:アプリケーションが関連付けられていないドメインには、デフォルトで1つのデフォルトIdPポリシーのみが存在します。これは基本的に、すべてのアプリケーションが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([System.Text.Encoding]::Unicode.GetBytes('client_id:secret')) 
    • MacOSの場合は、ターミナルを使用して次のコマンドを実行します。

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

      シークレット・トークンが返されます。たとえば次のようにします。

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

    ターミナル

  10. シクトークンをメモします。

タスク2.2: OCI IAM GUIDの検索

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

  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が機能するには、OCI IAMとJumpCloudの両方にSSOユーザー・アカウントが存在する必要があります。

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

  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を参照してください。