2. Mutual TLS for OAuth Client Authentication (Mutual TLS für OAuth-Client-Authentifizierung)
2. Mutual TLS for OAuth Client Authentication (Mutual TLS für OAuth-Client-Authentifizierung)
Dieser Abschnitt definiert – als Erweiterung von Abschnitt 2.3 von OAuth 2.0 [RFC6749] – zwei verschiedene Methoden zur Verwendung von Mutual-TLS-X.509-Clientzertifikaten als Client-Credentials. Ob Mutual TLS für die Client-Authentifizierung erforderlich ist, legt der Authorization Server anhand von Richtlinie oder Konfiguration für den jeweiligen Client fest (unabhängig von dynamischer Registrierung, statischer Konfiguration oder anderer Etablierung).
Um TLS für die OAuth-Client-Authentifizierung zu nutzen, MUSS die TLS-Verbindung zwischen Client und Authorization Server mit Mutual-TLS-X.509-Zertifikatsauthentifizierung aufgebaut oder neu aufgebaut worden sein (d. h. die Client-Nachrichten „Certificate“ und „CertificateVerify“ werden während des TLS-Handshakes gesendet).
Bei allen Anfragen an den Authorization Server mit Mutual-TLS-Client-Authentifizierung MUSS der Client den in Abschnitt 2.2 von OAuth 2.0 [RFC6749] beschriebenen Parameter client_id angeben. Durch client_id kann der Authorization Server den Client unabhängig vom Zertifikatsinhalt identifizieren. Er kann die Client-Konfiguration über den Client-Identifier laden und das im TLS-Handshake vorgelegte Zertifikat mit den erwarteten Credentials abgleichen. Der Authorization Server MUSS die Bindung zwischen Client und Zertifikat wie in Abschnitt 2.1 oder 2.2 erzwingen. Wird kein Zertifikat vorgelegt oder weicht es vom Erwarteten für das gegebene client_id ab, liefert der Authorization Server eine normale OAuth-2.0-Fehlerantwort gemäß Abschnitt 5.2 von [RFC6749] mit dem Fehlercode invalid_client.