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

目次

概要

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

詳細

SPA

SPA : Single Page Application

Implicitが使用できる。

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

  • codeやtokenのscope(認可された権限)を変える。
    Financial API (FAPI)では、token:参照系、code:更新系などとなっている。
  • 入手したcodeはClientのServer側にポストして使用する。
    ※ Publicクライアントにclient_id、client_secretを持たせてはダメなので。

Financial API (FAPI)も策定中。

スマホ

前提条件

  • codeとtokenが、「Private-Use URL Scheme上書き攻撃」などから保護されない可能性がある。

Implicitは使用できない。

Hybridも使用できない。

OAuth PKCEを適切に利用する。

  • これにより「Private-Use URL Scheme上書き攻撃」などから保護される。
  • 入手したcodeはClientのServer側にポストしてアクセストークン・リクエストする。
    ※ Publicクライアントにclient_id、client_secretを持たせてはダメなので。

response_typeにcodeやtokenを利用できる可能性。

  • これを利用することで、codeとtokenが完全に保護されるのであれば、
    response_typeにcodeやtokenを利用することもできるかも。

Financial API (FAPI)も策定中。

Financial API (FAPI)

  • 金融向け規格なので、前述よりさらにセキュリティ・レベルが強化される。
  • 現時点では、まだドラフト段階だが、スマホ、SPA、共に、この規格の導入を検討してイイ。

参考

仕様

スマホ向けベストプラクティス (RFC 8252 ... OAuth 2.0 for Native Apps)

認可コード横取り攻撃への対抗策 (RFC 7636 ... OAuth PKCE)

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


添付ファイル: filePKCE Flow.jpg 87件 [詳細]

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2018-10-09 (火) 22:19:57 (8d)