汎用データベース用のOn-prem Connector

早期アクセスリリース

汎用データベース用のOn-prem Connectorは、オンプレミスデータベースをOkta Identity Governanceプラットフォームに接続するために、すぐに使用できるソリューションを提供します。このコネクターは、Okta Okta On-prem SCIMエージェントを使用して、さまざまなデータベースシステム内のユーザーとエンタイトルメントを管理します。これにより、カスタム統合の必要がなくなるため、セキュリティが強化され、ガバナンスが簡略化されます。

Oktaとの統合によって、中核となるアイデンティティガバナンス機能が使用できるようになります。これにはアクセスリクエスト、アクセス認定、ユーザーのプロビジョニングとプロビジョニング解除、オンプレミスデータベース環境の職務分離(SoD)などの機能があります。

このコネクターは、Oracle、MySQL、PostgreSQL、IBM Db2 LUW、Microsoft SQL Serverのリレーショナルデータベース管理システムのプロビジョニングとエンタイトルメント管理をサポートしています。

システム要件

汎用データベース用のOn-prem Connectorをインストールするには、システムがハードウェアとソフトウェアの要件を満たしていることを確認してください。「On-prem Connector - Generic Databasesのシステム要件」を参照してください。

プロビジョニングおよびエンタイトルメント機能

このコネクターは、次の機能をサポートします。

  • ユーザーの作成:ユーザーがOktaのアプリに割り当てられると、オンプレミスデータベースにユーザーを自動的に作成します。
  • ユーザーの更新:Oktaのユーザープロファイルに加えられた変更をデータベースに同期します。
  • ユーザーのプロビジョニング/プロビジョニング解除:データベース内のユーザーアカウントのアクティブ状態または非アクティブ状態を管理します。
  • エンタイトルメントの管理:Oktaを介してデータベースからユーザーエンタイトルメントの割り当て、または削除を行います。
  • ユーザーとエンタイトルメントのインポート:ユーザーとエンタイトルメントのデータを、データベースからOktaに手動によるスケジュール済みのインポートを行います。

開始する前の確認事項

  • On-prem Connectorでデータベースアカウントを使用するために以下の情報を収集します。
    • データベースアカウントのユーザー名
    • データベースアカウントのパスワード
    • データベースのタイプ
    • IP/ドメイン名
    • ポート番号
    • データベースの名前

JDKおよびJDBCパッケージをダウンロードする

  • 信頼できるソースからJDKバージョン21をダウンロードし、Linuxサーバーにアップロードします。
  • 必要なJDBCドライバー(Oracle OJDBCなど)をダウンロードし、Linuxサーバーにアップロードします。

データベースコネクター機能を有効にする

  1. Admin Console で設定(Settings) > 機能(Features)に移動します。
  2. 早期アクセス(Early access)セクションで、次のオプションを有効にします。
    1. 汎用データベース用のOn-prem Connector
    2. SCIM 2.0対応OPPエージェント
    3. Okta On-Prem SCIMエージェントを有効にする

汎用データベース用のOn-prem Connectorを構成する

必要なコンポーネントをインストールして構成したら、Admin Consoleでアプリを構成できます。

  1. Admin Consoleで、Applications and Resources > アプリケーション(Applications) に移動します。

  2. アプリカタログを参照(Browse App Catalog)をクリックします。
  3. On-prem Connector for Generic Databasesを検索して選択し、統合を追加(Add Integration)をクリックします。
  4. 一般設定を構成し、次へ(Next)をクリックします。
  5. サインオンオプションを構成し、完了(Done)をクリックします。
  6. 一般(General)タブに進み、エンタイトルメント管理(Entitlement management)セクションの編集(Edit)をクリックします。
  7. エンタイトルメント管理(Entitlement Management)ドロップダウンメニューから、有効(Enabled)を選択します。
  8. 保存(Save)をクリックします。機能が有効になるまで少し時間がかかる場合があります。有効になった後、ページを更新してガバナンス(Governance)タブを表示できます。
  9. プロビジョニング(Provisioning)タブに移動します。プロビジョニングを有効化(Enable provisioning)(Enable provisioning.)をクリックします。
  10. インストールしたOkta On-Prem SCIMエージェントを選択し、次へ(Next)をクリックします。
  11. 次へ(Next)をクリックします。
  12. ユーザー名、パスワード、タイプなど、データベース接続の詳細を入力します。
  13. エージェントを接続(Connect agents)をクリックします。
  14. スキーマとインポート設定を定義します。
  15. プロビジョニングアクションを定義します。
  16. プロビジョニングページでアプリ属性をマッピングします。

スキーマとインポート設定を定義する

  1. プロビジョニング(Provisioning)タブに移動します。
  2. 統合(Integration)で、Oktaセクションを選択します。スキーマ検出およびインポート(Schema discovery & Import)の横にある編集(Edit)をクリックします。
  3. ユーザーの取得(Get Users)で、有効(Enabled)を選択します。
  4. SQLステートメント(SQL Statement)またはストアドプロシージャ(Stored Procedure)を選択します。
  5. クエリまたはプロシージャとユーザーIDを入力します。
  6. すべてのエンタイトルメントを取得(Get All Entitlements)で、有効(Enabled)を選択します。
  7. 基本情報(Basic Information)で、以下を構成します。
    • リソースタイプ(Resource Type):Oktaがこのエンタイトルメントタイプを識別するために使用する名前(例:Roles、Groups)。
    • 説明(Description)(任意):このエンタイトルメントタイプを区別するためのラベル。
  8. クエリ構成(Query Configuration)で、SQLステートメント(SQL Statement)またはストアドプロシージャ(Stored Procedure)を選択し、データベースからこのエンタイトルメントタイプのすべての値を取得するSQLステートメントまたはストアドプロシージャを入力します。
  9. フィールドマッピング(Field Mapping)で、以下を入力します。
    • エンタイトルメントID(Entitlement ID):エンタイトルメントの一意の識別子として使用されるデータベースの列。
    • エンタイトルメント表示(Entitlement Display):エンタイトルメントのラベルとして使用されるデータベースの列。
  10. ユーザーあたりのエンタイトルメント値(Entitlement values per user)で、次のいずれかを選択します。
    • ユーザーあたり複数の値(Multiple values per user):ユーザーはこのエンタイトルメントタイプの値を同時に複数保持できます。
    • ユーザーあたり単一の値(Single value per user):各ユーザーは、このエンタイトルメントタイプの値を1つだけを保持します。
  11. 追加のエンタイトルメントタイプを定義するには、他を追加(Add Another)を選択して前述の4つの手順を繰り返します。
  12. 保存(Save)をクリックします。
  13. エンタイトル設定の確認(Confirm entitlement settings)ダイアログで構成を確認し、確認して保存(Confirm and Save)を選択します。
  14. スキーマ検出が正常に完了したら、スキーマ検出およびインポート(Schema discovery & Import)の横にある編集(Edit)を選択してユーザー固有のクエリを構成します。
  15. ユーザー固有のインポート(User Specific Import)セクションで、エンタイトルメントの取得(Get Entitlement)を有効にします。各エンタイトルメントタイプについて、SQLステートメント(SQL Statement)またはストアドプロシージャ(Stored Procedure)を選択し、特定のユーザーのエンタイトルメントを取得するSQLステートメントまたはストアドプロシージャを入力します。
  16. 保存(Save)を選択します。

増分インポート設定を定義する

  1. プロビジョニング(Provisioning)タブに移動します。
  2. 統合(Integration)で、データベース操作(Database Operations)セクションを選択し、スキーマ検出およびインポート(Schema Discovery & Import)の横にある編集(Edit)をクリックします。
  3. ユーザーの取得(Get Users)を有効にします。
  4. SQLステートメント(SQL Statement)またはストアドプロシージャ(Stored Procedure)を選択します。
  5. クエリを入力し、ユーザーIDの列名を指定します。
  6. 任意。アカウントステータス属性(Account Status Attribute)ボックスに、データベース内のユーザーのステータス列名を入力します。次に、アクティブ状態に対応する値を入力します。この手順をスキップした場合、Oktaは増分インポートを介してインポートしたすべてのユーザーをアクティブユーザーとして扱います。
  7. 増分インポート(Incremental Import)を有効にします。
  8. SQLステートメント(SQL Statement)またはストアドプロシージャ(Stored Procedure)を選択します。
  9. 前回のインポートの成功後に変更されたユーザーをフィルターするには、クエリを入力し、疑問符(?)を最後のインポート時刻のプレースホルダーとして使用します。
  10. プレースホルダーのデータベースフィールド(Database Field)ボックスに、データベースのタイムスタンプ列の名前を入力します。
  11. タイムスタンプ列(Timestamp Column)ボックスに、同じタイムスタンプ列名を入力します。
  12. 保存(Save)をクリックします。

データベース要件

  • データベーステーブルは、ソフト削除をサポートする必要があります。増分インポートでは、変更されたレコードを検出するために、この履歴を利用します。レコードを削除済みとしてマークする代わりに完全に削除すると、増分インポートで変更履歴を追跡できなくなります。
  • 各テーブルには、行が書き込まれるか変更されるたびに現在の時刻に自動的に更新される、タイムスタンプ列を含める必要があります。増分インポートは、このタイムスタンプを使用して、最後のインポート以降に変更されたレコードを識別します。
  • ユーザーデータとエンタイトルメントデータが別々のテーブルに格納されている場合があります。その場合、エンタイトルメントの構成を変更するたびに、Userテーブルのタイムスタンプを明示的に更新する必要があります。増分インポートでは、ユーザーテーブルのタイムスタンプに反映されていない限り、エンタイトルメントのみの変更を検出できません。
  • getUserクエリで取得する列は、増分インポートを構成した後の列と一致する必要があります。増分インポートを構成した後で取得された列を変更しないでください。変更すると、データが失われる可能性があります。
  • アクティブステータス属性とその値を指定しない場合、データベースでユーザーのステータスが非アクティブになっていても、Oktaはそのユーザーを非アクティブ化しません。

プロビジョニングアクションを定義する

  1. アプリへ(To App)セクションに移動し、編集(Edit)をクリックします。
  2. 必要なプロビジョニングオプションを有効にします。例:ユーザーの作成、ユーザーの更新、ユーザーの非アクティブ化。
  3. 各操作に必要なSQLステートメントまたはストアドプロシージャを提供します(例:INSERT、UPDATE、DELETE)。
  4. SQLステートメントまたはストアド手順のパラメーターをOktaの適切なユーザー属性にマッピングします。
  5. 保存(Save)をクリックします。