JWT は JSON Web Token の略です。
JSON はご存知の通り、JavaScript Object Nation つまり、JavaScript のオブジェクト定義に似た書式で文字列としてオブジェクトを表現できます。
JWT は JSON の内容を暗号化し、署名による改ざん防止も行われるので、JSON 内の情報を安全に受け渡しできます。
その性質を利用すれば、IDやユーザー属性も http のヘッダーに含めて安全に送る事も可能です。
JWT は認証プロトコルというより、情報を安全に受け渡し為のフォーマットです。
OAuth2.0と JWTは排他的なものでは無く、OAuth2.0から見れば補完的なもので、
例えば OAuth2.0 の認可フローの中でより安全にに情報を受け渡す為に JWTを使うという実装も考えられます。
ですので「JWT認証」と言ってもサポートするベンダーによって何を意味するかは違います。
例えば、単純にアクセストークンの代わりに受け渡すという事も考えられます。
この場合、トークンの中にユーザー情報を含める事でランダムなトークンの管理をサーバー側で行わなくても済むというメリットが得られます。
結局、OAuth2.0とJWT認証があるサービスでは、大まかにリダイレクトを伴わない認証の事を言っている場合が多いようです。
リダイレクトの持つ意味は、操作ユーザーが本当に正当な人であるかを第三者(リダイレクト先)が検証する意味があるので、
セキュリティ上は OAuth2.0 が高いと言えます。
ただ、バッチ処理のような特定の個人の権限で処理しないものを扱うには、OAuth2.0は簡便ではないので、
そういった用途では、一定の制限のもと実現手段を提供するのは有用だと思います。
Google では、OAuth2.0 以外にも API_KEY と CLIENT_ID が認証に使えます。
これらは、認証にリダイレクト先が不要で JavaScript だけでも実装する事が出来ます。
これらは JWT を使って行われるようですが、Google では JWT認証とは呼んでいません。
| « 前頁 | 次頁 » |