pyjwt の classjwt.exceptions.ImmatureSignatureError エラー対応にはまる

2020.07.01 Wednesday 01:27
0

    pyjwt の classjwt.exceptions.ImmatureSignatureError エラー対応にはまる。

    jwtには
    ・iatは最初にjwtが発行された時間
    ・nbf 有効となる開始時刻
    ・exp 有効期限
    の時間があるって、nbfより後ろの時間かつ、expより前の時間の場合にそのjwtは有効となるのだが
    refreshトークンを取得すると、nbf、expは新しくなるのだが
    iatは最初にjwtが発行された時間のままであるため、
    nbfによる検証がある状態で、jwt.decode するとエラーになってた。

     

    よってリフレッシュトークンのdecode時は、
    options = { 'verify_nbf': False }
    jwt.decode(jwt, jwt_secret, options=options , algorithms=...
    のように、nbfを検証しないオプションを付与することでエラー回避できた。

     

    それにしても、classjwt.exceptions.ImmatureSignatureErrorというエラーがわかりずらかったよ。
    エラーメッセージだとわかりにくくて、jwtの中身みないと解析できんやん
     

    category:jwt | by:ittoocomments(0) | - | -

    SSOフロー

    2020.03.29 Sunday 16:18
    0
      sso全体フロー
      1 ユーザはログイン画面で認証情報(user_id, password)入力。ログイン機能はその情報を認証サーバに送信する。
      2 認証サーバは認証情報が正しいことを確認し、秘密鍵を使って署名された JWT(user_id、expiration_dateを含む)を発行する。
      3 ユーザは、ログイン後画面へアクセス(localstorageにJWTが保存された状態)
      4 ログイン後画面 or 各システムは、アクセスがあったクライアントのJWTを取得し、検証する。
      5 4の検証結果が正しければ、各システムへのアクセスを承認する。
      category:jwt | by:ittoocomments(0) | - | -

      JWT認証についてメモ

      2020.03.29 Sunday 13:16
      0
        ■1 JWTとは
        JWT(JSON Web Token)は、署名の出来るJSONを含むURL Safeなトークン。
        情報をすべて内部に格納し、検証可能。属性情報をJSONデータ構造で表現しRFC 7519 で標準化された仕様。


        ■2 JWTの特徴
        1 署名されているため改ざんをチェック可能
        2 URL Safe (URLに含むことができる文字のみで構成)
        3 実際のデータはJSON文字列となる(暗号化ではないので誰でも見ることが可能)


        ■3 JWTの構成
        JWTはピリオド(".")区切りのHeader、Payload、Signatureから構成。
        各部位はBase64URLエンコードされている。
        1 Header
        署名のアルゴリズムなどJWTを取り扱うために必要なパラメーターを含む
        2 Payload
        ユーザー識別子や認証時刻などユーザーの認証情報のパラメーターを含む
        3 Signature
        HeaderとPayloadから生成された改ざん防止のための署名。
        Base64URLエンコードされたHeader + "." + Payload(ピリオドで連結) を入力値として署名した結果をBase64URLエンコードした文字列


        ■4 検証フロー
        JWT検証機能を各システムに組み込む。(ページ読み込み時に最初に呼ぶ)
        JWT検証機能での検証フローは以下となる。
        1 JWTを「.」(ドット)で区切り、header部、payload部、signature部の3つへ分割。
        2 分割したheader、payload、signatureをbase64urlでデコード
        3 確認1 headerから署名アルゴリズムを確認
        4 確認2 生成した値とシグネチャー部の文字列が一致することを確認
        5 確認3 有効期限内であることを確認
        6 確認4 iatの時間を確認

        ・確認1〜2の手順において検証に失敗する場合は、改ざんされている可能性があるため認証処理を中断し、エラー処理
        ・確認3〜4の手順において検証に失敗する場合は、有効期限切れや認証時刻が過ぎているため認証処理を中断し、再度Token取得処理
        ・上記の検証がすべて正しく行えた場合のみ対象のサービスを認証とし、必要に応じて各パラメーターの値を利用する


        ■他 JWTとセッションとの違い
        セッションを使うことにより、JWTと同様のことが可能であるが、
        JWTの場合は、トークンそのものを検証することで認証可否を判断するため
        サーバー側でデータを持つ必要がない。(セッションとは異なる)
        よってトークンを発行したホストと、トークンを検証するホストが異なる場合でも検証可能

        category:jwt | by:ittoocomments(0) | - | -

        ad
        Calender
           1234
        567891011
        12131415161718
        19202122232425
        262728293031 
        << July 2020 >>
        Selected entry
        PR
        Category
        Archives
        Recent comment
        • パス指定 SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 2-4: truncated ¥xXX escape
          久米隆文
        • 円マークが自動変換されてる
          aaaaaa
        • マクドナルドでYahoo BBモバイルポイント 公衆無線LANサービスがつながらない
          66hills
        • マクドナルドでYahoo BBモバイルポイント 公衆無線LANサービスがつながらない
          ssd
        • マクドナルドでYahoo BBモバイルポイント 公衆無線LANサービスがつながらない
          max
        • マクドナルドでYahoo BBモバイルポイント 公衆無線LANサービスがつながらない
          DOM
        • マクドナルドでYahoo BBモバイルポイント 公衆無線LANサービスがつながらない
          DOM
        • コンピュータ業界の根本的な変化
          cloud
        • コンピュータ業界の根本的な変化
          Dellの仮想化
        • マクドナルドでYahoo BBモバイルポイント 公衆無線LANサービスがつながらない
          えちごや
        Recent trackback
        • スマートフォンの法人活用例
          無線LANネットのブログ
        • Yahoo!オークションからのアフィリエイト収入が一気に70%減になってしまい涙目になってる話
          特選情報
        Recommend
        Link
        Profile
        Search
        Others
        Mobile
        qrcode
        Powered
        無料ブログ作成サービス JUGEM