ここではOpenldapが設定されており、ユーザーはldapを使用してクライアントマシンにログインできます。しかし、LDAPを使用して現在マシンにログインしているユーザーを確認する方法はありますか? LDAPを使用してどのユーザーがどのマシンにログインしたかを知りたいですか?
AFAIK LDAPはセッション管理を実装しておらず、ディレクトリサービスを提供するだけであり、そのデータは他の場所に大量にキャッシュできます。また、認証以外の情報を提供することもできます。したがって、「LDAPにログイン」するようなものはなく、実際に測定する方法もありません。
おそらく、ユーザーがアプリケーションにアクセスできるようにLDAP実装を維持します。これらのアプリケーションを調べて、現在開いているセッションを持っているユーザーを特定する必要があります(アプリケーションがステートフルであると仮定すると、HTTPはそうではありません)。
Symcbeanを引用すると、「LDAPにログインするようなものはありません」。しかし、LDAPを介して認証するユーザーのようなものがあります。
具体的には、LDAPなどの認証バックエンドを使用するようにホストを構成すると、ネームサービススイッチ(nsswitch)がユーザー情報をキャッシュして、システムにログインできるようにすることができます(おそらくそうすべきです)。実際、私の観点からは、データがキャッシュされているかどうかは関係ありません。それでも、そのバックエンドから送信される情報です。
NIS、Unix、またはLDAPバックエンドに属しているかどうかに関係なく、ユーザーはUIDを持っています。適切に構成されたシステムでは、あるバックエンドのUIDが別のバックエンドのUIDと一致してはなりません(通常、unixバックエンドとldapバックエンドは共存します)。
最後に私の言いたいことは、/etc/passwd
とgetent passwd
の出力がありますが、これは一致しないはずです(ldapはunixバックエンドを拡張します)。したがって、どのユーザーがldapにのみ存在するかがわかります。最後に、last
:Dがあります。これは、syslogファシリティの認証に加えて、誰がいつどこからログインしたかを再確認します。ホストごとにこの情報を使用してログインしたLDAPユーザーを示す簡単なスクリプトを作成できます。
注:同じIDを持つunixとldapで重複したユーザーがいる場合は、自分で作成します:)
Symcbeanの答え( 現在ldapを使用してログインしているユーザーを検索しますか? )にほぼ同意しますが、...
DCのセキュリティログを解析してみることができますが、それでは大量のデータが返されます。長期的にデータをどのように処理したいかによっては、データベースに送信する価値がある場合があります。
===
OpenLDAPについてはよくわかりませんが、ADでは、グループポリシーやログインスクリプトを実行するように設定できます(Windowsバッチの場合)。
echo logon %username% %computername% %date% %time% >> \\shared\path\FILE_LOCATION.txt
FILE_LOCATION.txtからユーザー名またはコンピューター名を解析するか、次のようにコンピューター名で保存します。
echo logon %username% %computername% %date% %time% >> \\shared\path\%computername%.txt
同様に、次のユーザー名で保存します。
echo logon %username% %computername% %date% %time% >> \\shared\path\%username%.txt
個人的にはgWaldoの行き先が好きですが、mfinniが言ったように、Linuxマシンについて話しているかもしれません。
これはやり過ぎかもしれませんが...バラクーダWebフィルターはそれを行うことができます、IIRC。
LDAP認証を使用するバラクーダWebフィルターを使用すると、このようなことができると思います。 IIRCバラクーダは、現在認証されているすべての人のリストを保持しています。 AD環境で使用しましたが、すべての種類のLDAPで機能するはずです。
LDAP + kerberosを使用してこれを実現できますが、LDAPにログオンできるすべてのアプリケーションが認証にkerberosを使用できるわけではありません。
FreeIPAを使用して、使いやすいパッケージで入手できます。
おそらく、クライアントマシンは [〜#〜] radius [〜#〜] を介して認証する必要があります—認証に加えてアカウンティングも行います。
私たちにとって、コマンド:
users
トリックをしました。
ローカル、LDAP、およびSSHユーザーログインが一覧表示されます。私の知る限り、rootがログインしている場合にのみレポートに失敗します。クライアントとサーバーにはUbuntu12.04があります。
OpenLDAPは、NFSマウントされたホームディレクトリを備えたPAMおよびNSSwitchを介して認証をバックアップしています。 /etc/idmapd.confをドメイン宣言で整理することはおそらく重要です。 (私たちの組織がそうする前は、ls -lはファイルの所有者とグループをnobody:nobodyとしてクライアントに返しますが、そのときは)
そのような古い質問に答えて申し訳ありませんが、私は同じ問題を抱えていて、自分でそれを整理する前に答えを求めてここに行き着きました。これがうまくいかない場合は、私の答えに反対票を投じないでください。
通常はできません。ユーザーがアプリケーションにログインおよびログアウトするたびに一部のLDAP属性が更新されるように、それを実装してみることができますが、これはやり過ぎです。質問から、OpenLDAPが中央ディレクトリとして使用され、資格情報が保存されているユーザーがネットワーク内の多数のLinuxマシンにログインすると想定しています。その場合は、fingerのようなものをインストールしてから、ネットワーク内のすべてのマシンを「finger」する必要があります。ログインしているユーザーを確認します。