SAML mit der Edge Management API verwenden

Edge for Private Cloud v4.18.05

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

curl -u userName:pWord https://ms_IP_DNS:8080/v1/organizations/orgName

In diesem Beispiel verwenden Sie die cURL-Option „-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. Beispiel:

curl -H "Authorization: Bearer access_token" https://ms_IP_DNS:8080/v1/organizations/orgName

Nachdem Sie SAML aktiviert haben, können Sie optional die Standardauthentifizierung deaktivieren. Wenn Sie die Standardauthentifizierung deaktivieren, funktionieren alle Skripts (Maven-Skripts, Shell-Skripts, apigeetool usw.), die auf Edge-Verwaltungs-API-Aufrufen basieren, die die Standardauthentifizierung 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.

„get_token“ zum Abrufen und Aktualisieren von Tokens verwenden

Das Dienstprogramm get_token tauscht Ihre Basic Auth-Anmeldedaten und einen Passcode gegen ein OAuth2-Zugriffs- und Aktualisierungstoken aus. Das Dienstprogramm get_token akzeptiert Ihre Anmeldedaten und gibt ein gültiges Zugriffstoken aus. Wenn ein Token aktualisiert werden kann, wird es aktualisiert und ausgegeben. Wenn das Aktualisierungstoken abläuft, werden Nutzeranmeldedaten abgefragt.

Das Dienstprogramm get_token speichert die Tokens auf dem Laufwerk, damit sie bei Bedarf verwendet werden können. Außerdem wird ein gültiges Zugriffstoken in stdout ausgegeben. Von dort aus können Sie Postman verwenden oder es in eine Umgebungsvariable einbetten, um es in curl zu verwenden.

Im Folgenden wird beschrieben, wie Sie mit get_token ein OAuth2-Zugriffstoken abrufen, um Edge Management API-Aufrufe auszuführen:

  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 des DNS-Namens des Computers, auf dem das Edge-SSO-Modul gehostet wird. Wenn Sie TLS für Edge-SSO konfiguriert haben, verwenden Sie https und die richtige TLS-Portnummer.

  2. Entpacken Sie das ssocli-bundle.zip-Bundle:
    unzip ssocli-bundle.zip
  3. Installieren Sie get_token in /usr/local/bin:
    > ./install Verwenden Sie die Option -b, um einen anderen Speicherort anzugeben: > ./install -b path
  4. Legen Sie die Umgebungsvariable SSO_LOGIN_URL auf Ihre Anmelde-URL fest. Verwenden Sie dazu das folgende Format:
    export SSO_LOGIN_URL="http://edge_sso_IP_DNS:9099"

    Dabei ist edge_sso_IP_DNS die IP-Adresse des DNS-Namens des Computers, auf dem das Edge-SSO-Modul gehostet wird. Wenn Sie TLS für Edge SSO konfiguriert haben, verwenden Sie https und die richtige TLS-Portnummer.
  5. 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 Edge-SSO konfiguriert haben, verwenden Sie https und die richtige TLS-Portnummer.

    Hinweis: Wenn Sie derzeit nicht bei Ihrem Identitätsanbieter angemeldet sind, werden Sie aufgefordert, sich anzumelden.

    Diese URL gibt einen einmaligen Sicherheitscode zurück, der gültig bleibt, bis Sie die URL aktualisieren, um einen neuen Sicherheitscode zu erhalten, oder bis Sie den Sicherheitscode mit get_token verwenden, um ein Zugriffstoken zu generieren.
  6. Rufen Sie get_token auf, um das OAuth2-Zugriffstoken abzurufen:
    > get_token -u emailAddress

    Dabei ist emailAddress die E-Mail-Adresse eines Edge-Nutzers. Sie werden aufgefordert, den einmaligen Sicherheitscode einzugeben, den Sie in Schritt 3 erhalten haben:
    Einmaliger Code ( unter https://edge_sso_IP.com/passcode abrufen)
    Geben Sie den Sicherheitscode ein, wenn SAML aktiviert ist, oder drücken Sie die Eingabetaste:


    Geben Sie den Sicherheitscode ein. Das Dienstprogramm get_token ruft das OAuth2-Zugriffstoken ab, gibt es auf dem Bildschirm aus und schreibt es sowie das Aktualisierungstoken in ~/.sso-cli.

    Sie können den Sicherheitscode in der Befehlszeile mit dem Befehl get_token in folgendem Format eingeben:
    > get_token -u emailAddress -p passcode
  7. Übergeben Sie das Zugriffstoken als Bearer-Header an einen Edge-Verwaltungs-API-Aufruf:
    > curl -H "Authorization: Bearer access_token" https://ms_IP:8080/v1/organizations/orgName

    Nachdem Sie zum ersten Mal ein neues Zugriffstoken erhalten haben, können Sie das Zugriffstoken abrufen und mit einem einzigen Befehl an einen API-Aufruf übergeben, wie unten gezeigt:
    > header=`get_token` && curl -H "Authorization: Bearer $header" https://ms_IP:8080/v1/o/orgName

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

Nach Ablauf des Aktualisierungstokens werden Sie von get_token aufgefordert, einen neuen Passcode einzugeben. Sie müssen die oben in Schritt 3 angegebene URL aufrufen und einen neuen Passcode 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 Management API verwenden enthält eine Anleitung, wie Sie mit der Edge Management API Tokens abrufen und Aktualisierungstokens abrufen. Sie können auch Edge API-Aufrufe für Tokens verwenden, die aus SAML-Assertions generiert wurden.

Der einzige Unterschied zwischen den API-Aufrufen, die unter OAuth2-Sicherheit mit der Apigee Edge Management API verwenden dokumentiert sind, besteht darin, dass die URL des Aufrufs auf Ihren Zonennamen verweisen muss. Außerdem müssen Sie zum Generieren des ersten Zugriffstokens den Passcode angeben, wie in Schritt 3 des obigen Verfahrens gezeigt.

Verwenden Sie beispielsweise den folgenden API-Aufruf, um die ersten Zugriffs- und Aktualisierungstokens 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'  

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

Wenn Sie das Zugriffstoken später aktualisieren möchten, 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=refreshToken'