マイクロソフト系技術情報 Wiki」は、「Open棟梁Project」,「OSSコンソーシアム .NET開発基盤部会」によって運営されています。

目次

概要

UserAgent?SPAスマホ)でOAuth2のTokenを取得するベスト・プラクティス
UserAgent?から、直接、Resource ServerのWebAPIにアクセスする)

詳細

SPA

SPA : Single Page Application

Implicitが使用できる。

...が、最近、

が、公式に非推奨になったらしい。

Hybrid Flowでセキュリティが強化される。

Financial API (FAPI)も策定中。

Token Bindingの雲行きが怪しくなっているので、
 PKCE+Fragment みたいな方式はアリかもしれない。

OAuth2.0 DPoP

スマホ

前提条件

Implicitは使用できない。

Hybrid Flowも使用できない。

OAuth PKCEを適切に利用する。

Financial API (FAPI)も策定中。

Token Binding時代の到来。

Financial API (FAPI)

FAPI Part 1

S256のPKCE

FAPI Part 2

...未定...

サマリ

現状では、

#方式Flow認証(BackendからのResourceアクセス)認可(FrontendからのResourceアクセス)
1Web Forms / MVC
1-1Authorization Code Flow
2SPA
2-1Authorization Code Flow
2-2Implicit Flow
2-3Hybrid Flow
2-4PKCE + Fragment
3Native
3-1PKCE

解説

参考

仕様

OAuth 2.0 for Native Apps

OAuth 2.0 Security Best Current Practice

OSSコンソーシアム

OAuth PKCE利用時の構成図

スマホのOAuth PKCE認証フローは複雑で忘れ易く、
開発環境の構築時も「どうするんだっけ?」と一苦労するのでメモ。

Client(UserAgent?)は、

  1. OAuth PKCEの認可リクエスト ~ 認可レスポンスで、codeを入手
  2. codeをClient(Server)にpostしてアクセストークン・リクエスト(PKCE
  3. Client(Server)経由でaccess_tokenを受け取り、
  4. access_tokenを使用してResource Serverにリソースをリクエスト
OAuth PKCE利用時の構成図

※ よくよく見ると、Cordovaと外部ブラウザでSessionが違うので、
 stateもcode_verifierもCordova側で生成・保持しておく必要がある。

※ また、code_challengeは、Server側でcode_verifierを受け取り、
ハッシュ関数(plain or S256)を選択して生成する必要がある。


Tags: :IT国際標準, :認証基盤, :クレームベース認証, :OAuth


トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS