Cependant les limites de Cognito sont de 128 caracteres par attribut SAML
J’ai donc du limiter les formats de NameID
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<EntityDescriptor entityID="urn:amazon:cognito:sp:eu-west-1_xxxxxxx" xmlns="urn:oasis:names:tc:SAML:2.0:metadata">
<SPSSODescriptor AuthnRequestsSigned="false" WantAssertionsSigned="false" protocolSupportEnumeration="urn:oasis:names:tc:SAML:2.0:protocol">
<NameIDFormat>urn:oasis:names:tc:SAML:2.0:nameid-format:persistent</NameIDFormat>
<NameIDFormat>urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress</NameIDFormat>
<AssertionConsumerService index="0" isDefault="false" Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" Location="https://xxxxxxxxx.auth.eu-west-1.amazoncognito.com/saml2/idpresponse"/>
</SPSSODescriptor>
</EntityDescriptor>
L’IDP a choisi le format persistent qui fait bien moins de 128 caractères
https://<domain>.auth.eu-west-1.amazoncognito.com/login?response_type=token&client_id=<client_id>&redirect_uri=https://localhost/callback&
https://localhost/callback#id_token=<id_token>&access_token=<accesstoken>&expires_in=3600&token_type=Bearer
On obtient ainsi :
Les deux sont encodés en base64 et peuvent être facilement décodés sur https://jwt.io/