ユーザーはAuthorization Serverでログインし、クライアントへ渡してよい権限を選びます。クライアントは短時間有効な認可コードを受け取り、安全なバックチャネルでアクセストークンへ交換します。
はじめに / 全体の流れ
このフローで、
何をするの?
このフローのゴール
アプリへパスワードを渡さず、許可された範囲だけAPIを利用できるようにします。
ホテルの受付で本人確認を行い、部屋の鍵ではなく、許可された施設だけに入れる一時的なカードを受け取るイメージです。
クライアントはアクセストークンを使い、ユーザーが同意した範囲のAPIだけを呼び出せます。
登場人物
図では、縦の列ごとに担当者やシステムを分けています。
User
サービスを利用する人です。ログインや同意、端末の操作を行います。
Browser
WebサイトとAuthenticatorの間を安全につなぎ、WebAuthn APIを実行します。
Authenticator
秘密鍵を安全に保管し、生体認証やPINの確認と署名を行う端末機能です。
Relying Party
ユーザーをログインさせるWebサービスです。公開鍵を保存し、署名を検証します。
図の読み方: 光る丸が今説明している通信です。自動再生を止めたいときは「Pause」を押し、気になる矢印を選んでください。
UUserAuthorization Gesture
BBrowserWebAuthn Client
AAuthenticatorPlatform / Roaming
RRelying PartyApplication Server
01
User → Relying Party
UAF操作を開始
このステップで行うことユーザーが登録または認証操作を開始します。
REQUEST / RESPONSE EXAMPLEProtocol operation
REQUEST
POST /uaf/request
Content-Type: application/json
Accept: application/jsonレスポンス
HTTP/1.1 200 OK
Content-Type: application/json
Accept: application/json
{ "status": "accepted" }※ トークン、challenge、Credential IDなどは説明用に短縮したサンプル値です。
Related flows