Externen IdP mit der Edge Management API verwenden

Die Basisauthentifizierung ist eine Möglichkeit, sich bei Aufrufen der Edge-Verwaltungs-API zu authentifizieren. Sie können beispielsweise die folgende curl Anfrage an die Edge-Verwaltungs-API senden, um auf Informationen zu Ihrer Organisation zuzugreifen:

curl -u USER_NAME:PASSWORD http://MS_IP_DNS:8080/v1/organizations/ORG_NAME

In diesem Beispiel verwenden Sie die Option curl -u, um Anmeldedaten für die Basisauthentifizierung zu übergeben. Alternativ können Sie ein OIDC-/OAuth2-Token im Authorization: Bearer Header übergeben, um Aufrufe der Edge-Verwaltungs-API auszuführen, wie im folgenden Beispiel gezeigt:

curl -H "Authorization: Bearer ACCESS_TOKEN" http://MS_IP_DNS:8080/v1/organizations/ORG_NAME

Nachdem Sie einen externen IDP für die Authentifizierung aktiviert haben, können Sie die Basis authentifizierung optional deaktivieren. Wenn Sie die Basisauthentifizierung deaktivieren, funktionieren alle Skripts (z. B. Maven, Shell und apigeetool), die auf Aufrufen der Edge-Verwaltungs-API basieren, die die Basisauthentifizierung unterstützen, nicht mehr. Sie müssen alle API-Aufrufe und Skripts, die die Basisauthentifizierung verwenden, aktualisieren, um OAuth2-Zugriffstokens im Bearer Header zu übergeben.

Tokens mit get_token abrufen und aktualisieren

Das Dienstprogramm get_token verwendet den standardmäßigen OAuth 2.0-Gerätecodevorgang, um OIDC-/OAuth2-Zugriffs- und Aktualisierungstokens zu erhalten. Das Dienstprogramm fordert Sie auf, eine URL in Ihrem Browser aufzurufen, um sich über Ihren externen IDP (oder lokalen LDAP) zu authentifizieren. Anschließend wird Ihr Terminal automatisch entsperrt, um das gültige Zugriffstoken auszugeben.

Das Dienstprogramm get_token speichert die Tokens sicher auf der Festplatte in ~/.sso-cli/, damit sie bei Bedarf verwendet werden können. Außerdem wird ein gültiges Zugriffstoken in stdout ausgegeben. Wenn ein vorhandenes Token aktualisiert werden kann, wird es automatisch aktualisiert. Wenn das Aktualisierungstoken abläuft, wird ein neuer browserbasierter Autorisierungsvorgang gestartet.

So rufen Sie ein OAuth2-Zugriffstoken ab, um Aufrufe der Edge-Verwaltungs-API auszuführen :

  1. Die get_token und acurl Dienstprogramme sind auf dem Knoten vorinstalliert, auf dem sich Apigee SSO befindet (OpenLDAP-Knoten): /opt/apigee/apigee-openldap/bin/
  2. (Optional) Legen Sie die Umgebungsvariable SSO_LOGIN_URL auf die SSO-Aussteller-URL fest, und zwar im folgenden Format:
    export SSO_LOGIN_URL="http://EDGE_SSO_IP_DNS:9099"

    Dabei ist EDGE_SSO_IP_DNS die IP-Adresse oder der DNS-Name des Computers, auf dem Apigee SSO gehostet wird. Wenn Sie TLS für Apigee SSO konfiguriert haben, verwenden Sie https und die richtige TLS-Portnummer.

  3. Rufen Sie get_token mit Ihrer E‑Mail-Adresse auf, um den OAuth 2.0-Gerätecodevorgang zu starten:
    /opt/apigee/apigee-openldap/bin/get_token -u EMAIL_ADDRESS

    Dabei ist EMAIL_ADDRESS die E‑Mail-Adresse eines Edge-Nutzers.

  4. Das Dienstprogramm wird pausiert und gibt eine URL und einen 8-stelligen Gerätecode in Ihrem Terminal aus:
    Please visit: http://EDGE_SSO_IP_DNS:9099/device
    And enter code: ABCD-EFGH
  5. Öffnen Sie die angegebene URL in Ihrem Browser, geben Sie den Gerätecode ein und klicken Sie auf Senden. Sie werden zu Ihrem externen IDP (oder lokalen LDAP-Formular) weitergeleitet, um sich zu authentifizieren und die Anfrage zu genehmigen.
  6. Nachdem Sie sich im Browser authentifiziert haben, kehren Sie zu Ihrem Terminal zurück. Das Dienstprogramm get_token erkennt die Genehmigung automatisch, ruft das OAuth2-Zugriffstoken ab, gibt es auf dem Bildschirm aus und speichert es sicher im Cache.
  7. Übergeben Sie das Zugriffstoken an einen Aufruf der Edge-Verwaltungs-API mit dem Dienstprogramm acurl, das das im Cache gespeicherte Token automatisch liest und den Bearer-Header einfügt:
    /opt/apigee/apigee-openldap/bin/acurl http://MS_IP_DNS:8080/v1/organizations/ORG_NAME

    Alternativ können Sie das Token manuell mit dem Standardbefehl curl übergeben:

    curl -H "Authorization: Bearer ACCESS_TOKEN" \
      http://MS_IP_DNS:8080/v1/organizations/ORG_NAME

Tokens mit der Verwaltungs-API abrufen und Aktualisierungstoken

Der Legacy-Endpunkt /passcode wurde entfernt. Daher müssen menschliche Nutzer das Dienstprogramm get_token wie oben beschrieben verwenden, um den browserbasierten OAuth 2.0-Gerätecodevorgang für die Erstauthentifizierung zu starten.

Wenn Sie Skripts oder CI/CD-Pipelines schreiben, die nicht mit einem Browser interagieren können, lesen Sie Aufgaben mit Maschinenbenutzern automatisieren. Automatisierte Maschinenbenutzer oder Anwendungen mit gültigen Anmeldedaten können Standard-API-Aufrufe verwenden, um Tokens abzurufen und zu aktualisieren.