Power Apps データフローを使ってPingOne のデータをMicrosoft Dataverse に連携

PingOne コネクターを使ってPower Apps のオンプレミスデータゲートウェイでPingOne のデータとの連携を実現

加藤龍彦
デジタルマーケティング

最終更新日:2023-08-09

この記事で実現できるPingOne 連携のシナリオ

こんにちは!ウェブ担当の加藤です。マーケ関連のデータ分析や整備もやっています。

Power Apps はMicrosoft のローコードアプリ開発ツールです。Power Apps には、Power Apps 上で使えるデータベースライクなDataverse(旧CDS)というサービスがあるのですが、このサービスに連携するためのデータフローというデータインテグレーション機能が存在します。

Access やSharePoint リストを元に、Dataverse のエンティティ(テーブルのようなもの)を自動生成し、定期的にデータを同期させてくれるという便利な機能です!デフォルトでも30種類くらいのサービスに接続できるようになっているのですが、CData のPower BI Connectors と組み合わせればPingOne を含む270種類以上のデータソースに接続できます。 ここでは、汎用ODBC データプロバイダーとしてPingOne に接続し、Power Apps オンプレミスデータゲートウェイからPingOne のデータを連携利用する手順を説明します。

PingOne のデータに接続するDSN を設定

まずは、右側のサイドバーからPower BI Connector for PingOne をダウンロードします。30日間無料で全機能が利用できるので、お気軽にご利用ください。インストールが完了すると、以下のように接続設定画面が表示されるので、 DSN を設定します。 DSN 設定の詳細については、ドキュメントを参照してください。 ODBC DSN設定画面

PingOne DSN の設定方法

PingOne に接続するには以下のプロパティを設定します。

  • Region:自身のPingOne 組織のデータがホスティングされている地域。
  • AuthScheme:PingOne に接続する際に使用する認証の種類。
  • WorkerAppEnvironmentId (デフォルトのPingOne ドメインを使用する場合に必要)、またはAuthorizationServerURL のいずれかで、下で説明するように設定します。

WorkerAppEnvironmentId の設定

WorkerAppEnvironmentId は、Worker アプリケーションが存在するPingOne 環境のID です。 このパラメータは、環境がデフォルトのPingOne ドメイン(auth.pingone)を利用している場合のみ使用されます。 これは、ヘルプドキュメントカスタムOAuth アプリケーションの作成で説明するように、PingOne への認証に使用するカスタムOAuth アプリケーションを作成した後に設定します。

はじめに、このプロパティの値を見つけます。

  1. 自身のPingOne 組織のホームページからナビゲーションサイドバーに移動し、Environments をクリックします。
  2. OAuth / Worker のカスタムアプリケーションを作成した環境(通常はAdministrators)を見つけ、Manage Environment をクリックします。 環境のホームページが表示されます。
  3. 環境のホームページのナビゲーションサイドバーで、Applications をクリックします。
  4. リストから、OAuth またはWorker アプリケーションの詳細を見つけます。
  5. Environment ID フィールドの値をコピーします。 以下の例に似たものになるはずです:
    WorkerAppEnvironmentId='11e96fc7-aa4d-4a60-8196-9acf91424eca'

次に、WorkerAppEnvironmentIdEnvironment ID フィールドの値に設定します。

AuthorizationServerURL の設定

AuthorizationServerURL は、お使いのアプリケーションが配置されている環境のPingOne 認可サーバーのベースURL です。 このプロパティは、PingOne プラットフォームAPI ドキュメントで説明されているように、環境にカスタムドメインを設定した場合にのみ使用されます。 Custom Domains を参照してください。

OAuth でのPingOne への認証

PingOne はOAuth とOAuthClient 認証の両方をサポートしています。 上述の設定手順に加え、OAuth またはOAuthCliet 認証をサポートするために、さらに2つの手順を完了する必要があります。

  • ヘルプドキュメントカスタムOAuth アプリケーションの作成で説明するように、カスタムOAuth アプリケーションを作成して設定します。
  • ドライバーがデータモデル内のエンティティにアクセスできるようにするには、ヘルプドキュメントのAdministrator Roles での説明のとおり、使用するアドミンユーザー / ワーカーアプリケーションに対して正しいロールを設定していることを確認してください。
  • 以下のサブセクションで説明されているように、選択した認証スキームと認証フローに適切なプロパティを設定します。

OAuth(認可コードグラント)

AuthSchemeOAuth に設定します。

デスクトップアプリケーション

OAuth アクセストークンの取得およびリフレッシュ

以下を設定して、接続してください。

  • InitiateOAuthGETANDREFRESH。繰り返しOAuth の交換を行ったり、手動でOAuthAccessToken を設定する必要をなくすには、InitiateOAuth を使用します。
  • OAuthClientId:カスタムOAuth アプリケーションを作成した際に取得したClient ID。
  • OAuthClientSecret:カスタムOAuth アプリケーションを作成した際に取得したClient Secret。
  • CallbackURL:カスタムOAuth アプリケーションの登録時に定義したリダイレクトURI。例:https://localhost:3333

接続すると、本製品 はデフォルトブラウザでPingOne のOAuth エンドポイントを開きます。ログインして、アプリケーションにアクセス許可を与えます。 ドライバーはこれでOAuth プロセスを完了します。

  1. ドライバーはPingOne からアクセストークンを取得し、それを使ってデータをリクエストします。
  2. OAuth 値はOAuthSettingsLocation で指定された場所に保存され、接続間で永続化されるようにします。

ドライバーはアクセストークンの期限が切れると自動的にリフレッシュします。

Web アプリケーションやヘッドレスマシン、クライアントクレデンシャルグラントを含むその他のOAuth メソッドについては、ヘルプドキュメントを参照してください。

オンプレミスデータゲートウェイで PingOne コネクタを認識させる

次にオンプレミスデータゲートウェイにインストールしたPingOne コネクターを認識させます。もしデータゲートウェイのインストールがまだであれば、こちらのMS 公式ページからダウンロードできます。

  • Power Apps の環境では、モデル駆動アプリで利用できるDataverse にデータを連携するので、Dataverse の環境を予め構成しておいてください。
  • オンプレミスデータゲートウェイを立ち上げて「コネクタ」のタブに移動し、フォルダパスから「C:\Program Files\CData\CData Power BI Connector for PingOne」を選択します。
  • カスタムデータコネクタが識別されれば、設定完了です。
  • データフローの接続を構成する

    それでは Power Apps の画面に移動して、データフローを作成してみましょう。

    • Power Apps の画面から「データフロー」を選択し、「データフローを作成する」をクリックします。
    • 任意の名称を入力し、「作成」をクリック
    • データソース一覧の中から「ODBC」を選択します。
    • 接続設定画面では、先程設定した接続情報を使うので接続文字列のところに「DSN=接続名称(今回の場合はDSN=CData PBI PingOne )」と入力します。オンプレミスデータゲートウェイからは接続先のゲートウェイが表示されるので、それを選択。現在のPower Apps データフローの仕様上ODBC 接続では認証が必須のようなので、認証の種類として「Basic」を選択し、適当な文字列を入力しておきます(この文字列は使われないので、特に気にしなくて大丈夫です)。
    • 次の画面に進むと、対象のテーブル・もしくはビュー選択画面に移動します。テーブルを選択すると、プレビューが表示され、正常にコネクターとゲートウェイ経由でPingOne のデータが参照できていることがおわかりいただけると思います。テーブルを選択して、次へ進みます。
    • クエリの編集画面では、特にカラムの変換など必要ない場合は、変更する必要はありません。そのまま次へ進んでも大丈夫です。
    • 重要なエンティティマップです。ここで、Dataverse にエンティティを構成するための各種設定を実施します。今回は新しくエンティティを構成してしまうので、「新しいエンティティを読み込む」にチェックを入れます。デフォルトでは、対象フィールドのタイプが複数行テキストになってしまうので、これらを「テキスト」のタイプに変更し、最後にプライマリフィールドを選択テーブルへ設定すればOKです。
      また、もしデータの差分をDataverse 側に残しておきたい場合は、「クエリ出力に存在しない行を削除します」にチェックを入れておきましょう。
    • 最後にデータの更新方法を選択します。せっかくなので、自動的に更新にしてみましょう。以下のように1時間ごとに更新というように設定しておけば、1時間毎に随時登録されたデータが吸い上げられ、最新のデータがDataverse 上に登録されていきます。
    • 設定後、「作成」をクリックすると、エンティティの作成と初期のデータ同期が開始されます。「完了済み」になればOKです。
    • データタブの「エンティティ」を選択すると、自動的に生成されたエンティティが一覧に含まれていることがわかります。

    おわりに

    このように、Power Apps から簡単にPingOne のデータに接続して利用することができました。CData のPower BI Connector は、PingOne 以外にも270種類以上のデータソースに対応しています。30日間の無償トライアルがありますので、ぜひお試しください。

関連コンテンツ

トライアル・お問い合わせ

30日間無償トライアルで、CData のリアルタイムデータ連携をフルにお試しいただけます。記事や製品についてのご質問があればお気軽にお問い合わせください。