SAML mit der Edge Management API verwenden

Edge for Private Cloud Version 4.17.09

Die Basisauthentifizierung ist eine Möglichkeit, sich bei Aufrufen der Edge-Verwaltungs-API zu authentifizieren. So können Sie 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 werden mit der cURL-Option „-u“ Anmeldedaten für die Basisauthentifizierung übergeben. Alternativ können Sie ein OAuth2-Token im Bearer-Header übergeben, um Edge-Verwaltungs-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 die Basisauthentifizierung optional deaktivieren. Wenn Sie die Basisauthentifizierung deaktivieren, funktionieren alle Scripts (Maven-Scripts, Shell-Scripts, apigeetool usw.), die auf Edge Management API-Aufrufen basieren, die die Basisauthentifizierung unterstützen, nicht mehr. Sie müssen alle API-Aufrufe und Scripts aktualisieren, die die Basisauthentifizierung verwenden, um OAuth2-Zugriffstokens im Bearer-Header zu übergeben.

Tokens mit get_token abrufen und aktualisieren

Das Dienstprogramm get_token tauscht Ihre Basic Auth-Anmeldedaten und einen Sicherheitscode gegen ein OAuth2-Zugriffs- und Aktualisierungstoken aus. Das get_token-Dienstprogramm akzeptiert Ihre Anmeldedaten und druckt ein gültiges Zugriffstoken aus. Wenn ein Token aktualisiert werden kann, wird es aktualisiert und ausgedruckt. Wenn das Aktualisierungstoken abläuft, werden Nutzer zur Eingabe ihrer Anmeldedaten aufgefordert.

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

Im Folgenden wird beschrieben, wie du mit get_token ein OAuth2-Zugriffstoken abrufen kannst, um Edge-Verwaltungs-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 der Maschine, die das Edge-SSO-Modul hostet. Wenn Sie TLS für Edge SSO konfiguriert haben, verwenden Sie https und die richtige TLS-Portnummer.

  2. Entpacke 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, z. B.:
    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 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 Einmalpasscode zu erhalten:
    http://edge_sso_IP_DNS:9099/passcode

    Wenn Sie TLS in Edge SSO konfiguriert haben, verwenden Sie https und die richtige TLS-Portnummer.

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

  6. Rufe 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:

    One Time Code ( Get one at https://edge_sso_IP.com/passcode )
          Enter the passcode if SAML is enabled or press ENTER:

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

    Sie können den Sicherheitscode in der Befehlszeile mit einem get_token-Befehl in folgender Form 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 es mit einem einzigen Befehl abrufen und 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 Befehlsform abgelaufen ist, wird es automatisch aktualisiert, bis das Aktualisierungstoken abläuft.

Nach Ablauf des Aktualisierungstokens werden Sie von get_token aufgefordert, einen neuen Sicherheitscode einzugeben. Sie müssen die in Schritt 3 oben angegebene URL aufrufen und einen neuen Sicherheitscode generieren, bevor Sie ein neues OAuth-Zugriffstoken generieren können.

Tokens mit der Verwaltungs-API abrufen und aktualisieren

OAuth2-Sicherheit mit der Apigee Edge-Verwaltungs-API verwenden enthält Anweisungen, in denen gezeigt wird, wie Sie mit der Edge-Verwaltungs-API Tokens abrufen und aktualisieren. 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 in OAuth2-Sicherheit mit der Apigee Edge-Verwaltungs-API verwenden beschrieben sind, besteht darin, dass die URL des Aufrufs auf den Namen Ihrer Zone verweisen muss. Außerdem müssen Sie zum Generieren des ersten Zugriffstokens den Sicherheitscode angeben, wie in Schritt 3 der Anleitung oben beschrieben.

Verwenden Sie beispielsweise den folgenden API-Aufruf, um die anfänglichen 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 im Authorization-Header eine reservierte OAuth2-Clientanmeldedaten. Durch den Aufruf werden die Zugriffs- und Aktualisierungstokens auf dem Bildschirm ausgegeben.

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'