ノート:

Oracle APEXとOracle Cloud Infrastructure Identity and Access Managementアイデンティティ・ドメインの統合

イントロダクション

Oracle Cloud Infrastructure Identity and Access Management (OCI IAM) provides identity and access management features such as authentication, single sign-on (SSO), and identity lifecycle management for Oracle Cloud Infrastructure as well as Oracle and non-Oracle applications, whether SaaS, cloud-hosted, or on-premises.

目標

前提条件

タスク1: Oracle APEXへのサンプル・アプリケーションのインストール

  1. APEXワークスペースにログインし、SSOのIdPとしてOCI IAMを使用するサンプル・アプリケーションを作成します。Oracle APEXでアプリケーションを作成するには、「アプリケーション・ビルダー」をクリックします。

  2. 「アプリケーションの作成」をクリックします。

    イメージ 1

  3. 「ファイルから」を選択します。

    イメージ 2

  4. 次のイメージに示すように、「コピー・アンド・ペースト」をクリックし、「営業」を選択します。

    イメージ 3

    イメージ 4

タスク2: OCI IAMでの機密アプリケーションの登録

OCI IAMドメインに機密アプリケーションを登録します。このチュートリアルでは、デフォルト・ドメインを使用しました。

  1. OCIコンソールにログインし、アイデンティティとセキュリティに移動します。「アイデンティティ」で、「ドメイン」および「アプリケーション」をクリックします。

    ピクチャ 4

  2. 「Confidential Application」を選択し、「Launch workflow」をクリックします。

    ピクチャ 5

  3. アプリケーションの「名前」を入力し、「次へ」をクリックします。

    ピクチャ 6

  4. 「許可される付与タイプ」として「承認コード」を選択し、「次へ」をクリックします。

    ピクチャ 7

  5. リダイレクトURLhttps://guid-demodb.adb.region.oraclecloudapps.com/ords/apex_authentication.callbackの形式で入力します。たとえば、https://guid-demodb.adb.us-ashburn-1.oraclecloudapps.com/ords/apex_authentication.callbackです。

  6. 「ログアウト後のリダイレクトURL」https://guid-demodb.adb.region.oraclecloudapps.com/ords/f?p=your_apex_number_hereの形式で入力します。

  7. 「ログアウトURL」は空のままにします。

    ノート: このURLは、後でOracle APEX認証スキームのログアウト後URLに追加したときに正確に一致する必要があることに注意してください。

    ピクチャ 31

  8. 終了」をクリックします。

    ピクチャ 8

  9. 「アプリケーションの編集」をクリックし、「認証および認可」「認可として付与を強制」を選択します(これは、後でOracle APEXアプリケーションへのアクセスを制御するために使用されます)。

    ピクチャ 10

  10. 「アプリケーションのアクティブ化」をクリックします。

    ピクチャ 9

  11. Oracle APEX側の構成で使用するクライアントIDおよびクライアント・シークレットをコピーします。

    ピクチャ 11

タスク3: Oracle APEXワークスペースでの新しいWeb資格証明の作成

  1. Oracle APEXワークスペースを開きます。タスク1で作成したアプリケーションで、「共有オブジェクト」をクリックします。

    ピクチャ 12

  2. 「資格証明」をクリックします。

    ピクチャ 13

  3. 「作成」をクリックします。

    ピクチャ 14

  4. 次の情報を入力して、「作成」をクリックします。

    ノート:タスク2の機密アプリケーションのクライアントIDおよびクライアント・シークレットを使用します。

    ピクチャ 15

  5. このアプリケーションにユーザーを割り当てます。

    ピクチャ 22

タスク4: サンプル・アプリケーション用のOracle APEXでの新しい認証スキームの作成

  1. Oracle APEXワークスペースを開き、「共有オブジェクト」をクリックします。「セキュリティ」で、「認証スキーム」および「作成」をクリックします。

    ピクチャ 16

    ピクチャ 17

  2. 「ギャラリからの事前構成済スキームに基づく」を選択し、「次へ」をクリックします。

    ピクチャ 18

  3. 次の情報を入力して、「作成」をクリックします。検出URLhttps://[idcs-service-URL]/.well-known/openid-configuration/になります。

    ピクチャ 19

  4. 作成したOracle Identity Cloud Service (IDCS)の「認証スキーム- 現在」をクリックします。

  5. 「ログアウト後のURL」タブをクリックし、「移動先」および「URL」を選択します。「URL」に、タスク2.6からOracle APEXアプリケーションURLを貼り付けます。このURLは、IDCSのログアウト後のリダイレクトURLと一致する必要があります。

    ピクチャ 30

  6. 「セキュリティ属性」で、情報を更新し、「変更の適用」をクリックします。

    ピクチャ 27

    ピクチャ 28

  7. (オプション)「ソース」セクションで、次のPL/SQLコードを入力します。

    ノート:これは、ユーザーが属するグループに基づいてアプリケーションの機能または動作を変更する場合に、認可を制御する場合にのみ必要です。詳細は、このチュートリアルの最後にある「認可の制御」の項を参照してください。

    procedure load_dynamic_groups as
      l_group_names apex_t_varchar2;
    begin
      --
      -- add all group names to l_group_names
      --
      for i in 1 .. apex_json.get_count('groups') loop
          apex_string.push (
            p_table => l_group_names,
            p_value => apex_json.get_varchar2 (
                           p_path => 'groups[%d].name',
                           p0     => i ));
      end loop;
      --
      -- save group names in session
      --
      apex_authorization.enable_dynamic_groups (
          p_group_names => l_group_names );
    end;
    
    

    ピクチャ 20

  8. (ステップ7で使用されるオプション)「ログイン処理」で、次の情報を入力して保存します。

    ピクチャ 29

タスク5: Oracle APEXアプリケーションへのログインのテスト

  1. ページの実行」をクリックします。

    ピクチャ 23

  2. プロンプト・ログイン画面で資格証明を入力します。このチュートリアルでは、認証に使用されるアカウントはローカル・アクティブ・ディレクトリから同期され、パスワードはアクティブ・ディレクトリにあります。OCI IAMは、ユーザー名とパスワードを収集し、アクティブなディレクトリに対して検証します。

    ピクチャ 24

  3. 「許可する」をクリックします。

    ピクチャ 25

アプリケーションのランディング・ページが表示されます。

ピクチャ 26

承認の制御

SSO用に構成された機密アプリケーションで「認可として付与を強制」を有効にすることで、認可を制御できます。これにより、このアプリケーションに割り当てられたユーザーまたはグループのみがOracle APEXアプリケーションにアクセスできるようになります。これはタスク2.9に示されています。

認可を制御するもう1つの方法は、タスク4.7および4.8に示すように、認証スキーム内でPL/SQLプロシージャを使用することです。認証に成功すると、userinfo_endpointがコールされ、結果が認証後プロシージャで使用できるようになります。JSONの結果はグループのリストに変換され、グループ管理用のOracle APEXセッション・ビルトインに格納されます。グループ管理は、後で共有コンポーネントの下の認可スキームに関連付けて、ユーザーのグループ・メンバーシップに基づいてアプリケーションにアクセスできるようにします。

承認

その他の学習リソース

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

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