Berechtigungstyp "TLS-Clientauthentifizierung"
Verwenden Sie den Berechtigungstyp Transport Layer Security (TLS), wenn der Autorisierungsgeltungsbereich auf die geschützten Ressourcen unter der Kontrolle des Clients oder zum Schutz von Ressourcen beschränkt ist, die beim OAuth-Autorisierungsserver registriert sind.
Das folgende Diagramm zeigt den Ablauf "Berechtigungstyp für TLS-Clientauthentifizierung".

Voraussetzung: Laden Sie das Clientzertifikat in den Clientzertifikatspeicher hoch.
- Im Rahmen des TLS-Handshakes stellt die Clientanwendung ein eigenes Zertifikat und eine eigene Client-ID vor, um ein Zugriffstoken abzurufen. Hinweis: Dieses Zertifikat muss mit dem Zertifikat im Clientzertifikatsspeicher übereinstimmen.
- Dieses angeforderte Zugriffstoken ist entweder mit den eigenen Ressourcen des Clients, aber nicht mit einem bestimmten Ressourceneigentümer, oder mit einem Ressourceneigentümer verknüpft, für den die Clientanwendung anderweitig berechtigt ist, Aktionen auszuführen.
- Der Autorisierungsserver gibt das Zugriffstoken erst nach erfolgreicher Zertifikatsvalidierung an die Clientanwendung zurück.
- Die Clientanwendung verwendet das Zugriffstoken in einem API-Aufruf, um die App zu aktualisieren.
Funktion | Verfügbare |
---|---|
Clientauthentifizierung erforderlich | Ja |
Client muss Benutzerzugangsdaten kennen | Nein |
Browserbasierte Endbenutzerinteraktion | Nein |
Kann externen Identitätsprovider zur Authentifizierung verwenden | Nein |
Tokenaktualisierung ist zulässig | Nein |
Zugriffstoken befindet sich im Kontext der Clientanwendung | Ja |
Ein Beispielablauf finden Sie unter Beispiel für Autorisierungsablauf beim Typ der TLS-Clientauthentifizierung.
Beispiel für Autorisierungsablauf für Berechtigungserteilung für TLS-Clientauthentifizierung
Der Berechtigungstyp "Transport Layer Security-(TLS-)Clientauthentifizierung" stellt einen bestimmten Berechtigungsfluss bereit, an dem der Ressourceneigentümer nicht beteiligt ist. In diesem Szenario führt die Clientanwendung Prozesse aus, die nicht über die Beteiligung des Ressourceneigentümers verfügen, z.B. einen Batchprozess oder eine Server-zu-Server-Aufgabe.
Wenn Sie diesen Berechtigungstyp verwenden, fordert die Clientanwendung zusammen mit der Client-ID ein Zugriffstoken mit einem eigenen Zertifikat (das im Clientprofil hochgeladene Zertifikat) an und verwendet das Zugriffstoken im Namen der Clientanwendung selbst. Dieser Berechtigungsfluss eignet sich am besten, wenn ein Serviceprovider einige API-Methoden bereitstellen möchte, die von der Clientanwendung im Allgemeinen anstelle von API-Methoden verwendet werden sollen, die für einen bestimmten Ressourceneigentümer gelten. Beispiel: API-Methoden für die Wartung.
- Geben Sie die vertrauliche Anwendung als Anwendungstyp an. Mobile/Browser-Anwendungen haben kein Clientzertifikat und können den Berechtigungstyp "TLS-Clientauthentifizierung" nicht verwenden.
- Wählen Sie TLS-Clientauthentifizierung als Berechtigungstyp aus.
- Wählen Sie unter Clienttyp die Option Vertrauenswürdig oder Vertraulich aus.
- Importieren Sie das Clientzertifikat. Dieses Zertifikat wird zur Validierung der Tokenanforderung verwendet. Hinweis: Der Client muss dasselbe Zertifikat in der Tokenanforderung verwenden.
Weitere Informationen zum Berechtigungstyp "TLS-Clientauthentifizierung" und zu einem Autorisierungsflussdiagramm finden Sie unter Berechtigungstyp "TLS-Clientauthentifizierung".
-
Ein vom Client initiiertes Ereignis (z.B. eine geplante Aufgabe) fordert Zugriff auf geschützte Ressourcen von einer OAuth-Clientanwendung an.
Die Ereignis-URL enthält Abfrageparameter, die den angeforderten Zugriffstyp angeben:
Beispielanforderung mit dem AutorisierungsheaderHinweis
cacert.crt ist das CA-Zertifikat, das das Zertifikat des Servers für diese TLS signiert hat.
client.key ist der Private Key des Clients.
client.crt ist ein Clientzertifikat.
curl -i --cacert cacert.crt --key client.key --cert client.crt -H 'Content-Type: application/x-www-form-urlencoded;charset=UTF-8' --request POST https://<domainURL>/oauth2/v1/token -d 'grant_type=tls_client_auth&client_id=<client ID>&scope=<scope value>'
Beispielanforderung mit mTLS
Informationen zum Abrufen der
secureDomainURL
finden Sie unter Zugriffsberechtigungstypen.curl -v \ --cert cert.crt \ --key key.key \ --cacert ca.crt \ --location '<secureDomainURL>/oauth2/v1/token' \ --header 'Authorization: Basic <base64Encoded clientid:secret>' --header 'Content-Type: application/x-www-form-urlencoded' \ --data-urlencode 'grant_type=client_credentials' \ --data-urlencode 'client_id=<client-id>' \ --data-urlencode 'scope=urn:opc:idm:_myscopes_'
- Die Clientanwendung fordert ein Zugriffstoken vom Autorisierungsserver OAuth an.
- Der Autorisierungsserver OAuth:
- Authentifiziert die Clientanwendung basierend auf dem Zertifikat, das als Teil des TLS-Handshakes gesendet wurde.
- Gibt ein Zugriffstoken zurück, das alle anwendbaren Geltungsbereiche enthält, basierend auf den Berechtigungen, die von den Anwendungsrollen angegeben werden, die der anfordernden Clientanwendung erteilt wurden.
- Die Clientanwendung verwendet das Zugriffstoken, um eine Anforderung auszuführen.