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

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

それでは、タスクに戻ります。
単一の承認が必要な元のプロジェクト(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のパッチを使用する必要があります-自動延長(これについては別のトピックで)
このパッチは、最後のデータアクセス後に同時に自動延長を行います。

Source: https://habr.com/ru/post/J80220/


All Articles