OCI IAMドメインによるスプレッドシート・アドインへのアクセス
Oracle Cloud Infrastructure Identity and Access Management (OCI IAM) uses identity domains to provide identity and access management features such as authentication, Single Sign-On (SSO), and identity lifecycle management for OCI as well as for Oracle and non-Oracle applications, whether SaaS, cloud hosted, or on-premises.
接続が確立されると、接続ファイルを提供し、そのユーザーのドメイン資格証明を使用することによって、ドメイン内の任意のユーザーと共有できます。
- OCIのユーザーは、Oracle Autonomous DatabasesおよびOCI IAMドメインを管理するために必要なポリシーを持っている必要があります。すべてのサービスのポリシー参照の詳細は、ポリシー・リファレンスを参照してください。
-
Oracle Autonomous Databaseが使用可能である必要があります。詳細は、Autonomous Databaseインスタンスのプロビジョニングを参照してください。
ドメイン統合アプリケーションの作成または使用
- アイデンティティ・ドメインの使用:
- デフォルト・アイデンティティ・ドメインに管理者アカウントを使用してOCIコンソールにサインインします。
- OCIコンソールのナビゲーション・メニューで、「統合アプリケーション」をクリックします。
- 「統合アプリケーション」リスト・ページで、「アプリケーションの追加」を選択します。
- 「アプリケーションの追加」ウィンドウで、「機密アプリケーション」、「ワークフローの起動」の順に選択します。
「アプリケーション詳細の追加」ページで、次の表を使用してアプリケーションの詳細および表示設定を構成します。
表3-6アプリケーションの詳細とその説明
オプション 説明 名前 機密アプリケーションの名前を入力します。最大125文字まで入力できます。
アプリケーション名は、できるだけ短くするように配慮してください。この例では、スプレッドシート・アドインを使用します。
説明 機密アプリケーションの説明を入力します。最大250文字まで入力できます。 アプリケーション・アイコン このフィールドはオプションです。このフィールドはスキップできます。
「アップロード」をクリックして、アプリケーションを表すアイコンを追加します。このアイコンは、「自分のアプリ」ページおよび「アプリケーション」ページのアプリケーション名の横に表示されます。
アプリケーションのURL このフィールドはオプションです。このフィールドはスキップできます。 ログインの成功後にユーザーがリダイレクトされるURL (HTTPまたはHTTPS)を入力します。
カスタム・ログインURL このフィールドはオプションです。このフィールドはスキップできます。 「カスタム・ログインURL」フィールドで、カスタム・ログインURLを指定できます。ただし、Oracle Identity Cloud Serviceによって提供されるデフォルトのログイン・ページを使用している場合、このフィールドを空白のままにします。
カスタム・ログアウトURL このフィールドはオプションです。このフィールドはスキップできます。 「カスタム・ログアウトURL」フィールドで、カスタム・ログアウトURLを指定できます。ただし、Oracle Identity Cloud Serviceによって提供されるデフォルトのログイン・ページを使用している場合、このフィールドを空白のままにします。
カスタム・エラーURL このフィールドはオプションです。このフィールドはスキップできます。 失敗した場合のみ、ユーザーをリダイレクトする必要のあるエラー・ページURLを入力できます。指定されていない場合は、テナント固有のエラー・ページURLが使用されます。
「自分のアプリケーション」に表示 このチェック・ボックスは選択しないでください。 このチェック・ボックスは、機密アプリケーションがユーザーの「自分のアプリケーション」。ページにリストされるようにする場合にのみ選択します。この場合、アプリケーションをリソース・サーバーとして構成する必要があります。
ユーザーにアクセス権のリクエストを許可 このチェック・ボックスを選択しないでください。 エンド・ユーザーが「自分のアプリケーション」ページからアプリケーションへのアクセス権をリクエストできるようにする場合にのみ、このチェック・ボックスを選択します。
タグ このフィールドはスキップします。 「タグの追加」をクリックして、機密アプリケーションにタグを追加し、それらを編成および識別する場合のみクリックします。
- 「次」をクリックして、「OAuthの構成」タブに進みます。
-
「OAuthの構成」タブのリソース・サーバー構成ウィザードで、次の手順を実行します。
「このアプリケーションを今すぐリソース・サーバーとして構成します」を選択して、アプリケーションのリソースをすぐに保護し、「自分のアプリケーション」ページにアプリケーションが表示されるようにします。
次の表を使用して、表示される「OAuthで保護する必要のあるアプリケーションAPIを構成します」セクションの情報を入力します。
表3-7アプリケーションAPIを構成するためのオプションとその説明
オプション 説明 アクセス・トークンの有効期限 デフォルト値の3600秒を保持します。 機密アプリケーションに関連付けられているアクセス・トークンの有効期間(秒)を定義します。
リフレッシュ・トークンの許可 このチェック・ボックスを選択しないでください。 このチェック・ボックスは、「リソース所有者」、「認可コード」または「アサーション」権限付与タイプの使用時に取得するリフレッシュ・トークンを使用する場合にのみ選択します。
リフレッシュ・トークンの有効期限 このオプションを選択しないでください。 アクセス・トークンとともに返され、機密アプリケーションに関連付けられているリフレッシュ・トークンの有効期間(秒)を定義できます。
プライマリ・オーディエンス 「ords/」と入力します。
機密アプリケーションのアクセス・トークンが処理されるプライマリ受信者。
セカンダリ・オーディエンス このフィールドはスキップします。 機密アプリケーションのアクセス・トークンが処理されるセカンダリ受信者を入力し、「追加」をクリックします。この例では、セカンダリ受信者はいません。
追加(許可される範囲) 目的のアプリケーションがアクセスする別のアプリケーションの部分を指定するには、このボタンをクリックして、該当するスコープを機密アプリケーションに追加します。
アプリケーションは、外部パートナまたは機密アプリケーションと安全に対話する必要があります。また、あるOracle Cloudサービスのアプリケーションは、別のOracle Cloudサービスのアプリケーションと安全に対話する必要があります。各アプリケーションにはアプリケーション・スコープがあり、どのリソースを他のアプリケーションが使用できるのかを決定します。 - 「スコープの追加」をクリックし、「追加」を選択します。
スコープの追加ウィザードで、次のフィールド値を指定します。
- スコープ: oracle.dbtools.auth.privileges.builtin.ResourceModules
-
表示名: このオプションはオプションです。
- 説明: このオプションはオプションです。
「追加」をクリックします。
スコープとして
oracle.dbtools.auth.privileges.builtin.ResourceModules
を追加しました。同様に、次のスコープを機密アプリケーションに追加します。oracle.dbtools.sdw.user
oracle.dbtools.ords.db-api.developer
adp_lmd_privilege
adp_analytics_privilege
ノート
各スコープを使用できるのは、1つのドメインに対して1つの機密アプリケーションのみです。そのため、複数のアプリケーションでスコープを使用する場合、2番目のアプリケーションは、機密アプリケーション・スコープを参照するモバイル・アプリケーションになります。 -
機密アプリケーションの追加ウィザードの「クライアント構成」ダイアログで、次の処理を実行します。
「Configure this application as a client now」をクリックして、アプリケーションの認可情報をすぐに構成します。
- 開いた「認可」および「トークン発行ポリシー」セクションで、次の表を使用して情報を入力します。
表3-8クライアント構成オプションとその説明
オプション 説明 リソース所有者 このフィールドは選択しないでください。 リソース所有者に機密アプリケーションとの信頼関係(コンピュータ・オペレーティング・システムや高い権限を持っているアプリケーションなど)がある場合に使用します。これは、機密アプリケーションはアクセス・トークンの取得にパスワードを使用した後で、そののパスワードを破棄する必要があるためです。
クライアント資格証明 このフィールドは選択しないでください。 認可スコープが、クライアントの制御下にある保護リソース、または認可サーバーに登録された保護リソースに制限されている場合に使用します。
JWTアサーション このフィールドは選択しないでください。 アサーションとして表された既存の信頼関係を使用し、認可サーバーでの直接的なユーザー承認ステップを経由しない場合にのみ使用します。
SAML2アサーション このフィールドは選択しないでください。 SAML2アサーションとして表される、認可サーバーでの直接的なユーザー承認ステップのない既存の信頼関係を使用する場合にのみ使用します。
リフレッシュ・トークン このフィールドは選択しないでください。 この権限付与タイプは、認可サーバーによって提供されるリフレッシュ・トークンが必要な場合にのみ選択し、それを使用して新しいアクセス・トークンを取得します。
認可コード このフィールドは選択しないでください。 認可サーバーをクライアント・アプリケーションとリソース所有者間の仲介として認可サーバーを使用して認可コードを取得する場合は、この権限付与タイプを選択します。
暗黙的 フィールドを選択します。 アプリケーションが認可サーバーによる認証に使用するクライアント資格証明の機密を保持できない場合は、このチェック・ボックスを選択します。たとえば、アプリケーションがJavaScriptなどのスクリプト言語を使用してWebブラウザに実装されている場合です。アクセス・トークンは、中間認証ではなく、リソース所有者の認可リクエストに応答してブラウザ・リダイレクトを介してクライアントに返されます
デバイス・コード このフィールドは選択しないでください。 「デバイス・コード」権限付与タイプは、クライアントがOAuth認可サーバーからリクエストを受信できない場合(たとえば、これはHTTPサーバーとして機能できません(ゲーム機、ストリーミング・メディア・プレーヤ、デジタル画像フレームなど)。
TLSクライアント認証 このフィールドは選択しないでください。 「TLSクライアント認証」権限付与タイプは、クライアント証明書を使用してクライアントで認証する場合に選択します。トークン・リクエストにX.509クライアント証明書が含まれており、リクエストされたクライアントが「TLSクライアント認証」権限付与タイプで構成されている場合、OAuthサービスは、リクエストのClient_IDを使用してクライアントを識別し、クライアント構成の証明書でクライアント証明書を検証します。クライアントは、2つの値が一致する場合にのみ正常に認証されます。
HTTPS以外のURLを許可 このフィールドは選択しないでください。 このチェック・ボックスは、「リダイレクトURL」、「ログアウトURL」または「ポスト・ログアウト・リダイレクトURL」フィールドにHTTPURLを使用する場合に選択します。たとえば、内部的にリクエストを送信する場合、暗号化されない通信が必要な場合に、またはOAuth 1.0との下位互換性が必要な場合は、HTTP URLを使用できます。
リダイレクトURL 認証後にユーザーがリダイレクトされる次のアプリケーションURLを入力します。https://static.oracle.com/cdn/spreadsheet/red-4/redirector.html ノート
絶対URLを指定します。相対URLはサポートされていませんログアウトURL このフィールドはスキップします。
機密アプリケーションからログアウトした後にリダイレクトされるURLを入力します。ログアウト後のリダイレクトURL アプリケーションからのログアウト後にユーザーをリダイレクトする次のURLを入力します。https://static.oracle.com/cdn/spreadsheet/red-4/redirector.html
クライアント・タイプ 「機密」を選択します。
使用可能なクライアント・タイプは、「信頼できる」および「機密」です。クライアントで自己署名ユーザー・アサーションを生成できる場合のみ、「信頼できる」を選択します。
許可されたオペレーション このフィールドはスキップします。これはオプションです。
-
「イントロスペクト」チェック・ボックスの選択は、アプリケーションにトークン・イントロスペクション・エンド・ポイントへのアクセスを許可する場合に選択します。
- ユーザーの特権のみからアクセス権限を生成できるようにする場合のみ、「代理」チェック・ボックスを選択します。これにより、クライアント・アプリケーションは、クライアント・アプリケーション自体が通常はアクセスできない場合でも、ユーザーがアクセスできるエンドポイントにアクセスできます。
IDトークン暗号化アルゴリズム デフォルトは
none
です。許可されるクライアントIPアドレス このフィールドはスキップします。これはオプションです。 認可されたリソース 「すべて」を選択します。
認可されたリソースへのアクセスをクライアント・アプリケーションに許可するには、次のいずれかのオプションを選択できます:
- すべて– ドメイン内の任意のリソース(すべて)にアクセスします。すべてのリソースへのアクセスを参照してください。
- タグ付き– タグが一致するリソースにアクセスします(タグ付き)。「タグが一致するリソースへのアクセス」を参照してください。
- 特定– クライアントとリソース(特定)の間に明示的な関連付けが存在するリソースにのみアクセスします。「特定のスコープを持つリソースへのアクセス」を参照してください。
ノート
認可されたリソースを定義するオプションは、機密アプリケーションでのみ使用できます。モバイル・アプリケーションには、信頼スコープを定義するオプションはありません。リソース このフィールドをスキップします。これはオプションです。 目的アプリケーションで他のアプリケーションからAPIにアクセスする場合は、機密アプリケーションの追加ページの「トークン発行ポリシー」セクションで「追加」をクリックします。
Identity Cloud Service管理APIへのクライアント・アクセス権を付与します このフィールドをスキップします。これはオプションです。 「追加」をクリックして、機密アプリケーションがOracle Identity Cloud Service APIにアクセスできるようにします。
「アプリケーション・ロールの追加」ウィンドウで、このアプリケーションに割り当てるアプリケーション・ロールを選択します。これにより、アプリケーションは、割り当てられた各アプリケーション・ロールがアクセス可能なREST APIにアクセスできるようになります。
-
- 「次」をクリックして、「機密アプリケーションの追加」ウィザードの「ポリシーの構成」タブに進みます。
- 機密アプリケーションの追加・ウィザードの「Web層ポリシー」ページで、「スキップして後で実行」をクリックします。
- 「終了」をクリックします。
アプリケーションは非アクティブ状態で追加されました。
「アプリケーションが追加されました」ダイアログ・ボックスに表示された「クライアントID」と「クライアント・シークレット」を記録します。
このIDとシークレットを接続設定の一部として使用して、機密アプリケーションと統合します。クライアントIDとクライアント・シークレットは、アプリケーションがOracle Identity Cloud Serviceとの通信に使用する資格証明(IDとパスワードなど)に相当します。
必要なスコープが割り当てられているクライアント・タイプの機密アプリケーションを作成しました。
Autonomous DatabaseスキーマのIAMログインの有効化
-
ORDS JWTプロファイルを作成します。参照
https://docs.oracle.com/en/learn/secure-ords-oci-iam/index.html#task-2-create-an-ords-jwt-profile. - JWTをサポートするORDSバージョン23.3以上があることを確認します。
- SQLワークシートの「ナビゲータ」タブで、「スキーマ」ドロップダウン・リストから
ORDS_METADATA
を選択します。 - 「オブジェクト・タイプ」ドロップダウン・リストから
Packages
を選択します。 - 「検索」フィールドに
ORDS_SECURITY
と入力します。検索ファンクションは、ORDS_SECURITY
で始まるすべてのエントリを取得します。 -
ORDS_SECURITY
パッケージを展開します。 CREATE_JWT_PROFILE
を右クリックし、RUN
をクリックします。これにより、RUN CODE
ダイアログが開きます。「実行コード...」ダイアログで、次のフィールド値を指定します。- P_ISSUER- https://identity.oraclecloud.com/。このフィールドはnull以外の値である必要があり、1つのカンマで入力する必要があります。
- P_AUDIENCE-ords/。このフィールドはnull以外の値である必要があります。
- P_JWK_URL- DOMAIN URLに/admin/v1/SigningCert/jwkを追加します。https://で始まるnull以外の値で、認可サーバーによって提供された公開検証キーをJSON Web Key (JWK)形式で指定する必要があります。
「ドメインURL」は、OCIコンソールの「アイデンティティとセキュリティ」ナビゲーション・メニューの「ドメイン」メニューにある「ドメイン情報」タブで表示できます。
詳細は、https://docs.oracle.com/en/cloud/paas/iam-domains-rest-api/api-security-signing-certificates-jwk.htmlを参照してください。
- P_DESCRIPTION- このプロファイルの説明を入力します。たとえば、JWTデモの合流点です。
- P_ALLOWED_AGE - 「0」
- P_ALLOWED_SKEW - 「0」
「スクリプトの実行」をクリックします。
JWTプロファイルを構成すると、エンド・ユーザーは、JWTプロファイルで指定されたJWTトークンを表示することでORDS保護されたリソースにアクセスできます。
接続ファイルの作成
-
「接続」ペインのヘッダーにある「追加」ボタンをクリックして、接続を追加します。「新規接続を追加」ダイアログ・ボックスが開きます。
- 「新規接続を追加」ダイアログ・ボックスで、次のフィールドを指定します:
- 接続先名: 接続の名前を入力します。
- Autonomous DatabaseのID: 接続先のAutonomous DatabaseのIDを入力します。Autonomous DatabaseのWeb UIからURL全体をコピーします。たとえば、「https://<hostname>-<databasename>.adb.<region>.oraclecloudapps.com/」というリンクを入力またはコピーしてデータベースに接続します。
- 接続タイプの選択: OCI IAM
- ドメインURL: ドメイン情報タブから「ドメインURL」を入力します。
- クライアントID: ドメイン統合アプリケーションの作成から記録したクライアントIDを入力します。
- OAuthクライアントID: ドメイン統合アプリケーションの作成から記録したクライアント・シークレットを入力します。
- スキーマ: Autonomous DatabaseスキーマのIAMログインの有効化に使用するスキーマと同じスキーマを入力します。
接続の作成後、このドメインの他のユーザーと共有できます。