OAuth

"OpenID Connectは認可のための仕組みであるOAuth 2.0を認証のために拡張したもの" という表現が気になったが実は...

ritouです。 あることがきっかけで、これが気になりました。 10年間で熟成されてしまった感のある「OIDCはOAuth 2.0を"認証もできる(認証用途に利用できる)ように"拡張した」っていう表現だが、プロトコルの解説にあたってもその流れでやられるとモヤるとこ…

え? OAuth 2.0 の Access Token も JWT じゃなかったの?と思っている皆さん

こんばんは、ritou です。 パスキーの記事ばっかり書いてないでたまにはOAuthのことも取り上げましょう。 OAuthのAccess Tokenについて少し復習してみましょう。 OAuthのAccess Token ってJWTじゃないの? これについては、我らが Auth屋さん がお話しする会…

GNAP超入門 ~ OAuth 2.0との違いとは

こんばんは、ritouです。 この記事はDigital Identity技術勉強会 #iddance のアドベントカレンダー 初日の記事です。 今年も張り切っていきましょう。 qiita.com さて先日、Internet Week 2021なるもののために GNAP についてお話する機会がございました。 s…

OAuth 2.0等のRFC番号が飛び交う会話についていくためのカード [PR]

こんにちは、ritouです。 私は以前からこういうTweetをしていました。 エヴァンジェリストたるもの、日頃の研鑽を欠かさないのである… pic.twitter.com/5moTCOe6CF— 秋田の猫 (@ritou) 2019年1月4日 このような日々の努力の結果、いわゆる「RFC番号が飛び交…

ID連携の標準化仕様紹介とセキュアな実装のためのアプローチ ~ 2021

おはようございます ritou です。 久々に「解説付きスライド全公開」的なやつをやります。 先月、チーム内でID連携のための標準化仕様に関する勉強会(私が一方的に話す会)を行いました。 が、実際はだいぶグダグダになってしまい、これはその後色々付け足し…

OAuth認証とは何か?なぜダメなのか - 2020冬

こんばんは。ritouです。 Digital Identity技術勉強会 #iddance Advent Calendar 2020 1日めの記事です。 qiita.com 初日なのでゆるふわな話をしましょう。 何の話か もうだいぶ前ですね。9月のお話です。こんなTweetを見かけました。 社内Slackにいる「OAut…

OIDC CIBA の拡張として OAuth 2.0 Device AuthZ Grant を使う仕様を考えてみた

おはようございます。ritou です。 なんか急に寒くなりましたね。私は先週末、風邪をひきました。 何の話? OpenID Connect の CIBA と OAuth 2.0 Device AuthZ Grant は手元の端末を用いてユーザーがID連携やリソースアクセスを許可することから似ている面…

「ID TokenをAuthorization Headerにつけて送る」というお作法について思うところ

こんばんは、ritouです。 ID Tokenがやりとりされている背景 ちょっと前にこんな話がありました。 blog.ssrf.in この id_token が JWT になっていますので、これを Authorization: Bearer $ID_TOKEN というヘッダにして oauth2-proxy で保護されているアプリ…

JWT+RDBを用いたOAuth 2.0 ハイブリッド型トークンの実装例

おはようございます、ritouです。 (⚠️認可イベントの識別子のあたり、ちょっと見直しました!最初に見ていただいた方はもう一回どうぞ!) 前回、ハイブリッド型と呼ばれる OAuth 2.0 のトークン実装について書きました。 ritou.hatenablog.com その続きとし…

OAuthのハイブリッド型アクセストークン実装に関するあれこれ

おはようございます。ritouです。 先日オンラインで開かれたAuthlete社の勉強会で、アクセストークンの実装パターンについて触れられていました。 www.authlete.com (titleはもうちょっとなんとかする方が良さそう) ドキュメントでいうとこの辺りでしょうか…

OIDC CIBAのようなDecoupled AuthZ/AuthNプロトコルでリスクベース判定したくない?

おはようございます。ritouです。 OAuth 2.0 の Device Flow(RFC 8628) や OpenID Connect Client Initiated Backchannel Authentication Flow(いわゆるCIBA)、XYZ/XAuthといった次のOAuth候補みたいなプロトコルでは次のような流れがサポートされています。…

OAuth 2.0/OIDCに入門した開発者が仕様沼に潜るための次のステップとは?

お疲れ様です、ritou です。 OAuth 2.0やOIDCの入門書(?)を読み終えた開発者の方に、仕様を理解していくための次のステップは何があるかを聞かれました。 そもそもそんなこと言う人は クライアントを実装したい(しなければならない) 認可サーバーを実装した…

ID連携におけるCSRF対策のチェック方法

こんばんは、OAuth‍♂️です。 緊急事態宣言、外出自粛、みなさまどうお過ごしでしょうか? お家に高い椅子と4KディスプレイとYouTuber並みのマイクを準備し、ようやくOAuth/OIDCを用いたID連携機能の実装に手をつけられるようになった頃かと思います。 本日は…

OAuth 2.0 / OpenID Connect の Hybrid Flow への向き合い方

ritouです。 OAuth 2.0 / OIDC を触って「そろそろ完全に理解したって言っちゃおうかな」なんて思った時に出会ってしまうのが Hybrid Flow です。 某書籍のレビュー時に Hybrod Flow について著者といくつかやりとりをしたのですが、なんだかんだで結構やや…

怖くないネイティブアプリケーションにおけるID連携機能を実装するための考え方

おはようございます、ritou です。 qiita.com 3日目です。やっていきましょう。 ネイティブアプリのID連携 「今年の汚れ今年のうちに」なんていうフレーズがあります。 記憶が確かではないですが、たしか 7 月ぐらいにどこかの決済サービスによりネイティブ…

OAuth 2.0/OpenID Connectで使われるBindingの仕組みについて整理する

おはようございます、OAuth警察を装っている ritou です。 qiita.com 認証認可技術 Advent Calendar 2019 2日目の記事です。 今日もやっていきましょう。 (2020/3/9追記)本投稿の内容をさらにわかりやすく整理された本を @authyasan さんが書かれています。 …

Transactional Authorization - "XYZ"と呼ばれる認可プロトコルとは

おはようございます、ritouです。 今回はTransactional AuthorizationとしてIETFにDraftが提出されている仕様に注目します。 draft-richer-transactional-authz-02 - Transactional Authorization ⚠これはOAuth 2.0の特定の脆弱性を防いだりするために作られ…

OAuth 2.0 / OpenID Connectにおけるstate, nonce, PKCEの限界を意識する

おはようございます、ritouです。ちなみに予約投稿なのでまだ寝てます。 本日のテーマはこちらです。 OAuth/OIDCのstate,nonce,PKCE使ってもClient/RPがしょーもなかった場合のServer/OP側の限界についてのブログ書いてる。— 秋田の猫 (@ritou) July 6, 2019…

SPAなClientがトークンを安全に扱えるかもしれない拡張仕様「OAuth2.0 DPoP」とは

おはようございます、ritou です。 今日は日頃の情報収集方法の一つである Mike Jones氏のブログ記事に書いてあったドラフト仕様のご紹介です。 self-issued.info The specification is still an early draft and undergoing active development, but I beli…

ファーストパーティーなアプリが使うOAuth/OIDCについてのお話 2019 春

夜分遅くに失礼いたします。ritouです。 こういう記事を読むとうずうずします。おそらく病気です。 terut.hatenablog.com 森羅万象を担当しているわけではないので、OAuth/OIDCが使えんのか?って観点から書いておきます。 ファーストパーティーのOAuth/OIDC…

OIDC Client Initiated Backchannel Authentication Flow (CIBA)とは - 概要編

ritouです。 今回ご紹介する仕様は、OpenID Connect の Client Initiated Backchannel Authentication Flow(CIBA) でございます。 openid.net OpenIDファウンデーションの MODRNA WG でただいま絶賛 Public Review 中の一品であります。 Public Review Perio…

OAuth 2.0 の Implicit grant 終了のお知らせ

おはようございます。 月曜です。 ritouです。 先週、こんな記事出てました。 Why you should stop using the OAuth implicit grant! もう Implicit grant 使ってくれるなよ 仕様策定中の OAuth 2.0 Security Best Current Practice(今はDraft9) で使用しな…

Authlete の OAuth 2.0 / OIDC 実装ナレッジ 完全に理解した

お疲れ様です。ritouです。 OAuth 2.0 / OIDC 実装の刺激が欲しくなったので(?)、Authlete 社が公開しているナレッジサイトの OIDC / OAuth 2.0 に関する部分を読むことにしました。 kb.authlete.com この記事は、OAuth 2.0 / OIDC を完全に理解した上で Aut…

FAPI : JWT Secured Authorization Response Mode for OAuth 2.0 (JARM) とは

ritou です。 みんな大好きJWT。今日もみんなで eyJ!ということで、今回はこちらの仕様について説明します。 openid.net 概要 This document defines a new JWT-based mode to encode authorization responses. Clients are enabled to request the transmis…

The Introduction of OAuth WRAP vol.2 : JavaScript Profile on FriendFeed

今回はJavaScript Profileの方の流れを見ていきます。 まだ仕様出てきてるわけでもないので、サンプルを参考にサンプルを作ってみると。 http://developers.facebook.com/news.php?blog=1&story=350 http://open.lukeshepard.com/oauth-wrap/console/ 今回も…

The Introduction of OAuth WRAP vol.1 : Web App Profile on FriendFeed

OAuth WRAPって知ってますか? http://developers.facebook.com/news.php?blog=1&story=350 http://bret.appspot.com/entry/oauth-wrap OAuth / OAuth WRAP Google グループ OAuth WRAP - Codin’ In The Free World まだ仕様を細かい部分まで読めてないのと…

OAuth for Mobile - Yahoo! JAPAN, Googleの実装 -

Yahoo! JAPANのOAuthがmobile対応していることをご存知でしょうか? Tech Blogに担当者のエントリが出ています。モバイル版OAuthの便利な活用方法 - Yahoo! JAPAN Tech BlogOAuthはブラウザでユーザーがConsumer Appに対して認可をすることで、Web/Clientを問…

PHPを読んだことある人のためのOAuthのSignature解説

今回はOAuthのお話です。 なんとなく、世の中に出回っているライブラリを使わず、OAuthの機能を独自で1から作りこむ人もけっこういるような気がします。 今回はPHPのOAuthライブラリを用いて、HMAC-SHA1のSignatureを作成するときのロジックを見てみます。…

gooホームのOAuth対応から今後のOpenSocial Gadgetを考える

■ gooホームのOAuthリクエスト実装 「goo Social Platform」にOAuthリクエスト機能を追加 - 「goo」の広報ブログ「gooの音」 gooホームガジェットからOAuthが利用できるようになりました! - gooホーム Developer's Recipe http://developer.home.goo.ne.jp/…

OpenSocial Signed Requestライブラリ(PHP)は便利ですよ!

http://devlog.agektmr.com/ja/archives/597 OpenSocialのSigned Requestは、ガジェットからの外部通信リクエストに署名を付けることで、パラメータの内容が改ざんされていないかを検証可能にする仕組みです。 一般に2-legged OAuthやSigned Request、OAuth …