WebLogic のコネクションプールからOktaに接続
CData JDBC Driver for Okta を使えば、標準的な手順に沿ってOkta のデータ をJava Web アプリケーションに統合できます。この記事では、CData JDBC Driver for Okta をWebLogic Server にデプロイする方法を説明します。
WebLogic Server へのJDBC ドライバーのデプロイ
ドライバーをデプロイするには、ドライバーJAR をクラスパスに追加します。.lic ファイルは、JAR と同じフォルダに配置する必要があります。 これらのファイルは、インストールディレクトリのlib サブフォルダに格納されています。
すべてのドメインにドライバーを追加する場合は、WL_HOME\common\bin\commEnv.cmd/sh にあるWEBLOGIC_CLASSPATH 環境変数の先頭にJAR のパスを追加します。このスクリプトは WL_HOME\common\bin\ にあります。以下に例を示します。
set WEBLOGIC_CLASSPATH=your-installation-directory\lib\cdata.jdbc.okta.jar;%WEBLOGIC_CLASSPATH%
WebLogic 12.2.1 では、特定のドメインにドライバーを追加する場合、ドライバーJAR と.lic ファイルをDOMAIN_HOME\lib(例:ORACLE_HOME\user_projects\domains\MY_DOMAIN\lib)に配置するだけで済みます。これらのファイルは、起動時にサーバーのクラスパスに追加されます。
以前のバージョンでは、手動でドライバーをクラスパスに追加する必要があります。setDomainEnv.cmd/sh のPRE_CLASSPATH 環境変数の先頭に、以下の内容を追加します。このスクリプトは、対象ドメインのフォルダのbin サブフォルダにあります。
set PRE_CLASSPATH=your-installation-directory\lib\cdata.jdbc.okta.jar;%PRE_CLASSPATH%
これらの変更を行った後、サーバーを再起動します。
Okta 用JDBC データソースの作成
ドライバーをデプロイしたら、WebLogic 管理コンソールにログインして接続を作成します。
- ドメイン構造ツリーで、Services -> Data Sources -> New -> Generic Data Source をクリックします。
-
JDBC Data Source Properties ページで、以下の情報を入力します。
- Name: ユーザーフレンドリーな名前を入力します(例:oktajdbc)。
- JNDI Name: JDBC データソースのバインド先のパスを入力します(例:jdbc/Okta)。
Database Type: Other を選択します。
-
Next をクリックしてデフォルトオプションを使用します。最後のページで、以下の情報を入力してTest Configuration をクリックします。
- Driver Class Name: ドライバークラスを入力します(cdata.jdbc.okta.OktaDriver)。
URL: JDBC URL を入力します。一般的なJDBC URL は次のとおりです。
jdbc:okta:Domain=dev-44876464.okta.com;
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
接続プロパティを入力し、接続文字列をクリップボードにコピーします。
- Database User Name: JDBC URL で指定していない場合は、ユーザー名を入力します。
- Password: JDBC URL で指定していない場合は、パスワードを入力します。
JDBC データソースをデプロイするサーバーを選択すると、Okta のデータ に接続できるようになります。
その他のWebLogic 連携
上記の手順では、シンプルなコネクションプーリングシナリオでのドライバー設定方法を説明しました。その他のユースケースや詳細については、Oracle Fusion Middleware ドキュメントのWebLogic Data Sources 章のJDBC セクションを参照してください。