質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.47%
LDAP

LDAPは、ディレクトリデータベースにアクセスするためのプロトコルです。ディレクトリデータベースとは、ネットワークに存在するメールアドレスや環境などさまざまな情報を一元的に管理するサービスのことで、クライアントはLDAPサーバにアクセスしてユーザ名から検索や追加などの操作することができます。

ログイン

ログインは、ユーザーがコンピューターシステムにアクセスするプロセスの事を呼びます。

Q&A

解決済

1回答

909閲覧

nslcdの設定について

eco

総合スコア3

LDAP

LDAPは、ディレクトリデータベースにアクセスするためのプロトコルです。ディレクトリデータベースとは、ネットワークに存在するメールアドレスや環境などさまざまな情報を一元的に管理するサービスのことで、クライアントはLDAPサーバにアクセスしてユーザ名から検索や追加などの操作することができます。

ログイン

ログインは、ユーザーがコンピューターシステムにアクセスするプロセスの事を呼びます。

0グッド

0クリップ

投稿2022/10/03 05:17

編集2022/10/03 05:45

前提

認証システムとして以下の2つを準備しています。
・Active Directoryサーバーでのアカウント認証(LDAP)
・linuxOSのアカウント認証

linuxOSにログオンする際に
これらのどちらかの認証システムを利用する設定にしています。

実現したいこと

/etc/pam.d/common-authの設定を変更することにより
ログオンする際にどちらの認証システムを先に参照するか設定したいです。

具体的は以下のようなことを実現したいです
Active Directory(LDAP)アカウント認証を行い、ユーザがいなければ
linuxOSのアカウント認証をおこないユーザがいればログオンできる状態にしたいのですが

設定を変更してもLDAP⇒ローカルアカウントの順に動作しませんでした。
(ローカルアカウント⇒LDAPの順に確認している動作になっていました)

お手数ですが、認証順序を変更する方法をご存知の方がいらっしゃればご教示ください。

発生している問題・エラーメッセージ

該当のソースコード

試したこと

common-authに以下の追記をしてみましたが
認証確認の優先順位は変わりませんでした。
auth [success=2 default=ignore] pam_ldap.so
auth [success=1 default=ignore] pam_unix.so nullok_secure user_first_pass

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

pam_ldap.so を先に(上に)設定して、sufficient ([success=done new_authtok_reqd=done default=ignore]) でいいはずです。
pam_unix.so のオプションは Typo でしょうか?

(auth の他の設定) auth sufficient pam_ldap.so try_first_pass auth sufficient pam_unix.so nullok use_first_pass (auth の他の設定)

設定を変更してもLDAP⇒ローカルアカウントの順に動作しませんでした。

どのように確認しましたか?
LDAP 側で BIND のログを出力するようにしておいて、LDAP クライアントからユーザーの DN で認証 BIND が行なわれるかどうか確認すると順序がわかると思います。

  • pam_ldap.so が先 → BIND
  • pam_unix.so が先、かつ、認証に成功(success=done) → pam_ldap.so はスキップし BIND しない
  • pam_unix.so が先、かつ、認証に失敗(default=ignore) → pam_ldap.so に進み BIND

(2022/10/03 22:07) 追記

UID, GID などは PAM 認証・認可後の nsswitch の話です。
/etc/nsswitch.conf の passwd:, group: 行の files, ldap の順序によります。
getent passwd で該当ユーザーが 2行あって、先に見つかった方が getent passwd 該当ユーザー で表示され、UID, GID はそちらが使われるのだと思います。

投稿2022/10/03 09:22

編集2022/10/03 13:08
TaichiYanagiya

総合スコア12146

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

eco

2022/10/03 12:32

TaichiYanagiyaさん ご回答ありがとうございます 確認は、LDAPとLinuxに同じユーザ名のアカウントを用意し、 LDAPユーザーのgidNumberとLinuxユーザーのgidを別の値にしました。 その後、LDAPに参加しているLinux端末にログオンし >id ユーザ名 のコマンドを確認しどちらのgidが出力されるかで行いました。 以下のパターンで確認しましたが何れもLinuxのgidが出力され結果的にうまくいっていませんでした。 ■1 auth [success=done new_authtok_reqd=done default=ignore] pam_ldap.so nullok_secure auth [success=1 default=ignore] pam_unix.so user_first_pass ■2 auth sufficient pam_ldap.so try_first_pass auth sufficient pam_unix.so nullok use_first_pass ■3 auth [success=2 default=ignore] pam_ldap.so nullok_secure auth [success=1 default=ignore] pam_unix.so user_first_pass
eco

2022/10/05 07:16

TaichiYanagiyaさん ご回答ありがとうございます 問題が解決できました、よく理解できました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.47%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問