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

目次

概要

Implicit非推奨に伴い、SPAPKCEする場合のプロファイル。

詳細

特徴

  • カスタムURLスキームを使用しない
    「response_mode=fragment」で認可リクエストを行う。
  • 従って、基本的には、ネイティブでやってたPKCEを、
    「response_mode=fragment」で、まんまSPAで実装すれば良い。

※ IdPが「response_mode=fragment」に対応している必要がある。

実装

認証

  • PKCEなので、SPAからのTokenリクエストでも、client_secretは不要。
  • JavaScriptから基本認証の付加は難しいので、
    AuthZ(N)側が client_secret_post をサポートしていると吉。
    (そもそも、client_secret無しの基本認証ってのもアレ)

フロー

基本的に、ネイティブ・アプリケーションと同様に、
フロントエンド・ホスト側のエンドポインドは利用しなくていい。

  • 認可リクエストはフロントエンド・ホストからリダイレクトで開始するのだと考えていたが、
    • しかし、Routerを定義したSPAでは、自サイトにHTTPリクエストが飛ばず、
    • ネイティブ・アプリケーションと同様に、Public Clientから直接リクエストした。
  • リダイレクト・エンドポイントを経由してCodeを受け取るのだと考えていたが、
    • しかし、Routerを定義したSPAでは、自サイトにHTTPリクエストが飛ばず、
    • カスタムURLスキームと同様、直接、Public Clientに戻ってCodeを取得する。

※ Router(URLによるページ遷移)を定義したSPAでは、
 自サイトにHTTPリクエストが飛ばなくなる。と言うのがポイント。

余談

バックエンドからclient_secret付きでTokenリクエストにするものと思っていたが、

  • 以下を確認すると、client_secretは不要らしい(SPA上からTokenリクエスト可能)。
  • 一方で、Hybrid Flowのcodeは
    バックエンドからclient_secret付きでTokenリクエスト(code_verifier無いから)。

参考

Okta Developer

Auth0


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


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2020-05-12 (火) 10:55:11 (58d)