Upgrade to Pro — share decks privately, control downloads, hide ads and more …

OCI IAM Identity Domain_APEXアプリケーションとの認証連携・認可

OCI IAM Identity Domain_APEXアプリケーションとの認証連携・認可

OCI IAM Identity DomainとAPEXアプリケーションの認証連携および認可制御を行うための設定手順をまとめた資料になります。

oracle4engineer

December 13, 2022
Tweet

More Decks by oracle4engineer

Other Decks in Technology

Transcript

  1. Identity DomainによるAPEXアプリケーションへ の認証認可 Subhead goes here on one line Name

    2022年12月07日 日本オラクル株式会社 クラウド事業統括 クラウド・エンジニアリング統括 COE本部 セキュリティ&マネージメント・ソリューション部
  2. 手順概要 1. APEXアプリケーションの作成(任意) 2. OCI IAM Identity Domainで機密アプリケーションの登録 3. OCI

    IAM Identity Domainでグループの作成 4. APEXでWeb資格証明の作成 5. APEXで認証スキームの作成 6. APEXで認可の設定
  3. 構成イメージ 本資料は、APEXアプリケーションとIdentity Domainの認証連携、およびアプリケーション内の認可設定手順を紹介し ます。 認可の設定では、Identity Domainで2つのグループを作成し、それぞれのグループに属するユーザーがアプリケーション 内でアクセスできるページを制御します。 3 Copyright ©

    2022, Oracle and/or its affiliates | Confidential: Internal/Restricted/Highly Restricted [Date] OCI IAM Identity Domain 認証 • Autonomous DatabaseのAPEXインスタンスを利用 • アプリケーション内のページごとのアクセス制限(認可) をIdentity Domainのグループ情報に基づいて実装 グループA グループB 認証 認証連携 (OpenID Connect)
  4. 2. 機密アプリケーションの登録 15 Copyright © 2022, Oracle and/or its affiliates

    | Confidential: Internal/Restricted/Highly Restricted [Date]
  5. 2. 機密アプリケーションの登録 機密アプリケーションの追加画面にて、以下情報を入力 します。 • 名前:任意 例)APEX • アプリケーションURL:APEXアプリケーションのURL(アプリ ケーション番号まで)

    例)https://g884b・・・1051.adb.ap-tokyo- 1.oraclecloudapps.com/ords/f?p=100 認証と許可のセクションにて、「権限付与を認可として実 施」にチェックを入れ、「次」ボタンをクリックします。 21 Copyright © 2022, Oracle and/or its affiliates | Confidential: Internal/Restricted/Highly Restricted [Date]
  6. 2. 機密アプリケーションの登録 OAuthの構成画面のクライアント構成にて、「このアプリケー ションをクライアントとして今すぐ構成します」にチェックを入れ ます。 許可される権限付与タイプにて「認可コード」を選択します。 その他以下情報を入力し、「次」ボタンをクリックします • リダイレクトURL:対象APEXアプリURLの"fp・・”を 「apex_authentication.callback」に変更したURL

    例) https://g884b・・・・1051.adb.ap-tokyo- 1.oraclecloudapps.com/ords/apex_authentication.callba ck • ログアウト後のリダイレクトURL:対象APEXアプリURL 例) https://g884b・・・・1051.adb.ap-tokyo- 1.oraclecloudapps.com/ords/f?p=100 • ログアウトURL:p.18で控えたアイデンティティ・ドメイン URL/oauth2/v1/userlogout 例) https://idcs-d0e4・・・・ 8d9.identity.oraclecloud.com:443/oauth2/v1/userlogout 22 Copyright © 2022, Oracle and/or its affiliates | Confidential: Internal/Restricted/Highly Restricted [Date]
  7. 3. グループ作成 26 Copyright © 2022, Oracle and/or its affiliates

    | Confidential: Internal/Restricted/Highly Restricted [Date]
  8. 4. Web資格証明の作成 34 Copyright © 2022, Oracle and/or its affiliates

    | Confidential: Internal/Restricted/Highly Restricted [Date]
  9. 4. Web資格証明の作成 「Web資格証明」を選択します。 37 Copyright © 2022, Oracle and/or its

    affiliates | Confidential: Internal/Restricted/Highly Restricted [Date]
  10. 4. Web資格証明の作成 Web資格証明の作成画面にて以下情報を入力し、「作 成」ボタンをクリックします。 • 名前:任意 例)Identity Domain Web Credentials

    • 静的識別子:例) 同上 • 認証タイプ:「基本認証」を選択 • クライアントIDまたはユーザー名:p.25で控えたクライアント IDを入力 • クライアント・シークレットまたはパスワード:p.25で控えたク ライアント・シークレットを入力 39 Copyright © 2022, Oracle and/or its affiliates | Confidential: Internal/Restricted/Highly Restricted [Date]
  11. 5. 認証スキームの作成 40 Copyright © 2022, Oracle and/or its affiliates

    | Confidential: Internal/Restricted/Highly Restricted [Date]
  12. 5. 認証スキームの作成 認証スキームの作成画面にて、以下情報を入力し、「認証 スキームの作成」ボタンをクリックします。 • 名前:任意 例)Identity Domain Authentication Schema

    • スキーム・タイプ:「ソーシャル・サインイン」を選択 • 資格認証ストア:手順4で作成したWeb資格認証を選択 • 認証プロバイダ:「OpenID Connectプロバイダ」を選択 • 検出URL:<p.18で控えたアイデンティティ・ドメインのURL> /.well-known/openid-configuration 例) https://idcs-d0e・・・・ 8d9.identity.oraclecloud.com:443/.well-known/openid- configuration • 有効範囲:profile,groups • ユーザー名:sub • 追加ユーザー属性:groups 46 Copyright © 2022, Oracle and/or its affiliates | Confidential: Internal/Restricted/Highly Restricted [Date]
  13. 5. 認証スキームの作成 「ソース」のタブを開き、以下PL/SQL文を入力します。 48 Copyright © 2022, Oracle and/or its

    affiliates | Confidential: Internal/Restricted/Highly Restricted [Date] procedure load_dynamic_groups as l_group_names apex_t_varchar2; Begin -- -- add all group name 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 name in session -- apex_authorization.enable_dynamic_groups( p_group_names => l_group_names); end;
  14. 6. 認可の設定 50 Copyright © 2022, Oracle and/or its affiliates

    | Confidential: Internal/Restricted/Highly Restricted [Date]
  15. 6. 認可の設定 以下SQL文を実行し、APEXアプリケーションにログインし ているユーザーの情報を取得します。 SELECT * FROM APEX_WORKSPACE_SESSION_GROUPS; APEXにログインしたユーザーのIdentity Domain上の

    グループ情報が取得できていることを確認します。 58 Copyright © 2022, Oracle and/or its affiliates | Confidential: Internal/Restricted/Highly Restricted [Date]
  16. 6. 認可の設定 b. 認可スキームの作成 「作成」ボタンをクリックします。 61 Copyright © 2022, Oracle

    and/or its affiliates | Confidential: Internal/Restricted/Highly Restricted [Date]
  17. 6. 認可の設定 b. 認可スキームの作成 詳細入力画面にて、以下情報を入力し、「認可スキーム の作成」ボタンをクリックします。 • 名前:Identity Domainのグループ名を入力 •

    スキーム・タイプ:「ロールまたはグループ内にある」を選択 • タイプ:「カスタム」を選択 • 名前:Identity Domainのグループ名を入力 例)APEX_USER • スキームの違反時に表示されるエラー・メッセージの指定: 任意 63 Copyright © 2022, Oracle and/or its affiliates | Confidential: Internal/Restricted/Highly Restricted [Date]