Authn.tech
Startseite
  • SAML 2.0
  • OAuth 2.0
  • OIDC
  • WebAuthn / Passkey
  • MFA / TOTP
  • LDAP
  • Alle Tools
  • JWT dekodieren
  • JWT signieren
  • JWK erzeugen
  • JWK → PEM
  • PEM → JWK
  • PKCE erzeugen
  • OIDC Discovery
  • TOTP
  • WebAuthn
  • SAML-Codec
  • SAML Metadata
  • SAML Response
  • X.509-Zertifikat
  • PEM prüfen
  • Base64URL
  • LDAP-Filter
  • Übersicht & Rollen
  • OIDC Mock
  • SAML Mock
  • Mail-Server
  • LDAP-Verzeichnis
  • OIDC-Login-Demo
  • SAML-Login-Demo
  • 简体中文
  • English
  • Deutsch
GitHub
Startseite
  • SAML 2.0
  • OAuth 2.0
  • OIDC
  • WebAuthn / Passkey
  • MFA / TOTP
  • LDAP
  • Alle Tools
  • JWT dekodieren
  • JWT signieren
  • JWK erzeugen
  • JWK → PEM
  • PEM → JWK
  • PKCE erzeugen
  • OIDC Discovery
  • TOTP
  • WebAuthn
  • SAML-Codec
  • SAML Metadata
  • SAML Response
  • X.509-Zertifikat
  • PEM prüfen
  • Base64URL
  • LDAP-Filter
  • Übersicht & Rollen
  • OIDC Mock
  • SAML Mock
  • Mail-Server
  • LDAP-Verzeichnis
  • OIDC-Login-Demo
  • SAML-Login-Demo
  • 简体中文
  • English
  • Deutsch
GitHub
  • OpenID Connect

    • OIDC Übersicht
    • Kernkonzepte
    • Typische Flows
    • Typische Parameter und Claims-Referenz

Typische Parameter und Claims-Referenz

Diese Seite ist eine Schnelleinsichtstabelle; Flow-Kontext siehe Typische Flows, Konzepterklärung siehe Kernkonzepte.

Authentifizierungsanfrageparameter

Parameter zum authorization endpoint (OIDC-Perspektive, mit OAuth2-Grundparametern):

ParameterErforderlichErklärung
scopeErforderlichLeerzeichen getrennt; muss openid enthalten, sonst ist es nur eine normale OAuth2-Anfrage und gibt kein ID Token zurück
response_typeErforderlichBestimmt flow: code (empfohlen) / id_token / code id_token usw.
client_idErforderlichClient-Kennung, die RP bei OP-Registrierung erhalten hat
redirect_uriErforderlichCallback-Adresse, muss genau mit registriertem Wert übereinstimmen (kein Wildcard erlaubt)
stateStark empfohlenOpaque zufällig Wert, beim Callback unverändert zurückgegeben; RP validiert zur CSRF-Verhütung, kann auch Zustände wie Rücksprung-Pfade tragen
noncecode flow empfohlen, implicit/hybrid erforderlichZufallswert, OP schreibt ihn unverändert in ID-Token nonce Claim; RP validiert zur Replay-Verhütung
promptOptionalSteuert OP-Interaktionsverhalten, siehe unten prompt-Wert-Tabelle
max_ageOptionalMaximale Authentifizierungs-Gültigkeitssekunden; wenn letzter Benutzer-Auth länger her ist, muss OP erneut authentifizieren und auth_time im ID Token zurückgeben
login_hintOptionalHinweis auf Anmelde-Kennung (z. B. E-Mail), OP kann Login-Fenster vorausfüllen; häufig in "Benutzer ist bekannt"-Szenarien
acr_valuesOptionalErwartete Authentifizierungskontextklasse-Level (leerzeichen-getrennt, nach Priorität), z. B. MFA erfordern; Ergebnis wird im ID-Token acr widergespiegelt
displayOptionalErwartete Anzeigeweise: page / popup / touch / wap
ui_localesOptionalErwartete UI-Sprache, z. B. zh-CN zh en
code_challenge / code_challenge_methodÖffentliche Clients erforderlichPKCE-Parameter, method sollte S256 sein

ID-Token-Claims

Erforderliche Claims

ClaimTypErklärung
issstring (URL)Aussteller, muss OP-issuer entsprechen
substring (≤255 ASCII)Eindeutige Benutzer-Kennung, stabil und nicht wiederverwendet innerhalb eines OP; lokaler Primärschlüssel sollte iss + sub sein
audstring oder arrayZielgruppe, muss RP-client_id enthalten
expnumberAblaufzeit (Unix-Sekunden)
iatnumberAusstellungszeit (Unix-Sekunden)

Bedingt erforderlich / optionale Claims

ClaimWann erscheintErklärung
nonceWenn Anfrage nonce enthält, erforderlichNonce von Anfrage unverändert zurückgegeben, RP muss abgleichen
auth_timeMit max_age erforderlich, sonst optionalTatsächliche Benutzer-Authentifizierungszeit
acrOptionalErreichte Authentifizierungskontextklasse-Level
amrOptionalAuthentifizierungsmethoden-Array, z. B. ["pwd","otp"], ["mfa"]
azpMit mehrwertiger aud erforderlichTatsächliche client_id der Authorized Party
at_hashBei implicit/hybrid mit gleichzeitigem access_token erforderlichLinke Hälfte der access-token-Hash, zur Token-Substitution-Verhütung
c_hashBei hybrid mit Code erforderlichLinke Hälfte der Authentifizierungscode-Hash
sidOptionalOP-Sitzungs-ID, Back-Channel Logout nach ihr zu lokalisieren

Standard-Claims-Übersicht (nach Scope gruppiert)

Diese Claims erscheinen in UserInfo-Antwort oder ID Token:

scope=profile

ClaimTypErklärung
namestringVollständiger Name (Anzeige)
given_namestringVorname
family_namestringNachname
middle_namestringMittlerer Name
nicknamestringSpitzname
preferred_usernamestringBevorzugter Benutzername; kann sich ändern und kann dupliziert werden, nicht als Primärschlüssel geeignet
picturestring (URL)Avatar-Adresse
profilestring (URL)Persönliche Startseite
websitestring (URL)Persönliche Website
genderstringGeschlecht
birthdatestringGeburtstag, YYYY-MM-DD oder YYYY (0000 bedeutet nur Monat/Tag)
zoneinfostringZeitzone, z. B. Asia/Shanghai
localestringRegion, z. B. zh-CN
updated_atnumberLetzte Profil-Aktualisierungszeit (Unix-Sekunden)

scope=email

ClaimTypErklärung
emailstringE-Mail
email_verifiedbooleanIst E-Mail von OP validiert; muss wahr sein, bevor Email-Matching-Geschäftslogik läuft

scope=phone

ClaimTypErklärung
phone_numberstringTelefonnummer, vorzugsweise E.164-Format, z. B. +8613800138000
phone_number_verifiedbooleanIst validiert

scope=address

ClaimTypErklärung
addressJSON-ObjektMit formatted, street_address, locality, region, postal_code, country Unterfeldern

Discovery-Dokument-Schlüsselfelder

/.well-known/openid-configuration häufig verwendete Felder bei RP:

FeldErklärung
issuerOP-Kennung, muss mit issuer vom Anfrage-URL genau übereinstimmen, auch erwarteter Wert von ID-Token iss
authorization_endpointAuthentifizierungs-/Autorisierungs-Endpunkt
token_endpointToken-Endpunkt
userinfo_endpointBenutzerinformations-Endpunkt
jwks_uriÖffentlicher Schlüsselsatz (JWKS)-Adresse
end_session_endpointRP-Initiated Logout Endpunkt (von RP-Initiated Logout Spezifikation definiert)
registration_endpointDynamischer Client-Registrungs-Endpunkt (falls unterstützt)
scopes_supportedUnterstützte Scope-Liste
response_types_supportedUnterstützte response_type
subject_types_supportedpublic / pairwise
id_token_signing_alg_values_supportedID-Token-Signatur-Algorithmen, RP setzt danach Whitelist
token_endpoint_auth_methods_supportedToken-Endpunkt Client-Authentifizierungsmethoden, z. B. client_secret_basic, private_key_jwt
claims_supportedRückgabbare Claims-Liste (informativ)
code_challenge_methods_supportedUnterstützte PKCE-Methoden, sollte S256 enthalten
frontchannel_logout_supported / backchannel_logout_supportedUnterstützt Front-/Back-Channel Logout

prompt-Wert-Tabelle

WertVerhaltenTypischer Zweck
noneOP zeigt keine UI; ohne Sitzung oder wenn Interaktion erforderlich, direkt Fehler zurückgeben (z. B. login_required)Sitzungs-Status überprüfen / SSO-Erkennung / Token-Verlängerung
loginErzwingt Neauthentifizierung, auch mit SitzungZweite Bestätigung vor sensiblem Vorgang (step-up)
consentErzwingt erneute GenehmigungsseiteBenutzer muss Genehmigung erneut erteilen
select_accountZeige Kontoauswahl-UIBenutzer hat mehrere Konten, erlaubt Wechsel

prompt kann kombiniert werden (z. B. login consent), aber none kann nicht mit anderen Werten gemischt werden.

OIDC neu hinzugefügte Fehlercodes

Neben OAuth2-Fehlercodes (invalid_request, access_denied, invalid_grant usw., siehe OAuth2-Dokumentation) fügt OIDC am authorization endpoint hinzu:

FehlercodeBedeutungTypische Auslöser
login_requiredBenutzer muss anmelden, Interaktion aber nicht erlaubtprompt=none und OP hat keine aktive Sitzung
consent_requiredBenutzer muss genehmigen, Interaktion aber nicht erlaubtprompt=none und dieser Client hat noch keine Zustimmung
interaction_requiredGewisse Benutzer-Interaktion erforderlich, aber nicht erlaubtprompt=none Fallback-Fehler
account_selection_requiredBenutzer muss Konto wählen, Interaktion aber nicht erlaubtprompt=none und mehrere Konto-Sitzungen
invalid_request_urirequest_uri kann nicht abgerufen oder Inhalt ist ungültigMit PAR/request_uri Szenarios
invalid_request_objectRequest-Objekt (JWT) ist ungültigMit signiertem Request-Objekt (JAR) Szenarios
request_not_supported / request_uri_not_supportedOP unterstützt request(_uri)-Parameter nichtFähigkeit nicht erfüllt
registration_not_supportedOP unterstützt registration-Parameter nichtFähigkeit nicht erfüllt

Tips

login_required ist normales Signal, nicht Fehler: Bei stiller Verlängerung (prompt=none) sollte auf regulären Login mit Interaktion zurückfallen.

Troubleshooting-Schnelleinsicht

ErscheinungsbildHäufige Ursache
Callback zeigt redirect_uri_mismatch / invalid_requestredirect_uri unterscheidet sich vom registrierten Wert (Protokoll, Port, Trailing Slash, Groß-/Kleinschreibung)
Token-Antwort hat kein id_tokenRequest scope vergaß openid
ID-Token-Validierung fehlgeschlagen: iss nicht kompatibelIssuer-Konfiguration mit/ohne Trailing Slash inkonsistent; Multi-Tenant OP, falsche Mieter-URL
ID-Token-Validierung fehlgeschlagen: Signatur ungültig / kid nicht gefundenJWKS-Cache abgelaufen (OP hat Schlüssel rotiert), JWKS auffrischen erforderlich; oder Umgebung falsch konfiguriert, JWKS von anderem OP
ID-Token-Validierung fehlgeschlagen: aud nicht kompatibelAndere Anwendungs-client_id verwendet; oder Token von anderem Client validiert
nonce-Validierung fehlgeschlagenSitzung verloren (Callback bei anderer Instanz, Session nicht freigegeben), oder Cookie SameSite-Einstellung führt dazu, dass Callback-Anfrage kein Sitzungs-Cookie trägt
invalid_grant (Token-Wechsel fehlgeschlagen)Autorisierungscode bereits verwendet/abgelaufen (Code nur einmal, Browserprefetch oder wiederholter Callback zu beachten); PKCE code_verifier stimmt nicht mit code_challenge überein; redirect_uri unterscheidet sich von Autorisierungs-Anfrage
prompt=none gibt immer login_required zurückOP keine Sitzung (Third-Party-Cookie von Browser blockiert ist häufige Ursache); oder OP-Seite erfordert Neuzustimmung
Nach Abmeldung ist nach Seiten-Refresh noch AnmeldestatusNur RP-Sitzung gelöscht, nicht zu end_session_endpoint umgeleitet, wird stillschweigend von OP SSO-Sitzung erneut angemeldet
Nach Abmeldung kein Sprung zurück zu Apppost_logout_redirect_uri nicht auf OP-Seite registriert, oder id_token_hint nicht übergeben, OP kann Client nicht verknüpfen
Kann email/name usw. Claims nicht erhaltenEntsprechender Scope nicht angefordert; oder OP gibt diese Claims nur in UserInfo zurück, RP hat nur ID Token analysiert
exp/iat-Validierung zeitweise fehlgeschlagenServer-Zeitabweichung, NTP konfigurieren und ≤5 Minuten Clock-Skew erlauben
Zuletzt aktualisiert: 06.07.26, 07:49
Mitwirkende: linux, Claude Opus 4.8
Prev
Typische Flows