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 wirken. 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. Navigieren Sie zu Admin > API > OAuth-Clients und klicken Sie dann rechts oben in der Liste auf das Pluszeichen (+). Das Einrichten des Clients für Testzwecke funktioniert ein wenig anders als das Erstellen 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://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 List Clients-Endpunkt der OAuth Client-API abrufen.
- Sie sollten Ihren Geheimschlüssel kopieren und aufbewahren. Er wird nach dem Erstellen nicht mehr angezeigt, aber zum Beispiel für den Aufbau einer OAuth-Webanwendung oder andere Projekte benötigt.
- Alle übrigen Felder können mit Dummy-Daten gefüllt werden.
Erstellen des Zugriffstokens
Nun 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.
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 bei Ihrem nächsten Besuch von Admin > API > OAuth-Clients die Anzahl der aktiven Token für Ihren neuen Client um 1 erhöht haben.
Verwenden Ihres 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 Anwendungen und Skripten 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 zum Beispiel erfordert normalerweise eine solche 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"
0 Kommentare
Bitte melden Sie sich an, um einen Kommentar zu hinterlassen.