Apigee bietet die Dienstprogramme get_token und acurl, um die Interaktion mit Apigee SSO und der Edge Management API zu vereinfachen. Diese Tools verarbeiten die Tokengenerierung, das Caching, die Aktualisierung und die Einfügung automatisch.
Die Dienstprogramme werden auf dem OpenLDAP-Knoten unter /opt/apigee/apigee-openldap/bin/ installiert.
Das Dienstprogramm „get_token“
Das Dienstprogramm get_token ist für den Abruf von OIDC/OAuth2-Zugriffs- und ‑Aktualisierungstokens zuständig. Es unterstützt zwei primäre Authentifizierungsabläufe und umfasst ein integriertes Token-Caching.
Authentifizierungsabläufe
- Gerätecodeablauf (RFC 8628) : Für menschliche Nutzer, die sich über einen externen Identitätsanbieter (z. B. SAML, Okta oder OIDC) authentifizieren. Wenn Sie nur eine E‑Mail-Adresse übergeben (
-u <email>), initiiert das Dienstprogramm diesen Ablauf und fordert Sie mit einer URL und einem Code auf, die Authentifizierung in einem Browser zu bestätigen. - Passwortberechtigung (ROPC) : Für Headless-Maschinennutzer und automatisierte Skripts. Wenn Sie sowohl einen Nutzernamen als auch ein Passwort übergeben (
-u <user>:<password>), erfolgt die Authentifizierung direkt bei Apigee SSO, ohne dass eine Browserinteraktion erforderlich ist.
Token-Caching und automatische Aktualisierung
Das Dienstprogramm get_token verwaltet automatisch die Lebenszyklen von Tokens, sodass Sie die Ablaufzeiten nicht manuell verfolgen müssen:
- Cache-Prüfung: Bei Aufruf prüft
get_tokenden lokalen Cache unter~/.sso-cli/<username>-token.json. Wenn ein gültiges Token vorhanden ist und noch nicht abgelaufen ist, wird es ohne erneute Authentifizierung wiederverwendet. - Automatische Aktualisierung:Wenn das im Cache gespeicherte Zugriffstoken abgelaufen ist, aber ein gültiges Aktualisierungstoken vorhanden ist, tauscht das Dienstprogramm das Aktualisierungstoken automatisch bei Apigee SSO gegen ein neues Zugriffstoken aus.
Umgebungsvariablen
Optional können Sie das Verhalten von get_token mit den folgenden Umgebungsvariablen anpassen:
SSO_LOGIN_URL: Die Apigee SSO-URL (Standard:http://localhost:9099).CLIENT_ID: Die OAuth2-Client-ID (Standard:edgecli).CLIENT_SECRET: Der OAuth2-Clientschlüssel (Standard:edgeclisecret).
Das Dienstprogramm „acurl“
Das Dienstprogramm acurl ist ein transparenter Wrapper für das Standarddienstprogramm curl. Es sorgt dafür, dass jede API-Anfrage ein gültiges Inhabertoken enthält.
- Argumenttrennung: Das Dienstprogramm extrahiert das Argument
-u <user:password>oder-u <user>und übergibt es anget_token. Alle anderen Argumente (z. B.-X,-H,-d,-v,-s) werden direkt an das Standarddienstprogrammcurlweitergeleitet. - Ausführung: Nachdem ein gültiges Token von
get_tokenabgerufen oder abgerufen wurde, fügtacurlautomatisch den Header-H "Authorization: Bearer <token>"in dencurl-Aufruf ein.
Anwendungsbeispiele
Beispiel 1: Interaktive Anmeldung für einen menschlichen Nutzer
/opt/apigee/apigee-openldap/bin/acurl -u developer@apigee.com http://MS_IP_DNS:8080/v1/organizations
Dieser Befehl wird angehalten, fordert den Nutzer auf, einen Browser zu öffnen, um sich über seinen externen Identitätsanbieter zu authentifizieren, und führt dann den API-Aufruf aus, sobald die Authentifizierung bestätigt wurde.
Beispiel 2: Headless-Anmeldung für einen Maschinennutzer
/opt/apigee/apigee-openldap/bin/acurl -u jenkins-bot@apigee.com:Secret123! http://MS_IP_DNS:8080/v1/organizations
Dieser Befehl authentifiziert sich direkt über die Passwortberechtigung und führt den API-Aufruf sofort aus.
Beispiel 3: Wiederverwenden eines im Cache gespeicherten Tokens
/opt/apigee/apigee-openldap/bin/acurl http://MS_IP_DNS:8080/v1/users
Da das Token in den vorherigen Schritten im Cache gespeichert wurde, müssen Sie das Argument -u nicht noch einmal angeben. Das Dienstprogramm liest das im Cache gespeicherte Token und fügt es automatisch ein.