FileMaker Pro とPingOne の連携
この記事では、CData JDBC Driver for PingOne を使用して、FileMaker Pro のExternal SQL Sources(ESS)機能と連携する方法を説明します。ESS を利用すると、FileMaker Pro 内のレコードを他のデータストアの関連レコードとリンクできます。
MySQL リモート機能を使用して、PingOne をリモートMySQL データベースとしてアクセスします。CData JDBC Driver for PingOne は、JDBC とMySQL の両規格を実装しており、FileMaker Pro のように従来のMySQL データベースへの接続はサポートしていても、汎用のJDBC 接続をサポートしていないアプリケーションとの連携を実現します。
FileMaker Pro 連携方式の選択
FileMaker Pro には2つのデータアクセス方式があります。
- データインポート:PingOne データをFileMaker Pro データベースにコピーし、必要に応じて更新できます。この方式を簡素化するには、CData ODBC ドライバーを使用します。FileMaker Pro はODBC をネイティブサポートしていますが、JDBC はサポートしていません。この方式については、FileMaker Pro でのODBC PingOne 連携を参照してください。
- ESS:データのローカルコピーを使用する代わりに、JDBC ドライバーを使用して外部SQL ソースを作成できます。リモートデータはFileMaker Pro で変更でき、テーブルは標準のFileMaker Pro テーブルと同様にリレーションシップグラフで使用できます。
ESS セットアップの概要
JDBC ドライバーはデータアクセスチェーンの一部です。ネイティブのODBC 連携と比較すると、MySQL リモートを使用するFileMaker Pro 連携には追加のコンポーネントがあります。この記事では、以下の各コンポーネントをFileMaker Pro とリンクする方法を説明します。
- CData JDBC ドライバー
- CData MySQL リモートデーモン(ドライバーに同梱)
- MySQL 用ODBC ドライバー
Windows では、FileMaker Pro は公式のMySQL ドライバー、MySQL Connector\ODBC を必要とします(現時点でのベストオプションはConnector\ODBC 8.0.11 です)。
macOS では、FileMaker Pro はActual Technologies Open Databases ODBC ドライバーを必要とします。
ODBC ドライバーマネージャー
Windows では、ドライバーマネージャーは組み込みです。macOS では、ODBC ドライバーをインストールする前にドライバーマネージャーをインストールする必要があります。iODBC ドライバーマネージャーをインストールしてください。
リモートデーモンの起動
以下の手順に従って、MySQL リモート機能を有効にします。
-
ターミナルを開き、インストールフォルダのlib サブフォルダに移動します。
$ cd "/Applications/CData/CData JDBC Driver for PingOne/lib"
- 構成ファイル(デフォルトではcdata.jdbc.pingone.remoting.ini)を編集します。
- [databases] セクションをPingOne 用のJDBC 接続URL で更新します。
pingone = "AuthScheme=OAuth;WorkerAppEnvironmentId=eebc33a8-xxxx-4f3a-yyyy-d3e5262fd49e;Region=NA;OAuthClientId=client_id;OAuthClientSecret=client_secret;"
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
接続すると、CData 製品 はデフォルトブラウザでPingOne のOAuth エンドポイントを開きます。ログインして、アプリケーションにアクセス許可を与えます。 ドライバーはこれでOAuth プロセスを完了します。
- ドライバーはPingOne からアクセストークンを取得し、それを使ってデータをリクエストします。
- OAuth 値はOAuthSettingsLocation で指定された場所に保存され、接続間で永続化されるようにします。
ドライバーはアクセストークンの期限が切れると自動的にリフレッシュします。
Web アプリケーションやヘッドレスマシン、クライアントクレデンシャルグラントを含むその他のOAuth メソッドについては、ヘルプドキュメントを参照してください。
利用可能な接続プロパティやその他のリモート設定オプションの詳細については、ヘルプドキュメントを参照してください。
- [databases] セクションをPingOne 用のJDBC 接続URL で更新します。
コマンドラインで構成ファイルまたは設定を指定して、MySQL デーモンを起動します。以下の例では、同梱のサンプル構成ファイルを使用しています。
$ java -jar cdata.jdbc.pingone.jar -f "cdata.jdbc.pingone.remoting.ini"
DSN の作成
PingOne への接続に成功しMySQL デーモンを起動したら、MySQL ODBC データソースを作成します。 ODBC データソースを使用する場合、DSN(データソース名)で接続プロパティを指定します。
ODBC ドライバーとドライバーマネージャーをまだ入手していない場合は、「ESS セットアップの概要」を参照して、お使いのプラットフォームでサポートされているコンポーネントを確認してください。
macOS
以下の手順に従って、iODBC グラフィカル管理ツールを使用します。
- Launchpad で検索してiODBC を開きます。
- システムDSN タブで、「追加」をクリックし、Actual Open Source Databases を選択します。
- 以下の情報を入力してウィザードを完了します。
- 名前:DSN を入力します。
- サーバー:127.0.0.1 またはMySQL デーモンが実行されているマシンのアドレスを入力します。
- ポート:デーモンがリッスンしているポートを入力します。例:3306。
- データベース:デーモンの構成ファイルで指定されたデータベース名を入力します。例:PingOne。
- 「メタデータ」タブで、以下のチェックボックスをオンにします。
- 「Ignore schema in column specifications」
- 「Don't use INFORMATION_SCHEMA for metadata」
- 「接続テスト」をクリックし、ダイアログで資格情報を入力します。
Windows
組み込みのMicrosoft ODBC データソースアドミニストレータを使用してODBC DSN を作成できます。
- コントロールパネルから「データソース(ODBC)のセットアップ」を選択します。ODBC データソースアドミニストレータが表示されます。
- システムDSN タブで、「追加」をクリックし、MySQL ODBC ドライバーを選択します。
- 以下の情報を入力してウィザードを完了します。
- 名前:DSN を入力します。
- サーバー:127.0.0.1 またはMySQL デーモンが実行されているマシンのアドレスを入力します。
- ポート:デーモンがリッスンしているポートを入力します。例:3306。
- データベース:デーモンの構成ファイルで指定されたデータベース名を入力します。例:PingOne。
- 「メタデータ」タブで、以下のチェックボックスをオンにします。
- 「Ignore schema in column specifications」
- 「Don't use INFORMATION_SCHEMA for metadata」
- 「接続テスト」をクリックし、ダイアログで資格情報を入力します。
PingOne シャドウテーブルの作成
シャドウテーブルは外部SQL ソースに存在しますが、FileMaker データベースの他のテーブルとほぼ同様に使用できます。リレーションシップグラフに追加したり、データを参照したり、レイアウトを作成したりできます。
- 「ファイル」->「管理」->「データベース」をクリックします。
- 表示されるダイアログの「リレーションシップ」タブで、「テーブル/リレーションシップ」セクションの「テーブルを追加」ボタンをクリックします。
- 「データソース」メニューで、「ODBC データソースを追加」を選択し、前のセクションで作成したDSN を選択します。
DSN のユーザー名とパスワードを指定すると、PingOne テーブルをリレーションシップグラフに追加できます。 「表示」->「ブラウズモード」をクリックすることで、リモートMySQL データベースと同様にPingOne のデータ のスクロール、ソート、集計が可能になります。