自転車:独自のプロジェクトのクロスサイト認証

それは多くのこと、そして長い間、例えばポストで議論されました...私はクロスサイト認証バイクを実装しました。



それでは、タスクに戻ります。

単一の承認が必要な元のプロジェクト(project1、project2、projectN ...)がいくつかあります。 つまり、プロジェクトproject1にログインしているユーザーは、承認されたユーザーとしてproject2 ... projectNのリソースにアクセスできました。



原則として、そのようなプロジェクトは単一のホスティングにあり、共通の(単一の)登録を持っていることが望ましいです。 そのため、これらの条件が満たされている場合、以下に説明するソリューションはプロジェクトを継続できます。



制限 :すべてのプロジェクトは同じデータセンターにあり、同じローカルネットワーク上にあります。 すべてのプロジェクトには、セッション用の単一のリポジトリがあり、それに応じて単一のsidがあります。



私たちは次のことに同意します:





ロギング






ログイン






別のプロジェクトからの承認






出口


memkeshでキーを殺すか、彼が死ぬ



余計な質問ではない


しかし、「見知らぬ人」があなたのsidを使用してproject1.com/signin/#sidにログインすることを決定した場合はどうなりますか



はい、可能です...通常のsidが保存されているcookieを傍受するのと同じ確率で、urlのsidを傍受できます。



おわりに


統合登録システムは、ユーザーがsso.comに登録することを前提としています

sso.comのデータアクセスには、どのプロジェクトからでもアクセスできます。 承認との類推による登録中のすべての遷移、URLのみが異なります:sso.com/registration/project1(project1は、登録を表示するデザインと登録後にユーザーを返す場所を示します)



sso.comのデータは、キー/値データベース(BerkleyDBなど)に格納できます(必ずしもそうである必要はありません)。



PS。 ログインフォームに頻繁に表示されないようにするには、memekeshのパッチを使用する必要があります-自動延長(これについては別のトピックで)

このパッチは、最後のデータアクセス後に同時に自動延長を行います。



All Articles