Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

...

Information contained in an id_token

Parameters

Validations

iss

  • The Authorization Server should establish a standard identifier, or set of identifiers "iss" for use in CIBA transactions. The Authorization Server should not accept an "iss" that differs from its own standard identifier or set of identifiers.

sub

  • The Authorization Server should check if the "sub" identifier in question has already been issued for a client/account, and if it's valid within its requirements.

aud

  • The Authorization Server should not accept an "aud" that differs from the client_id from which the authorization request for the CIBA flow originates.

exp

  • "exp" should be established according to the risk policies of the Account Holding institution.

iat

  • No specific validations.

auth_time

  • No specific validations.

nonce

  • No specific validations for the AS.

acr

  • If present, the AS should only accept values equal to or higher than the authentication requirements of the Holder to authorize payment transactions.

amr

  • If present, the AS (Authorization Server) should only accept values equal to or better than the authentication requirements of the Holder to authorize payment transactions.

azp

  • The Authorization Server should not accept an "azp" different from the client_id from which the authorization request for the CIBA flow originates.

Parameters for validating an id_token.

All parameters must be present in the JWT header (header).

Parameters

Description

Recommended Values

alg

The "alg" (algorithm) parameter identifies the cryptographic algorithm used to secure the JWS/JWE. The JWS Signature value is invalid if the "alg" value does not represent a supported algorithm or if there is no compatible key available for the algorithm associated with the entity that digitally signed the content.

PS256 or PS512

jku

The "jku" (JWK Set URL) parameter is a URI (RFC3986) that points to a resource for a set of public keys encoded in JSON, one of which matches the key used to digitally sign the JWS. The keys MUST be encoded as a JWK Set.

The protocol used to acquire the resource MUST provide integrity protection; an HTTP GET request to retrieve the JWK Set MUST use Transport Layer Security (TLS); and the server's identity MUST be validated, according to Section 6 of RFC6125. (OPTIONAL)

 

jwk

O parâmetro

The "jwk" (JSON Web Key)

é a chave pública que corresponde à chave usada para assinar digitalmente o JWS. Essa chave é representada como uma chave JWK. (OPCIONAL

parameter is the public key that matches the key used to digitally sign the JWS. This key is represented as a JWK. (OPTIONAL)

 

kid

O parâmetro

The "kid" (Key ID)

é uma indica qual chave foi usada para proteger o JWS/JWE. Este parâmetro permite que os remetentes sinalizem explicitamente uma mudança de chave para os destinatários. O valor "kid" DEVE ser uma string com distinção entre maiúsculas e minúsculas. Quando usado com um JWK, o valor "kid" é usado para corresponder a um valor de parâmetro "kid" do JWK. (OPCIONAL

parameter indicates which key was used to secure the JWS/JWE. This parameter allows senders to explicitly signal a key change to recipients. The "kid" value MUST be a case-sensitive string. When used with a JWK, the "kid" value matches a "kid" parameter value of the JWK. (OPTIONAL)

 

x5u

O parâmetro

The "x5u" (X.509 URL)

é um

parameter is a URI (RFC3986)

referente a um recurso para o certificado de chave pública X.509 ou cadeia de certificados (RFC5280) correspondente à chave usada para assinar digitalmente o JWS. (OPCIONAL

pointing to a resource for the X.509 public key certificate or certificate chain (RFC5280) corresponding to the key used to digitally sign the JWS. (OPTIONAL)

 

x5c

O parâmetro

The "x5c" (X.509 Certificate Chain)

contém o certificado de chave pública

parameter contains the X.509

ou cadeia de certificados (RFC5280) correspondente à chave usada para assinar digitalmente o

public key certificate or certificate chain (RFC5280) corresponding to the key used to digitally sign the JWS. (

OPCIONAL

OPTIONAL)

 

x5t

O parâmetro

The "x5t" (X.509 Certificate SHA-1 Thumbprint)

é uma impressão digital

is a base64url encoded SHA-1

codificada em base64url

thumbprint (hash)

da codificação DER do certificado

of the DER encoding of the X.509 certificate (RFC5280)

correspondente à chave usada para assinar digitalmente o

corresponding to the key used to digitally sign the JWS. (

OPCIONAL

OPTIONAL)

 

x5t#S256

O parâmetro

The "x5t#S256" (X.509 Certificate SHA-256 Thumbprint)

é uma impressão digital

is a base64url encoded SHA-256

codificada em base64url

thumbprint (hash)

da codificação DER do certificado

of the DER encoding of the X.509 certificate (RFC5280)

correspondente à chave usada para assinar digitalmente o JWS. Pode ser utilizado alternativamente ao

corresponding to the key used to digitally sign the JWS. It can be used alternatively to "x5t". (

OPCIONAL

OPTIONAL)

 

typ

O parâmetro

The "typ" (Type)

é usado pelos aplicativos JWS para declarar o

parameter is used by JWS applications to declare the media type (IANA.MediaTypes)

deste

of this complete JWS

completo. Destina-se ao uso pelo aplicativo quando mais de um tipo de objeto pode estar presente em uma estrutura de dados do aplicativo que pode conter um JWS; o aplicativo pode usar esse valor para eliminar a ambiguidade entre os diferentes tipos de objetos que podem estar presentes. (OPCIONAL

. It is intended for use by the application when more than one type of object can be present in an application data structure that might contain a JWS; the application can use this value to disambiguate between the different types of objects that could be present. (OPTIONAL)

JWT

cty

O parâmetro

The "cty" (Content Type)

é usado por aplicativos JWS para declarar o

parameter is used by JWS applications to declare the media type (IANA.MediaTypes)

do conteúdo protegido

of the secured content (payload).

Destina-se ao uso pelo aplicativo quando mais de um tipo de objeto pode estar presente no JWS Payload; o aplicativo pode usar esse valor para eliminar a ambiguidade entre os diferentes tipos de objetos que podem estar presentes.

ao invés de usar “application/example” usar “example”

crit

O parâmetro

It is intended for use by the application when multiple types of objects might be present in the JWS Payload; the application can use this value to disambiguate between the different types of objects that could be present.

use “example” instead “application/example”

crit

The "crit" (Critical)

indica que extensões para esta especificação e/ou [JWA] estão sendo usadas e DEVEM ser compreendidas e processadas. Seu valor é um array com os nomes dos Parâmetros do Cabeçalho presentes no Cabeçalho do JOSE que usam essas extensões.

 

...

parameter indicates that extensions to this specification and/or [JWA] are being used and MUST be understood and processed. Its value is an array containing the names of the Header Parameters present in the JOSE Header that are using these extensions.

 

Step by step to save an id_token

Informações

Lembre-se, o fluxo para a geração de um id_token é um fluxo de consentimento Remember, the flow for generating an id_token is a regular FAPI Hybrid-Flow comum! A Iniciadora de Pagamentos deverá salvar o id_token que vem no redirecionamento de volta da detentora via query parameters.

...

consent! The Payment Initiator should save the id_token that comes in the redirection back from the holder via query parameters.

  1. Follow the steps of the Sequence Diagram of a Payment Initiation via Hybrid-Flow;.

  2. Na etapa de recebimento do code, state, id_token no redirectURL (redirecionamento de volta da detentora para a iniciadora) a iniciadora deve salvar o id_token que também vem nos parâmetros da url de redirect. Atentar-se ao item 4 do diagrama de sequência do link acima;

  3. Realizar o pagamento normalmente, pois apenas no próximo pagamento será possível a utilização do canal CIBA para a comunicação com o cliente para autorizar um consentimento.

...

Lista de possíveis erros:

Error Code

Error Description

authorization_pending

The user has not yet been authenticated, and the authorization request is still pending

slow_down

The authorization request is still pending, and the client must increase the interval for polling requests by at least x seconds

expired_token

The transaction (auth_req_id) has expired. The client must start over with a new Authentication Request

access_denied

The user did not consent to the authorization request

 

  1. Seguir com o processo de uma iniciação de pagamento e realizar as chamadas na API de pagamento, caso o acesso for concedido com sucesso.

...