認証

なぜID Tokenにはsub Claimが必須なのか

はじめに 先日ふと ID Token について調べていました。 その ID Token で必須 Claim を見ていたのですが、sub クレームの存在理由があまり腑に落ちませんでした。 ID Token の使用用途を考えた時、sub 属性を活用する場面がないとその時は思ったためで…

OIDCJWTIDTokensub
セキュリティ

Node Crypto、Web Crypto APIを用いてECDSAによる秘密鍵・公開鍵の作成~署名・検証まで行う

はじめに JavaScriptには鍵周りを取り扱うことができるCryptoがあります。 このCryptoを使用することで、共有鍵や公開鍵・秘密鍵を作成できます。 なので今回はCryptoを使用して、以下のことをやっていきます。 秘密鍵・公開鍵の作成 共有鍵による秘密鍵の暗号化 秘…

ECDSACryptoNode
セキュリティ

Auth0のユーザーブロックをリアルタイム検知する仕組みをEvent Streamで作成した

はじめに 以下のような記事が投稿されるなど、認可処理を行うためのサーバーはますます増えていくと感じています。 そして、こういった認可管理を一元化するために、IdP(Identity Provider)を導入するというのは自然なアプローチかなと思います。 また、IdPへの負荷なども…

Auth0EventStream
セキュリティ

npm Trusted Publisherの概要と設定方法のガイド提供と中身の解説

このブログの内容について npm Trusted Publisherの概要と、その利点を説明します。 合わせて、半自動ガイドスクリプト( guide.sh )が実際に行うnpm/GitHub操作に沿って、npm Trusted Publisherを設定する手順を説明します。 ブロ…

npmGitHubActionsOIDCTrustedPublisherCI
認可

OAuthにおけるPublic ClientとConfidential Clientについて

はじめに まずは以下の Authorization Code Flow における、トークンを取得するためのリクエストをご覧ください。 次にもう一つのトークンを取得するためのリクエストをご覧ください。 違いは client secret クエリがあるか、code verifier …

OAuth
認証

OktaでCIBAが用意できない時の代替案について(User Factor API、OIDC・SAML再認証)

はじめに 高リスクな操作(例:高額決済)を実行する前に、ユーザーに承認を求めたいというケースがあります。このようなユースケースで最初に候補に上がるのが CIBA(Client Initiated Backchannel Authentication)です。 CIBAは、操作を開始…

oktacibaauthenticationoidc
認証

OpneId Connectのオプショナルなパラメータ達① ~promptパラメータ~

はじめに ユーザー認証を行うための手段の一つとして、OpenId Connect(以降 OIDC)があります。 OIDC は OAuth の機能を拡張して、認証でも使用できるようにしたものとなります。 この OIDC によって、一つのサーバーで複数アプリ内のユーザーを管理すること…

OAuthOpenIdConnectAuth0
認証

OktaのSWAを体験してみた

はじめに OktaにはSAML、Web Services Federation(WS Fed)、OpenID Connect(OIDC)などのフェデレーションプロトコルをサポートしない外部のWebアプリケーションにシングルサインオン(SSO)の機能を提供するための仕組みがあります…

oktaswaOpenTofu
認証

Device Bound Session Credentials(DBSC)をNext.jsで実装して検証してみた

はじめに 先日以下のツイートを見かけました。 以前記事も書いており、密かに待ち望んでいたDevice Bound Session Credentials(以降DBSC)のオリジントライアルが始まったとのことです。 なので、早速実装してみたのがこの記事となります。 なお、発表したの…

DeviceBoundSessionCredentialsDBSCNext.jsCookie
認可

MCPのAuthorizationについてのプルリクエストを眺めてみて

先日以下のプルリクエストがクローズされました。 MCPのAuthorizationについての改定で、様々な議論がされていました。 その中で今回はDPoPについての議論と個人的に感じたことを書きます。 DPoPとその周辺の概念について DPoPは受け取ったアクセストークンが正当な持…

セキュリティ

OWASPのチートシートを読んでパスワードの保存方法を確認する

はじめに 現在ログインアプリを作成しているのですが、ふとパスワードをハッシュ化する時のお作法は何か疑問に感じました。 そこで今回はOWASPが展開しているパスワード保存についてのチートシートを見ていきます。 私と同様な疑問を感じた方は見ていただけますと幸いです。 でははじめます。…

HashOWASPPassword
認証

NestJSでのStrategyマスターに俺はなる!!!

はじめに 以前NestJS のドキュメントをもとに認証方法を実装する記事をあげました。 もちろん、上記やり方でもいいのですが世の中には passport という便利なモジュールがあります。 これを使えば多種多様な検証を行うことができ、とても有用です。 そこで今回は、ドキュメントか…

NestJSpassport
認可

KeycloakでOAuth2 Token Exchangeをやってみた

はじめに APIを公開したいな、その際に認可の仕組みを導入したいなと思った時の選択肢に挙げられるのがOAuth2.0かと思います。 アクセストークンを発行するための、様々な仕様が策定されておりより多くのケースに対応できます。 今回はその中でも、以下のようなケースでトークンの受け渡…

KeycloakOAuth2OAuth2TokenExchange
セキュリティ

Auth0のToken VaultをAI Agentの文脈から独立して触って感じたユースケースや所感について

はじめに 少し前にAuth0がToken Vaultを発表しました。 私がToken Vaultを見つけたのはAIエージェント関連の文脈だったので、最初はAI専用の機能かと思っていました。 しかし、実際に触ってみるともちろんAIの文脈で使えることは間違いないのですが、必ずしもAI…

Auth0Token Vault
認証

DBSCを理解する個人的最短経路

(今回は短めです) 現在Cookieの盗難対策として、Device Bound Session Credentials(以降はDBSC)という仕様が提言されています。 これは、デバイスに保存した秘密鍵を使い、セッションの発行・更新をデバイスに紐づけることで盗難リスクを低減させる仕…

DBSCCookie
認証

Device Bound Session Credentialsをユーザー認証に組み込んでみた(検証版)

はじめに 最近Xにて、証券系のサイトのセッションの扱いが話題になっていました。 そのやりとりを見て、Device Bound Session Credentials(以降DBSC)の緩和策として使えるのではないかと感じていました。 今回は上記の思いが、本当にあっているかを自分の中…

DeviceBoundSessionCredentialsAuthSessionCookie