質問

次の目的を持ったシステムをどのように実装しますか。

  • 認証、許可を管理します数十万人既存のユーザー 現在、サードパーティ ベンダーのアプリケーションと緊密に統合されています (私たちは、これらのユーザーを私たちが管理するものに取り込み、私たちのアプリをそれに対抗させて動作させ、さらにサードパーティ ベンダーもそれに対して動作させたいと考えています)。
  • それらのユーザーにリンクされたプロフィール情報を管理する
  • ほぼすべてのプラットフォーム (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 年間使用しており、ログイン名やパスワードなどを知っていることを知っておくことも重要です。

役に立ちましたか?

解決

認証と認可/プロファイリングには違いがあるため、必ずしも両方を 1 つのツールに強制的に組み込む必要はありません。認証に LDAP を使用し、認可に DB を使用する 2 番目のソリューションは、LDAP データがユーザーによって制御され、DB が管理者によって制御されるため、より堅牢であるように見えます。後者は時間の経過とともに構造と複雑さが変化する可能性がありますが、認証はまさにその認証です。これらの機能を分離すると、より管理しやすくなります。

他のヒント

既存の ActiveDirectory インフラストラクチャがある場合は、それが最適な方法です。これは、すでに認証用に Windows サーバーをセットアップしている企業にとって特に有利です。これが事実であれば、私は「サンプル実装」の最初の箇条書きに注目します。

それ以外の場合は、AD オプションとオープンソース LDAP オプションの間で悩むことになります。

シングル サインオン用に独自の認証スキーマを展開することは現実的ではない可能性があり (特に、膨大な量のドキュメント作成と必要な統合作業を考慮すると)、認証サーバーを、上で実行されているアプリケーションにバンドルしないことは明らかです。システム (そのようなアプリケーションの負荷から独立できるようにしたいため)。

幸運を!

LDAP/AD を認証のみに使用し、ある種の従来のデータベース (MSSQL/PostgreSQL/MySQL) またはドキュメント ベースの DB (CouchDB、SimpleDB など) を使用して、LDAP ユーザーを最も堅牢なプロファイル/承認サーバーに結び付けます。認証には LDAP を使用し、より高度な機能を使用するには DB にアクセスします。

当社には約 10 万人のユーザーがいるさまざまなサイトがあり、それらはすべて通常のデータベースで動作します。ほとんどのアプリケーションがデータベースにアクセスできる場合は、このソリューションを使用できます。

いつでも独自のを実装できます OpenID サーバ。すでにあります OpenID用のPythonライブラリ かなり簡単なはずです。

もちろん、アプリケーション内の他のサーバーによって承認されたログインを受け入れる必要はありません。自分のサーバーによってのみ承認された資格情報を受け入れます。

編集: 見つけました Django での OpenID サーバー プロトコルの実装.

編集2: ユーザーにとって OpenID を実装することには明らかな利点があります。彼らは自分のログイン情報を使用して StackOverflow にログインできるようになります :-)

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top