OCI IAMドメインによるスプレッドシート・アドインへのアクセス
Oracle Cloud Infrastructure Identity and Access Management (OCI IAM)は、アイデンティティ・ドメインを使用して、認証、シングル・サインオン(SSO)、OCIのアイデンティティ・ライフサイクル管理、OracleおよびOracle Applications以外のアプリケーション(SaaS、クラウド・ホスト、オンプレミス)などのアイデンティティおよびアクセス管理機能を提供します。
接続が確立されると、接続ファイルを提供し、そのユーザーのドメイン資格証明を使用することによって、ドメイン内の任意のユーザーと共有できます。
- OCIのユーザーは、Oracle Autonomous DatabasesおよびOCI IAMドメインを管理するために必要なポリシーを持っている必要があります。 すべてのサービスのポリシー参照の詳細は、「ポリシー参照」を参照してください。
-
Oracle Autonomous Databaseが使用可能である必要があります。 詳細は、「Autonomous Databaseインスタンスのプロビジョニング」を参照してください。
ドメイン統合アプリケーションの作成または使用
- アイデンティティ・ドメインの使用:
- 「デフォルト」アイデンティティ・ドメインに管理者アカウントでOCIコンソールにサインインします。
- OCIコンソールのナビゲーション・メニューで、「統合アプリケーション」をクリックします。
- 「統合アプリケーション」リスト・ページで、「アプリケーションの追加」を選択します。
- 「アプリケーションの追加」ウィンドウで、「機密アプリケーション」、「ワークフローの起動」の順に選択します。
「アプリケーション詳細の追加」ページで、次の表を使用して、アプリケーション詳細および表示設定を構成します。
表3-6 アプリケーションの詳細とその説明
オプション 説明 名前 機密アプリケーションの名前を入力します。 125文字まで入力できます。
アプリケーション名は、できるだけ短くするように配慮してください。 この例では、「スプレッドシートのアドイン」を使用します。
説明 機密アプリケーションの説明を入力します。 250文字まで入力できます。 アプリケーション・アイコン このフィールドは省略可能です。 このフィールドは省略できます。
「Upload」をクリックして、アプリケーションを表すアイコンを追加します。 このアイコンは、「My Apps」ページと「Applications」ページでアプリケーション名の横に表示されます
アプリケーション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番目のアプリケーションは、機密アプリケーション・スコープを参照するモバイル・アプリケーションになります。 -
「機密アプリケーションの追加」ウィザードの「クライアント構成」ダイアログで、
「このアプリケーションをクライアントとして今すぐ構成」をクリックして、アプリケーションの認可情報を今すぐ構成します。
- 開いている「認可」および「トークン発行ポリシー」セクションで、次の表を使用して情報を入力します。
表3-8 「クライアント構成」オプションとその説明
オプション 説明 リソース所有者 このフィールドは選択しないでください。 リソース所有者が、コンピュータ・オペレーティング・システムや高い権限を持つアプリケーションなどの機密アプリケーションとの信頼関係を持っている場合にのみ使用します。これは、機密アプリケーションを使用してアクセス・トークンを取得した後でパスワードを破棄する必要があるためです。
クライアント資格証明 このフィールドは選択しないでください。 認可スコープが、クライアントの制御下にある保護されたリソース、または認可サーバーに登録されている保護されたリソースに制限されている場合にのみ使用します。
JWTアサーション このフィールドは選択しないでください。 アサーションとして表される既存の信頼関係を使用し、認可サーバーで直接ユーザー承認ステップを使用しない場合にのみ使用します。
SAML2アサーション このフィールドは選択しないでください。 SAML2アサーションとして表される既存の信頼関係を使用し、認可サーバーで直接ユーザー承認ステップを使用しない場合にのみ使用します。
リフレッシュ・トークン このフィールドは選択しないでください。 この権限付与タイプは、許可サーバーによってリフレッシュ・トークンが提供され、それを使用して新しいアクセス・トークンを取得する場合にのみ選択します。
認可コード このフィールドは選択しないでください。 この権限付与タイプは、許可サーバーをクライアント・アプリケーションとリソース所有者の間の仲介として使用して許可コードを取得する場合にのみ選択します。
暗黙的 このフィールドを選択します。 アプリケーションが認証サーバーによる認証に使用するクライアント証明書の機密を保持できない場合は、このチェック・ボックスを選択します たとえば、アプリケーションがJavaScriptなどのスクリプト言語を使用するWebブラウザに実装されている場合です。 アクセス・トークンは、ブラウザ・リダイレクトを通じてリソース所有者の認証リクエストに対するレスポンスでクライアントに返されます(中間認証ではありません)。
デバイス・コード このフィールドは選択しないでください。 「デバイス・コード」権限付与タイプは、クライアントがOAuth許可サーバーからリクエストを受信できない場合にのみ選択します。たとえば、ゲーム・コンソール、ストリーミング・メディア・プレーヤ、デジタル・ピクチャ・フレームなどのHTTPサーバーとして機能することはできません。
TLSクライアント認証 このフィールドは選択しないでください。 クライアント証明書を使用してクライアントで認証する場合のみ、「TLSクライアント認証」権限付与タイプを選択します。 トークン・リクエストにX.509クライアント証明書があり、リクエストされたクライアントが「TLSクライアント認証」付与タイプで構成されている場合、OAuthサービスはリクエストのClient_IDを使用してクライアントを識別し、クライアント構成で証明書を使用してクライアント証明書を検証します。 クライアントは、2つの値が一致する場合にのみ正常に認証されます。
HTTPS以外のURLを許可 このフィールドは選択しないでください。 このチェック・ボックスは、「リダイレクトURL」、「ログアウトURL」または「ログアウト後のリダイレクトURL」フィールドにHTTP URLを使用する場合にのみ選択します。 たとえば、内部的にリクエストを送信している場合、暗号化しない通信が必要な場合、またはOAuth 1.0との下位互換性が必要な場合は、HTTP URLを使用できます。
リダイレクトURL 認証後にユーザーがリダイレクトされる次のアプリケーションURL https://static.oracle.com/cdn/spreadsheet/red-4/redirector.htmlを入力 ノート:
絶対URLを指定してください。 相対URLはサポートされていませんLogout 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キー(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保護されたリソースにアクセスできます。
接続ファイルの作成
-
接続を追加するには、接続ペインのヘッダーにある「追加」ボタンをクリックします。 新しい接続の追加ダイアログ・ボックスが開きます。
- Add new connectionダイアログ・ボックスで、次のフィールドを指定します:
- 接続名: 接続の名前を入力します。
- Autonomous DatabaseのURL: 接続先のAutonomous DatabaseのURLを入力します。 Autonomous DatabaseのWeb UIからURL全体をコピーします。 たとえば、次のリンク"https://<hostname>-<databasename>.adb.<region>.oraclecloudapps.com/"を入力またはコピーして、データベースに接続します。
- 接続タイプを選択: OCI IAM
- ドメインURL: ドメイン情報タブからドメインURLを入力します。
- クライアントID: ドメイン統合アプリケーションの作成から記録したクライアントIDを入力します。
- OAuthクライアントID: ドメイン統合アプリケーションの作成から記録したクライアント・シークレットを入力します。
- スキーマ: Autonomous DatabaseスキーマのIAMログインの有効化に使用するスキーマと同じスキーマを入力します。
接続の作成後、このドメインの他のユーザーと共有できます。