• ベストアンサー

LDAPユーザー認証で、設定後パスワード変更したいが、、、

RedHatLinux9+OpenLDAPで3台のサーバー(RedHat9+RedHat7+Solaris9)のユーザー認証させようと思ってます。 今現在ユーザー登録は、登録時に仮パスワードを発行、その後ユーザーに任意のパスワードに変更してもらうようにしています。でもこれだとその都度LDAPに登録しなおさないといけないわけですよね? LDAPからそのユーザーのエントリを削除してから入れなおすという順序になるんでしょうか? 追加ユーザー数が百近くあり、これは現実的ではないので、何かいい方法がないかと模索しています。 みなさんはこの辺をどう処理しているんでしょうか? よろしくお願いします

  • koozou
  • お礼率91% (164/179)

質問者が選んだベストアンサー

  • ベストアンサー
  • nazo-nazo
  • ベストアンサー率39% (17/43)
回答No.2

偉そうに回答なんて出来る立場(Solaris上のLDAP構築し、アカウント統合等をしたいと考えている段階)ではありませんが、興味を抱いた質問なので回答させて頂きました。 (1)ldapsearchで対象ユーザのLDIF形式ファイルを作成する。 (2)passwd/groupファイルからuid、userPassword等を取得してLDIF形式ファイルを編集。 (3)ldapmodify < ファイルで属性値の更新。

koozou
質問者

お礼

恥ずかしながらldapmodifyはぜんぜん調べてませんでした。 これしかなさそうですね。 ありがとうございます

その他の回答 (2)

  • k-841
  • ベストアンサー率27% (129/465)
回答No.3

#1です。 >問題が起きる前にうまく処理できるような方法が無いものかと探しているんです。 「問題が起きる」要因を考えれば自ずと解決策は決まってくると思います。たとえば、パスワードの変更時にユーザがミスをおかすなどの理由で当該ユーザがサービスを受けられなくなるのを危惧するのであれば、passwdコマンドと同じようなインタフェイスを用意するとかですね。特にパスワードの変更は、エンクリプトしてldap_modify()をかける必要がある(通常の変更より複雑)ため、安全に利用できるインタフェースは必須かもしれません。 なお、 >ユーザのエントリを削除してから入れなおす という記述が気になりますが、単に既存のパスワードの属性値を変更するだけでしたら、MOD_REPLACEタイプでldap_modify()を実行すれば、変更したい情報だけが書きかわりますので、エントリを削除する必要はないはずです。詳しくは man ldap_modify などを参照して下さい。また、コマンドラインインタフェイスでは#2の方がおっしゃるようなldapmodifyが用意されています。

koozou
質問者

お礼

/etc/passwdとLDAPの暗号化方法が違うので ldifファイルを抽出してパスワードだけ変更というのが難しそうだったので /etc/passwdをchange.ldifという名前でldifに変換。 vi でchange.ldifをパスワ-ドを変更したユーザーだけにして ldapmodify -x -D "cn=Manager,dc=example,dc=net" -W < change.ldif としたらうまくいきました。 問題なさそうですが、どうなんでしょうか? よろしくお願いします

  • k-841
  • ベストアンサー率27% (129/465)
回答No.1

LDAPで認証はやったことがありませんので素人です。 よくわかりませんが、LDAPのパスワードエントリの変更をしたいだけですよね?openldapのAPIでldap_modify(3)がありますが、通常はエントリ中の特定の属性のみを変更します(普通のDBでもそういう作りだと思いますが)。これはごく一般的手法だと思いますが、どう現実的ではないのですか?ましてやたった100近くの追加ユーザ数ならば手動でやってもたかが知れています。問題点をもう少し詳しく補足していただければ、より的確なアドバイスが得られると思います。

koozou
質問者

お礼

すいません、わかりにくい質問で。 何が問題なのかというと まずユーザーがいつパスワードを変更したかわからないという事。(ずっと仮パスワードのままの人もいるので) そして専任の管理者という者がいない為、パスワード変更後、メールが使えない等問題が発生しても、すぐには対応できないという事。(3台のサーバーの内1台はメールサーバーです。) なので問題が起きる前にうまく処理できるような方法が無いものかと探しているんです。

関連するQ&A

  • LDAPのユーザー認証について

    本やいろんなサイトを回ったんですが いまいち理解できてないので質問します。 RedHatLinux9をインストールした LDAPサーバー(S)とLDAPクライアント(C)と2台あります。 LDAPクライアント(C)の認証をLDAPサーバー(S)側で行おうと思っているんですが、ここがよく理解できてません。 LDAPクライアント(C)にログインする時に、LDAPサーバー(S)でしか設定していないユーザーだと、入れないですよね?まずホームディレクトリが存在しませんし。かといってホームディレクトリ作っても、LDAPクライアント側にはそのユーザーはいないのでchownでオーナーの指定ができませんよね? となるとやはりサーバー&クライアント両方に同じユーザーを作る必要があるんでしょうか? あたりまえ過ぎる質問かもしれませんが わからないんです。よろしくお願いします

  • LDAP認証について

    WebアプリでLDAP認証を行う場合、認証はどのような方法で行うのでしょうか? ユーザが入力するIDとパスワードでldap_bindするのでしょうか?それとも、anonymousでldap_bindして、一致するIDを検索してパスワードを比較するのでしょうか?

  • LDAP認証によるPfoftpdについて

    Solaris10で、OpenLDAPとProftpdとSun付属のLDAPクライアントで構成された環境で、Windowsから、FFFTPを使ってLDAP認証でログインさせようとしているんですが、うまく行きません。また、Proftpdをinetから起動させているんですが、再起動すると状態がメンテナンスの状態で、オンラインになりません。 Windowsから、SSHを使ってLDAPユーザでログインはできます。教えていたら幸いです。よろしくお願いします。 Proftpd.conf AuthPAM off LDAPServer "192.168.24.52" LDAPAuthBinds on LDAPDNInfo dc=solaristest,dc=com LDAPDoAuth on "ou=People,dc=solaristest,dc=com" LDAPDoGIDLookups on "ou=Group,dc=solaristest,dc=com" LDAPDoUIDLookups on "ou=People,dc=solaristest,dc=com" /etc/nsswitch.conf hosts files ldap svcs -a | grep ftp maintenance 2:09:32 svc:/network/ftp:default Proftpd.log Dec 25 02:07:44 solaris proftpd[1102] solaris (loghost[192.168.24.51]): FTP session opened. Dec 25 02:07:46 solaris proftpd[1102] solaris (loghost[192.168.24.51]): mod_ldap/2.8.20-20090124: pr_ldap_connect(): bind as cn=Manager,dc=solaristest,dc=com failed: Server is unwilling to perform Dec 25 02:07:46 solaris proftpd[1102] solaris (loghost[192.168.24.51]): mod_ldap/2.8.20-20090124: ldap_handle_getgroups(): LDAP search failed: Bad parameter to an ldap routine Dec 25 02:07:48 solaris proftpd[1102] solaris (loghost[192.168.24.51]): mod_ldap/2.8.20-20090124: pr_ldap_connect(): bind as cn=Manager,dc=solaristest,dc=com failed: Server is unwilling to perform Dec 25 02:07:48 solaris proftpd[1102] solaris (loghost[192.168.24.51]): mod_ldap/2.8.20-20090124: ldap_handle_getgroups(): LDAP search failed: Bad parameter to an ldap routine Dec 25 02:07:48 solaris proftpd[1102] solaris (loghost[192.168.24.51]): mod_ldap/2.8.20-20090124: pr_ldap_user_lookup(): LDAP search failed: Bad parameter to an ldap routine Dec 25 02:07:48 solaris proftpd[1102] solaris (loghost[192.168.24.51]): USER hoge: no such user found from loghost [192.168.24.51] to 192.168.24.52:21 Dec 25 02:07:49 solaris proftpd[1102] solaris (loghost[192.168.24.51]): FTP session closed

  • LDAP認証について質問させて下さい。

    LDAP認証について質問させて下さい。 環境は以下の通りです。 OS:Solaris10 LDAP:sun java system directory server 6.3 現在、LDAPサーバ自身のOS認証にLDAPサーバ(自分自身)を使用することを 考えているのですが、そのような構成は可能なのでしょうか? マニュアルを見てもよくわからず質問させて頂きました。 不可能な場合は、その理由も教えていただけるとありがたいです。 また、LDAPサーバ上に、sybaseとsambaをインストールして、 ユーザ認証をLDAPで行おうかと考えているのですが、そのような構成も可能なのか 教えていただけたら幸いです。 よろしくお願いします。 以上です。

  • SSHをLDAPで認証

    SSHをLDAPを使って認証させたいのですが、上手くいきません・・・ /etc/passwdに登録してあるユーザはログイン可能なのですが、LDAPに登録してあるユーザではログインできません。以下、ログイン不能時のログです。 ※LDAPのログには、何も記述されていないので、そもそもSSHからLDAPサーバにアクセスできていないように思うのです。しかしながら、どうして良いか全く分からないため、皆様の知恵をお借りしたく。 --------log--------- Illegal user test from 127.0.0.1 May 11 10:13:07 Proxy sshd[23596]: PAM unable to dlopen(/lib/security/pam_ldap.so) May 11 10:13:07 Proxy sshd[23596]: PAM [dlerror: /lib/security/pam_ldap.so: undefined symbol: ber_pvt_opt_on] May 11 10:13:07 Proxy sshd[23596]: PAM adding faulty module: /lib/security/pam_ldap.so May 11 10:13:36 Proxy sshd[23596]: Failed password for illegal user test from 127.0.0.1 port 35168 ssh2 --------------------- /etc/pam.d/sshdに関しては、pam_ldapのソース内にあったものをそのまま流用しています。 ■基本情報 OS:Redhat 2.4.21-4.EL openldap-2.3.21 pam_ldap-182 nss_ldap-250 LDAPクライアント、サーバとも同一サーバ。

  • LDAPへのシステムコマンド

    RedHatLinux4、OpenLDAPの環境にて、 LinuxのシステムコマンドでLDAPにアクセスしたいと考えています。 調査したところ、Linuxへの認証方法は見つかったのですが、 アプリケーションとして利用する方法が見つかりませんでした。 LinuxからLDAPにアクセスできるコマンドというのは存在するのでしょうか? 本来ならば、Perlから直接LDAPにアクセスして、 認証を行おうとしたのですが、 APIが見つからなかったため、 システムコマンドでできないか?と考えたからです。 あつかましい質問で申し訳ありませんが、 よろしくお願いいたします。

  • LDAPの設定

    私、PCにあまり詳しくないので、どなたかLDAPの設定方法教えてください。 今、fedora9にopenLDAPをインストールし、slapd.confの設定も完了し、データ登録のためにldapaddを実行したのですが、ldap_bind: Invalied credentials(49)というエラーがどうしてもでてしまいます。slappasswdで、パスワードの設定は完了しているはずなのですが、なぜこのエラーがでるのかがわかりません。どなたかお願いします。

  • Samba+LDAPでユーザー管理

    SambaにLDAP認証で運用しているのですが、新規ユーザーの追加をした際に、そのユーザーがSambaにアクセスできない状況に陥っています。 現状ですが下記の状態です。 1."smbldap-useradd -a -m [user]"による、LDAPへのユーザーの追加は出来る状態です。 2.LDAPユーザーに関して、"pdbedit"で登録したユーザーに関しては、Sambaにアクセスできる状態になっています。 3.上記の状態でLDAPユーザーのパスワードを変更すると、Sambaのパスワードも変更されている状態です。 上記から、新規ユーザーを作る際に、LDAPのユーザーがSamba側に登録されていないのが原因だと思うのですが、違うのでしょうか? 最終的にはWebmin等のGUIから操作したいと考えているので、この状態に陥って非常に困惑しております。 このような状況で、どのようにすれば解決するのでしょうか。 ご教授いただければ幸いです。

  • tomcat ldap認証につきまして。

    ◆環境 centos6.7(64bit) apache2.2.27 tomcat 8.0.28 java version "1.8.0_65" ◆やりたいこと。 上記の環境で、basic認証周りを勉強しています。 通常のtomcat-users.xml での認証ではなくldapに登録しているグループ・ユーザーで認証できるように設定がしたいと考えています。 その中で、いろいろなサイトを見ていますと、tomcatの場合はActive Directory認証の内容が よく掲載されています。 私の中で、ldap認証で行いたいと思っているのですが、中々参考になるサイトが 見つからず。 理想は、http://www.server-world.info/query?os=CentOS_6&p=ldap&f=[1-9] で構築したldapで、tomcat managerなどの認証を行いたいと考えています。 すいません、上記設定が載っている参考になるサイトなどご教授いただければと思います。

  • ldapユーザ登録について

    LDAPで、ユーザ登録を行いたく、 ldifファイルを作成し、下記の通り、「ldapadd」コマンドを実行しました。 protocolエラーの表示が出てしまい、どの様にしたら、 問題なく、登録を行うことが出来るようになりますか? ご教示ください。 よろしくお願い致します。 [root@dog openldap]# ldapadd -x -D "cn=Manager,dc=xxx,dc=com" -W -f admin.ldif Enter LDAP Password: warning: no attributes to add (entry="cn=Admin,dc=blackbison,dc=com") adding new entry "cn=Admin,dc=xxx,dc=com" ldapadd: Protocol error (2) additional info: no attributes provided 「admin.ldif」↓ dn: cn=Admin,dc=xxx,dc=com objectClass: person cn: Admin sn: Admin userPassword: {crypt}xyz