40

私の会社は、何百もの顧客を持つ SaaS アプリケーションを開発および販売しています。一部のお客様から、従業員ごとに別のログイン アカウントを作成する代わりに、既存のシステムに対してユーザー アカウントを認証するための LDAP 統合をサポートしてほしいという要望がありました。これは、多くの場所でシングル サインオン (SSO) と呼ばれているようですか? 当然のことながら、当社のシステムには、ユーザー アカウント プロファイルを維持し、ログイン ページからそれらのユーザー アカウントを認証するためのメカニズムが既に備わっています。

私たちは LDAP について少し無知で、いくつかのことについて混乱しています。間違った用語が使用されている可能性があることをご容赦ください (私たちはこれについて少し無知であることを思い出してください)。

これがどのように機能するかの基本を理解していると思います。

  • 当社の顧客は、アカウントの「リモート認証」機能を「オン」にするようにアカウントを構成します。ユーザーを認証するリモート URL を提供します。
  • ユーザーはログイン ページにアクセスし、会社の LDAP システムから提供されたユーザー名とパスワードを使用してログインを試みます。
  • 当社のログイン ページは、ログイン資格情報 (おそらく合意された形式で暗号化およびハッシュ化されたもの) を、お客様から提供された「リモート認証」URL に安全に転送します。
  • 顧客のスクリプトはユーザーを認証し、「認証ステータス」を使用してサイトにリダイレクトします。
  • 私たちのページは「認証ステータス」を分析し、ユーザーがログインしているかどうかを受け入れます。

上記の情報が半分正しいと仮定しても、各ユーザーがシステムにアカウントを持っている必要があります。ユーザー アカウント プロファイルを LDAP ディレクトリ内のユーザー プロファイルと同期させる何らかの方法が必要ではないでしょうか? これは、LDAP システムでユーザーの ID を参照する単なる「外部 ID」ですか? その場合、顧客の「リモート認証」スクリプトがその ID をシステムに提供して、システム内のどのユーザー アカウントにログインを関連付けるかを知る必要がありますか?

何が欠けていますか?

ところで、私たちのプラットフォームは IIS、ASP.Net 2.0、および SQL Server 2005 です。

4

6 に答える 6

6

いつものように、認証テストを検証して、送信されたパスワードが空白でないことを確認してください。

ユーザー名があり、パスワードがないバインドは、標準に従って匿名バインドと見なされ、成功したように見えます! 実際には、そうではありませんでした。

これは、アプリケーションが処理する問題です。LDAP サーバーは標準に従っているだけなので、迷惑な標準ですが、それでも標準です。

于 2009-04-19T01:47:37.923 に答える
1

これが私たちのシステムで機能する方法:

  • ユーザーがWebアプリに移動すると、REMOTE_USERサーバー変数がユーザートークンであると見なされます
  • ログインコードは、検索固有のアカウントでldapディレクトリに接続します
  • ログインコードは、REMOTE_USERと「一致する」LDAPアカウントを探します
  • 次に、ログインコードは、そのアカウントをシステム内のアカウントと照合しようとします
  • 完全に一致する可能性がある場合は、一致したアカウントとしてログインしているユーザーを想定し、通常どおり続行します

このようにして、ユーザーはアプリ内でWindowsドメイン認証を再利用できます。

于 2009-09-15T15:09:55.923 に答える
1

JSON -RPC を使用して Web 経由で LDAP ディレクトリにアクセスできる便利なソフトウェアの 1 つを次に示します。

于 2010-08-24T11:11:25.050 に答える
1

アプリケーション内で LDAP ユーザーをアカウントにリンクする方法を決定する必要があります。

たとえば、LDAP システム内のユーザー名がアプリ内のユーザー名と一致することを要求したり、アプリの各ユーザー アカウント内で LDAP ユーザー名を明示的に指定することを誰かに要求したりすることができます。

そのリンクを見つけたら、LDAP バインドを実行して、ユーザー資格情報をテストするだけです。

于 2009-04-17T20:33:40.010 に答える