私の会社は、何百もの顧客を持つ SaaS アプリケーションを開発および販売しています。一部のお客様から、従業員ごとに別のログイン アカウントを作成する代わりに、既存のシステムに対してユーザー アカウントを認証するための LDAP 統合をサポートしてほしいという要望がありました。これは、多くの場所でシングル サインオン (SSO) と呼ばれているようですか? 当然のことながら、当社のシステムには、ユーザー アカウント プロファイルを維持し、ログイン ページからそれらのユーザー アカウントを認証するためのメカニズムが既に備わっています。
私たちは LDAP について少し無知で、いくつかのことについて混乱しています。間違った用語が使用されている可能性があることをご容赦ください (私たちはこれについて少し無知であることを思い出してください)。
これがどのように機能するかの基本を理解していると思います。
- 当社の顧客は、アカウントの「リモート認証」機能を「オン」にするようにアカウントを構成します。ユーザーを認証するリモート URL を提供します。
- ユーザーはログイン ページにアクセスし、会社の LDAP システムから提供されたユーザー名とパスワードを使用してログインを試みます。
- 当社のログイン ページは、ログイン資格情報 (おそらく合意された形式で暗号化およびハッシュ化されたもの) を、お客様から提供された「リモート認証」URL に安全に転送します。
- 顧客のスクリプトはユーザーを認証し、「認証ステータス」を使用してサイトにリダイレクトします。
- 私たちのページは「認証ステータス」を分析し、ユーザーがログインしているかどうかを受け入れます。
上記の情報が半分正しいと仮定しても、各ユーザーがシステムにアカウントを持っている必要があります。ユーザー アカウント プロファイルを LDAP ディレクトリ内のユーザー プロファイルと同期させる何らかの方法が必要ではないでしょうか? これは、LDAP システムでユーザーの ID を参照する単なる「外部 ID」ですか? その場合、顧客の「リモート認証」スクリプトがその ID をシステムに提供して、システム内のどのユーザー アカウントにログインを関連付けるかを知る必要がありますか?
何が欠けていますか?
ところで、私たちのプラットフォームは IIS、ASP.Net 2.0、および SQL Server 2005 です。