開発基盤部会 Blog

開発基盤部会 Blog >> 記事詳細

2018/12/18

フロントエンドの認証が混沌としてきた件について

Tweet ThisSend to Facebook | by nishino
 先日は、「あ」とダケ書かれた状態で本タイトルの記事をリリースしてしまったので、本日、早速記事の内容を書かせて頂きました。

 最近、フロントエンドの認証が混沌としてきています。

具体的には、

  • 一つは、SPAで使っているImplicitフローがそろそろダメっポイのと。
  • もう一つは、Financial-grade API - Part 2で、「JARM」など、色々と仕様が追加されているのですが、その中に「CIBA」なんていうフローが新しく加わって来ています。

などでしょうか。

以下で、其々についてもうチョット詳しく説明したいと思います。

<Implicitフロー代替>

 昔から、主にSPAで使っているOAuth2のImplicitフローは危ないと言われ続けていて、OIDCで安全になったと思われていましたが、Financial-grade API - Part 2でToken Bindingなどの策定も進んできたので、「やっぱ、もっと安全にしよう。」と言う事で、昨今、何だかImplicitフロー非推奨の流れになってきています。

 詳しくは、今後「OAuth 2.0 Security Best Current Practice」というドラフトに書かれていくようですが、現時点では、Implicitフローの代替は、「PKCE + Token Binding + Fragment」になるのではないか?と言われています。

<CIBAってどういうフロー?>

 フローを見ると、RedirectによるOAuthダンスではなく、OAuth 2.0 Device Flow風で、認証用デバイスへの通知にNB(=スマホのプッシュ通知)を使用している感じの仕様っポイです。

 恐らくこのサイトを見ている人は、何かのサイト(MicrosoftアカウントやGoogleアカウント)にログインしようとして、スマホにノーティフィケーションが飛んできて、認可ボタンを押下した経験をお持ちなんじゃないか?と思いますが、アレですアレ。あれがOIDCの拡張仕様に入って来るっポイんです。

 また、これに加えてFIDO2やWebAuthnも一般的になって来ていますので、今回はタイトルを「フロントエンドの認証が混沌としてきた」とさせて頂きました。...が、「フロントエンド自体も混沌としている」気がするので、次回は、「フロントエンド自体も混沌としている」と言う記事でも書こうかと思っています。フロントエンドについて、VB6.0辺りを皮切りに書こうと思います(笑)。

<参考>

マイクロソフト系技術情報 Wiki
12:00 | 投票する | 投票数(0) | コメント(0) | ご報告