OAuth / Connect における CSRF Attack の新パターン

Published on:
Tags:

昨日こんなのが OAuth ML に流れてました。

[OAUTH-WG] Another CSRF attack

前提条件

RP (Relying Party a.k.a. OAuth Client) が2つ以上の IdP (Identity Provider a.k.a. OAuth Server) と連携している状況で、片方の IdP に悪意がある。

  • 悪意ある IdP = AIdP (A は Attacker の略)
  • その他の IdP = HIdP (H は Honest の略)

攻撃フロー

Another CSRF Attack

  1. Victim が AIdP を使って RP へのログインを試みる。
  2. RP は Authorization Request を AIdP に送る。
    • AuthZ Req には Browser Session と紐付いた state パラメータをつけている。
  3. AIdP は Victim を認証し、必要に応じて同意を取得する (ふりをする)
    • 同時に AIdP は裏で HIdP から code を取得する。
    • HIdP の code は Attacker の HIdP 上のアカウントに紐付いているもの。
  4. AIdP は HIdP から取得した code を、RP の HIdP 用 redirect_uri に返す。
    • この時 Step2 で RP が発行した state を付与する。
  5. RP は Browser Session と紐付いた state を検証した上で code を HIdP の Token Endpoint に送る。
  6. HIdP は Attacker のアカウントに紐付いた access_token を返す。
  7. RP は Victim をログインさせる。
    • ここで HIdP 上の Attacker アカウントと RP 上の Victim アカウントが紐づけられる。

そして、Attacker は任意のタイミングで自身の HIdP 上のアカウントを使って、RP 上の Victim のアカウントにログインできる。

防御策

state をリクエスト先の IdP とも紐づけましょう。

FB Message API Callback as an Azure Function

Published on:
Tags:

今日は Azure Function で FB Message API Callback を作ってみます。

Azure Function は、Azure Portal の Marketplace で “Function App” って検索すると出てきますね。

Azure Function in Marketplace

Function App の Deploy がおわったら、QuickStart から “Webhook + API” を選びましょう。

Azure Function QuickStart

以下の様な Node.js のテンプレートアプリが出来上がります。

Azure Function Template

まずは FB Message の WebHook としてこの Function を登録します。

Read on →

Windows Server 2016 版 ADFS を触ってみた

Published on:
Tags:

MVP になったことですし、早速 Azure 常に Windows Server 2016 の VM 立ち上げて、次期バージョンの ADFS を動かしてみました。

想定ユースケースは、Native App とその Backend Server があって、Backend Server が Native App 向けに提供している API 用の Access Token も、ADFS が発行するというものです。

まさしく今後エンプラで増えていくであろうパターンですね。

Setup Hybrid Client on ADFS

ADFS Manager に “Application Groups” っていう設定が増えてるんで、そこから “Native Application and Web API” ってのを選択して、Connect RP (= OAuth Client) を登録します。

New Hybrid Client

スクショいっぱい撮るのが面倒なのですっ飛ばしますが、こんな感じで Native App とその Backend Server を ADFS に “Application Group” として登録しました。

Registered Hybrid Client

ちなみに、この時 Backend には特に Native App と別の client_id が発行されたりはしません。

ここまでで、ADFS 側の準備は完了です。以降、こちらの gist に沿って、Step by Step で見ていきます。

Read on →

Microsoft MVP Award を受賞しました

Published on:
Tags:

2016年度の Microsoft MVP Award を受賞させていただきました。

これもひとえにあんのパパのおかげです。パパは2007年4月 Microsoft 入社ということなので、僕が新卒になったころからの MS エバンジェリストってことっすよ。

通常であればにいさんと呼びたいところですが、今回新たな MVP も産んだことですし、Identity 業界の慣習にならって積極的にパパ呼ばわりしていきたいとおもいます。

また、Award のカテゴリーは “Microsoft Azure” ってなってたので、ふぁらおぅにぃさんが腹ちがいのにぃさんになった感じですかね、きっと。

どこまで今回の MVP Award のカテゴリーにマッチしてるのかはよくわかってないんですが、僕がいま興味あるエリアは AzureAD & ADFS の Connect サポート、Graph API、Windows 10 の FIDO サポートあたりなんで、その辺りでいろいろ遊びながらこのブログとかで記事書いていければいいなと思います。

もちろんエディタは Visual Studio Code で。(まじこいつ起動はえー!Atom より圧倒的に起動はえー!!)

とりあえず Microsoft Edge の FIDO 実装で遊ぶためにも、Surface Pro4 を買わないとですね!

ということで、つい先日 Windows Server 上で新規ファイル作成すらできなくてがく然とした Windows 音痴な僕ですが、今後ともよろしくお願い致しますm m

ps.
新規ファイル作成は、右クリックじゃなく、メモ帳開いて [Ctrl] + [S] な。

独立 & YAuth.jp 設立

Published on:
Tags:

昨日を最終出社日として、GREE 正社員生活を終えました。4月からは独り会社作って独立します。

転職じゃなくて独立で、契約形態変えて GREE さんともお仕事する可能性十分あるので、あまり退職っていう実感はないのですが、これもまぁ一応退職エントリー…ですかね?

新会社での業務内容としては、Identity まわりのコンサルとか技術支援とかをメインでやる予定。

ありがたいことにすでに数件4月以降の仕事依頼もいただいており、気軽に新しい案件受けづらい状況なのですが、もし興味あればご連絡いただければと思います。

ID の専門家として仕事しつづけるとしたら、1社に閉じるより数社の仕事同時にこなす方がいいんじゃないかとか、そういう流動的に動ける人もこの国に数人いたほうがいいんじゃないかとか、そういうのが独立のきっかけとしてあるので、いろんな会社のお話聞いてみたいです。

Read on →