次の目的でシステムをどのように実装しますか。
- 現在、サードパーティ ベンダーのアプリケーションと緊密に統合されている何十万もの既存ユーザーの認証と承認を管理し ます (これらのユーザーを、私たちが管理するものに追い出し、アプリをそれに対抗させ、さらにサード パーティ ベンダーに対抗させたいと考えています)。
- それらのユーザーにリンクされたプロファイル情報を管理します
- ほぼすべてのプラットフォーム (Windows、*nix、PHP、ASP/C#、Python/Django など) 上の任意の数の Web アプリケーションからアクセスできる必要があります。
ここにいくつかのサンプル実装があります:
- すべてを管理する LDAP/AD サーバー。すべてのプロファイル データにカスタム スキーマを使用します。すべてが LDAP/AD に対して認証でき、あらゆる種類の ACL とプロファイル データをカスタム スキーマに保存できます。
- 認証のみに LDAP/AD を使用し、従来のデータベース (MSSQL/PostgreSQL/MySQL) またはドキュメント ベースの DB (CouchDB、SimpleDB など) を使用して、LDAP ユーザーを最も堅牢なプロファイル/承認サーバーに結び付けます。認証には LDAP を使用し、より高度な機能については DB にアクセスします。
- すべてに従来のデータベース (リレーショナルまたはドキュメント) を使用します。
この3つのうち、どれがベストですか?上記の目的に適合し、実装がより簡単な他のソリューションはありますか?
** ユーザー データベースに対して認証を行うほぼすべてのアプリケーションが、私たちの管理下にあることを付け加えておきます。唯一の部外者は、現在のユーザー データベースを削除するアプリケーションと、おそらく 1 つまたは 2 つの他のアプリケーションです。openID サーバーを必要とするほど広いものはありません。
これらのユーザーの多くがこれらのアカウントを 5 ~ 8 年間使用しており、ログインやパスワードなどを知っていることも重要です。