SAML mit der Edge Management API verwenden

Basic Auth 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 über Ihre Organisation zuzugreifen:

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

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 durchzufü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 Basic Auth deaktivieren. Wenn Sie die Basic Auth deaktivieren, funktionieren alle Skripts (Maven-Skripte, Shell-Skripts, apigeetool usw.) von Edge-Verwaltungs-API-Aufrufen, die Basic Auth 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 Sicherheitscode 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 ausgedruckt. Wenn das Aktualisierungstoken abläuft, werden Sie zur Eingabe von Nutzeranmeldedaten aufgefordert.

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

Im folgenden Verfahren wird beschrieben, wie Sie mit get_token ein OAuth2-Zugriffstoken für Edge-Management-API-Aufrufe abrufen:

  1. Laden Sie das Bundle sso-cli 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 der Maschine, auf der das Edge-SSO-Modul gehostet wird. Wenn Sie TLS on Edge SSO konfiguriert haben, verwenden Sie https und die richtige TLS-Portnummer.

  2. Entpacken Sie das Paket ssocli-bundle.zip:
    unzip ssocli-bundle.zip
  3. Installieren Sie get_token in get_token:
    get_token. Verwenden Sie die Option get_token, um einen anderen Speicherort anzugeben: > ./install -b Pfad
  4. Legen Sie die Umgebungsvariable SSO_LOGIN_URL im folgenden Format auf Ihre Anmelde-URL fest:
    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 on 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 on 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 dazu aufgefordert.

    Diese URL 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.
  6. Rufen Sie get_token auf, um das OAuth2-Zugriffstoken zu erhalten:
    > get_token -u emailAddress

    wobei emailAddress die E-Mail-Adresse eines Edge-Nutzers ist. 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 zusammen mit dem Aktualisierungstoken in ~/.sso-cli.

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

    Nachdem Sie ein neues Zugriffstoken zum ersten Mal erhalten haben, können Sie das Zugriffstoken in „
    “ und den Befehl „curl“ als „$_curl“ abrufen, wenn im folgenden Befehl „$_curl“: „$_curl“, wenn das Zugriffstoken zum ersten Mal abgelaufen ist: „$_curl“, wenn im folgenden Befehl „$_curl“ nach dem API-Aufruf „$_curl“ übergeben wird“: > curl - H „Authorization: Bearer“/access_token“: > curl = <code> / curl-> an einen API-Schlüssel abrufen:

Nachdem das Aktualisierungstoken abgelaufen ist, werden Sie von get_token zur Eingabe eines neuen Sicherheitscodes aufgefordert. Rufen Sie die in Schritt 3 oben gezeigte URL auf und generieren Sie einen neuen Sicherheitscode, bevor Sie ein neues OAuth-Zugriffstoken generieren können.

Verwaltungs-API zum Abrufen und Aktualisieren von Tokens verwenden

Unter OAuth2-Sicherheit mit der Apigee Edge Management API verwenden finden Sie eine Anleitung dazu, wie Sie mit der Edge Management API Tokens abrufen und aktualisieren. Sie können Edge API-Aufrufe auch für Tokens verwenden, die aus 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 ersten Zugriffstokens den Sicherheitscode angeben, wie in Schritt 3 des obigen Verfahrens beschrieben.

Verwenden Sie beispielsweise 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'  

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

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=refreshToken'