33

Googleがシングルサインオンの次のメカニズムをどのように実現するのかわかりません。

  1. たとえば、Gmailでログインします(これにより、認証されたCookieが作成されると思います)
  2. 新しいタブを開き、「youtube」のURLを直接入力します
  3. 次に、ログインしているyoutubeに入ります。

この2番目のサイトは、私がすでにログインしていることをどのように検出できますか。これらは異なるドメインです。YoutubeはGmailのCookieを読み取ることができません。

シングルサインオンについて読んだすべてのソリューションでは、これは許可されていません。クライアントは常に中央ログインアプリへのアクセス許可を求めます。私の例では、YouTubeは私がGmailにログインしているのと同じユーザーであることを知りません(実際には知っていますが、方法がわかりません)

「youtube」のURLを手動で入力していることに注意してください。Gmailの上部ツールバーからYouTubeアイコンをクリックしません(その場合、GmailはたとえばURLを介していくつかの認証パラメータを渡す可能性があります)。

4

5 に答える 5

5

Cookie と localStorage は、中間ドメインを使用してドメイン間で共有できます。ホームページには、Cookie にアクセスしてメッセージをメインに送信する「iframe」が埋め込まれています。

mail.google.comyoutube.com使用して Cookie を共有できます accounts.google.esChrome->Inspect->Resources->Local storage を開くとaccounts.google.com、JWT 形式の認証トークンが表示されます。

この回答で技術的な手順を詳しく説明しました: https://stackoverflow.com/a/37565692/6371459。また、https://github.com/Aralink/ssojwtを参照して、中央ドメインで JWT を使用したシングル サインオンの実装を確認してください。

于 2016-05-24T05:53:33.050 に答える