SQLステートメント、ストアドプロシージャ、およびカスタムコード

On-prem Connector for Generic Databasesは、オンプレミスデータベースシステムで操作を実行するために、SQLステートメント、ストアドプロシージャ、カスタムコードの3つの方法を提供します。これらの方法を構成して、ユーザーとエンタイトルメントのデータをOktaにインポートしたり、Oktaからデータベースへのプロビジョニングの変更を管理したりできます。

SQLステートメント

SQLステートメントとは、データの取得、更新、削除など、特定のタスクを実行するために使用される単一のコマンドです。コネクターはこれらのステートメントを実行して、データベースからユーザーとエンタイトルメントのデータを取得する、またはOktaでの変更を送信できます。

ユーザー固有の情報(ユーザーのIDなど)を必要とする操作では、On-prem Connector for Generic Databasesは、SQLステートメント内で疑問符(?)で表されるプレースホルダーを使用します。このプレースホルダーは、実行時に実際のユーザー属性で動的に置き換えられます。

次に一般的な操作に使用するSQLステートメントの例を示します。

  • [Get Users(ユーザーの取得)]:ユーザーテーブルからすべてのユーザーとそのデータを取得します。

    SELECT USER_ID, USERNAME, FIRSTNAME, LASTNAME, EMAIL FROM USERS

  • [Create User(ユーザーの作成)]:ユーザーテーブルに新規ユーザーを挿入します。

    INSERT INTO USERS (USERNAME, USER_ID, EMAIL, FIRSTNAME, LASTNAME) VALUES (?,?,?,?,?)

  • [Update User(ユーザーの更新)]:IDに基づいてユーザーの情報を更新します。

    UPDATE USERS SET USERNAME = ?, FIRSTNAME = ? WHERE USER_ID=?

ストアドプロシージャ

ストアドプロシージャとは、データベースに名前を付けて保存される、プリコンパイルされたSQLステートメントのセットです。複雑なクエリを繰り返し記述する代わりに、ストアドプロシージャを名前で呼び出すことができます。Okta On-prem SCIMサーバーは、インポートとプロビジョニング操作の両方にこれらの手順を呼び出すことができます。

SQLステートメントと同様に、プレースホルダーとして?を使用し、ユーザー属性またはエンタイトルメント属性をストアドプロシージャに渡すことができます。この手順は、データを行ごとに返すように構成することもでき、複雑なデータ取得タスクに有用です。

[Get Users(ユーザーの取得)]:ストアドプロシージャを呼び出し、アクティブユーザーのリストを取得します。

GET_ACTIVE_USERS

カスタムコード

カスタムコードを使用すると、Oktaが提供するSCIM SDKを使用した独自のJavaコードで、シンプルなSQLステートメントやストアドプロシージャよりも複雑なロジックを必要とするデータベース操作を実行できます。この方法では、すべてのアウトバウンドプロビジョニング(作成、更新、アクティブ化など)がサポートされますが、データをOktaに取り込むことはできません。そのため、SQLステートメントまたはストアドプロシージャを使用して、ユーザーとエンタイトルメントをインポートする必要があります。

カスタムコードを使用するには、最初にJavaコードを開発し、JARファイルに構築する必要があります。次に、このJARファイルをOkta On-prem SCIMサーバーがインストールされているサーバーに配置します。Admin Consoleには、JARファイル名、コードが含まれるクラス名、ファイルの整合性を検証するためのSHA256ハッシュを指定するフィールドがあります。