認証出口モジュールとは、Navigatorがユーザ認証システムと連携する際にインタフェースとなるモジュールです。
Navigatorは、後述のインタフェースを持つライブラリモジュール(認証出口モジュール)のユーザ情報関数を呼び出すことで、必要なユーザ情報を取得します。認証出口モジュールは、すでに使用しているユーザ認証システムにアクセスし、Navigatorが必要とするユーザ情報の取り出しを行います。
認証出口モジュールは、Navigator Serverと同一のプロセス空間で動作しますが、認証出口モジュールがアクセスするユーザ認証システム(および認証システムへのアクセスモジュール)は、Navigator Serverとは、別プロセス空間で動作する必要があります。別プロセス空間であれば、Navigator Serverと同一サーバ上に認証システム(認証システムへのアクセスモジュールを含む)を配置することも可能です。構成のイメージについては、“2.1.2 エンタープライズ認証の概要”を参照してください。
Navigatorが必要とするユーザ情報には、以下があります。使用可能な文字などについては、“7.2.3 エンタープライズ認証でのユーザの登録”を参照してください。
ユーザ名
ユーザID
ユーザ注釈(省略可能)
パスワード
グループ名
グループID
さらに、拡張グループ運用を行う場合には、次のユーザ情報も必要です。
拡張グループ運用については“20.2 拡張グループ運用について”を参照してください。
二次グループ名
二次グループID
認証出口モジュールの作成方法を以下に説明します。
開発言語
開発環境
認証出口モジュール
ヘッダファイル
ユーザ情報関数
認証出口モジュール使用時の作業
開発言語
認証出口モジュールの作成には、C言語を使用してください。
開発環境
以下のコンパイラを使用してください。
Oracle Developer Studio 12
使用するOSに標準添付されているGNU Compiler Collection(GCC)
Microsoft Visual C++ 2015/2017/2019
認証出口モジュール
以下の名前でモジュールを作成してください。
libKVRCK_UINFO.so
64bitの共用オブジェクトとして作成してください。
ユーザ情報関数は、すべてエクスポートする必要があります。また、Navigator Serverは、マルチスレッドで動作しているため、マルチスレッドに対応したモジュールを作成してください。
Navigatorが認証出口モジュールをオープンする際のdlopen()ライブラリ関数のRTLD_GLOBALフラグの有無を、以下の環境変数で指定することができます。RTLD_GLOBALフラグの意味については、OSのマニュアルを参照してください。
環境変数 | 設定内容 |
---|---|
RN_DLOPEN_OPTION | 認証出口モジュールのオープンフラグの状態を指定します。 指定可能な値は、[RTLD_GLOBAL|RTLD_LOCAL]で、dlopen()ライブラリ関数のフラグを次のように決定します。
環境変数未指定時はRTLD_LOCALが指定されたものとみなされます。 |
以下の名前でモジュールを作成してください。
KVRCK_UINFO.DLL
64bitのダイナミックリンクライブラリとして作成してください。
ユーザ情報関数は、すべてエクスポートする必要があります。また、Navigator Serverは、マルチスレッドで動作しているため、マルチスレッドに対応したモジュールを作成してください。
ヘッダファイル
認証出口モジュールを作成する場合には、ソースファイルに以下のヘッダファイルをインクルードしてください。
kvrck_uinfo.h
kvrck_uinfo_winnt.h
このヘッダファイルはNavigator Serverのインストールディレクトリのetcディレクトリに存在します。開発環境にコピーして使用してください。
ユーザ情報関数
以下にNavigatorとお客様のユーザ認証システムとのインタフェースとなる関数(ユーザ情報関数)の一覧を示します。
関数名 | 機能概要 |
---|---|
KVRCK_authenticate | ユーザ認証 |
KVRCK_open_group_list | グループ一覧取得の開始 |
KVRCK_get_group_list | グループ一覧取得 |
KVRCK_close_group_list | グループ一覧取得の終了 |
KVRCK_open_user_list | ユーザ一覧取得の開始 |
KVRCK_get_user_list | ユーザ一覧取得 |
KVRCK_close_user_list | ユーザ一覧取得の終了 |
KVRCK_getpwnam | ユーザ名によるユーザ情報の取得 |
KVRCK_getpwuid | ユーザIDによるユーザ情報の取得 |
KVRCK_getgrnam | グループ名によるグループ情報の取得 |
KVRCK_getgrgid | グループIDによるグループ情報の取得 |
KVRCK_get_grpslist | ユーザ名による拡張グループ情報の取得 ※ |
KVRCK_free_grpslist | 拡張グループ情報領域の解放 ※ |
KVRCK_open_group_ex_list | 拡張グループ一覧取得の開始 ※ |
KVRCK_get_group_ex_list | 拡張グループ一覧取得 ※ |
KVRCK_close_group_ex_list | 拡張グループ一覧取得の終了 ※ |
※拡張グループ運用の場合にだけ必要です。拡張グループ運用については、“20.2 拡張グループ運用について”を参照してください。
認証出口モジュール使用時の作業
作成した認証出口モジュールを使用する場合には、以下の作業が必要になります。
(サーバの切り換え機能を使用した運用を行う場合は、切り換わる可能性のあるすべてのサーバに対してこの作業を行ってください。)
作成した認証出口モジュールは、エンタープライズ認証を使用するすべてのサーバにコピーし、適切なディレクトリに配置します。
また、認証出口モジュールにはNavigator Serverのプロセスの実効ユーザが読み込み、実行のできる権限を与えてください。
プラットフォームによって以下の作業が必要になります。
認証出口モジュールを含め、認証出口モジュールが動的にリンクしているすべてのダイナミックリンクライブラリ(※)の存在するディレクトリの絶対パスを、システムの環境変数PATHに追加してください。
※ 認証出口モジュールが、間接的に動的リンクしているライブラリについてもシステムの環境変数PATHに追加してください。