私はssoに関するいくつかの記事を読みましたが、心の中で答えを見つけることができませんでした。以下のようなシナリオがあります:
シナリオ:
質問:
ユーザーがxyzドメインでページを開こうとすると、システムはユーザーが以前にログインしたことをどのように理解しますか?つまりxyzドメインはjwtを持つabcのCookieに到達できません。 [〜#〜] x [〜#〜]がログインしようとしていることを示すxyzに送信する必要がある情報は何ですか?
前もって感謝します
Iframeを使用してホームページに接続された中間ドメインのcookie/localStorageにJWT認証トークンを保存できます
シナリオ
abcは資格情報をmasterdomainに送信し、masterdomainはユーザーを認証してから署名付きjwtを作成しますabcに送り返すため。
aBCmasterdomainは、このjwtをcookieに保持します。しばらくすると、同じコンピュータでabcにログインしようとすると、システムは資格情報を要求せず、自動的にユーザーにログインします。
最後に、ユーザーが2番目のドメインxyzに入ると、iframeを使用してmasterdomainストレージからjwtが回復され、自動的にログインしますユーザー
[〜#〜] cors [〜#〜]は問題ありません。masterdomain.comがストレージと通信にアクセスできるためです起点と終点が認識されている場合は、iframe間が許可されます( http://blog.teamtreehouse.com/cross-domain-messaging-with-postmessage を参照)
開発を簡素化するために、最近オープンソースプロジェクトとクロスドメインSSOとJWTを https://github.com/Aralink/ssojwt でリリースしました