Go to main content
Oracle® Solaris 11.3 ディレクトリサービスとネームサービスでの作業: LDAP

印刷ビューの終了

更新: 2016 年 11 月
 
 

プラグイン可能な認証方法

PAM フレームワークを使用すると、pam_unix_*pam_krb5、および pam_ldap_* モジュールを含む複数の認証サービスから選択できます。

ユーザー別の認証を使用するには、pam_krb5 を有効にする必要があります。ただし、ユーザー別の資格レベルを割り当てていない場合でも、pam_krb5 認証を使用できます。proxy または anonymous 資格レベルを使用してディレクトリサーバーデータにアクセスする場合は、ディレクトリデータへのアクセスをユーザーごとに制限できません。

anonymous または proxy の認証を選択する場合は、同等の pam_unix_* モジュールではなく、pam_ldap モジュールを使用してください。pam_ldap モジュールは柔軟性が高く、より強固な認証方法をサポートし、アカウント管理を実行できます。

LDAP サービスモジュール

serviceAuthenticationMethod 属性が定義されている場合、ユーザーが LDAP サーバーにバインドする方法はこれによって決まります。定義しない場合は、authenticationMethod 属性が使用されます。pam_ldap モジュールがユーザーの識別情報およびパスワードを持つサーバーに正常にバインドすると、モジュールがユーザーを認証します。ユーザーがディレクトリサーバーからの認証なしでログインしているときでも、アカウント管理を実行し、ユーザーのアカウントステータスを取得できます。

ディレクトリサーバーでの制御は 1.3.6.1.4.1.42.2.27.9.5.8 です。この制御は、デフォルトで有効になっています。デフォルトの制御構成を変更するには、ディレクトリサーバー上で ACI を追加します。例:

dn: oid=1.3.6.1.4.1.42.2.27.9.5.8,cn=features,cn=config
objectClass: top
objectClass: directoryServerFeature
oid:1.3.6.1.4.1.42.2.27.9.5.8
cn:Password Policy Account Usable Request Control
aci: (targetattr != "aci")(version 3.0; acl "Account Usable";
allow (read, search, compare, proxy)
(groupdn = "ldap:///cn=Administrators,cn=config");)
creatorsName: cn=server,cn=plugins,cn=config
modifiersName: cn=server,cn=plugins,cn=config

pam_ldap モジュールでは、userPassword 属性が読み取られません。クライアントが UNIX 認証を使用しない場合は、userPassword 属性への読み取りアクセス権を付与する必要がありません。同様に、pam_ldap モジュールは認証方法として none をサポートしません。


注 -  simple 認証方法を使用する場合は、第三者が暗号化されていない userPassword 属性を読み取ることができます。

次の表に、認証メカニズム間の相違点を示します。

表 3  LDAP での認証動作
イベント
pam_unix_*
pam_ldap
pam_krb5
パスワードの送信
passwd サービス認証方式を使用します
passwd サービス認証方式を使用します
Kerberos シングルサインオンテクノロジを使用します。
新規パスワードの送信
暗号化される
暗号化しません (TLS を使用しない場合)
Kerberos を使用します。パスワードはネットワークに送信されません。
新規パスワードの格納
crypt 形式
Oracle Directory Server Enterprise Edition で定義されたパスワード格納スキーム
Kerberos を使用してパスワードを管理します。
パスワードの読み取りが必要か
はい
いいえ
いいえ
パスワード変更後の sasl/digestMD5 の互換性
いいえ。暗号化されていないパスワードは格納されません。ユーザーを認証できません。
はい。デフォルト格納スキームが clear に設定されている場合は、ユーザーが認証できます。
いいえ。sasl/GSSAPI を使用します。Kerberos kdc を使用して LDAP ディレクトリサーバー内のパスワードデータベースを管理する場合を除き、パスワードがネットワーク上に送信されることも、ディレクトリサーバーに保存されることもありません。
パスワードポリシーがサポートされるか
はい。enableShadowUpdatetrue に設定する必要があります。
はい (構成されている場合)。
pam_krb5(5) のマニュアルページ、および Kerberos V5 アカウント管理モジュールを参照してください。

pam_unix_* サービスモジュール

/etc/pam.conf ファイルを構成していない場合は、デフォルトで UNIX 認証が有効になります。


注 -  pam_unix モジュールは削除されたので、Oracle Solaris ではサポートされていません。このモジュールは、同等またはそれ以上の機能を備えた別のサービスモジュールセットで置き換えられました。このガイドでは、pam_unixpam_unix モジュールではなく、同等の機能を備えたモジュールを指します。

次に示すモジュールは、元の pam_unix モジュールと同等の機能を備えています。対応するマニュアルページを使用すれば、モジュールが一覧表示されます。

pam_unix_* モジュールは、次の UNIX 認証モデルを使用します。

  1. クライアントは、ネームサービスからユーザーの暗号化されたパスワードを取得します。

  2. ユーザーは、パスワードの入力を求められます。

  3. ユーザーのパスワードが暗号化されます。

  4. クライアントは、暗号化された 2 つのパスワードを比較して、ユーザーを認証するかどうかを決定します。

pam_unix_* モジュールには、次の制限があります。

  • パスワードは UNIX crypt 形式で格納する必要があります。

  • userPassword 属性は、ネームサービスから読み取り可能でなければなりません。

    たとえば、資格レベルを anonymous に設定した場合は、すべてのユーザーが userPassword 属性を読み取れる必要があります。同様に、資格レベルを proxy に設定した場合は、プロキシユーザーが userPassword 属性を読み取れる必要があります。


注 -  UNIX 認証には、sasl/digest-MD5 認証方法との互換性がありません。Oracle Directory Server Enterprise Edition で digest-MD5 を使用するには、パスワードを暗号化せずに格納する必要があります。

pam_unix_account モジュールは、enableShadowUpdate スイッチが true に設定されている場合はアカウント管理をサポートします。リモート LDAP ユーザーアカウントに対する制御は、passwd および shadow ファイルで定義されたローカルユーザーアカウントに適用される制御と同じ方法で適用されます。enableShadowUpdate モードでの LDAP アカウントでは、LDAP アカウントについてはシステムが更新を行い、パスワードの有効期限管理とアカウントのロックのために LDAP サーバー上のシャドウデータを使用します。ローカルアカウントのシャドウデータはローカルクライアントシステムに適用されるのに対して、LDAP ユーザーアカウントのシャドウデータはすべてのクライアントシステムのユーザーに適用されます。

ローカルクライアントの場合のみパスワード履歴を確認でき、LDAP ユーザーアカウントの場合は確認できません。

Kerberos サービスモジュール

Kerberos の詳細は、Oracle Solaris 11.3 での Kerberos およびその他の認証サービスの管理pam_krb5(5) のマニュアルページを参照してください。

PAM を使用するパスワードの変更

パスワードを変更するには、passwd コマンドを使用します。enableShadowUpdate スイッチが有効になっていない場合は、管理者資格情報に加えて、ユーザー資格情報でも userPassword 属性が書き込み可能である必要があります。passwd-cmdserviceAuthenticationMethod によって、この操作のための authenticationMethod がオーバーライドされます。認証方法によっては、現在のパスワードが暗号化されていない場合があります。

UNIX 認証では、新しい userPassword 属性が UNIX crypt 形式で暗号化されます。この属性は、LDAP に書き込まれる前にタグ付けされます。このため、サーバーへのバインドに使用される認証方法に関係なく、新しいパスワードは暗号化されます。詳細は、pam_authtok_store(5) のマニュアルページを参照してください。

enableShadowUpdate スイッチが有効になっている場合は、ユーザーパスワードが変更されると、pam_unix_* モジュールが関連するシャドウ情報を更新します。同様に、pam_unix_* モジュールは、ローカルユーザーパスワードが変更されたときにこれらのモジュールが更新するローカル shadow ファイル内の shadow フィールドを更新します。

パスワード更新をサポートするために、pam_ldap モジュールは server_policy オプションを付けて pam_authtok_store モジュールを使用できます。pam_authtok_store を使用すると、新しいパスワードは暗号化されずに LDAP サーバーに送信されます。TLS を使用してプライバシを確保します。そうしないと、新しい userPassword が詮索されやすくなります。

Oracle Directory Server Enterprise Edition でタグなしパスワードを設定すると、ソフトウェアは passwordStorageScheme 属性を使用してパスワードを暗号化します。passwordStorageScheme の詳細は、Oracle Directory Server Enterprise Edition (http://docs.oracle.com/cd/E29127_01/doc.111170/e28972/ds-password-policy.htm#fhkrj) の管理者ガイドのユーザーアカウント管理に関するセクションを参照してください。

NIS、または UNIX 認証を使用するその他のクライアントがリポジトリとして LDAP を使用する場合は、passwordStorageScheme 属性に crypt を構成する必要があります。また、Oracle Directory Server Enterprise Edition で sasl/digest-MD5 LDAP 認証を使用する場合、passwordStorageScheme 属性を平文に構成する必要があります。