ノート:
- このチュートリアルでは、Oracle Cloudへのアクセスが必要です。無料アカウントにサインアップするには、Oracle Cloud Infrastructure Free Tierの開始を参照してください。
- Oracle Cloud Infrastructureの資格証明、テナンシおよびコンパートメントに例の値を使用します。演習を完了するときは、これらの値をクラウド環境に固有の値に置き換えます。
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.
目標
- マルチファクタ認証(MFA)、アダプティブ・セキュリティ、レポートなどのセキュリティ制御を提供するアイデンティティ・プロバイダ(IdP)としてOCI IAMアイデンティティ・ドメインを使用して、Oracle APEXアプリケーションでSSOを構成します。
前提条件
-
パートナ・アプリケーション設定用の任意のアイデンティティ・ドメインのOCI IAM管理者アクセス。
-
認証用のアプリケーションが設定されたOracle APEX 18.1以上。
タスク1: Oracle APEXへのサンプル・アプリケーションのインストール
-
APEXワークスペースにログインし、SSOのIdPとしてOCI IAMを使用するサンプル・アプリケーションを作成します。Oracle APEXでアプリケーションを作成するには、「アプリケーション・ビルダー」をクリックします。
-
「アプリケーションの作成」をクリックします。
-
「ファイルから」を選択します。
-
次のイメージに示すように、「コピー・アンド・ペースト」をクリックし、「営業」を選択します。
タスク2: OCI IAMでの機密アプリケーションの登録
OCI IAMドメインに機密アプリケーションを登録します。このチュートリアルでは、デフォルト・ドメインを使用しました。
-
OCIコンソールにログインし、アイデンティティとセキュリティに移動します。「アイデンティティ」で、「ドメイン」および「アプリケーション」をクリックします。
-
「Confidential Application」を選択し、「Launch workflow」をクリックします。
-
アプリケーションの「名前」を入力し、「次へ」をクリックします。
-
「許可される付与タイプ」として「承認コード」を選択し、「次へ」をクリックします。
-
リダイレクトURLを
https://guid-demodb.adb.region.oraclecloudapps.com/ords/apex_authentication.callback
の形式で入力します。たとえば、https://guid-demodb.adb.us-ashburn-1.oraclecloudapps.com/ords/apex_authentication.callback
です。 -
「ログアウト後のリダイレクトURL」を
https://guid-demodb.adb.region.oraclecloudapps.com/ords/f?p=your_apex_number_here
の形式で入力します。 -
「ログアウトURL」は空のままにします。
ノート: このURLは、後でOracle APEX認証スキームのログアウト後URLに追加したときに正確に一致する必要があることに注意してください。
-
「終了」をクリックします。
-
「アプリケーションの編集」をクリックし、「認証および認可」で「認可として付与を強制」を選択します(これは、後でOracle APEXアプリケーションへのアクセスを制御するために使用されます)。
-
「アプリケーションのアクティブ化」をクリックします。
-
Oracle APEX側の構成で使用するクライアントIDおよびクライアント・シークレットをコピーします。
タスク3: Oracle APEXワークスペースでの新しいWeb資格証明の作成
-
Oracle APEXワークスペースを開きます。タスク1で作成したアプリケーションで、「共有オブジェクト」をクリックします。
-
「資格証明」をクリックします。
-
「作成」をクリックします。
-
次の情報を入力して、「作成」をクリックします。
ノート:タスク2の機密アプリケーションのクライアントIDおよびクライアント・シークレットを使用します。
-
このアプリケーションにユーザーを割り当てます。
タスク4: サンプル・アプリケーション用のOracle APEXでの新しい認証スキームの作成
-
Oracle APEXワークスペースを開き、「共有オブジェクト」をクリックします。「セキュリティ」で、「認証スキーム」および「作成」をクリックします。
-
「ギャラリからの事前構成済スキームに基づく」を選択し、「次へ」をクリックします。
-
次の情報を入力して、「作成」をクリックします。検出URLは
https://[idcs-service-URL]/.well-known/openid-configuration/
になります。 -
作成したOracle Identity Cloud Service (IDCS)の「認証スキーム- 現在」をクリックします。
-
「ログアウト後のURL」タブをクリックし、「移動先」および「URL」を選択します。「URL」に、タスク2.6からOracle APEXアプリケーションURLを貼り付けます。このURLは、IDCSのログアウト後のリダイレクトURLと一致する必要があります。
-
「セキュリティ属性」で、情報を更新し、「変更の適用」をクリックします。
-
(オプション)「ソース」セクションで、次の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;
-
(ステップ7で使用されるオプション)「ログイン処理」で、次の情報を入力して保存します。
タスク5: Oracle APEXアプリケーションへのログインのテスト
-
「ページの実行」をクリックします。
-
プロンプト・ログイン画面で資格証明を入力します。このチュートリアルでは、認証に使用されるアカウントはローカル・アクティブ・ディレクトリから同期され、パスワードはアクティブ・ディレクトリにあります。OCI IAMは、ユーザー名とパスワードを収集し、アクティブなディレクトリに対して検証します。
-
「許可する」をクリックします。
アプリケーションのランディング・ページが表示されます。
承認の制御
SSO用に構成された機密アプリケーションで「認可として付与を強制」を有効にすることで、認可を制御できます。これにより、このアプリケーションに割り当てられたユーザーまたはグループのみがOracle APEXアプリケーションにアクセスできるようになります。これはタスク2.9に示されています。
認可を制御するもう1つの方法は、タスク4.7および4.8に示すように、認証スキーム内でPL/SQLプロシージャを使用することです。認証に成功すると、userinfo_endpoint
がコールされ、結果が認証後プロシージャで使用できるようになります。JSONの結果はグループのリストに変換され、グループ管理用のOracle APEXセッション・ビルトインに格納されます。グループ管理は、後で共有コンポーネントの下の認可スキームに関連付けて、ユーザーのグループ・メンバーシップに基づいてアプリケーションにアクセスできるようにします。
関連リンク
承認
- 著者 - Aqib Javid Bhat (シニア・クラウド・エンジニア)
その他の学習リソース
docs.oracle.com/learnの他のラボをご覧いただくか、Oracle Learning YouTubeチャネルで無料のラーニング・コンテンツにアクセスしてください。また、education.oracle.com/learning-explorerにアクセスしてOracle Learning Explorerになります。
製品ドキュメントは、Oracle Help Centerを参照してください。
Integrate Oracle APEX with Oracle Cloud Infrastructure Identity and Access Management Identity Domains
F78520-02
May 2024