fastaiのマニュアル読み
pythonjwtを使った認証について
- jwtとは: JSONの文字列としての長さを節約するために、よく使う属性名を予め登録しておいた規格
- これ自体は、表現の形式を定めているだけで、セキュリティ保護は考えてない
- jwsとは: jwtに署名を付けた形式
- 署名がついている = jws中のjwt部分が改ざんされていないかどうかを検証できる
- 以下のような流れでユーザーを認証する
- ユーザーに関する情報(idなど)を含めたjsonを作る
- 自分自身の秘密鍵で上記のjsonに署名を付けてユーザーに渡す
- 再度、ユーザーが訪問した際に、上記のjwsを要求する
- jwsを秘密鍵で検証する → この署名が通れば、jsonの内容が正しいと判断できる
- 上の署名を作成する際に、信頼できる第三者(つまり、その公開鍵をPKIで検証できる人)の秘密鍵で署名を作成→公開鍵で検証、という流れにすれば、第三者が作成した認証に関する情報を信頼することができる