Wenn Sie eine interne Anwendung testen oder erstellen, möchten Sie wahrscheinlich nicht, dass Ihre API-Anfragen einem bestimmten Benutzer zugeordnet werden, wie dies bei der Standard-Authentifizierung der Fall ist, die einen Benutzernamen und ein Kennwort, oder bei der API-Token-Authentifizierung, die noch einen Benutzernamen erfordert. Die dritte Option ist die Verwendung eines OAuth-Zugriffstokens.
Auf den ersten Blick mag das Erstellen eines OAuth-Tokens aufgrund des aufwendigen Autorisierungsverfahrens etwas komplex erscheinen. Sie können jedoch die kompliziertesten Teile des Verfahrens überspringen und ein Zugriffstoken direkt über die API beziehen. In diesem Beitrag wird beschrieben, wie Sie in ein paar einfachen Schritten Ihr eigenes OAuth-Token für Testzwecke erstellen.
Erstellen des OAuth-Clients
Als Erstes müssen Sie einen OAuth-Client für Testzwecke erstellen.
- Klicken Sie in der Seitenleiste des Admin Centers auf das Symbol Apps und Integrationen () und dann auf APIs > Zendesk-API.
- Klicken Sie in der Registerkarte OAuth-Clients oben rechts in der Liste auf OAuth-Client hinzufügen.
Die Einrichtung des Clients für Testzwecke funktioniert ein wenig anders als die Erstellung eines normalen OAuth-Clients. Beachten Sie die folgenden Unterschiede:
- Ihre Umleitungsadresse muss eine gültige HTTPS-URL sein, aber keine tatsächliche Website für dieses Projekt. Beispiel: https://beliebige_website.com.
- Die eindeutige Kennung ist der Name Ihres Kunden für die Verwendung im Code. Sie können die Client-ID auch über den Endpunkt List Clients der OAuth Client-API abrufen.
- Sie sollten Ihren Geheimschlüssel kopieren und sicher aufbewahren. Er wird nach der Erstellung nicht mehr angezeigt, aber zum Beispiel zur Entwicklung einer OAuth-Webanwendung oder für andere Projekte benötigt.
- Alle übrigen Felder können mit Dummy-Daten gefüllt werden.
Erstellen des Zugriffstokens
Jetzt haben Sie alles, was Sie brauchen, um mit der OAuth Tokens API ein Token zu erstellen. Die cURL-Anfrage sieht folgendermaßen aus:
curl https://{subdomain}.zendesk.com/api/v2/oauth/tokens.json \
-H "Content-Type: application/json" \
-d '{"token": {"client_id": "your_client_id", "scopes": ["read", "write"]}}' \
-X POST -v -u {email_address}:{password}
Einige Hinweise zu diesem Code:
- Denken Sie daran, den Platzhalter ‚subdomain‘ durch Ihre Subdomäne zu ersetzen.
- Der Wert von "client_id" ist die von der OAuth Clients-Seite kopierte Nummer.
- Setzen Sie die "scopes" auf ["read", "write"], es sei denn, Sie testen gezielt den schreibgeschützten Zugriff auf eine Ressource.
- Wenn Ihr Unternehmen Single Sign-On (SSO) verwendet und die Zendesk-Kennwörter aus dem Zendesk-Konto gelöscht wurden, müssen Sie ein API-Token verwenden, um die Anfrage zu authentifizieren.
-u {email_address}/token:{api_token}
Weitere Informationen finden Sie unter API token (Englisch) in der Dokumentation zur Support API.
Führen Sie Ihre cURL-Anfrage aus. Sie sollte ein JSON-Paket aus einem Token-Objekt mit mehreren Eigenschaften zurückgeben:
Der Wert von „full_token“ ist Ihr Zugriffstoken. Kopieren Sie es und bewahren Sie es sicher auf!
Beachten Sie, dass die Eigenschaft "expires_at" der Antwort "null" ist, was bedeutet, dass das Token funktioniert, bis Sie den Client selbst löschen. Außerdem sollte sich das nächste Mal, wenn Sie die Liste OAuth-Clients im Admin Center aufrufen, die Anzahl der aktiven Token für Ihren neuen Client um 1 erhöht haben.
Verwenden des neuen Zugriffstokens
Was nützt ein Zugriffstoken, wenn Sie keine Verwendung dafür haben? In keinem der unten stehenden Beispiele wird ein Benutzername oder Kennwort verwendet. Das ist Absicht. Ein OAuth-Zugriffstoken ist nicht von einem Benutzerkonto abhängig, was bei der Verwendung in Apps und Skripts von Vorteil ist.
Authentifizieren einer API-Anfrage mithilfe eines Zugriffstokens
Jeder API-Aufruf, der eine Authentifizierung erfordert, kann mit einem OAuth-Zugriffstoken erfolgen. Ein Aufruf des Ticket-Endpunkts zum Beispiel, der normalerweise so aussehen würde:
curl https://{subdomain}.zendesk.com/api/v2/tickets.json \
-u {email_address}:{password}
sieht mit einem Zugriffstoken so aus:
curl https://{subdomain}.zendesk.com/api/v2/tickets.json \
-H "Authorization: Bearer {access_token}"
Verwenden eines Zugriffstokens in einem API-Client
Sie können ein OAuth-Zugriffstoken auch in unseren API-Clients verwenden. Der Ruby-Client erfordert zum Beispiel normalerweise eine Authentifizierung mit Benutzernamen und Kennwort (oder API-Token):
config.username = "user email" config.password = "user password"
Und so sieht sie aus, wenn Sie stattdessen ein Zugriffstoken verwenden:
config.access_token = "your OAuth access token"