2017-12-10 12 views
0

私の質問のヘッダーにJWTを添付しなければならない場合は、を手動で使用して、JWTを使用してASP.Net Core Webサイトのユーザーを認証するにはどうすればよいですか?JWTを使用してASP.Net Core Webサイトのユーザーを認証する方法は?

つまり、サーバーに要求を送信するときに、ヘッダーにトークンを添付するようブラウザに指示するにはどうすればよいですか。私のウェブサイトのユーザーが私のウェブサイトのAPIからこのトークンを受け取ったとしましょう。

WebAPI(Javadocは手動でリクエストを作成できます)ではJWTしか使用できませんか?

+0

クッキーを使用することからあなたを止めることは何もありません。最も簡単です:JWTを避けてください。 – pvg

+0

@pvg、JWTがウェブサイトで使えるかどうかを知りたいだけです。 –

+0

JWTはトークンベースの認証です。 APIの特定の部分を制限する必要があるときにそれらを使用すると、権限を渡す方法が提供されるので、毎回データベースを呼び出して、ユーザーXがページYを見る権限を持っているかどうかを確認する必要はありません。ログイン時にそのトークンを生成し、使用する必要があるコールごとに...そのトークンには有効期限切れの時間があります。再利用することはできません。単なるWebページであれば、セッションなどの簡単なメカニズムを使用できます。 – balexandre

答えて

2

JWTトークンを使用するさまざまな方法があります。 JWTは単なるトークン形式なので、認証に使用されるメソッドを暗示します。

しかし、JWTはベアラ認証方式に主に使用されます。これは、各要求にカスタムヘッダーを追加する必要があります。 APIエンドポイントにアクセスするためにクライアント上のJavaScriptでリクエストを作成するシングルページアプリケーション(SPA)を使用すると、Bearer + JWTがSPAで多く使用される理由があります。 SPAは、有効期限やその他の情報(トークンに埋め込まれたクレーム、OpenID Connectなどで取得されたIDトークンの内容)を読み取ることができるため、埋め込みJSON形式のメリットもあります。

"従来の"サーバーレンダリングビューやリンクの場合、JWTを使用するのはクッキーとして設定するか、URLの一部にする必要があるため難しいです(実際にはURLの長さの制限のため不可能です)。 ASP.NET Core 2.0にはJWTベースのCookieロジックは含まれていませんが、JWTをCookieとして使用してカスタム実装を作成することは可能です。サンプルの実装については、this GitHub projectおよび関連するblog postを参照してください。 Cookie認証でJWTを使用する唯一の利点は、サーバーがCookie情報を保持して複数のインスタンスにCookieを共有する必要がないことです。現在の状態までの合計に

:カスタムクッキーの実装を作成しないように、サーバー側のレンダリングやリンクを使用する場合

  • は、デフォルトのCookie認証を好みます。
  • クライアント上のjavascript/typescriptでリクエストを作成するシングルページアプリケーション(SPA)アプリがある場合は、JWTベアラ認証を使用することをお勧めします。
関連する問題