タグ

jwtに関するdelegateのブックマーク (37)

  • 【Go】JWT認証をGinで必要最低限の実装をした - Qiita

    やりたいこと Ginでユーザーログイン機能を実装し、ログインユーザーだけがアクセス可能なエンドポイントをJWT認証を使って実装したい。 JWT認証の仕組み JWTとは JWT認証の仕組み Ginで実装してみる main.go import ( "net/http" "time" "github.com/gin-gonic/gin" "github.com/golang-jwt/jwt/v5" ) func main() { r := gin.Default() r.POST("/login", loginHandler) authGroup := r.Group("/auth") authGroup.Use(authMiddleware) authGroup.GET("/", func(c *gin.Context) { c.JSON(http.StatusOK, gin.H{"messa

    【Go】JWT認証をGinで必要最低限の実装をした - Qiita
  • Auth0 を使って ID Token と Access Token の違いをざっくり理解する | DevelopersIO

    みなさんは ID Token と Access Token の違いを理解していますか? Access Token を使用した保護された Web API を実装する機会は何回かありましたが、理解して使っていたかというとそうではありませんでした。プライベートな Web API にアクセスするときは、Access Token を Authorization ヘッダーに Bearer で渡せばいいんでしょ? ID Token?? の認識で、なんとなく使っていたような状態でした。最近、認証・認可や OAuth 2.0 / OpenID Connect を勉強する機会があり、2 つのトークンの違いについてざっくりと理解できましたので、ブログにしてみました。 このブログでは、OAuth 2.0 / OpenID Connect に対応している Auth0 という IDaaS を使って、この 2 つのトー

    Auth0 を使って ID Token と Access Token の違いをざっくり理解する | DevelopersIO
  • セキュアなトークン管理方法 - Carpe Diem

    概要 クライアント↔サーバ間の認証・認可情報としてのトークン管理はWebサービスとしては必ずつきまとうものですが、一方できちんと実装しないとセキュアに管理はできません。 今回はそのトークン管理方法の一例を紹介します。 要件 今回の主な要件は以下です。 AuthサーバとResourceサーバは別で管理する(負荷特性が異なるので) 認証するとAuthサーバはrefresh tokenとaccess tokenを返す access tokenはJWT形式 access tokenはクライアントのオンメモリで管理する access tokenの期限は短く(1時間以内) refresh tokenを使ってaccess tokenを発行できる refresh tokenはrevoke可能である 認証情報に変更があれば(パスワード変更など)refresh tokenをrevokeできる Resource

    セキュアなトークン管理方法 - Carpe Diem
  • Ginでgin-jwtを使って簡単にAPIに認証機能を実現する | Go言語用ポストイット

    はじめに 前回のエントリ で、API に JWT 認証の仕組みを実現してみました。 それなりのコード量となりましたが、JWT 認証に関わらず認証は多くのサービスで必須といっても良い機能です。 すでにライブラリがありそうだと思って探すとやはりありました。 GitHub - appleboy/gin-jwt: JWT Middleware for Gin framework こちらを使って JWT 認証機能を実現してみます。 gin-jwt ( JWT Middleware for Gin Framework ) とは 前回使ったモジュールである jwt-go を内部で利用しています。 Gin フレームワークの Middleware 機能を利用しており、簡単に導入できます。 また、コントローラロジックと JWT のチェックロジックを切り離して見通しを良くできます。 リクエストフィルタとして J

    Ginでgin-jwtを使って簡単にAPIに認証機能を実現する | Go言語用ポストイット
  • 基本から理解するJWTとJWT認証の仕組み | 豆蔵デベロッパーサイト

    これは、豆蔵デベロッパーサイトアドベントカレンダー2022第8日目の記事です。 JSON Web Token(JWT)の単語を目にすることがよくあると思いますが、それと一緒に認証と認可や、RSAの署名や暗号化、そしてOpenIDConnectやOAuth2.0までと難しそうな用語とセットで説明されることも多いため、JWTって難しいなぁと思われがちです。しかし、JWT自体はシンプルで分かりやすいものです。そこで今回は素のJWTの説明からJWS、そしてJWT(JWS)を使った認証を段階的に説明していきます。 おな、この記事はJWT全体の仕組みや使い方の理解を目的としているため、以下の説明は行いません。 RSAやHMACなど暗号化やアルゴリズムの細かい説明 JWTを暗号化するJWEとJSONの暗号鍵表現のJWKについて OpenIDConnectとOAuth2.0について 記事は上記のような内容

    基本から理解するJWTとJWT認証の仕組み | 豆蔵デベロッパーサイト
  • JWTの署名検証で使う公開鍵をX.509証明書で管理する - Carpe Diem

    概要 JWTをアクセストークンとして利用する場合、署名(秘密鍵)は認証サーバで、署名検証(公開鍵)はリソースサーバで行うのが良いです。 そのため認証サーバは公開鍵をリソースサーバに公開する必要があります。 Googleなどの大規模サービスを見ると、生の公開鍵を公開しているのではなくX.509証明書の形で公開されています。 これは 公開鍵の有効期間が設定できる 公開鍵が改ざんされていない事が分かる なりすましによる公開鍵でないことが分かる 秘密鍵が漏洩した時に失効ができる といったデジタル署名のメリットを享受できるようにと考えられます。 { "4e00e8fe5f2c88cf0c7044f307f7e739788e4f1e": "-----BEGIN CERTIFICATE-----\nMIIDHDCCAgSgAwIBAgIILnkHftPtFMYwDQYJKoZIhvcNAQEFBQAwM

    JWTの署名検証で使う公開鍵をX.509証明書で管理する - Carpe Diem
  • JWT(JSON Web Token)の「仕組み」と「注意点」 - わくわくBank

    eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIn0.iIr5BW1YfvKF3hK9_1tyf-hGvDs7G7mz8j59pOvi2sp5aX6_Zl0upHXLajbLL574UeB6yQqOxDAh0-WUPnqTLJxbtfIDe3Ni1GWcg4pKf9G0QVOw2EK4_PiSJyf1FAIouXrCgDGJRwFXwIRxlPrTfboCCo68hgXFBAMKLcJW7Pc

    JWT(JSON Web Token)の「仕組み」と「注意点」 - わくわくBank
  • JWK(JSON Web Key)クイズ

    この記事は Digital Identity技術勉強会 #iddance Advent Calendar 2022 の15日目の記事です。 ※ 1年ぐらい前に酔った勢いで書いて放置していたものを掘りおこして加筆したものです。クイズといっても単なる間違いさがしなので、気が向いたら暇つぶしにどうぞ。 はじめに JWT好きな方々は、きっとJWKも好きですよね? JWK(JSON Web Key)はざっくり言うと暗号処理で使われる鍵のJSON表現です。RFC7517として標準化されており、JWTの署名検証用の公開鍵のフォーマットとして、Web技術者には馴染みが深いと思います。昨今、OpenID Connect/OAuth 以外でも活用されており、例えば、ここ数年のコロナ禍の中、デジタルワクチン接種証明書の国際標準が突貫で策定されましたが、その2大規格(EUDCC, SMART Health Car

    JWK(JSON Web Key)クイズ
  • JWTの無効化実装例

    こんばんは、ritou です。 今日は JWTの無効化の方法はいっぱいあるよ って話を書きます。 単体での無効化(jti, 文字列全体のハッシュ) これが最も一般的な JWT無効化の方法 と言えるかもしれません。 ちょっと前に話題になった「Stateless」なユースケースにおける無効化できないみたいな話に絡むところでしょう。 The "jti" (JWT ID) claim provides a unique identifier for the JWT. 例えば失効対象の jti のリストを管理することで無効化判定ができるでしょう。 有効期限を持つかどうかにより対象の jti をいつまで保持するか、などの細かい要件は変わります。 これ以外にも、JWTに含まれる claim を利用した検証 ってのは 無効化管理/判定 をしていると言いかえることもできます。 時刻での無効化(iat, ex

    JWTの無効化実装例
  • JWT認証のベストプラクティス 5選

    はじめに JWT(JSON Web Token)は、アプリケーションの認証方法として最も一般的に活用されている。ところが、JWTは完璧な認証方法というわけではなく、時と場合によっては思わぬセキュリティ攻撃を受ける可能性が考慮される。 しかし、JWTを正しく使うことでこれらの欠点を未然に回避できる。そこで、今回の記事ではJWTをWEB開発で適切に実装する上での重要なポイントを3つ紹介する。 最も適切なアルゴリズムを選択する JSON Web Tokenは、Header、Payload、Signatureの3つの部分から構成される。ヘッダーには、トークンの種類と署名アルゴリズムに関する情報が含まれる。 署名のアルゴリズムには種類が数多く存在し、それぞれに特徴がある。例えば、以下のようなものが挙げられる。 HMAC + SHA256(HS256)アルゴリズム:対称型アルゴリズムと呼ばれる。共有し

    JWT認証のベストプラクティス 5選
  • JWTセキュリティ入門

    SECCON Beginners Live 2023「JWTセキュリティ入門」の発表資料です。

    JWTセキュリティ入門
  • ginでAPIサーバを作る - 駆け出したいエンジニアブログ

    ディレクトリをほって初期化する。 モジュール名のところはリポジトリ名にするんだよ、とする情報が多くて、正しいのだけれど、公開しないものであれば別にそのフォルダ名とかでも特に支障はない(たぶん)。 mkdir XXXX cd XXXX go mod init モジュール名 DBを立ち上げるdocker-compose.ymlをかく services: db: image: postgres:latest container_name: postgresql ports: - 5432:5432 environment: POSTGRES_USER: postgres POSTGRES_PASSWORD: postgres volumes: - ./pgdata:/var/lib/postgresql/data - ./pginit:/docker-entrypoint-initdb.d 初期

    ginでAPIサーバを作る - 駆け出したいエンジニアブログ
  • サーバサイドでJWTの即時無効化機能を持っていないサービスは脆弱なのか? - くろの雑記帳

    きっかけ 昨年(2021年9月ごろ)に徳丸さんのこのツイートを見て、「2022年にはJWTを用いたセッション管理に代表される、ステートレスなセッション管理は世の中に受け入れられなくなっていくのだろうか?」と思っていました。 OWASP Top 10 2021 A1に「JWT tokens should be invalidated on the server after logout.」(私訳:JWTトークンはログアウト後にサーバー上で無効化すべきです)と書いてあるけど、どうやって無効化するんだ? ブラックリストに入れる?https://t.co/bcdldF82Bw— 徳丸 浩 (@ockeghem) 2021年9月10日 JWT大好きな皆さん、ここはウォッチしないとだめですよ。これがそのまま通ったら、ログアウト機能でJWTの即時無効化をしていないサイトは脆弱性診断で「OWASP Top

    サーバサイドでJWTの即時無効化機能を持っていないサービスは脆弱なのか? - くろの雑記帳
  • Reactでの認証時にJWTをCookieに設定する方法

    SPAでの認証といえばJWTを使うことが多いと思いますが、 localStorageに保存するとセキュリティリスクが高いとかで、 CookieにHttpOnlyな値として保存するのが良いとしばしば言われることもあります。 今回はReact × ExpressでJWTをCookieに保存する具体的な方法を紹介します。 (そもそもJWTを使うべきかとか、localStorageを使うことのリスクなどについては要件次第なのであまり言及しません) 調査にあたっては以下の記事を参考にしました。 React Authentication: How to Store JWT in a Cookie 記事の方法そのままでは自分の環境では上手くいかなかったので、ハマりポイントも含めて手順を解説します。 最終的に出来上がったもの JWTをCookieに保存する https://github.com/Kanat

    Reactでの認証時にJWTをCookieに設定する方法
  • "JWT=ステートレス"から一歩踏み出すための考え方

    おはようございます、ritouです。 この話に乗っかっていきます。 3行で ログアウト時にJWTを無効化できない実装は今後脆弱性診断で「OWASP Top 10 2021違反」と指摘されるようになりそう(今も個別にされてるかもしれないけど) JWTは単純なフォーマットなので、ステートレスなセッション管理においてログアウトしたときに文字列自体を無効化できない件は独自エンコード方式(一般的にフレームワークのCookieストアと呼ばれているもの)でも起こり得る 「セッションID vs JWTで内包」 以外にも 「セッションIDをJWTに内包」もあり得る。既存の機能を残しつつ「JWTで武装」する選択肢も考えてみてはどうか。 ステートレスなセッション管理でログアウトの際に文字列自体を無効化できない問題 これは前から言われていますし、駆け出し何とか勢のQiita記事に書かれるぐらいには一般的です。 2

    "JWT=ステートレス"から一歩踏み出すための考え方
  • SPAでのログイン認証とCSRF対策の実装(JWT使用) - Web備忘録

    SPA(Vue + RailsAPI)で何とかログイン認証機能 + CSRF対策を実装したので、ブログにメモしておきます。 実装の概要 使用した技術たち JWT(JsonWebToken) アクセストークン、リフレッシュトークンって? WebStorage JWTSession 遷移の概要(より正確な内容は要Gem参照) トークンストアの設定 バックエンド側の仕事 Signinコントローラー フロントエンド側の仕事 axiosのインスタンスの作成 main.jsでインスタンスの読み込み インスタンスの使用方法 ただ、ブラウザによって上手く動作しないものが… 3rd party cookiesとは? 余談 実装の概要 今回は、JWT + (WebStorage + Cookie)を使って実装しました。(後に用語説明します) WebStorageとJWTによるセッションの管理(ログイン状態の管

    SPAでのログイン認証とCSRF対策の実装(JWT使用) - Web備忘録
  • セキュリティ視点からの JWT 入門 - blog of morioka12

    こんにちは、ISC 1年 IPFactory 所属の morioka12 です。 この記事は IPFactory Advent Calendar 2020 の10日目の分になります。 IPFactory という技術サークルについては、こちらを参照ください。 記事の最後に記載されている余談でも IPFactory の詳細を紹介しています。 はてなブログに投稿しました #はてなブログ IPFactory Advent Calendar 2020 の10日目の記事を書きました#JWT #security セキュリティ視点からの JWT 入門 - blog of morioka12https://t.co/g1MYe77hAF — morioka12 (@scgajge12) 2020年12月10日 普段は Web Security や Cloud Security 、バグバウンティなどを興味分

    セキュリティ視点からの JWT 入門 - blog of morioka12
  • SPAのログイン認証のベストプラクティスがわからなかったのでわりと網羅的に研究してみた〜JWT or Session どっち?〜 - Qiita

    SPAのログイン認証のベストプラクティスがわからなかったのでわりと網羅的に研究してみた〜JWT or Session どっち?〜JavaScriptRailsJWT認証React SPAのログイン周りについて、「これがベストプラクティスだ!」という情報があまり見当たらないので、様々な可能性を模索してみました。 いろいろな状況が想定され、今回記載する内容に考慮の漏れや不備などがありましたら是非コメントでご指摘いただきたいです!特に「おすすめ度:○」と記載しているものに対しての批判をどしどしお待ちしております! この記事でおすすめしているものであっても、ご自身の責任で十分な検討・検証の上で選択されてください。 前提 想定しているAPIは、 ログイン外のAPIにはPOST/PUT/DELETEのものがなく、GETのみ GETのAPIにはDBを更新するなどの操作がない とし、そのためログイン外では

    SPAのログイン認証のベストプラクティスがわからなかったのでわりと網羅的に研究してみた〜JWT or Session どっち?〜 - Qiita
  • HTML5のLocal Storageを使ってはいけない(翻訳)|TechRacho by BPS株式会社

    概要 原著者の許諾を得て翻訳・公開いたします。 英語記事: Randall Degges - Please Stop Using Local Storage 原文公開日: 2018/01/26 著者: Randall Degges 日語タイトルは内容に即したものにしました。 画像は元記事からの引用です。 初版公開: 2019/10/19 追記更新: 2024/04/05 -- リンク情報を記事末尾に移動しました 気で申し上げます。local storageを使わないでください。 local storageにセッション情報を保存する開発者がこれほど多い理由について、私にはさっぱり見当がつきません。しかしどんな理由であれ、その手法は地上から消えてなくなってもらう必要がありますが、明らかに手に負えなくなりつつあります。 私は毎日のように、重要なユーザー情報をlocal storageに保存す

    HTML5のLocal Storageを使ってはいけない(翻訳)|TechRacho by BPS株式会社
  • JWTを使った今どきのSPAの認証について | HiCustomer Lab - HiCustomer Developer's Blog

    TL;DR JWTはCookieを使った認証の代わりに使うのはきつい。 コードを静的にホスティングしているSPAの話。 JWTの有効期間を長くすれば危険で、短くすればUXが犠牲になるというトレードオフがある。 AWS AmplifyはlocalStorageにJWTを保存 悪意のあるThird partyライブラリが混ざっていたらJWTを抜かれる。 yarn.lockが依存している全ライブラリを監査することはつらい。 Auth0ではiFrameを活用してメモリ上にJWTを格納できる Auth0いいね😍 まくら Youtubeが大好きなHiCustomerの小田です。ちょっと遅いですが年明け最初のエントリーです。今年もテックブログをよろしくお願いします😎ちなみに、気分がいいので年明けに観ていたYoutubeのエントリーの中で一番おもしろかった動画を紹介します。世界中で有名な「Auld L

    JWTを使った今どきのSPAの認証について | HiCustomer Lab - HiCustomer Developer's Blog