ノート:
- このチュートリアルでは、Oracle Cloudへのアクセスが必要です。無料アカウントにサインアップするには、Oracle Cloud Infrastructure Free Tierの開始を参照してください。
- Oracle Cloud Infrastructureの資格証明、テナンシおよびコンパートメントの値の例を使用します。演習を完了するときに、これらの値をクラウド環境に固有の値に置き換えます。
デバイス・コード・フローを使用したOCI IAMでのExcelからコンポーネントへのインタフェース・ユーティリティSSOの有効化
イントロダクション
PeopleSoftのExcelからコンポーネントへのインタフェース(ExcelからCI)ユーティリティは、非常に重要なツールとして機能するため、ユーザーは標準のユーザー名とパスワード認証を使用して、Microsoft ExcelスプレッドシートからPeopleSoftデータベースにデータをシームレスにインポートできます。各ソース・ワークブックは、各トランザクションに不可欠なビジネス・ロジックを実行するワークシートとExcel Visual Basicコード・モジュールの両方で構成されています。詳細は、Excel-to-Componentインタフェース・ユーティリティの理解を参照してください。
Oracle Cloud Infrastructure Identity and Access Management (OCI IAM)の急速な進歩により、シングル・サインオン(SSO)をサポートするPeopleSoftなどのアプリケーションの需要がますます高まりました。この進化は、合理化されたユーザー・エクスペリエンス、強化されたセキュリティ、および複数のプラットフォームにわたる簡略化されたアクセスの必要性を反映しており、ユーザーは堅牢な認証プロトコルを維持しながらシームレスにナビゲートできます。
OCI IAMは、ユーザーとロールの管理、ユーザーのフェデレーションとプロビジョニングの促進、およびOracle SSO構成とSecurity Assertion Markup Language (SAML)/OAuthベースのアイデンティティ・プロバイダ(IdP)の管理によるセキュアなアプリケーション統合の実現のための堅牢なフレームワークとして機能します。特に、Oracle Identity Domainsアプリケーション・ゲートウェイは、PeopleSoftなどのヘッダーベース認証を利用するアプリケーションのシングル・サインオン(SSO)をサポートします。詳細は、OCI IAMアイデンティティ・ドメインを使用したPeopleSoftアプリケーションのシームレスな認証の構成を参照してください。
このチュートリアルでは、従来のExcelからCIシートへの変換について検討し、標準認証プロトコルをサポートするように最新化します。OCI IAM SSOを使用してユーザーを認証する方法について詳しく説明します。これにより、これらの拡張スプレッドシートを介してシームレスなデータ・アップロードが可能になります。
PeopleSoft OCI IAMとのSSO統合
PeopleSoftは、リバース・プロキシとして機能するアプリケーション・ゲートウェイを介してSSO用のOCI IAMと統合されます。PeopleSoft WebインタフェースへのHTTPリクエストをインターセプトし、ユーザーがログインして認可されるようにします。OCI IAMアイデンティティ・ドメインは、PeopleSoftアプリケーションの認証を管理します。
デバイス・コード・フローのOCI IAMサポートの概要
デバイス・コード・フローにより、Webブラウザがないデバイスまたはオペレーティング・システムでのユーザー認証が可能になります。この方法により、ユーザーは、コンピュータや携帯電話などの別のデバイスを使用して対話的にサインインできます。次の図は、デバイス・コード・フローの動作を示しています。
デバイス・コード・フローおよびOCI IAM内のその構成の詳細は、「機能と利益のためのIDCS OAuthデバイス・フローの使用」および「デバイス・コード付与タイプ」を参照してください。
さらに、デバイス・コード・フローはMicrosoft Excelスプレッドシートと互換性があることを理解しています。詳細は、「Excel、OAuth 2.0およびデバイス・コード・フロー」を参照してください。デバイス・コード・フローをサポートするために、従来のExcel to CIスプレッドシートを拡張します。まず、OCI IAMで機密アプリケーションを作成して、この統合を容易にします。
目的
-
デバイス・コード・フローを使用して、OCI IAM SSO資格証明を使用してデータをPeopleSoftデータベースにアップロードします。
- Excel to CIファイルをダウンロードし、ローカル・システムに保存します。
- デバイス・コード・フローをサポートするために、OCI IAMに機密アプリケーションを作成します。
- 既存のVisual Basic (VB)マクロ関数を更新し、OCI IAM接続の詳細を追加して、データをPeopleSoftデータベースにアップロードします。
- OCI IAM SSO資格証明およびデバイス・コード・フローを使用して、更新されたMicrosoft ExcelスプレッドシートからPeopleSoftデータベースにサンプル・データをプッシュします。
前提条件
-
OCIテナンシへのアクセス。
-
タイプがOracle Apps Premiumのアイデンティティ・ドメインおよびその上の管理アカウント。
-
有効なSSL証明書を持つPeopleSoft SSO対応インスタンス。
-
PeopleSoftへのSSOアクセス権を持つユーザーと、ExcelからCIへのデータ・アップロードに必要な権限をPeopleSoftデータベースに持つユーザー。
-
現在、ユーザー名とパスワードを使用してデータをプッシュしている、完全に機能するExcel to CIスプレッドシートのコピー。
-
Excel to CIを適切に機能させるための依存ファイル
RelLangMacro.xla
のローカル・コピー。 -
VBマクロのコーディングに関する基本的な知識。
タスク1: デバイス・コード・フローの機密アプリケーションの作成
許可される付与タイプ「デバイス・コード」でSSOのPeopleSoftと統合されているOCI IAMアイデンティティ・ドメインの下に機密アプリケーションを登録します。
-
OCIコンソールにログインし、「アイデンティティ・ドメイン」で「ドメイン情報」をクリックし、「アイデンティティ・ドメインURL」をコピーします。
ノート:ドメインURLの最後から:443を除外します。この情報はタスク6で必要になります。
-
ナビゲーション・メニューに移動し、「アプリケーション」をクリックします。
-
「機密アプリケーション」を選択し、「ワークフローの起動」をクリックします。
-
アプリケーションの「名前」を入力し、「次へ」をクリックします。
-
「後でスキップ」、「許可された付与タイプ」として「デバイス・コード」を選択し、「次へ」をクリックします。
-
「終了」をクリックします。
-
「アクティブ化」をクリックして、アプリケーションをアクティブ化します。
-
詳細な構成で使用するには、「クライアントID」および「クライアント・シークレット」をメモします。
タスク2: デバイス・コード・フローを使用したExcelからCIおよびOCI IAMアーキテクチャ
デバイス・コード・フローを使用して、PeopleSoftデータベースにデータを送信するステップ。
-
デバイス・コード・フローの開始:ユーザーがPeopleSoftデータベースにデータを送信しようとすると、Excelシートによってデバイス・コード・フローが開始されます。
-
ユーザー・コードの表示: 6文字のユーザー・コードがユーザーに表示されます。このコードは、アクセス・トークンの取得で将来使用するためにコピーする必要があります。
-
ブラウザ認証:ユーザー・コードが記録されると、ExcelシートによってデフォルトのWebブラウザが自動的に開き、ユーザーがログインするように求められます。セッションがすでにアクティブになっている場合、ユーザーは自動的にログインします。
-
ユーザー・コードの入力:ログインに成功し、多要素認証(MFA)要件を完了すると、ブラウザは、以前にコピーしたユーザー・コードを入力するようユーザーに求めます。
-
アクセス・トークン発行:ユーザー・コードを正常に送信すると、アクセス・トークンがExcelシートに発行され、PeopleSoftデータベースにデータを送信できるようになります。
次の図は、より詳細なデバイス・コード・フローを示しています。
このプロセスを容易にするために、VBコードの変更および認証およびデータ発行モジュールの拡張に進みます。
タスク3: デバイス・コード・フローを使用したログイン用のVBコードの更新
ExcelToCI Sheets_ExcelToCI2007-AppG_SampleFile.zipからExcel to CIスプレッドシートのコピーをダウンロードし、元のExcel to CIスプレッドシートがあるローカル・システムに保存します。Excel to CIを適切に機能させるには、フォルダに依存ファイルRelLangMacro.xla
も含める必要があります。
-
Excel to CIスプレッドシートを開き、PeopleSoftアプリケーション・ゲートウェイの詳細で「接続情報」シートを更新します。次の情報を入力します
- Web Server Machine Name。
- プロトコル
- HTTPポート
-
「開発者」および「Visual Basic」をクリックして、MicroSoft Visual Basic for Applicationsを開きます。「モジュール」をクリックします。
-
「モジュール」で、「ログイン」モジュールを展開し、タスク1およびOCI IAMドメインURLで作成された機密アプリケーションのクライアントIDおよびクライアント・シークレットを次のファンクションで更新して、ファイルを保存します。
ノート:スプレッドシートには、詳細を追加する場所に役立つコメントがあります。
- Public Function getLoginInformation。
- Public Function makeInstrospectRequest。
- Public Function makeIDCSRequest。
ノート:
-
概念実証:このシートは、Excel to CIがPeopleSoftデータベースにデータを送信するためのデバイス・コード・フローをサポートできることを示す概念実証として機能します。
-
コード品質:コードは、VBコーディングのベスト・プラクティスに準拠していない場合があります。本番環境にデプロイする前に、お客様側で徹底的なテストを行うことを強くお薦めします。
-
データ発行テスト:スプレッドシートは、データ発行のユース・ケースについてテストされています。他の機能のユーザー名とパスワード認証がデフォルトの場合、VBモジュールを変更して、機能向上のためにデバイス・コード・ロジックを組み込むことができます。
-
参照チェック:さらに、Microsoft Visual Basic for Applicationsページの「ツール」の下にあるExcel to CI参照をレビューして、次のスクリーンショットと一致していることを確認します。
タスク4: デバイス・コード・フローを使用したデータ・アップロードのテスト
-
「データ入力」にサンプル・データを追加し、「アドイン」、「送信用にデータをステージング」をクリックします。
-
「ステージングおよび発行」シートでは、PeopleSoftデータベースに送信する新しいデータ・エントリを表示できます。「アドイン」および「データの送信」をクリックします。
-
Excelシートでデバイス・コード・フローが開始され、「ユーザー・コード」が表示されます。これをノートにとります。「OK」をクリックすると、OCI IAMログイン・ページにリダイレクトされます。
-
SSO資格証明を使用してOCI IAMにログインします。
-
「コード」にユーザー・コードを入力し、「送信」をクリックします。
-
ユーザー・コードが正しい場合は、アプリケーションへのアクセスを確認する「おめでとうございます」画面が表示されます。
-
アクセス・トークンはExcelシートに戻され、ExcelシートはPeopleSoftデータベースにデータを送信するために使用されます。データ送信を確認するデータ・エントリに対して「OK」が表示されます。
シートには、次の実行のアクセス・トークン詳細が格納され、アクセス・トークンが「アクティブ」でないかぎり、「デバイス・コード・フロー」を通過するように要求されることはありません。
Excel to CIシートでの拡張の機会
-
トークン検証:現在、イントロスペクト・エンドポイントを使用して、デフォルトの有効期限が60分であるアクセス・トークンの有効性を検証します。
-
セッション永続性: 60分後にユーザーがログアウトされないようにするには、リフレッシュ・トークン・メカニズムを実装することを検討します。
-
コード変更: VBコードを更新して、継続的なアクセスのためのリフレッシュ・トークンの使用を組み込みます。
-
OCI IAMの詳細の動的取得:シート内の関数は、現在、アイデンティティ情報でハードコードされています。これを拡張するには、Excelセルを定義してこれらの詳細を動的に取得します。
-
アクセス・トークン表示:アクセス・トークン値が「接続情報」シートに現在表示されます。セルの書式設定を調整して、エンド・ユーザーに対して非表示にすることもできます。
-
仕訳アップロードとの互換性: Excel to CIのデモンストレーションされたデバイス・コード・フロー・ロジックを仕訳アップロードに適用することもできます。
Jrnlmacro.xla
の次のモジュールは、mImportControlで更新する必要があります。仕訳アップロード用のサンプルZipのダウンロード。- プライベート・サブImport_Sheet。
- プライベート・ファンクションsendXML。
- Public Function makeIDCSRequest。
- Public Function makeInstrospectRequest。
関連リンク
承認
- 著者 - Chetan Soni (シニア・クラウド・エンジニア)
その他の学習リソース
docs.oracle.com/learnの他のラボを確認するか、Oracle Learning YouTubeチャネルで無料のラーニング・コンテンツにアクセスしてください。また、education.oracle.com/learning-explorerにアクセスしてOracle Learning Explorerになります。
製品ドキュメントは、Oracle Help Centerを参照してください。
Enable Excel to Component Interface Utility SSO with OCI IAM using Device Code Flow
G16867-01
October 2024