17. 17
Authlete API: プロトコル処理とトークン管理
Resource
Owner
User Agent Client
Authorization
Server
Resource
Server
(スタート)
(OAuth) 認可リクエスト
(OAuth) 認可レスポンス
(OAuth)
トークン
リクエスト
(OAuth)
トークン
レスポンス
(OAuth)
API
リクエスト
(OAuth)
API
レスポンス
ユーザー認証?
アクセス承認
Authlete API
認可リクエスト
処理
認可コード生成
トークンリクエスト
処理
アクセス
トークン
検証
/auth/authorizationPOST
/auth/authorization/issuePOST
/auth/tokenPOST
/auth/introspectionPOST
18. 18
FAPIモード有効化による主な変更点
Resource
Owner
User Agent Client
Authorization
Server
Resource
Server
(スタート)
(OAuth) 認可リクエスト
(OAuth) 認可レスポンス
(OAuth)
トークン
リクエスト
(OAuth)
トークン
レスポンス
(OAuth)
API
リクエスト
(OAuth)
API
レスポンス
ユーザー認証?
アクセス承認
Authlete API
認可リクエスト
処理
認可コード生成
トークンリクエスト
処理
アクセス
トークン
検証
/auth/authorizationPOST
/auth/authorization/issuePOST
/auth/tokenPOST
/auth/introspectionPOST
? リクエストオブジェクト使用の必須化
? ハイブリッドフロー or JARM要求の必須化
? 認証コンテキストリファレンス(acr)クレームの必須化
? ハイブリッドフロー or JARMでのレスポンス生成
? クライアント証明書送付の必須化
? クライアント証明書送付の必須化
19. 19
? “FAPI - Part 2: Read and Write API
Security Profile” に対応した認可
サーバー/アイデンティティプロバイ
ダーを構築するために
? 認可リクエストからAPIアクセスまで
順番にAuthleteのFAPI設定を実施し
? FAPIのセキュリティ条項を確認して
いきます
Authleteチュートリアル: FAPI Basics
https://www.authlete.com/ja/developers/tutorial/fapi/
20. 全体の構成とリクエスト?レスポンスの流れ
20
User Agent
Client
Resource
Server
Authorization
Server
Authlete API
End User API Client API Server Authlete
Resource
Owner
/auth/authorizationAPI
/auth/authorization/issue API
/auth/token API
/auth/introspectionAPI4. TokenResponse
Including Certificate-
bound AccessToken
5. API Request With
Certificate-bound Access
Token And Client
Certificate(Mutual TLS)
0. Start
1’. User Authentication
And Consent
1. Authorization
Request
Using “Request
Object”
1
4
5
2
2. Authorization
Response Including
Authorization Code In
Fragment
3. Token
RequestWith
Client Certificate
(Mutual TLS)
3
認可サーバー
(+ リソースサーバー)の
立場になり
クライアント(+ ユーザー
エージェント)から受け付けた
(と仮定する)リクエストを
Authlete API を活用して
処理します
21. 21
? (Request from Client to AS via UA)
– FAPI準拠の認可リクエストを送信
? Request from AS to Authlete
– リクエストパラメーターをAuthleteに
そのまま転送
? Response from Authlete to AS
– リクエストパラメーターを検証
– 「チケット」(検証成功時)と、認可
サーバーがクライアントに返却する
「レスポンスの内容」とその伝達手段
を回答
? (Response from AS to Client via UA)
– チケットをユーザーセッションに保存
– 「レスポンスの内容」をクライアント
に返却
1. 認可リクエスト
User Agent
Client
Resource
Server
Authorization
Server
Authlete API
End User API Client API Server Authlete
Resource
Owner
Authorization
Request
/auth/authorization API
22. 22
? (Interaction between Client and AS)
– ユーザー認証?アクセス同意
? Request from AS to Authlete
– 「チケット」と「ユーザー識別子」を
送信
? Response from Authlete to AS
– 認可サーバーがクライアントに返却す
る「レスポンスの内容」とその伝達手
段を回答
? (Response from AS to Client)
– チケットをユーザーセッションに保存
– 「レスポンスの内容」をクライアント
に返却
2. 認可レスポンス
User Agent
Client
Resource
Server
Authorization
Server
Authlete API
End User API Client API Server Authlete
Resource
Owner
Authorization
Response
/auth/authorization/issue
API
23. 23
? (Request from Client to AS)
– 双方向TLS接続を確立
? 認可サーバーがクライアント証明書を検証
– FAPI準拠のトークンリクエストを送信
? Request from AS to Authlete
– 双方向TLS接続からクライアント証明書を抽出
– リクエストパラメーターとクライアント証明書(PEM
形式)をAuthleteにそのまま転送
? Response from Authlete to AS
– リクエストパラメーターを検証
– クライアント証明書のSubject DNを検証
– Subject DNにひもづくトークンを生成
– 認可サーバーがクライアントに返却する「レスポンス
の内容」とその伝達手段を回答
? (Response from AS to Client)
– 「レスポンスの内容」をクライアントに返却
3 & 4. トークンリクエスト/レスポンス
User Agent
Client
Resource
Server
Authorization
Server
Authlete API
End User API Client API Server Authlete
Resource
Owner
Token
Request
/auth/token API
24. 24
? (Request from Client to RS)
– 双方向TLS接続を確立
? リソースサーバーがクライアント証明書を検証
– アクセストークンを含むAPIリクエストを送信
? Request from RS to Authlete
– 双方向TLS接続からクライアント証明書を抽出
– アクセストークンとクライアント証明書(PEM形
式)をAuthleteにそのまま転送
? Response from Authlete to RS
– クライアント証明書のSubject DNを検証
– Subject DNとアクセストークンのひもづけを検証
– アクセストークンの有効性と、それにひもづく情報
を回答
? (Response from RS to Client)
– Authleteからの回答をもとにアクセス可否やレスポ
ンス内容を決定し応答
5. APIリクエスト
User Agent
Client
Resource
Server
Authorization
Server
Authlete API
End User API Client API Server Authlete
Resource
Owner
API
Request
/auth/introspection
API