ASP.NET Identityをしばらく使用しましたが、JWT(JSON Web Token)は非常に興味深く、使いやすいように見えていました。
JWT.IO には、トークンのデバッグの優れた例/ツールがあります。
ただし、バックエンドでJWTがどのように機能するかは完全にはわかりませんが、引き続きIdentityを使用しますか?
また、トークン(ベアラーとJWT)はどのように比較されますか?どちらが安全ですか?
JWTはアトラクションへのチケットのようなものです。サーバーに必要なすべてのセキュリティ情報が埋め込まれています。サーバーがそれを渡すと、クライアントは何かを要求するたびにそれを提示する必要があり、サーバーはそれが有効であればそれに応じて応答します。
コンテンツは完全に閲覧可能ですが、サーバーによって秘密キーを使用して署名されているため、改ざんされたかどうかを確認できます。
すべてがJWTにあり、クライアントが必要な人に提示できるため、異なるサーバーが同じ秘密を共有して署名を検証できる限り、シングルサインオンに使用できます。
チケットのように、JWTには有効期限があります。有効期限が切れていない限り、有効です。これは、その前にそれらを取り消すことができないことを意味します。このため、JWTの有効期限は短い(30分程度)場合が多く、JWTが期限切れになったときにすばやく更新するために、クライアントにもリフレッシュトークンが発行されます。
JWT
ベアラートークンはゲストリストのようなものです。サーバーはクライアントをゲストリストに追加し、必要なときにクライアントを識別するためのパスコードを提供します。クライアントがコードを提供すると、サーバーはそのコードをリストで検索し、要求されていることを何でも実行できることを確認します。
サーバーはリストを利用できるようにする必要があります。そのため、サーバー間でアクセスを共有する場合は、すべてのサーバーがリストにアクセスできる必要があります(データベース)か、リストを保持している機関(認証サーバー)と通信する必要があります。
一方、ゲストリストを持っているので、いつでも好きなときにリストから外すことができます。
ベアラートークン
Bit of Techには、Web ApiでJWTを実装するための優れたチュートリアルがいくつかあります。
残念ながら、前の答えは誤解を招く可能性があります:ベアラートークンは、OAuth 2.0。 Bearer Tokenは不透明な文字列であり、それを使用するクライアントに対して意味を持たない。一部のサーバーは16進文字の短い文字列であるトークンを発行し、他のサーバーはJSON Webトークン。( https://oauth.net/2/bearer-tokens/ )