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

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

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

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

Q&A

解決済

1回答

10757閲覧

LDAP認証で初回ログイン時にパスワード変更させる方法について

miyahan777

総合スコア11

LDAP

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

0グッド

0クリップ

投稿2017/02/07 03:33

編集2017/02/07 06:31

###前提・実現したいこと

centos7の環境でsssdを使ってLDAP認証をする環境を構築しています。
パスワード要件を設定しているのですが、初回ログイン時にユーザがパスワードを変更するという機能だけが実装できていません。
■管理者はアカウントを発行するだけで、個別にパスワード変更作業などは行わない

###問題の発生した環境

# sssd --version 1.13.0
  • sssd.conf抜粋
[sssd] services = nss, pam, sudo, ssh config_file_version = 2 domains = default [domain/default] cache_credentials = True enumerate = True id_provider = ldap auth_provider = ldap chpass_provider = ldap access_provider = ldap ldap_pwd_policy=shadow ldap_uri = ldaps://ldapserver1 ldap_default_authtok_type = password ldap_schema = rfc2307

ユーザサンプル

dn: cn=zzz_account,ou=KAISYA,ou=People,dc=example,dc=co,dc=jp objectClass: inetOrgPerson objectClass: posixAccount objectClass: top objectClass: shadowAccount uid: zzz_account uidNumber: 11111 gidNumber: 2222 cn: zzz_account sn: zzz givenName: account homeDirectory: /home/zzz_account loginShell: /bin/bash mail: account@zzzz.net shadowMax: 180 shadowMin: 0 shadowWarning: 150 userPassword:: XXKXKXKKXKXKXKKXKXKKXXXKK shadowLastChange: 0

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

当初、sssd.confにldap_pwd_policy = shadowを設定し、shadowLastChange属性が無い場合にパスワード変更を促そうと考えていたのですが、

4 (System error)

となり、shadowLastChange属性が無いと認証拒否されてしまいます。

###試したこと

shadowLastChange=0にすると、認証は出来るようになるのですがパスワード変更を促してくれません。
sssd.conf内にldap_chpass_update_last_change = trueを定義してもパスワード変更を促してくれません。

centos7環境で、SSSD認証を使って初回アクセス時に自動でパスワードを変更させる方法を実装した事がある方がいましたら
どのような方法で実現したか教えてください。

###補足情報(言語/FW/ツール等のバージョンなど)

実際の設定内容は、出せそうであれば記載します。

実装できたという実績情報もまだ見つかっていません。
何でも構いませんので経験のある方、よろしくお願いいします。

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

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

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

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

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

ikedas

2017/02/07 03:50

sssdのバージョン、及び設定内容 (sssd.confの内容) を明記して下さい。LDAPのユーザエントリのサンプルもあるといいですね。
guest

回答1

0

ベストアンサー

OpenLDAP であれば ppolicy が使えると思います。
pwdMustChange: TRUE

(2017/02/07 17:02) 追記
ネットで検索すると、pwdMustChange が効かない、pwdReset だと効くという情報がありました。
ユーザーの属性に pwdReset: TRUE を追加して、ldapwhoami で認証して、Password must be changed が返るか確認ください。

ldapwhoami -x -D (DN) -W -e ppolicy Enter LDAP Password: ldap_bind: Success (0); Password must be changed dn:(DN)

投稿2017/02/07 03:48

編集2017/02/07 08:02
TaichiYanagiya

総合スコア12139

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

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

miyahan777

2017/02/07 04:30

ありがとうございます。 手元の環境で検証してみましす。結果はまた記載します。
miyahan777

2017/02/07 05:44

検証してみました。結果はうまくいきませんでした。 まずクライアント側のSSSDに ldap_pwd_policy = shadow ldap_chpass_update_last_change = true を設定し、サーバ側のスキーマに shadowLastChange=0 を設定した状態で、パスワード変更を求められない状態です。(普通に認証される状態) > OpenLDAP であれば ppolicy が使えると思います。 サーバ側のldapadminに ``` overlay ppolicy ppolicy_default "cn=default,ou=Policies,dc=example,dc=co,dc=jp" ppolicy_use_lockout ppolicy_hash_cleartext ``` と設定しており、(slaptestで作り直しも実施済です) cn=defaultには、pwdMustChange: TRUE属性を追加 以上の設定でもパスワード変更は求められません。 cn=defaultには他の属性も設定してありますが、共存しない設定とかありますか?
miyahan777

2017/02/07 09:07

またまたありがとうございます。 pwdReset属性確認します。しばしお待ちください。
miyahan777

2017/02/08 00:06

質問させていただいた、「LDAP認証で初回ログイン時にパスワード変更させる方法」という機能は、 pwdReset: TRUE で実現できました。 ありがとうございました。 ぶっちぎりでベストアンサーにさせていただきます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.51%

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

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

質問する

関連した質問