OPT-OAU-003Banco y TPPincoherenciaOAuth2 y tokens

OpenID Connect y petición firmada

¿Implementa el banco OpenID Connect, y acepta una petición firmada?

Las opciones

  • Solo OAuth2

    Sin IdToken.

  • OpenID Connect

    Un IdToken además de los tokens. ui_locales pasa a ser obligatorio.

  • Request Object firmado

    Si el servidor lo acepta, los parámetros van en un JWT firmado. Los parámetros en claro pueden enviarse junto a él.

Lado del banco
Opcional para el banco. La especificación no fija ni la clave ni el algoritmo de firma del Request Object.
Lado del TPP
Verificar nonce en el IdToken si se envió, y auth_time si se envió max_age.
Incoherencia de la spec
La especificación escribe max-age en un sitio y max_age en otro. OpenID Connect Core usa max_age.

Ficha revisada el 19 de octubre de 2026.

Basado en la especificación STET PSD2 API 1.6.3, con licencia CC BY 3.0 FR.

La ficha tal como está almacenada
{
  "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"
}