Staat je app op de inlogstandaard OpenID Connect, dan werkt hij met een standaardbibliotheek voor OpenID Connect. Je geeft je bibliotheek de Discovery-URL, je Client ID en, bij een vertrouwelijke app, je client secret. De bibliotheek haalt de rest zelf op.
Discovery-URL en issuer
Elke website van je vereniging is een eigen provider. De issuer is het adres van de website, en de Discovery-URL is dat adres met /.well-known/openid-configuration erachter:
https://www.vereniging.nl/.well-known/openid-configuration
Je vindt de Issuer en Discovery-URL van elke website op de pagina van je app in Instellingen > Apps. Kies de website waarop je leden inloggen; een token werkt alleen op de websites van je eigen vereniging.
Wat we ondersteunen
De authorization code flow, met
response_type=code.PKCE met
S256. Verplicht voor een app met clienttype Openbaar.Aanmelden bij het token-endpoint met HTTP Basic (
client_secret_basic) voor een vertrouwelijke app, of alleen met de Client ID (none) voor een openbare app.ID tokens ondertekend met RS256. De sleutel staat op de
jwks_uriuit de Discovery-URL,https://www.vereniging.nl/.well-known/jwks.json.nonce,prompt(none,loginenconsent) enmax_age.De userinfo-velden
sub,name,given_name,family_name,nickname,preferred_username,picture,gender,birthdate,email,addressenphone_number.Refresh tokens voor een vertrouwelijke app, en tokens intrekken via het revocation-endpoint.
Een redirect_uri moet precies gelijk zijn aan een van de Redirect-URI's van je app; een andere weigeren we. Hoe elke stap er in detail uitziet, lees je in Hoe verloopt Inloggen met Congressus?
Van Legacy naar OpenID Connect
Apps die er al waren voor OpenID Connect staan op Legacy en werken zoals altijd. Zet je de Inlogstandaard van een app op OpenID Connect, dan verandert dit:
Het ID token wordt ondertekend met RS256 en de sleutel uit de
jwks_uri, in plaats van met HS256 en je client secret.issin het ID token wordt het adres van de website, in plaats vanurn:congressus:nl.noncestaat alleen in het ID token als je hem meestuurde. Bij Legacy is hij dan leeg.Een
redirect_uridie niet bij je app staat, weigeren we. Bij Legacy sturen we het lid dan naar de eerste Redirect-URI.
De endpoints, het antwoord van het token-endpoint, de userinfo-velden en refresh tokens blijven gelijk. Pas eerst je applicatie aan zodat die het nieuwe ID token controleert, en zet daarna de inlogstandaard om.
