OPT-OAU-003Banque et TPPincohérenceOAuth2 et tokens

OpenID Connect et requête signée

La banque implémente-t-elle OpenID Connect, et accepte-t-elle une requête signée ?

Les options

  • OAuth2 seul

    Pas d'IdToken.

  • OpenID Connect

    Un IdToken en plus des tokens. ui_locales devient obligatoire.

  • Request Object signé

    Si le serveur l'accepte, les paramètres passent dans un JWT signé. Les paramètres en clair peuvent être envoyés à côté.

Côté banque
Optionnel pour la banque. La spec ne fixe ni la clé ni l'algorithme de signature du Request Object.
Côté TPP
Vérifier nonce dans l'IdToken quand on l'a envoyé, et auth_time quand on a envoyé max_age.
Incohérence de la spec
La spec écrit max-age à un endroit et max_age à un autre. OpenID Connect Core utilise max_age.

Fiche vérifiée le 19 octobre 2026.

D'après la spécification STET PSD2 API 1.6.3, sous licence CC BY 3.0 FR.

La fiche telle qu'elle est stockée
{
  "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"
}