2017-10-06 12 views
0

この質問は、私が何かを正しく理解していることを確認することです。私は現在、複数のページ(同じドメインの下にある異なるSPAを考える)を必要とするウェブベースのアプリケーションを考案しており、1つの唯一の認証ポイントが必要です。クッキーなしでページリクエストを認証する

私は、認証トークンをローカル/セッションストレージに格納することができますが、ページリクエスト(別のページへのリンク、非同期リクエストではありません)は、私が使用している認証方法(Basic、OAuth、JWTなど)に関係なく、Cookieで行うことです。

正しいですか?これは唯一の方法ですか?

答えて

1

広い質問ですが、一般的に答えは「いいえ」と言います。あなたができることはたくさんあります。

「1つの認証ポイント」と言えば、「シングルサインオン」を意味します。シングルサインオンを有効にするシステムはたくさんあります。幅広いレベルでは

、これはそれがうまくいくかもしれない方法です:

  1. ユーザーは、アプリケーションのいずれかになります。
  2. ユーザーは自動的に認証ページ(中央ドメイン上)にリダイレクトされます。
  3. ユーザーはログインし、ログイン情報は(たとえば)LocalStorageに格納されます。これにより、この情報を格納することができます。
  4. シングルサインオンシステムは、ユーザーを元のアプリケーションにリダイレクトし、URLに1回限りのトークンを埋め込みます。
  5. 元のアプリケーションでは、トークンを使用して複数使用トークンを取得します。

これはOAuth2での非常に一般的なフローです。

+0

を見つけてください、単一使用トークンは、私が想定していること、GET(ページ)要求でしたアドレスバーに表示され、スクリプトによってキャプチャされ、より機密性の高い資格情報を非同期的に取得するために使用されます。 –

+0

@PabloBarríaUrendaはい、これは一般的なシナリオです。私はOAuth2仕様書を読むことを強くお勧めします。あなたの問題のほとんどは、この問題について長いこと考えている人々によって解決されています。さらに、既存のOAuth2コードをクライアントやサーバー用にたくさん借りるというメリットもあります。 – Evert

+0

こんにちは、ありがとう。私が賞金の仕組みを誤解したため、私はあなたに50ポイントを与えることができなかったので、私は数時間後にあなたに100ドルをあげます。 –

0

私はいくつかのオプションを知っている:HTTPSと一緒に基本認証を使用することが安全である

  • クッキー(説明を必要としない)
  • 基本的なHTTPの真偽

    を。 認証ヘッダーが要求間で繰り返されるため、資格情報が1回入力されます。 唯一の問題は、醜いブラウザポップアップのJavaScriptによって、またはサーバ側のHTML処理

    例えばすることにより、各リンクにトークン/署名を追加要求する資格情報

  • ありますjQueryの、そのコードが

    $(document.body).click('a', e => { 
        var $a = $(e.target).closest('a'); 
        if($a.length) { 
         e.preventDefault(); 
         document.location = $a.attr('href') + '&token=' + secretToken; 
        } 
    }) 
    

を簡略化されている注意を使用して私が正しく理解してるかどうかを確認するにはgood article explaining available authentification methods here

関連する問題