LDAP ベースのセキュリティでのパスワードについて

Enterprise Server は、LDAP サーバーと連携し、MLDAP ESM モジュールを使用してセキュリティを提供します。このモジュールは、外部セキュリティ機能 (ESF) で使用可能な外部セキュリティ マネージャー (ESM) モジュールの 1 つです。LDAP を使用してパスワードに基づく認証を実装するには、いくつかの方法があります。

MLDAP ESM モジュールは、Enterprise Server のユーザー認証を提供する場合、Enterprise Server コンポーネントによって、そして最終的にはユーザーによって ESF に提供されたユーザー ID およびパスワード (資格情報とも呼ばれる) を検証する必要があります。このモジュールは、構成に応じて、さまざまな認証プロセスをサポートします。

モード

MLDAP ESM モジュールでの認証は、次の 2 つの主な方法のいずれかで実行されます。

  • モジュール自体の検証機能に対してパスワードをチェックする。

または

  • 提供された資格情報を使用して LDAP サーバーにバインドする。

[Configuration Information] フィールドで指定された「[Verify]」セクションの「mode」設定によって、使用される方法が決まります。設定が mode=MF-hash (デフォルト) の場合、モジュールは LDAP リポジトリから検証機能を取得し、パスワードと照合します。設定が mode=bind の場合、バインドの方法が使用されます。

注: セキュリティ マネージャーは、2 つのモードのいずれかでのみ動作できます。ESF 構成に、MLDAP ESM モジュールを使用するセキュリティ マネージャーが複数含まれている場合、それらのマネージャーでは、異なるモードを使用できます。

MF-hash モードでは、LDAP リポジトリ内の各ユーザー オブジェクトは、そのユーザーのパスワード検証機能文字列を保持します。通常、これはユーザーのパスワードのソルト付き暗号化ハッシュです。モジュールは、指定されたユーザーの検証機能をリポジトリから取得し、提供されたパスワードおよび検証機能で使用されているものと同じソルトから同じタイプのハッシュを計算して、結果を検証機能と比較します。結果が一致する場合、パスワードは正しいことになります。

一方、bind モードでは、ユーザーの資格情報を検証するよう LDAP サーバーに要求します。LDAP バインド操作は、LDAP サーバーへのサインオンと同等です。モジュールは、提供されたユーザー ID およびパスワードを使用してバインド要求を行い、それに成功した場合、資格情報が LDAP サーバーによって受け入れられたということになります。

LDAP サーバーは、認証を他のシステムに委任できます。これは MLDAP ESM モジュールに対して透過的です。

bind モード検証は、LDAP サーバー認証が ID システムに統合されている場合や、ユーザーの認証に LDAP サーバーがすでに使用されていて、既存のユーザー アカウントおよび資格情報を Enterprise Server ユーザーとして使用する場合に役立ちます。ただし、この方法には欠点がいくつかあります。必要な処理が増えるため、bind モードの検証では、Enterprise Server へのサインオンが遅くなる可能性があります。診断が限定的になります。MLDAP ESM モジュールは、多くの場合、さまざまな種類の認証失敗 (パスワードの誤り、アカウントのロック アウトなど) を区別できません。また、パスワードの変更が複雑になるため、失敗する可能性が高くなります。詳細については「MLDAP ESM モジュールでのパスワードの変更」を参照してください。

パスワード検証機能のタイプ

MLDAP ESM モジュールは、各種のパスワード検証機能をサポートしています。これらの一部は、MF-hash モードで、モジュール自体によって生成および処理されます。その他については、bind モードでパスワードの変更を実行する際に LDAP サーバーによって、または LDAP サーバーのために作成され、LDAP サーバーまたは使用されている認証システムによって (認証のために) 処理されます。

MF-hash モードでパスワード タイプを「AD」にしたり、bind モードでパスワード タイプを「MF-A2」にするなど、認証モードに対応しないパスワード設定モードを構成してもエラーにはなりません。また、OpenLDAP サーバーでの AD タイプなど、LDAP サーバーで通常サポートされていないパスワード タイプを構成してもエラーにはなりません。ただし、一般的にこのような組み合わせは役に立ちません。管理者は、認証モードとパスワード タイプの組み合わせが適切となるようにする必要があります。

注: パスワード タイプは、ユーザーがパスワードの変更を要求した場合にのみ適用されます。ユーザー資格情報の認証時に、既存のパスワード検証機能のタイプが自動的に決定されます。

内部検証機能のタイプ (MF-hash モード)

MF-hash モードのモジュールでサポートされる検証機能には、スキーム名およびコロンが前に付けられ、その後にデータが続きます。これには、適切な検証機能データに加えてパラメーター (salt など) を含めることができます。

サポートされるスキームは次のとおりです。

literal:
このスキームのデータはパスワードそのものです。通常はテスト用であり、LDAP リポジトリ内のユーザー オブジェクトへの読み取りアクセス権を持つユーザーなら誰でも簡単にパスワードを復元できるため、プロダクション システムでは避ける必要があります。
MF-MD5:
ソルト付き MD5 ハッシュ。これは、古い製品バージョンでのデフォルトの検証機能タイプでした。短いパスワードの MD5 ハッシュはブルート フォースが容易なため、現在は推奨されていません。
MF-A2:
ソルト付き Argon2 ハッシュ。Argon2 は強力な (ストレージを大量に消費する) パスワード ハッシュ アルゴリズムであり、ブルート フォース攻撃に対して高い抵抗力があります。これは、最近の製品バージョンでのデフォルトの検証機能タイプです。
MF-MD5A2:
MF-MD5 検証機能の Argon2 ハッシュ。このタイプは、MF-MD5 検証機能から Argon2 検証機能への移行を容易にするために存在します。

MF-hash モードでは、パスワード検証機能は microfocus-MFDS-User-Pwd 属性に保持されます。各検証機能はそのタイプを指定するため、ユーザーごとに異なるタイプの検証機能を使用できます。

外部検証機能のタイプ (bind モード)

bind モードでは、LDAP サーバー (または外部 ID システム) によって使用される実際の検証機能は、MLDAP ESM モジュールの範囲外になります。ただし、LDAP サーバーはパスワードを設定するためのさまざまなメカニズムを提供しており、これらもモジュールによって「パスワード タイプ」として扱われます。この「パスワード タイプ」によって、LDAP サーバーで格納される検証機能のタイプが決まる場合もあります。

LDAP サーバーでサポートされるパスワード設定のメカニズムは、次のとおりです。

AD:
Active Directory および AD LDS 向けの Microsoft のパスワード変更メカニズムを使用します。これには特別な LDAP メッセージの送信が含まれます。これにより、アカウントが Windows ユーザーである場合、AD は要求を検証し、必要に応じて Windows ローカルまたはドメイン パスワードの変更を実行し、Windows ユーザーでない場合はユーザー オブジェクトのパスワードを更新します。詳細については「MLDAP ESM モジュールでのパスワードの変更」を参照してください。
MD5:
このメカニズムでは、RFC 2307 で定義された形式に従って、パスワード検証機能を MD5 ハッシュとして設定します。このタイプの検証機能は本番環境では使用しないことをお勧めします。
SSHA512:
ソルト付き SHA-512 ハッシュを使用する、もう 1 つの RFC 2307 パスワード変更タイプです。
plain:
RFC 2307 パスワード属性は、新しいパスワードそのものを使用して更新されます。通常これは安全ではありませんが、一部のサーバーは、提供されたデータで強力なハッシュを生成して、この更新を特別に処理するように構成できます。

パスワードの制約

MLDAP ESM モジュールは、パスワードの変更が要求された際にさまざまな制約を新しいパスワードに適用するよう構成できます。これには、最小長と最大長、文字セット (アルファベット、数字など) と複雑さ、およびパスワード履歴が含まれます。パスワード履歴の制約は、古いパスワードのハッシュを LDAP のユーザー オブジェクトに保存するモジュールの機能に依存しますが、LDAP サーバーおよびセキュリティ マネージャーの構成によっては使用できない場合もあります。

これらの制約は、パスワードの変更を試行する前に適用され、両方の認証モード (MF-hash と bind) およびすべてのパスワード タイプに適用されます。

外部パスワード タイプが構成されている場合、LDAP サーバーは独自の制約を適用できます。たとえば、パスワード タイプが AD の場合、Active Directory は、複雑さやパスワード履歴など、ドメイン用に構成されたすべてのパスワード制約を適用します。

LDAP サーバーまたはその他のセキュリティ システムでは、管理者が構成した制約以外の制約を課すことができます。たとえば、Active Directory では、特定のアカウントについて 24 時間ごとに 1 回のパスワード変更しか通常許可されません。

構成オプション

MLDAP ESM モジュールには、パスワードの検証およびパスワードの変更に影響を与えるさまざまな構成オプションがあります。

[Passwords] セクション

[Passwords] セクションのパスワード関連のオプションは次のとおりです。

expiration
新しいパスワードの有効期限を設定します。MF-hash モードでのみ適用されます。
expiration-check
認証の失敗がパスワードの期限切れによるものかどうかを判別します。bind モードでのみ適用されます。
history
パスワード履歴を有効にし、保存するパスワード ハッシュの数を設定します。保存されたパスワードと一致する新しいパスワードは拒否されます。
minimum length および maximum length
新しいパスワードの長さに関する制約です。
required および complexity
パスワードの複雑さに関する制約です。

[Verify] セクション

[Verify] セクションのパスワード関連のオプションは次のとおりです。

mode
認証モード (MF-hash または bind) を設定します。
password type
パスワードの変更時に使用するメカニズムを設定し、場合によっては生成される検証機能のタイプを設定します。
attempt password change
bind モードでのパスワード変更処理の順序に影響します。詳細については「MLDAP ESM モジュールでのパスワードの変更」を参照してください。
password change failure
パスワード変更の要求が失敗した場合に、サインオン要求を引き続き処理するか拒否するかを制御します。
password attribute
パスワード検証機能に使用するデフォルト属性をオーバーライドします。
migrate passwords
ユーザーが Enterprise Server にサインオンする際に MF-MD5 から MF-A2 検証機能への移行を試みる場合のオプション機能です。MF-hash モードでのみ適用されます。

詳細については、「MLDAP ESM モジュールのカスタム構成情報」を参照してください。