LDAP
LDAP と InterSystems IRIS®
InterSystems IRIS® は、LDAP (Lightweight Directory Access Protocol) を使用した認証および承認をサポートします。LDAP システムには、InterSystems IRIS が情報を取得するユーザ情報の一元管理リポジトリがあります。例えば Windows の場合、Active Directory を使用するドメイン・コントローラが LDAP サーバになります。
以下がサポートされます。
-
LDAP 認証 — InterSystems IRIS により、ユーザにユーザ名とパスワードの入力を求めるプロンプトが表示されます。インスタンスは LDAP サーバに関連付けられ、LDAP サーバは認証を実行し、ユーザのロールおよびその他の承認情報を取得します。インスタンスが LDAP サーバに接続できない場合に、キャッシュ認証情報を使用してユーザを認証するようインスタンスを構成することもできます。
-
LDAP 承認 — インターシステムズは LDAP グループをサポートしており、承認の一部としてロールを指定できます。ローカルの InterSystems IRIS ターミナルでは、LDAP 承認と OS ベースの認証が併用されます(ターミナルへのアクセスは、Windows では %Service_Console によって、他のすべてのオペレーティング・システムでは %Service_Terminal によって管理されます)。
InterSystems IRIS では、同時に複数の LDAP ドメインに認証と承認を提供することもできます。
LDAP を InterSystems IRIS の代行認証機能と併用することもできます。これにより、カスタム・メカニズムを実装して、インターシステムズのセキュリティに含まれる認証とロール管理アクティビティを置き換えることができます。
InterSystems IRIS では以下に対する LDAP サポートが提供されます。
-
Active Directory
-
OpenLDAP
-
LDAP バージョン 3 プロトコル (これより前の LDAP プロトコルはサポートされていません)
LDAP 認証
LDAP 認証の設定の概要
認証に LDAP サーバを使用するように InterSystems IRIS のサービスまたはアプリケーションを構成する手順は以下のとおりです。
-
LDAP サーバを使用するように InterSystems IRIS を構成します。
-
インスタンスで LDAP および関連機能を有効化します。
-
InterSystems IRIS のインスタンスで使用する LDAP 構成を作成します。ここで、InterSystems IRIS ユーザのプロパティの値を設定するために使用する LDAP ユーザ・プロパティの名前を指定します。
-
オプションで、LDAP 構成をテストします。
-
オプションで、複数の LDAP ドメインをサポートするようにインスタンスを構成します。
-
インスタンスの関連サービスおよびアプリケーションで LDAP を有効化します。この設定では、InterSystems IRIS のインスタンス全体で LDAP を有効にして、関連するサービスやアプリケーションに対して LDAP を有効にします。
-
インスタンスでの LDAP の有効化
LDAP を使用するように InterSystems IRIS のインスタンスを構成するには、まず、使用する機能を有効にします。
-
管理ポータルのホーム・ページで、[認証/Web セッション・オプション] ページ ([システム管理] > [セキュリティ] > [システム・セキュリティ] > [認証/Web セッション・オプション]) に移動します。
-
[認証/Web セッション・オプション] ページで、以下の手順を実行します。
-
LDAP 認証を有効にするには、[LDAP認証を許可] を選択します。
-
LDAP キャッシュ資格情報を使用した認証を有効にするには、[LDAPキャッシュ credentials 認証を許可] を選択します。このトピックの詳細は、"LDAP キャッシュ認証情報" を参照してください。
-
-
[保存] をクリックすると、変更内容が適用されます。
LDAP キャッシュ認証情報
LDAP キャッシュ認証情報を使用するようにインスタンスを構成すると、そのインスタンスでは、各ユーザの認証に前回使用した認証情報のコピーが保存 (キャッシュ) されます。インスタンスでキャッシュ認証情報がサポートされている場合に、そのインスタンスが LDAP サーバに接続できないときは、キャッシュされている LDAP 認証情報を使用してユーザを認証します。この状況は、LDAP サーバ自体または LDAP サーバへの接続に問題がある場合に生じる可能性があります。
キャッシュ認証情報を保護するために、InterSystems IRIS では、すべての LDAP パスワードを単方向ハッシュとしてセキュリティ・データベースに格納します。インスタンスが LDAP サーバを使用してユーザを検証できない場合、以下のことを確認しようとします。
-
入力されたパスワードのハッシュが、格納されているパスワードのハッシュと一致している
-
前回の LDAP ログインからのキャッシュされた有効期限に達していない
両方の条件を満たす場合、インスタンスはユーザを認証して、ログインが続行します。それ以外の場合、ログインは失敗します。
LDAP 構成の作成または変更
LDAP 認証を実行するために、InterSystems IRIS は LDAP 構成を使用します。LDAP 構成では、特定のセキュリティ・ドメインに関する LDAP サーバへの接続を指定し、以下の処理を行うために必要な情報を定義します。
-
LDAP サーバに接続し、クエリを実行します。
-
認証するユーザについて必要な情報を取得します。
インスタンスに対して Kerberos が有効になっている場合、LDAP 構成のすべてのメニュー項目と他のラベルは LDAP/Kerberos 構成を指します。以下の手順では、この点について状況ごとに個別には注記していません。
LDAP 構成を作成または変更する手順は以下のとおりです。
-
管理ポータルの [セキュリティ LDAP 構成] ページ ([システム管理] > [セキュリティ] > [システム・セキュリティ] > [LDAP 構成]) に移動します。
インストール時に、現在 LDAP サーバを使用しているマシンに InterSystems IRIS をインストールすると、LDAP サーバのドメインおよびその他の構成情報に基づいて LDAP 構成が作成されます。
-
構成を作成または変更します。
-
既存の構成を変更するには、その名前をクリックします。例えば、ローカル LDAP サーバに関連付けられた構成を使用する場合、その構成の属性をチェックし、必要に応じて変更します。
-
構成を作成するには、[新規 LDAP 構成の作成] ボタンをクリックします。[LDAP 構成の編集] ページが表示されます。
Note:構成の作成時には、[LDAP 構成の編集] ページの [LDAP 構成] チェック・ボックスにチェックを付けます (使用可能な場合)。LDAP 構成を定義するフィールドが表示されます。
-
-
このフィールドを変更するか、値を入力して、構成を定義します (以下に表示)。
-
複数の構成を作成する場合は、[システムワイドセキュリティパラメータ] ページ ([セキュリティ管理] > [セキュリティ] > [システム・セキュリティ] > [システムワイドセキュリティパラメータ]) で [デフォルトセキュリティドメイン] ドロップダウンを使用して、既定のものを指定する必要があります。
LDAP 構成フィールド
LDAP 構成には以下のフィールドがあります。
-
[ログインドメイン名] — 必須。LDAP 構成の名前です。これは通常、example.com や example.org のような形式です。
ピリオドを含まない値を入力した場合、.com が自動的に追加されるため、example は example.com になります。値を大文字で入力した場合は自動的に小文字になるため、EXAMPLE.COM は example.com になります。両方の変換がシステムによって適宜実行されます。
[名前] フィールドの変換後の値を使用して、[検索に使用するLDAPベースDN] フィールドに値が入力されます。
-
[説明] — 構成を説明する任意のテキスト。
-
[コピー元] — 構成の作成時にのみ使用できます。この LDAP 構成の初期値を指定するために InterSystems IRIS が既存の LDAP 構成から属性をコピーするかどうか。
-
[LDAP 有効] — InterSystems IRIS が LDAP サーバに接続するためにこの構成を使用できるかどうか。
-
[LDAP サーバは Windows Active Directory サーバ] — Windows のみ。LDAP サーバが Windows Active Directory サーバであるかどうか。
-
[LDAP ホスト名] — 必須。LDAP サーバが動作しているホストの名前。ホスト名の複雑さは、未修飾のホスト名から、ポート番号を持つ完全修飾ホスト名まで多岐にわたります。ホスト名の必要な形式は、その構成により異なります。
LDAP サーバが特定のポートを使用するように構成されている場合、ホスト名に “:portname” を追加してそれを指定できます。一般的には、ポートは指定せず、LDAP 機能で既定のポートを使用するようにします。ネットワークに複数の複製されたドメイン・サーバがある場合は、ホスト名としてドメインの example.com を以下のように指定できます。
ldapserver.example.com ldapserver1.example.com ldapserver2.example.com ldapserver3.example.com
LDAP は一致するすべての LDAP サーバのアドレスについて DNS クエリを実行し、接続する LDAP サーバを自動的に選択します。
Important:[LDAPホスト名] の値にポート番号を含めると、接続を確立する際の TLS の動作を制御できます。
-
指定した値に 636 以外のポート番号が含まれていて (ldapserver.example.com:389 など)、[LDAPセッションに TLS/SSL 暗号化を使用する] チェック・ボックスにチェックが付いている場合、そのインスタンスは LDAP サーバとのプレーン・テキスト接続を確立し、StartTLS コマンドを発行して接続を暗号化しようとします。
-
LDAP ホスト名に指定した値にポート番号 636 が含まれている場合 (ldapserver.example.com:636 など)、そのインスタンスは、[LDAPセッションに TLS/SSL 暗号化を使用する] チェック・ボックスにチェックが付いているかどうかに関係なく、LDAP サーバとの TLS 接続を確立しようとします。ただし、UNIX® クライアント・インスタンスからポート 636 に直接接続することはサポートされていません。
背景情報については、%SYS.LDAP.Init()Opens in a new tab メソッドのクラス・リファレンスを参照してください。
-
-
LDAP 検索情報 — 状況により異なります。
-
[検索に使用するLDAPユーザ名] — Windows Active Directory サーバの場合のみ。 使用可能な場合は必須。初期接続を確立し、LDAP 検索の実行に使用するために LDAP サーバに提供されるユーザ名です。このユーザは検索ユーザとも呼ばれます。
検索ユーザには、LDAP データベース全体の読み取り許可が必要です。検索ユーザの LDAP データベースへのアクセスが遮られないようにすることが重要です。例えば、ユーザの LDAP アカウントは、以下のように設定する必要があります。
-
ユーザがアカウントのパスワードを変更できない
-
パスワードの有効期限を無期限にする
-
アカウントの有効期限を無期限にする
LDAP データベースでの検索の詳細は、"LDAP データベース内でターゲット・ユーザが検索される仕組み" を参照してください。
-
-
[LDAP 検索ユーザー DN] — Windows 以外のすべてのプラットフォームおよび Windows Active Directory 以外のサーバの場合。使用可能な場合は必須。初期接続を確立し、LDAP 検索の実行に使用するために LDAP サーバに提供されるユーザの識別名 (DN) です。このユーザは検索ユーザとも呼ばれます。
検索ユーザには、LDAP データベース全体の読み取り許可が必要です。検索ユーザの LDAP データベースへのアクセスは遮られないようにすることが重要です。例えば、ユーザの LDAP アカウントは、以下のように設定する必要があります。
-
ユーザがアカウントのパスワードを変更できない
-
パスワードの有効期限を無期限にする
-
アカウントの有効期限を無期限にする
例えば、検索ユーザが “ldapsearchuser” である場合、LDAP DN (識別名) は以下のようになります。
uid=ldapsearchuser,ou=People,dc=example,dc=com
LDAP データベースでの検索の詳細は、"LDAP データベース内でターゲット・ユーザが検索される仕組み" を参照してください。
-
-
-
[LDAPユーザ名パスワード] — 構成の作成時または変更時にのみ使用可能。最初の接続に使用するアカウントに関連付けられたパスワード。
-
[検索に使用するLDAPベースDN] — 必須。検索を開始する起点となるディレクトリ・ツリー内のポイント。通常は、DC=example,DC=com のように、ドメイン・コンポーネントで構成されます。
-
[LDAP Base DN to use for Nested Groups searches] — 必須。ネストしたグループの検索を開始する起点となるディレクトリ・ツリー内のポイント。一般的に組織単位とドメインの要素で構成され、OU=IRIS,OU=Groups,DC=test,DC=com のようになります。既定では、[検索に使用するLDAPベースDN] と同じ値に設定されています。
-
[LDAPユニーク検索属性] — 必須。各レコードの一意の識別要素。これにより、適切な検索が行われます。LDAP データベースでの検索の詳細は、"LDAP データベース内でターゲット・ユーザが検索される仕組み" を参照してください。
-
[LDAPセッションに TLS/SSL 暗号化を使用する] — InterSystems IRIS インスタンスと LDAP サーバが TLS を使用して通信を暗号化するかどうか (既定では無効)。
Important:LDAP に対して TLS 暗号化を有効にすることをお勧めします。
Active Directory サーバへの接続の場合は、以下の点に注意してください。
-
この設定を Windows 上のインスタンスから Active Directory サーバへの LDAP 接続で有効にした場合、接続はポート 636 (TLS で暗号化されたポート) を使用します。
-
この設定を UNIX® 上のインスタンスから Active Directory サーバへの LDAP 接続で有効にした場合、InterSystems IRIS は最初にポート 389 (暗号化されていない LDAP ポート) で接続を確立し、その後、StartTLS 呼び出しによって暗号化が有効になります。
Active Directory サーバで LDAP server signing requirements パラメータを Require signature に設定することもお勧めします。これにより、チャンネルが StartTLS で暗号化されている場合を除き、サーバのポート 389 で LDAP bind コマンドが実行されるのを防ぐことができます。詳細は、Microsoft Web サイトのドメイン コントローラーの LDAP サーバー署名要件Opens in a new tabの記事を参照してください。
-
-
[File with Certificate Authority certificate(s) to authenticate the LDAP server] — UNIX® のみ。サーバの認証に使用される TLS 証明書 (PEM 形式) を含むファイルの場所。
Windows で、サーバ証明書の認証に使用される TLS 証明書 (PEM 形式) を含むファイルの場所を指定して、安全な LDAP 接続を確立するには、Microsoft Certificate ServicesOpens in a new tab を使用します。証明書は、Certificates (Local Computer)\Trusted Root Certification Authorities 証明書ストアにインストールする必要があります。
-
[ISC_LDAP_CONFIGURATION 環境変数を許可] — OS ベースの LDAP および複数のドメインを使用する場合、ISC_LDAP_CONFIGURATION 環境変数を使用するかどうかを指定します。この環境変数が定義されている場合、OS ベースの LDAP は、これを使用して、認証に使用する LDAP 構成を特定します。
-
[ロール、ルーチン、ネームスペースで LDAP グループを使用する] — ユーザのロール、ルーチン、およびネームスペースが、ユーザのグループ・メンバシップから取得されるかどうか (既定では True です)。グループ・メンバシップから取得されない場合、ユーザの LDAP レコードの属性フィールドから取得されます。このフィールドを選択すると、他のフィールドが有効または無効になります (詳細は、後続の各フィールドを参照してください)。
Note:承認には LDAP 属性 (登録されている LDAP プロパティを含む) ではなく、LDAP グループの使用をお勧めします。既存のコードがある、または登録されているプロパティを使用する必要がある場合、詳細は "LDAP 属性を使用した承認の構成" を参照してください。
-
[ネストしたグループのロール/ルーチン/ネームスペースを検索] — [LDAP サーバが Windows アクティブ・ディレクトリ・サーバ] および [ロール/ルーチン/ネームスペースに LDAP グループを使用] が選択されている場合にのみ有効です。ユーザの入れ子になったグループすべてを検索で返すかどうか。入れ子になったグループの詳細は、"入れ子になったグループ" を参照してください。
-
[グループ名の組織IDプレフィックス] — [ロール/ルーチン/ネームスペースに LDAP グループを使用] が選択されている場合にのみ有効です。 詳細は、"LDAP グループ名の構成" を参照してください。
-
[ユニバーサルグループ承認を許可する] — [ロール/ルーチン/ネームスペースに LDAP グループを使用] が選択されている場合にのみ有効です。 すべての InterSystems IRIS インスタンスに関連する、LDAP サーバ上の属性を検索で使用するかどうか。詳細は、"ユニバーサル LDAP 承認グループの作成" を参照してください。
-
[承認グループID] — [ロール/ルーチン/ネームスペースに LDAP グループを使用] が選択されている場合にのみ有効です。 このインスタンスが属する複数インスタンス・グループ。詳細は、"複数のインスタンスを対象とする LDAP 承認グループ (複数インスタンス・グループ) の作成" を参照してください。
-
[承認インスタンスID] — [ロール/ルーチン/ネームスペースに LDAP グループを使用] が選択されている場合にのみ有効です。 このインスタンスが属する単一インスタンス・グループ。詳細は、"1 つのインスタンスを対象とする LDAP 承認グループ (単一インスタンス・グループ) の作成" を参照してください。
-
[デフォルトネームスペースを取得するためのユーザ属性] (LDAP グループが選択されている場合は無効) — 値がユーザの Startup namespace プロパティのソースである属性。InterSystems IRIS ユーザのこのプロパティについては、"ユーザ・アカウントのプロパティ" で説明されています。この LDAP プロパティの詳細は、"LDAP 属性を使用した承認の構成" を参照してください。
-
[デフォルトルーチンを取得するためのユーザ属性] (LDAP グループが選択されている場合は無効) — 値がユーザの Tag^Routine プロパティのソースである属性。InterSystems IRIS ユーザのこのプロパティについては、"ユーザ・アカウントのプロパティ" で説明されています。この LDAP プロパティの詳細は、"LDAP 属性を使用した承認の構成" を参照してください。
-
[ロール取得のためのユーザ属性] (LDAP グループが選択されている場合は無効) — その値によってユーザの割り当て先のロールを決定する属性。この属性は LDAP 複数値属性として指定し、作成する必要があります。InterSystems IRIS ユーザのロールの詳細は、ユーザの [ユーザ編集] ページの [ロール] タブを参照してください。この LDAP プロパティについては、"LDAP 属性を使用した承認の構成" に説明があります。
-
[コメント属性を取得するためのユーザ属性] — 値がユーザの Comment プロパティのソースである属性。このプロパティの詳細は、"ユーザ・アカウントのプロパティ" を参照してください。ユーザがログインすると、Security.Users.Get() メソッドを使用して、このプロパティの値を取得できます。
-
[フルネームを取得するためのユーザ属性] — 値がユーザの Full name プロパティのソースである属性。このプロパティの詳細は、"ユーザ・アカウントのプロパティ" を参照してください。ユーザがログインすると、Security.Users.Get() メソッドを使用して、このプロパティの値を取得できます。
-
[メールアドレスを取得するユーザー属性] — 値がユーザの Email address プロパティのソースである属性。このプロパティの詳細は、"ユーザ・アカウントのプロパティ" を参照してください。ユーザがログインすると、Security.Users.Get() メソッドを使用して、このプロパティの値を取得できます。
-
[携帯電話番号を取得するユーザー属性] — 値がユーザの Mobile Phone Number プロパティのソースである属性。このプロパティの詳細は、"ユーザ・アカウントのプロパティ" を参照してください。ユーザがログインすると、Security.Users.Get() メソッドを使用して、このプロパティの値を取得できます。
-
[携帯電話プロバイダを取得するためのユーザ属性] — 値がユーザの Mobile Phone Service Provider プロパティのソースである属性。このプロパティの詳細は、"ユーザ・アカウントのプロパティ" を参照してください。ユーザがログインすると、Security.Users.Get() メソッドを使用して、このプロパティの値を取得できます。
-
[各ユーザに取得するLDAP属性] — 値がアプリケーション固有の変数のソースである属性。これにより、アプリケーション・コードで Security.UsersOpens in a new tab クラスの Get メソッドを使用してこの情報が返されます。
LDAP 構成の各フィールドの値は、Security.LDAPConfigsOpens in a new tab クラスのインスタンスに保存されます。
LDAP/Kerberos 構成フィールドに関する注意事項
インスタンスに対して Kerberos 認証が有効になっている場合、LDAP 構成を作成するページは、[LDAP/Kerberos 構成を編集] ページです。このページには、[LDAP 構成を編集] ページと同じフィールドがあります。"LDAP 構成フィールド" を参照してください。
LDAP 構成のテスト
LDAP 構成を作成したら、それをテストできます。これにより、LDAP サーバに適切に接続できることを確認することや、問題が発生する場合はトラブルシューティングすることができます。構成をテストする手順は以下のとおりです。
-
管理ポータルで、[セキュリティ LDAP 構成] ページ ([システム管理] > [セキュリティ] > [システム・セキュリティ] > [LDAP 構成]) に移動します。
-
[LDAP 認証のテスト] をクリックします。
-
[ユーザ名] フィールドと [パスワード] フィールドに、LDAP サーバで定義されている有効なユーザ名とパスワードを入力します。複数のドメインを使用するようにインスタンスが構成されている場合は、EndUser@example.com のように、完全修飾ユーザ名を入力する必要があります。インスタンスが 1 つのドメインのみを使用している場合は、EndUser のように、単に未修飾のユーザ名 (@ 記号やドメイン名なし) を入力します。
-
[テスト] をクリックします。
[テスト結果] フィールドに、LDAP サーバからの出力が表示されます。
この機能は、インスタンスが LDAP サーバに接続して、入力されたユーザの認証チェックを実行できるかどうかのみをテストします。承認チェックまたは許可チェックを実行して、ユーザがシステムに正常にログインできるかどうかは確認しません。
入力されたユーザのテストは成功したのにユーザがログインできない場合は、ログイン・エラーがないかどうか監査レコードを確認してください。正常にログインするために、ユーザに追加の許可を付与しなければならないことがあります。
複数の LDAP ドメインの使用
InterSystems IRIS では、複数のドメインでの LDAP 認証がサポートされています。これにより、EndUser@example.com や EndUser@otherexample.com など、複数のドメインに属する同じユーザ名を含むユーザ・アカウントをインスタンスで保持できます。この機能は、さまざまなシナリオで役立ちます。以下に例を示します。
-
各ユーザの一意の識別子を保持しながら、複数のドメインの個々のユーザ・セットを 1 つの大きなグループにマージできます。
-
それぞれ特権が異なるアカウントを同じ個人が複数のドメインに持つことができます。
複数のドメインを使用する手順は以下のとおりです。
-
"LDAP 構成の作成または変更" で説明した手順に従って、追加の LDAP 構成を作成します。
-
複数のドメインを使用するようにインスタンスを構成し、既定のドメインを指定します。
-
インスタンスで複数のドメインの使用を有効にします。管理ポータルの [システムワイドセキュリティパラメータ] ページ ([システム管理] > [セキュリティ] > [システム・セキュリティ] > [システムワイドセキュリティパラメータ]) で、[複数セキュリティドメインを許可する] チェック・ボックスにチェックを付けます。
-
既定のドメインを指定します。管理ポータルの [システムワイドセキュリティパラメータ] ページ ([システム管理] > [セキュリティ] > [システム・セキュリティ] > [システムワイドセキュリティパラメータ]) で、[デフォルトセキュリティドメイン] ドロップダウンを使用して既定のドメインを選択します。
-
[保存] をクリックします。
このページの詳細は、"システム規模のセキュリティ・パラメータ" を参照してください。
-
複数のドメインを使用する場合も、各ユーザの名前は一意である必要があります。ユーザのタイプが異なっていても、一意でなければなりません。したがって、パスワード・ユーザである EndUser@example.com などのユーザを作成した場合、ユーザ EndUser@example.com として LDAP を介して InterSystems IRIS にログインすることはできません。InterSystems IRIS では、EndUser@example.com のアカウントを LDAP ユーザとして作成できないためです。