Okta シングルサインオン(SSO)により、ユーザーは1つの認証情報で複数のアプリケーションにアクセスできます。ユーザーのログイン管理を一元化することで、認証プロセスを簡素化し、セキュリティを強化します。このガイドでは、アプリケーション用にOkta SSO をセットアップして構成する手順について説明します。

1. Okta にアプリケーションを追加する

Okta で"Applications" に移動し、新しいアプリケーションを作成します:"Create App Integration" → "OIDC - OpenID Connect" → "Web Application" を選択し、アプリケーションに名前を付けます。例:"DV Auth Service":




2. グループを作成しユーザーに割り当てる

新しい"DV Auth Service" アプリケーションをグループに割り当てる必要があります。そのためには、まず"Directory" → "Groups" → "Add Group " に移動して、Okta でグループを作成する必要があります。これらのグループはCData Virtuality Server のロールにマッピングされるため、サーバー上のロールの数だけグループを作成できます。この例では、次の2つの主要グループを作成しました:"CDV Administrators" と"CDV-OData"。これらは、CData Virtuality OAuth 2 サーバーによってCData Virtuality Server のadmin-roleodata-role にそれぞれマッピングされます。

必要に応じて、"People"→"Add person" で新しいユーザーを作成します。既存のユーザーと新規ユーザーを、対応する“CDV-*” グループに割り当てます(ユーザーをクリックし、“Groups” タブを選択します):

3. アプリケーションにグループを割り当てる

前の手順で作成したグループに"DV Auth Service" アプリケーションを割り当て、“Application” → “DV Auth Service” → “Assignments” → “Assign” → “Assign to Groups“ に戻ります:

4. アプリケーションのサインオンとグループフィルタを設定する

アプリケーションの“Sign On” タブを確認します(“Application” → “DV Auth Service” → “Sign On”)。“OpenID Connect ID Token” セクションのGroups フィルタは空のままでも構いません:

5. カスタム認証サーバーを追加して設定する

"Security" → "API" → "Authorization Servers" セクションで、カスタム認証サーバーを作成します。カスタムクレームはカスタム認可 サーバーでのみ機能するため、カスタムサーバーを作成する必要があります。安全のため、古いデフォルトの認可サーバーを非アクティブ化することをお勧めします。カスタム認可サーバーが作成されると、一意の名前が割り当てられます。例えば、ausli43p7eXRgGTZV697 などです:

カスタム認可サーバーの"Access Policies" タブで、"Custom Policy" と"Custom Policy Rule" を追加します(これらはサンプル名であり、任意の名前を使用できます)。"Custom Policy Rule" では、"Access token lifetime" パラメータ(デフォルトは1時間)を設定することもできます:


カスタムAuth サーバーの "Claims "タブで、"groups" カスタムクレームを追加します(このクレームには、ユーザーが所属するすべてのOkta "CDV-" グループが含まれます)。このクレームはID トークンに含める必要があります:


6. CData Virtuality OAuth 2 サーバーにID プロバイダーを追加する

CData Virtuality OAuth 2 サーバーに切り替えて、Okta 統合の設定を開始します。使用するレルムを選択します。さらに“Identity providers” → “Add provider” → “OpenID Connect v1.0“ を選択します:

ステップ5でカスタムのOkta 認証サーバーを作成したので、CData Virtuality OAuth 2 サーバーのDiscovery Endpoint として以下のURL を使用する必要があります:

ステップ5で追加した認証サーバーからのメタデータURI + /.well-known/openid-configuration。

例:https://3070192.okta.com/oauth2/ausli43p7eXRgGTZV697/.well-known/openid-configuration このURL は、一意のOkta インスタンスID とカスタムOkta 認可サーバーの一意の名前に依存するため注意してください)。


"Discovery Endpoint" を指定すると、CData Virtuality OAuth 2 サーバーはメタデータセクションのすべての必要なURLフィールドを自動的に入力します。

次に、Okta の"DV Auth Service" アプリケーションから取得できるクライアントID とクライアントシークレットをそれぞれのフィールドに入力します。“Scopes” に“openid profile email” を追加します。

新しいOkta ID プロバイダーを保存します。

新しく作成したID プロバイダーを編集し、“Use PKCE” オプションを有効にして、S256 PKCE メソッドを選択します。

7. マッパーを追加してOkta ユーザーグループを CData Virtuality OAuth 2 サーバーロールにインポート可能にする

CData Virtuality OAuth 2 サーバーに必要なCData Virtuality Server のロールがすべて含まれていることを確認します(例:admin-role およびodata-role)。

“Identity Providers” → “Okta” → “Mappers” → “Add Mapper” に移動します。この例では、Okta CDV-Administratorsグループをadmin-role に、CDV-OData グループをodata-role にマッピングします:


8. Okta アプリケーションで"Sign-in redirect URIs" を設定する

Okta に戻り、ステップ6 でCData Virtuality OAuth 2 server for Okta Identity provider によって生成された"Redirect URI" の値を使用して"Sign-in redirect URIs" を設定します:


フェデレーションブローカーモードを無効にする必要があります。

9. Okta 認証を使用してログインする

SSO 経由でCData Virtuality Server にログインしようとすると、"Okta" ボタンが追加されています。クリックすると、Okta サインインページにリダイレクトされます:

User Visibility

Okta ユーザーは、初回ログイン後にCData Virtuality Server に表示されるようになります。また、CData Virtuality OAuth 2 Server のユーザーリストにも表示されます。どのユーザーも一度​​もログインしていない場合は表示されず、SYSADMIN.refreshSSOUserCache を実行してもロードされません。

Obtaining Access and Refresh Tokens

Okta ユーザーのアクセストークンとリフレッシュトークンを取得するには、CData Virtuality OAuth 2 Server でクライアントに対して以下のパラメータを設定します:

  1. レルムを選択します;
  2. CData Virtuality OAuth 2 Server でクライアント に移動します;
  3. 以下のパラメータを設定します:

Using Okta Access and Refresh Tokens in JDBC and ODBC Clients

CData Virtuality Studio およびJDBC / ODBC クライアントでOkta のユーザーアクセスとリフレッシュトークンを使用して接続を有効にするには、以下の手順に従います:

  1. Okta ユーザーをCData Virtuality OAuth 2 Server にロードします。
    ユーザーのロードに関するガイダンスについては、上のUser Visibility セクションを参照してください。

  2. Okta ユーザーのアクセストークンおよびリフレッシュトークンを取得します:

    1. 認証コードを取得します:
      1. 認証コードを取得するURL:<CData Virtuality OAuth 2 Server URL>/realms/<your realm name>/protocol/openid-connect/auth?response_type=code&client_id=<your client id>&redirect_uri=http://localhost/
      2. Okta を選択し、標準のOkta 認証を使用してログインします;
      3. リダイレクトされたURL からコードをコピーします:
    2. アクセストークンとリフレッシュトークンを取得します:
      1. トークンを取得するURL:<CData Virtuality OAuth 2 Server URL>/realms/<your realm name>/protocol/openid-connect/token
      2. リクエストボディのパラメータ:
        • grant_type = authorization_code
        • client_id = <your client id>
        • client_secret = <your client secret>
        • redirect_uri = http://localhost/
        • code = from Step a
    3. 返されたアクセストークンとリフレッシュトークンは、CData Virtuality Studio およびJDBC / ODBC クライアント経由で接続する際に使用します。