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:

ParametrsAtrašanās vietaObligātsTips/formātsApraksts
AuthorizationGalvene (header)JāHTTP BasicOAuth klienta autentifikācija
response_typeVeidlapas parametri (form)JāVirkne (String)Statiska vērtība code
client_idVeidlapas parametri (form)JāVirkne (String)OAuth klienta identifikators
redirect_uriVeidlapas parametri (form)JāURIReģistrētais callback URL
scopeVeidlapas parametri (form)JāVirkne (String)Statiska vērtība credential
stateVeidlapas parametri (form)JāVirkne (String)Jauna korelācijas/CSRF vērtība šim mēģinājumam
credentialIDVeidlapas parametri (form)JāVirkne (String)Parakstīšanai izmantojamā parakstīšanās identitāte (credential)
numSignaturesVeidlapas parametri (form)JāPozitīvs vesels skaitlis (integer)Parakstu skaits; jāsakrīt ar jaucējvērtību (hash) skaitu
hashesVeidlapas parametri (form)Jā, ja SCAL=2Standarta Base64 vērtībasParakstāmās jaucējvērtības (hash); vairākas vērtības atbilstoši RSE formātam
hashAlgorithmOIDVeidlapas parametri (form)JāOID Virkne (String)SHA-384 gadījumā 2.16.840.1.101.3.4.2.2
acr_valuesVeidlapas parametri (form)IeteicamsVirkne (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_methodVeidlapas parametri (form)JāVirkne (String)S256
code_challengeVeidlapas parametri (form)JāBase64URL bez paddingAprēķ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_uri izveido jaunu authorize_url un pārlūkā veic parakstīšanas apstiprināšanu.

Callback parametrā saņemtā state vērtība jāsalīdzina ar tieši šīs parakstīšanas plūsmas oauth_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

ParametrsTipsAprakstsIntegratora validācija
access_tokenVirkne (String)Konkrētajai parakstīšanai paredzēts piekļuves marķieris (Bearer tokens)Izmantot nekavējoties signatures/signHash
token_typeVirkne (String)Marķiera (Tokena) tipsSagaidāms Bearer
expires_inNumberDerīguma laiks sekundēsNeizmantot pēc termiņa beigām
authorization_details[].typeVirkne (String)Autorizācijas veidsSagaidāms digest_signing
authorization_details[].digests[].valueVirkne (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[].algorithmVirkne (String)jaucējvērtības (Hash) algoritma nosaukumsSHA-384 profilā sagaidāms SHA-384
authorization_detai ls[].sign_identity_idVirkne (String)Autorizētā parakstīšanas identitāte (credential)Salīdzināt ar izmantojamo credential_id
authorization_details[].num_signaturesSkaitlis (Number)Autorizētais parakstu skaitsSalīdzināt ar PAR numSignatures un hash skaitu
⚠️

Svarīgi

Pirms signHash izsaukuma integratoram jāpārbauda, ka tokenā norādītās digests.value, hash algoritma, credential_id un num_signatures vērtības atbilst lietotāja apstiprinātajām vērtībām PAR/autorizācijas plūsmā.


Did this page help you?