3. Mutual-TLS Client Certificate-Bound Access Tokens (Zertifikatsgebundene Access Tokens)
3. Mutual-TLS Client Certificate-Bound Access Tokens (Zertifikatsgebundene Access Tokens)
Nutzt der Client Mutual TLS auf der Verbindung zum Token Endpoint, kann der Authorization Server das ausgestellte Access Token an das Clientzertifikat binden. Die Bindung erfolgt, indem das Zertifikat dem Token so zugeordnet wird, dass die geschützte Ressource darauf zugreifen kann, etwa durch Einbettung des Zertifikatshashes ins Access Token gemäß Abschnitt 3.1 oder über Token Introspection gemäß Abschnitt 3.2. So wird die Bindung von der Client-Authentifizierung beim Authorization Server entkoppelt, und Mutual TLS beim Ressourcenzugriff kann rein als Proof-of-Possession dienen. Andere Zuordnungsarten sind nach Vereinbarung zwischen Authorization Server und geschützter Ressource möglich, liegen aber außerhalb dieser Spezifikation.
Ein Resource Server, der zertifikatsgebundene Access Tokens nutzen will, muss vorab wissen, dass Mutual TLS für einen Teil oder alle Ressourcenzugriffe vorgesehen ist. Das Access Token selbst kann nicht als Eingabe für die Entscheidung dienen, Mutual TLS zu verlangen, denn aus TLS-Sicht ist es „Application Data“, das erst nach abgeschlossenem Handshake ausgetauscht wird, während die erste CertificateRequest während des Handshakes und vor den Anwendungsdaten erfolgt. Spätere Möglichkeiten zur Zertifikatsvorlage (z. B. TLS-1.2-Renegotiation [RFC5246] oder TLS-1.3-Post-Handshake-Authentifizierung [RFC8446]) werden hier nicht geregelt. Üblich ist, dass ein Mutual-TLS-Ressourcenserver Mutual TLS für alle gehosteten Ressourcen verlangt oder geschützte und reguläre Ressourcen auf getrennten Hostname-Port-Kombinationen anbietet; andere Abläufe sind denkbar. Die Synchronisation der Ressourcenserver-Richtlinie mit dem Authorization Server (AS) liegt außerhalb dieses Dokuments.
Im Rahmen eines Mutual-TLS-geschützten Ressourcenzugriffs sendet der Client geschützte Ressourcenanfragen wie in [RFC6750] beschrieben; diese Anfragen MÜSSEN über eine gegenseitig authentifizierte TLS-Verbindung mit demselben Zertifikat erfolgen wie beim Token Endpoint.
Die geschützte Ressource MUSS aus ihrer TLS-Implementierung das für Mutual TLS verwendete Clientzertifikat beziehen und MUSS prüfen, dass es mit dem dem Access Token zugeordneten Zertifikat übereinstimmt. Bei Nichtübereinstimmung MUSS der Zugriffsversuch gemäß [RFC6750] mit HTTP 401 und dem Fehlercode invalid_token abgelehnt werden.
Metadaten zu Server- und Client-Fähigkeiten für Mutual-TLS-zertifikatsgebundene Access Tokens sind in den Abschnitten 3.3 bzw. 3.4 definiert.