各製品の資料を入手。
詳細はこちら →Servoy でPingOne に接続されたWeb アプリを構築
Servoy Developer を使用して手軽にPingOne のデータに接続し、リアルタイムPingOne のデータに接続できるWeb アプリケーションを構築。
最終更新日:2023-02-26
この記事で実現できるPingOne 連携のシナリオ
こんにちは!ドライバー周りのヘルプドキュメントを担当している古川です。
Servoy は、迅速なアプリケーション開発とデプロイのためのプラットフォームです。CData JDBC Driver for PingOne と組み合わせることで、ユーザーはPingOne に接続してリアルタイムPingOne のデータを使用できるアプリケーションを構築できます。この記事では、Servoy からPingOne に接続し、PingOne のデータを表示、検索するための簡単なWeb アプリケーションを構築する方法を説明します。
ビルトインの最適化されたデータ処理により、CData JDBC Driver は、リアルタイムPingOne のデータとやり取りする際に圧倒的なパフォーマンスを提供します。PingOne に複雑なSQL クエリを発行すると、ドライバーはフィルタや集計などのサポートされているSQL 操作をPingOne に直接プッシュし、サポートされていない操作(主にSQL 関数とJOIN 操作)は組み込みのSQL エンジンを利用してクライアント側で処理します。組み込みの動的メタデータクエリを使用すると、ネイティブデータソース型を使用してPingOne のデータを操作できます。
Servoy Developer からPingOne に接続する
PingOne に接続するアプリケーションを構築するには、まず、Servoy Developer からCData JDBC Driver for PingOne を使用してデータプロバイダを作成する必要があります。
- JDBC Driver をインストールします。
- JDBC Driver JAR ファイル(cdata.jdbc.pingone.jar)を、Servoy のインストールディレクトリの/application_server/drivers/ ディレクトリにコピーします。
- Servoy Developer を開きます。
- Solution Explorer で「Resources」の下の「Database Server」を右クリックし、「Connect to existing database」->「empty」を選択します。
- サーバーに名前を付けます。
- クリックすると、サーバーの詳細設定が表示されます。
次のようにURL を設定します。例:jdbc:pingone:AuthScheme=OAuth;WorkerAppEnvironmentId=eebc33a8-xxxx-4f3a-yyyy-d3e5262fd49e;Region=NA;OAuthClientId=client_id;OAuthClientSecret=client_secret;InitiateOAuth=GETANDREFRESH
組み込みの接続文字列デザイナー
JDBC URL の構築については、PingOne JDBC Driver に組み込まれている接続文字列デザイナーを使用してください。JAR ファイルをダブルクリックするか、コマンドラインからjar ファイルを実行します。
java -jar cdata.jdbc.pingone.jar
接続プロパティを入力し、接続文字列をクリップボードにコピーします。
PingOne に接続するには以下のプロパティを設定します。
- Region:自身のPingOne 組織のデータがホスティングされている地域。
- AuthScheme:PingOne に接続する際に使用する認証の種類。
- WorkerAppEnvironmentId (デフォルトのPingOne ドメインを使用する場合に必要)、またはAuthorizationServerURL のいずれかで、下で説明するように設定します。
WorkerAppEnvironmentId の設定
WorkerAppEnvironmentId は、Worker アプリケーションが存在するPingOne 環境のID です。 このパラメータは、環境がデフォルトのPingOne ドメイン(auth.pingone)を利用している場合のみ使用されます。 これは、ヘルプドキュメントのカスタムOAuth アプリケーションの作成で説明するように、PingOne への認証に使用するカスタムOAuth アプリケーションを作成した後に設定します。
はじめに、このプロパティの値を見つけます。
- 自身のPingOne 組織のホームページからナビゲーションサイドバーに移動し、Environments をクリックします。
- OAuth / Worker のカスタムアプリケーションを作成した環境(通常はAdministrators)を見つけ、Manage Environment をクリックします。 環境のホームページが表示されます。
- 環境のホームページのナビゲーションサイドバーで、Applications をクリックします。
- リストから、OAuth またはWorker アプリケーションの詳細を見つけます。
-
Environment ID フィールドの値をコピーします。
以下の例に似たものになるはずです:
WorkerAppEnvironmentId='11e96fc7-aa4d-4a60-8196-9acf91424eca'
次に、WorkerAppEnvironmentId をEnvironment ID フィールドの値に設定します。
AuthorizationServerURL の設定
AuthorizationServerURL は、お使いのアプリケーションが配置されている環境のPingOne 認可サーバーのベースURL です。 このプロパティは、PingOne プラットフォームAPI ドキュメントで説明されているように、環境にカスタムドメインを設定した場合にのみ使用されます。 Custom Domains を参照してください。
OAuth でのPingOne への認証
PingOne はOAuth とOAuthClient 認証の両方をサポートしています。 上述の設定手順に加え、OAuth またはOAuthCliet 認証をサポートするために、さらに2つの手順を完了する必要があります。
- ヘルプドキュメントのカスタムOAuth アプリケーションの作成で説明するように、カスタムOAuth アプリケーションを作成して設定します。
- ドライバーがデータモデル内のエンティティにアクセスできるようにするには、ヘルプドキュメントのAdministrator Roles での説明のとおり、使用するアドミンユーザー / ワーカーアプリケーションに対して正しいロールを設定していることを確認してください。
- 以下のサブセクションで説明されているように、選択した認証スキームと認証フローに適切なプロパティを設定します。
OAuth(認可コードグラント)
AuthScheme をOAuth に設定します。
デスクトップアプリケーション
OAuth アクセストークンの取得およびリフレッシュ
以下を設定して、接続してください。
- InitiateOAuth:GETANDREFRESH。繰り返しOAuth の交換を行ったり、手動でOAuthAccessToken を設定する必要をなくすには、InitiateOAuth を使用します。
- OAuthClientId:カスタムOAuth アプリケーションを作成した際に取得したClient ID。
- OAuthClientSecret:カスタムOAuth アプリケーションを作成した際に取得したClient Secret。
- CallbackURL:カスタムOAuth アプリケーションの登録時に定義したリダイレクトURI。例:https://localhost:3333
接続すると、本製品 はデフォルトブラウザでPingOne のOAuth エンドポイントを開きます。ログインして、アプリケーションにアクセス許可を与えます。 ドライバーはこれでOAuth プロセスを完了します。
- ドライバーはPingOne からアクセストークンを取得し、それを使ってデータをリクエストします。
- OAuth 値はOAuthSettingsLocation で指定された場所に保存され、接続間で永続化されるようにします。
ドライバーはアクセストークンの期限が切れると自動的にリフレッシュします。
Web アプリケーションやヘッドレスマシン、クライアントクレデンシャルグラントを含むその他のOAuth メソッドについては、ヘルプドキュメントを参照してください。
- コピーしたDriver クラスを選択します。例:cdata.jdbc.pingone.PingOneDriver
PingOneに接続するWeb アプリを構築する
Servoy Developer リソースでPingOne への接続を設定すると、リアルタイムPingOne へのアクセス権を持つアプリケーションを構築することができます。
新しいソリューションを作成する
- Server Explorer で、「All solutions」を右クリックし、「Create new solution」を選択します。
- ソリューションに名前を付けます。
- 「search」モジュールを含むチェックボックスを選択します。
- 「Finish」をクリックします。
新しいフォームを作成する
「Forms」を右クリックし、「Create new form」を選択します。
- フォームに名前を付けます。
- データソースを選択します。
- タイプ(Simple など)を設定し、「Finish」をクリックします。

フォームにData Grid を追加する
- Servoy NG-Grids からData Grid コンポーネントをフォームにドラッグします。
カラムコンポーネントをData Grid にドラッグし、各カラムコンポーネントの「dataprovider」プロパティをPingOne 「table」のカラム(例:[CData].[Administrators].Users テーブルのId)に設定します。
必要に応じてカラムを追加します。
アプリケーションに検索を追加する
検索機能を追加するには、「svySearch」拡張機能が必要です。(新しいソリューションを作成する際にデフォルトで含まれます。)ソリューションの作成時に拡張機能を追加しなかった場合、または、既存のソリューションを変更する場合は、ソリューション内のModules を右クリックして「Add Module」を選択することで検索モジュールを追加できます。「svySearch」を選択し、「OK」をクリックします。
- Text Field コンポーネントをForm にドラッグします。
- Form を右クリックし、「Open in Script Editor」を選択します。
- 検索値を保持する新しい変数(JavaScript)を作成します。
var searchText = '';
- Text Field プロパティでForm に戻ります。
- 「dataprovider」プロパティを作成したForm 変数に設定します。
- ダブルクリックしてonAction イベントのメソッドを追加します。
- クリックして「Form」でメソッドを作成し、名前を付けて(例:onEnter)、「Create private」をクリックします。
- 「OK & Show」をクリックします。
- 以下のJavaScript をJavaScript ファイルに追加することで、Servoy フレームワークを使用してText Field のテキストを使ったバインドデータの検索を実装します。
var search = scopes.svySearch.createSimpleSearch(foundset).setSearchText(searchText); search.setSearchAllColumns(); search.loadRecords(foundset);

アプリを保存して起動する
フォームとJavaScript ファイルを保存し、「Run」->「Launch NGClient」とクリックしてWeb アプリケーションを起動します。

CData JDBC Driver for PingOne の30日の無償評価版をダウンロードし、Servoy でPingOne に接続されたアプリケーションの構築を開始します。ご不明な点があれば、サポートチームにお問い合わせください。