5

Java ベースの Web アプリケーションで LDAP 認証を使用するベスト プラクティスに興味があります。私のアプリでは、ユーザー名\パスワードを保存したくありません。一部のIDのみを保存します。しかし、LDAP カタログに存在する場合は、追加情報 (名前、姓) を取得したいと考えています。

4

4 に答える 4

6

私のチームでは、認証の標準的な方法として LDAP を使用しています。基本的に、LDAP は別のデータベースとして扱います。

ユーザーをアプリケーションに追加するには、LDAP からユーザーを選択するか、LDAP で作成する必要があります。ユーザーがアプリケーションから削除されると、そのユーザーは LDAP に残りますが、アプリケーションにはアクセスできなくなります。

基本的に、LDAP ユーザー名のみをローカルに保存する必要があります。毎回 LDAP から LDAP データ (電子メール、部門など) を読み取るか、何らかの方法でアプリケーションに取り込むことができますが、LDAP データは変更される可能性があるため、LDAP から読み取る方がおそらく簡単でスマートです。もちろん、レポートが必要な場合や LDAP データを広範囲に使用する場合は、LDAP から (手動またはバッチ タスクを使用して) データを取得することをお勧めします。

良い点は、ユーザーが LDAP で無効にされると、すべてのアプリケーションで一度に無効になることです。また、ユーザーはすべてのアプリケーションで同じ資格情報を持っています。多数の内部アプリケーションを使用する企業環境では、これは大きな利点です。1 つのアプリケーションのみのユーザーに LDAP を使用しないでください。そのシナリオでは実際の利点はありません。

于 2009-02-19T23:05:01.327 に答える
4

LDAP の一般的なベスト プラクティスについては、「LDAP: プログラミング プラクティス」を参照してください。

于 2011-11-02T08:35:21.330 に答える
1

複数の Web ベースのアプリケーションがあり、LDAP 認証を使用したい場合は、独自の LDAP 認証を作成するよりも、パッケージ化されたシングル サインオン ソリューションの方が適している場合があります。CASは LDAP 認証をサポートしており、アプリケーションに必要なデータを引き出すことができます。

私の大学では、実際に Active Directory サーバーに対するシングル サインオンとして CAS を実装しました。また、CAS を使用して J2EE アプリケーションを認証し、CAS を使用して PHP アプリケーションを認証する作業も行っています。

AD を使用してドメインのユーザーを保持します。ユーザーのタイプに基づいて、特定の OU があります。ユーザーはそれぞれ一意の ID を持っています。これはたまたま学生/従業員 ID であるため、アプリケーションはそれをデータベースの主キーとして使用できます。私たちの PHP アプリケーションには、データベース主導の認証方法があります。J2EE アプリケーションの許可は、LDAP の値から取得されます。

あなたのアプリケーションで頑張ってください。

于 2009-02-19T23:27:04.877 に答える
0

したがって、ユーザーにIDのみを入力してから、残りの情報をLDAPから取得する必要がありますか?それはとても簡単です。

  1. LdapInitialコンテキストを作成し、LDAPに接続します
  2. IDを検索します(属性値として保存する必要があります)-例:(&(userid = john)(objectClass = user))-これは「userid = johnANDobjectClass=user」を意味します
  3. SearchResultオブジェクトには、すべての属性(または要求した属性)が含まれます

一部のLDAP実装(特にMS ActiveDirectory LDAP)では、匿名ユーザーに接続できません。それらのためにあなたは接続するために技術的なユーザーID/パスワードを持っている必要があります。

上で述べたように、LDAPは通常、多くのアプリケーションがある場合に意味があります。

PS LDAPとは何かを理解するには、ApacheDirectoryStudioを試してください。

于 2009-02-21T02:57:36.173 に答える