OPT-OAU-003Banco e TPPincoerênciaOAuth2 e tokens

OpenID Connect e requisição assinada

O banco implementa OpenID Connect e aceita uma requisição assinada?

As opções

  • Só OAuth2

    Sem IdToken.

  • OpenID Connect

    Um IdToken além dos tokens. ui_locales passa a ser obrigatório.

  • Request Object assinado

    Se o servidor aceitar, os parâmetros vão em um JWT assinado. Os parâmetros em claro também podem ser enviados junto.

Lado do banco
Opcional para o banco. A especificação não define nem a chave nem o algoritmo de assinatura do Request Object.
Lado do TPP
Verificar nonce no IdToken quando ele tiver sido enviado, e auth_time quando max_age tiver sido enviado.
Incoerência da spec
A especificação escreve max-age em um lugar e max_age em outro. O OpenID Connect Core usa max_age.

Ficha verificada em 19 de outubro de 2026.

Com base na especificação STET PSD2 API 1.6.3, sob licença CC BY 3.0 FR.

A ficha como está armazenada
{
  "id": "OPT-OAU-003",
  "edition": "1.6.3",
  "chooser": "both",
  "title": {
    "fr": "OpenID Connect et requête signée",
    "en": "OpenID Connect and signed request",
    "es": "OpenID Connect y petición firmada",
    "pt-br": "OpenID Connect e requisição assinada"
  },
  "question": {
    "fr": "La banque implémente-t-elle OpenID Connect, et accepte-t-elle une requête signée ?",
    "en": "Does the bank implement OpenID Connect, and does it accept a signed request?",
    "es": "¿Implementa el banco OpenID Connect, y acepta una petición firmada?",
    "pt-br": "O banco implementa OpenID Connect e aceita uma requisição assinada?"
  },
  "options": [
    {
      "label": {
        "fr": "OAuth2 seul",
        "en": "OAuth2 only",
        "es": "Solo OAuth2",
        "pt-br": "Só OAuth2"
      },
      "text": {
        "fr": "Pas d'IdToken.",
        "en": "No IdToken.",
        "es": "Sin IdToken.",
        "pt-br": "Sem IdToken."
      }
    },
    {
      "label": {
        "fr": "OpenID Connect",
        "en": "OpenID Connect",
        "es": "OpenID Connect",
        "pt-br": "OpenID Connect"
      },
      "text": {
        "fr": "Un IdToken en plus des tokens. `ui_locales` devient obligatoire.",
        "en": "An IdToken on top of the tokens. `ui_locales` becomes mandatory.",
        "es": "Un IdToken además de los tokens. `ui_locales` pasa a ser obligatorio.",
        "pt-br": "Um IdToken além dos tokens. `ui_locales` passa a ser obrigatório."
      }
    },
    {
      "label": {
        "fr": "Request Object signé",
        "en": "Signed Request Object",
        "es": "Request Object firmado",
        "pt-br": "Request Object assinado"
      },
      "text": {
        "fr": "Si le serveur l'accepte, les paramètres passent dans un JWT signé. Les paramètres en clair peuvent être envoyés à côté.",
        "en": "If the server accepts it, the parameters go in a signed JWT. Plain parameters can be sent alongside.",
        "es": "Si el servidor lo acepta, los parámetros van en un JWT firmado. Los parámetros en claro pueden enviarse junto a él.",
        "pt-br": "Se o servidor aceitar, os parâmetros vão em um JWT assinado. Os parâmetros em claro também podem ser enviados junto."
      }
    }
  ],
  "stet": {
    "sections": [
      {
        "part": "framework",
        "section": "3.4.2.4",
        "page": 28
      }
    ],
    "openapi": [],
    "flows": [],
    "changes": [],
    "remark": null
  },
  "aspsp": {
    "fr": "Optionnel pour la banque. La spec ne fixe ni la clé ni l'algorithme de signature du Request Object.",
    "en": "Optional for the bank. The spec sets neither the key nor the signing algorithm of the Request Object.",
    "es": "Opcional para el banco. La especificación no fija ni la clave ni el algoritmo de firma del Request Object.",
    "pt-br": "Opcional para o banco. A especificação não define nem a chave nem o algoritmo de assinatura do Request Object."
  },
  "tpp": {
    "fr": "Vérifier `nonce` dans l'IdToken quand on l'a envoyé, et `auth_time` quand on a envoyé `max_age`.",
    "en": "Check `nonce` in the IdToken when you sent one, and `auth_time` when you sent `max_age`.",
    "es": "Verificar `nonce` en el IdToken si se envió, y `auth_time` si se envió `max_age`.",
    "pt-br": "Verificar `nonce` no IdToken quando ele tiver sido enviado, e `auth_time` quando `max_age` tiver sido enviado."
  },
  "regulation": null,
  "note": {
    "fr": "La spec écrit `max-age` à un endroit et `max_age` à un autre. OpenID Connect Core utilise `max_age`.",
    "en": "The spec writes `max-age` in one place and `max_age` in another. OpenID Connect Core uses `max_age`.",
    "es": "La especificación escribe `max-age` en un sitio y `max_age` en otro. OpenID Connect Core usa `max_age`.",
    "pt-br": "A especificação escreve `max-age` em um lugar e `max_age` em outro. O OpenID Connect Core usa `max_age`."
  },
  "production": null,
  "verifiedAt": "2026-10-19"
}