- Financial-grade API Security Profile 1.0 - Part 2: Advanced 5.1.1. ID Token as Detached Signature についての個人用メモ。
ID Token as Detached Signature
-
レスポンスパラメータが改竄されていないことを確認するための機能
-
処理の流れ
- 認可サーバーは、
codeやstate(ID トークンとは別に渡されるレスポンスパラメータ)のハッシュ値を ID トークンの中に埋め込む。 - レスポンスを受け取ったクライアントは、「レスポンスパラメータのハッシュ値」と、「ID トークンに埋め込まれているハッシュ値」が一致することを確認する。
-
s_hash:stateパラメータのハッシュ値 -
c_hash:codeパラメータのハッシュ値
-
- 認可サーバーは、
-
クライアントアプリは
response_typeリクエストパラメータにid_tokenを含める必要がある。response_type=code+id_token
-
IDトークン例
eyJraWQiOiJzZXJ2ZXItMjAyMC0wOC0yOCIsImFsZyI6IlBTMjU2In0.eyJzdWIiOiIxMDAxIiwiYXVkIjoiNTI0ODA3NTQwNTMiLCJjX2hhc2giOiJRUjJ6dWNmWVpraUxyYktCS0RWcGdRIiwic19oYXNoIjoiOXM2Q0JiT3hpS0U2NWQ5LVFyMFFJUSIsImF1dGhfdGltZSI6MTU5NDE0MDA5MCwiaXNzIjoiaHR0cHM6XC9cL2ZhcGktYXMuZXhhbXBsZS5jb21cLyIsImV4cCI6MTU5NDE0MDM5MCwiaWF0IjoxNTk0MTQwMDkwLCJub25jZSI6Ijd4RENIdml1UE1TWEpJaWdrSE9jRGkifQ.Z-LpQRuYoiTqEBfVfctn-e6bLwSMqi8wA3TuARGW6GyD05gPF6TVlUwHgJnSUlhETrzhEUAKKiyGDxGspuBU0OAnB4qepgrEBizk980NjCEVXNkogv0ANv9VX_01Lcl0d_6_c-AUjwDSuKY8rDfvggKSJFzRilbQuB8b1drAIAZpc6kMObY3PcQZ_vKTMsQ8l HCuXXRuAo__0xRE6l_iiRCos_940GrJr0Sih9uTQpnCWBoEab1dC0l-vUp4lP0TQRKNpDoPoMOj10KJA8T8pKhjZ8TKM-wo9A4qH2LBgUIYJyjd8bWfKTZxCNmLRzRr-_JBG7fF_fpOUhGT_DhzMw -
IDトークン/デコード結果例
{ "sub": "1001", "aud": "52480754053", "c_hash": "QR2zucfYZkiLrbKBKDVpgQ", "s_hash": "9s6CBbOxiKE65d9-Qr0QIQ", "auth_time": 1594140090, "iss": "https://fapi-as.example.com/", "exp": 1594140390, "iat": 1594140090, "nonce": "7xDCHviuPMSXJIigkHOcDi" }
