3. Solis: Parakstīšanas autorizācija
Jaucējvērtības (Hash) parakstīšanas PAR pieprasījums
Izsaukums izveido autorizācijas pieprasījumu, kas piesaistīts konkrētajai parakstīšanas identitātei (credential), jaucējvērtības (hash) algoritmam un vienam vai vairākām dokumentu jaucējvērtībām (hash).
HTTP pieprasījums
POST {{csc_base_url}}/oauth2/pushed_authorize
Authorization: Basic BASE64(client_id:client_secret)
Content-Type: application/x-www-form-urlencoded
response_type=code
client_id={{client_id}}
redirect_uri={{redirect_uri}}
scope=credential
state={{oauth_state}}
credentialID={{credential_id}}
numSignatures=1
hashes={{hash_base64}}
hashAlgorithmOID={{hash_algorithm_oid}}
acr_values={{acr_values}}
code_challenge_method=S256
code_challenge={{code_challenge}}Ieejas parametri:
| Parametrs | Atrašanās vieta | Obligāts | Tips/formāts | Apraksts |
|---|---|---|---|---|
Authorization | Galvene (header) | Jā | HTTP Basic | OAuth klienta autentifikācija |
response_type | Veidlapas parametri (form) | Jā | Virkne (String) | Statiska vērtība code |
client_id | Veidlapas parametri (form) | Jā | Virkne (String) | OAuth klienta identifikators |
redirect_uri | Veidlapas parametri (form) | Jā | URI | Reģistrētais callback URL |
scope | Veidlapas parametri (form) | Jā | Virkne (String) | Statiska vērtība credential |
state | Veidlapas parametri (form) | Jā | Virkne (String) | Jauna korelācijas/CSRF vērtība šim mēģinājumam |
credentialID | Veidlapas parametri (form) | Jā | Virkne (String) | Parakstīšanai izmantojamā parakstīšanās identitāte (credential) |
numSignatures | Veidlapas parametri (form) | Jā | Pozitīvs vesels skaitlis (integer) | Parakstu skaits; jāsakrīt ar jaucējvērtību (hash) skaitu |
hashes | Veidlapas parametri (form) | Jā, ja SCAL=2 | Standarta Base64 vērtības | Parakstāmās jaucējvērtības (hash); vairākas vērtības atbilstoši RSE formātam |
hashAlgorithmOID | Veidlapas parametri (form) | Jā | OID Virkne (String) | SHA-384 gadījumā 2.16.840.1.101.3.4.2.2 |
acr_values | Veidlapas parametri (form) | Ieteicams | Virkne (String) | Ierobežo lietotājam piedāvātās autentifikācijas plūsmas. Šim pakalpojumam norāda eID kartes un/vai eID Scan plūsmu. Vairākas vērtības atdala ar vertikālo svītru ` | URL kodējumā%7C`). |
code_challenge_method | Veidlapas parametri (form) | Jā | Virkne (String) | S256 |
code_challenge | Veidlapas parametri (form) | Jā | Base64URL bez padding | Aprēķināts no jaunā parakstīšanas plūsmas code_verifier |
Atbildes struktūra ir tāda pati kā credential PAR pieprasījumam:
{
"request_uri": "urn:ietf:params:oauth:request_uri:<identifier>",
"expires_in": 60
}No
request_uriizveido jaunuauthorize_urlun pārlūkā veic parakstīšanas apstiprināšanu.Callback parametrā saņemtā
statevērtība jāsalīdzina ar tieši šīs parakstīšanas plūsmasoauth_state.Pieprasījumā ir atļauta vienreizējā parakstīšanās (Single Sign-On) izmantošana, tādēļ autentifikācija netiek prasīta atkārtoti, ja lietotājam jau ir derīga autentifikācijas sesija. Savukārt paraksta apstiprināšana tiek pieprasīta katrā parakstīšanas reizē.
Parakstīšanas autorizācijas koda apmaiņa pret marķieri (tokenu)
Izsaukums apmaina parakstīšanas apstiprināšanas callback kodu pret konkrētajiem hash
piesaistītu īslaicīgu Bearer tokenu.
HTTP pieprasījums
POST {{csc_base_url}}/oauth2/token
Authorization: Basic BASE64(client_id:client_secret)
Content-Type: application/x-www-form-urlencoded
grant_type=authorization_code
client_id={{client_id}}
code={{authorization_code}}
redirect_uri={{redirect_uri}}
code_verifier={{code_verifier}}Ieejas parametri
Ieejas parametri ir identiski sadaļā "Autorizācijas koda apmaiņa" aprakstītajiem. Jāizmanto parakstīšanas plūsmas jaunais authorization_code un tieši tai ģenerētais code_verifier , nevis credential
iegūšanas plūsmas vērtības.
Atbildes piemērs:
{
"access_token": "<redacted>",
"token_type": "Bearer",
"expires_in": 120,
"authorization_details": [
{
"type": "digest_signing",
"digests": [
{
"value": "<SHA-384-hash-in-Base64>",
"algorithm": "SHA-384"
}
],
"sign_identity_id": "<credential-id>",
"num_signatures": 1
}
]
}Atbildes parametri un validācija
| Parametrs | Tips | Apraksts | Integratora validācija |
|---|---|---|---|
access_token | Virkne (String) | Konkrētajai parakstīšanai paredzēts piekļuves marķieris (Bearer tokens) | Izmantot nekavējoties signatures/signHash |
token_type | Virkne (String) | Marķiera (Tokena) tips | Sagaidāms Bearer |
expires_in | Number | Derīguma laiks sekundēs | Neizmantot pēc termiņa beigām |
authorization_details[].type | Virkne (String) | Autorizācijas veids | Sagaidāms digest_signing |
authorization_details[].digests[].value | Virkne (String) | Autorizētā jaucējvērtība (hash) Base64 formātā | Precīzi salīdzināt ar PAR pieprasījumā sagatavoto hashes vērtību |
authorization_details[].digests[].algorithm | Virkne (String) | jaucējvērtības (Hash) algoritma nosaukums | SHA-384 profilā sagaidāms SHA-384 |
authorization_detai ls[].sign_identity_id | Virkne (String) | Autorizētā parakstīšanas identitāte (credential) | Salīdzināt ar izmantojamo credential_id |
authorization_details[].num_signatures | Skaitlis (Number) | Autorizētais parakstu skaits | Salīdzināt ar PAR numSignatures un hash skaitu |
Updated about 15 hours ago