ColdFusion で JDBC 経由でリアルタイム Okta のデータをインポートしてアプリケーションを構築
Adobe ColdFusion は、Web およびモバイルアプリケーションの開発プラットフォームです。独自のスクリプト言語である ColdFusion Markup Language(CFML)を使用して、データ駆動型のWeb サイトを構築したり、REST などのリモートサービスを生成したりできます。
ColdFusion と CData JDBC Driver for Oktaを組み合わせると、ColdFusion の Web およびモバイルアプリケーションを Okta の運用データに接続できます。 これにより、アプリケーションをより堅牢で完成度の高いものにできます。この記事では、 JDBC Driver を使用して、ColdFusion マークアップファイル内で Okta データを含むテーブルを作成する方法を説明します。
CData JDBC Driver は、最適化されたデータ処理機能を組み込んでおり、Okta のデータとのリアルタイム連携において圧倒的なパフォーマンスを提供します。 複雑な SQL クエリを Okta に発行すると、ドライバーはフィルタや集計などのサポートされている SQL 操作を Okta に直接プッシュし、 サポートされていない操作(多くの場合 SQL 関数や JOIN 操作)は組み込みの SQL エンジンがクライアント側で処理します。 組み込みの動的メタデータクエリ機能により、ネイティブのデータ型を使用して Okta のデータを操作・分析できます。
Okta への接続を設定
ColdFusion と Okta 間の接続を確立するには、JDBC 接続文字列が必要です。
Okta に接続するには、Domain 接続文字列プロパティをお使いのOkta ドメインに設定します。 Okta はOAuth およびOAuthJWT 認証をサポートしています。
OAuth認証
OAuth で認証するには、AuthScheme をOAuth に設定する必要があります。また、カスタムOAuth アプリケーションを作成する必要があります。
カスタムOAuth アプリケーションの作成
Okta アカウントから:
- 管理者アカウントでOkta のデベロッパーエディションにサインインします。
- Admin Consoleで、Applications > Applications に移動します。
- Create App Integration をクリックします。
- Sign-in method は、OIDC - OpenID Connect を選択します。
- Application type は、Web Application を選択します。
- カスタムアプリケーションの名前を入力します。
- Grant TypeをAuthorization Code に設定します。トークンを自動的に更新したい場合は、Refresh Token もチェックしてください。
- コールバックURL を設定します。
- デスクトップアプリケーションやヘッドレスマシンでは、http://localhost:33333 または任意の別のポート番号を使用します。ここで設定したURI が、CallbackURL プロパティになります。
- Web アプリケーションの場合、コールバックURL を信頼できるリダイレクトURL に設定します。このURL は、アプリケーションへのアクセスが許可されたことを示すトークンを伴ってユーザーが戻ってくるWeb 上の場所です。
- Assignments セクションで、Limit access to selected groups を選択してグループを追加するか、グループの割り当ては一旦スキップします。
- OAuth アプリケーションを保存します。
- アプリケーションのGeneral タブに、アプリケーションのClient Id とClient Secret が表示されます。後で使用できるように、これらを記録してください。Client Id はOAuthClientId の設定に使用し、Client Secret はOAuthClientSecret の設定に使用します。
- Assignments タブを確認し、アプリケーションにアクセスする必要のあるすべてのユーザーがアプリケーションに割り当てられていることを確かめます。
- Okta API Scopes タブで、OAuth アプリケーションに付与するスコープを選択します。これらのスコープは、アプリが読み取り可能なデータを決定します。そのため、特定のビューに対するスコープを付与しないと、そのビューに対するクエリを実行する権限がドライバーに付与されません。各ビューに必要なスコープを確認するには、ヘルプドキュメントのデータモデル > ビュー のビュー固有のページを参照してください。
OAuth 認証の詳細や、OAuthJWT 認証については、ヘルプドキュメントを参照してください。
組み込みの接続文字列デザイナー
JDBC URL の構築をサポートするために、Okta JDBC Driver に組み込まれている接続文字列デザイナーを使用できます。JAR ファイルをダブルクリックするか、コマンドラインから JAR ファイルを実行してください。
java -jar cdata.jdbc.okta.jar
データソースの追加とテーブルの作成
接続を設定したら、次の手順に従って CData JDBC Driver を ColdFusion の lib ディレクトリに追加し、新しいデータソースを追加し、接続をテストし、 ColdFusion マークアップファイルを作成して、最終的に Okta のデータとリアルタイムに接続し、ColdFusion Markup Language(CFML)で記述されたテーブルに表示します。
-
Okta 用の JDBC Driver と lic ファイルを「C:\Program Files\CData[product_name]\lib」から
「C:\ColdFusion2021\cfusion\wwwroot\WEB-INF\lib」にコピーします。
cdata.jdbc.okta.jar cdata.jdbc.okta.lic注意:.lic ファイルを jar と一緒にコピーしないと、有効なライセンスがインストールされていないことを示すライセンスエラーが表示されます。 これはトライアル版と製品版の両方に当てはまります。
-
ColdFusion 管理画面から、Data & Services を選択します。
-
ここで「Add New Data Source」をクリックします。データソース名は、ColdFusion の変数命名規則に従っていれば任意の名前を指定できます。
JDBC Driver の場合は「other」を選択し、「Add」ボタンをクリックします。
-
次に、ドライバーのプロパティを入力します。
- JDBC URL は次の形式で指定します: jdbc:okta:|connectionString|
- 一般的な接続文字列は次のようになります:
jdbc:okta:Domain=dev-44876464.okta.com;
- Driver Class:cdata.jdbc.okta.OktaDriver
- Driver Name は任意で、ColdFusion 管理コンソールでデータソースを識別するためだけに使用されます。
-
作成した CDataOktaJDBC データソースの左側にあるチェックマークをクリックして、接続をテストします。
データソースが「OK」ステータスを報告すれば、使用可能な状態です。
-
次に、新しい ColdFusion マークアップファイル(.cfm)を作成し、ColdFusion の wwwroot ディレクトリ(「C:\ColdFusion2021\cfusion\wwwroot」)に配置します。
以下のコードでデータソースにクエリを実行します:
<cfquery name="OktaQuery" dataSource="CDataOktaJDBC"> SELECT * FROM Users </cfquery>CFTable を使用すると、HTML でテーブルを素早く出力できます:<cftable query = "OktaQuery" border = "1" colHeaders colSpacing = "2" headerLines = "2" HTMLTable maxRows = "500" startRow = "1"> <cfcol header="<b>Id</b>" align="Left" width=2 text="Id"/> <cfcol header="<b>ProfileFirstName</b>" align="Left" width=15 text="ProfileFirstName"/> ... </cftable>HTML 部分を含む完全なコードは以下のとおりです:<html> <head><title>CData Software | Okta Users Table Demo </title></head> <body> <cfoutput>#ucase("Okta Users Table Demo")#</cfoutput> <cfquery name="OktaQuery" dataSource="CDataOktaJDBC"> SELECT * FROM Users </cfquery> <cftable query = "OktaQuery" border = "1" colHeaders colSpacing = "2" headerLines = "2" HTMLTable maxRows = "500" startRow = "1"> <cfcol header="<b>Id</b>" align="Left" width=2 text="Id"/> <cfcol header="<b>ProfileFirstName</b>" align="Left" width=15 text="ProfileFirstName"/> ... </cftable> </body> </html> -
最後に、デフォルトポート 8500 でブラウザからコードをローカルで実行します。Okta データが入力されたテーブルが表示されます。
なお、CData JDBC Driver は cfqueryparam 要素を使用したパラメータ化クエリもサポートしています。 例:
SELECT * FROM Account WHERE name =
おわりに
CData JDBC Driver for Okta の30日間の無償トライアルをダウンロードして、 Adobe ColdFusion で Okta に接続したアプリケーションの構築を始めましょう。 ご不明な点があれば、サポートチームまでお問い合わせください。