Externen IdP mit der Edge Management API verwenden

Die Basisauthentifizierung ist eine Möglichkeit zur Authentifizierung, wenn Aufrufe an die Edge-Verwaltungs-API gesendet werden. Sie können beispielsweise die folgende curl-Anfrage an die Edge Management API senden, um auf Informationen zu Ihrer Organisation zuzugreifen:

curl -u USER_NAME:PASSWORD https://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 OAuth2-Token im Bearer-Header übergeben, um Edge-Management-API-Aufrufe auszuführen, wie im folgenden Beispiel gezeigt:

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

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

Tokens mit get_token abrufen und aktualisieren

Das get_token-Dienstprogramm tauscht Ihre Anmeldedaten für die Basisauthentifizierung (und in einigen Fällen einen Sicherheitscode) gegen ein OAuth2-Zugriffs- und -Aktualisierungstoken aus. Das Dienstprogramm get_token akzeptiert Ihre Anmeldedaten und gibt ein gültiges Zugriffstoken zurück. Wenn ein Token aktualisiert werden kann, wird es vom Dienstprogramm aktualisiert und zurückgegeben. Wenn das Aktualisierungstoken abläuft, werden Sie zur Eingabe von Nutzeranmeldedaten aufgefordert.

Das get_token-Dienstprogramm speichert die Tokens auf dem Laufwerk und kann bei Bedarf verwendet werden. Außerdem wird ein gültiges Zugriffstoken an stdout ausgegeben. Von dort aus können Sie eine Browsererweiterung wie Postman verwenden oder sie zur Verwendung in curl in eine Umgebungsvariablen einbetten.

So rufen Sie ein OAuth2-Zugriffstoken für Edge-Management-API-Aufrufe ab:

  1. Laden Sie das sso-cli-Bundle herunter:
    curl http://EDGE_SSO_IP_DNS:9099/resources/scripts/sso-cli/ssocli-bundle.zip -o "ssocli-bundle.zip"

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

  2. Entpacken Sie das Bundle ssocli-bundle.zip wie im folgenden Beispiel gezeigt:
    unzip ssocli-bundle.zip
  3. Installieren Sie get_token in /usr/local/bin, wie im folgenden Beispiel gezeigt:
    ./install -b PATH

    Mit der Option -b wird ein anderer Standort angegeben.

  4. Legen Sie die Umgebungsvariable SSO_LOGIN_URL auf Ihre Anmelde-URL im folgenden Format fest:
    export SSO_LOGIN_URL="http://EDGE_SSO_IP_DNS:9099"

    Dabei ist EDGE_SSO_IP_DNS die IP-Adresse der Maschine, auf der das Apigee SSO-Modul gehostet wird. Wenn Sie TLS für Apigee SSO konfiguriert haben, verwenden Sie https und die richtige TLS-Portnummer.

  5. (Nur SAML) Rufen Sie in einem Browser die folgende URL auf, um einen einmaligen Sicherheitscode zu erhalten:
    http://EDGE_SSO_IP_DNS:9099/passcode

    Wenn Sie TLS für Apigee SSO konfiguriert haben, verwenden Sie https und die richtige TLS-Portnummer.

    Diese Anfrage gibt einen einmaligen Sicherheitscode zurück. Dieser bleibt gültig, bis Sie die URL aktualisieren, um einen neuen Sicherheitscode zu erhalten, oder Sie verwenden den Sicherheitscode mit get_token, um ein Zugriffstoken zu generieren.

    Beachten Sie, dass Sie einen Sicherheitscode nur für die Authentifizierung mit einem SAML-IdP verwenden können. Sie können keinen Sicherheitscode für die Authentifizierung bei einem LDAP-IdP verwenden.

  6. Rufen Sie get_token auf, um das OAuth2-Zugriffstoken abzurufen, wie im folgenden Beispiel gezeigt:
    get_token -u EMAIL_ADDRESS

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

    (Nur SAML) Geben Sie den Sicherheitscode zusätzlich zur E-Mail-Adresse in der Befehlszeile ein, wie im folgenden Beispiel gezeigt:

    get_token -u EMAIL_ADDRESS -p PASSCODE

    Das get_token-Dienstprogramm ruft das OAuth2-Zugriffstoken ab, gibt es auf dem Bildschirm aus und schreibt es zusammen mit dem Aktualisierungstoken in ~/.sso-cli.

  7. Übergeben Sie das Zugriffstoken an einen Edge-Management-API-Aufruf als Bearer-Header, wie im folgenden Beispiel gezeigt:
    curl -H "Authorization: Bearer ACCESS_TOKEN"
      https://MS_IP:8080/v1/organizations/ORG_NAME
  8. Nachdem Sie zum ersten Mal ein neues Zugriffstoken erhalten haben, können Sie es abrufen und mit einem einzigen Befehl an einen API-Aufruf übergeben, wie im folgenden Beispiel gezeigt:
    header=`get_token` && curl -H "Authorization: Bearer $header"
      https://MS_IP:8080/v1/o/ORG_NAME

    Wenn das Zugriffstoken abgelaufen ist, wird es mit dieser Form des Befehls automatisch aktualisiert, bis das Token abläuft.

(Nur SAML) Nach Ablauf des Aktualisierungstokens werden Sie von get_token zur Eingabe eines neuen Sicherheitscodes aufgefordert. Sie müssen die in Schritt 3 oben gezeigte URL aufrufen und einen neuen Sicherheitscode generieren, bevor Sie ein neues OAuth-Zugriffstoken generieren können.

Verwaltungs-API zum Abrufen und Aktualisieren von Tokens verwenden

OAuth2-Sicherheit mit der Apigee Edge-Verwaltungs-API verwenden zeigt, wie Sie mit der Edge-Verwaltungs-API Tokens abrufen und aktualisieren. Sie können auch Edge API-Aufrufe verwenden, um Tokens zu erhalten, die von SAML-Assertions generiert wurden.

Der einzige Unterschied zwischen den unter OAuth2-Sicherheit mit der Apigee Edge-Verwaltungs-API verwenden dokumentierten API-Aufrufen besteht darin, dass die URL des Aufrufs auf Ihren Zonennamen verweisen muss. Zusätzlich müssen Sie zum Generieren des anfänglichen Zugriffstokens mit einem SAML-IdP den Sicherheitscode angeben, wie in Schritt 3 des oben beschriebenen Verfahrens beschrieben.

Übergeben Sie zur Autorisierung reservierte OAuth2-Clientanmeldedaten im Authorization-Header. Der Aufruf gibt die Zugriffs- und Aktualisierungstokens auf dem Bildschirm aus.

Zugriffstoken anfordern

(LDAP) Verwenden Sie den folgenden API-Aufruf, um das Erstzugriffs- und Aktualisierungstoken zu generieren:

curl -H "Content-Type: application/x-www-form-urlencoded;charset=utf-8" \
  -H "accept: application/json;charset=utf-8" \
  -H "Authorization: Basic ZWRnZWNsaTplZGdlY2xpc2VjcmV0" -X POST \
  http://EDGE_SSO_IP_DNS:9099/oauth/token -s \
  -d 'grant_type=password&username=USER_EMAIL&password=USER_PASSWORD'

(SAML) Verwenden Sie den folgenden API-Aufruf, um das Erstzugriffs- und Aktualisierungstoken zu generieren:

curl -H "Content-Type: application/x-www-form-urlencoded;charset=utf-8" \
  -H "accept: application/json;charset=utf-8" \
  -H "Authorization: Basic ZWRnZWNsaTplZGdlY2xpc2VjcmV0" -X POST \
  https://EDGE_SSO_IP_DNS:9099/oauth/token -s \
  -d 'grant_type=password&response_type=token&passcode=PASSCODE'

Für die Authentifizierung mit einem SAML-IdP ist im Gegensatz zu einem LDAP-IdP ein temporärer Sicherheitscode erforderlich.

Zugriffstoken aktualisieren

Um das Zugriffstoken später zu aktualisieren, verwenden Sie den folgenden Aufruf, der das Aktualisierungstoken enthält:

curl -H "Content-Type:application/x-www-form-urlencoded;charset=utf-8" \
  -H "Accept: application/json;charset=utf-8" \
  -H "Authorization: Basic ZWRnZWNsaTplZGdlY2xpc2VjcmV0" -X POST \
  https://EDGE_SSO_IP_DNS:9099/oauth/token \
  -d 'grant_type=refresh_token&refresh_token=REFRESH_TOKEN'