Verwenden von OAuth2 für den Zugriff auf die Edge API

<ph type="x-smartling-placeholder"></ph> Sie sehen die Dokumentation zu Apigee Edge.
Gehen Sie zur Apigee X-Dokumentation.
Weitere Informationen

Mit Apigee Edge können Sie Edge API-Aufrufe ausführen, die mit OAuth2-Tokens authentifiziert sind. Unterstützung für OAuth2 ist standardmäßig in Edge für die Cloud-Konten aktiviert. Wenn Sie Edge verwenden für die Private Cloud können Sie OAuth2 nicht ohne müssen Sie zuerst SAML oder LDAP einrichten.

Funktionsweise von OAuth2 (mit der Apigee Edge API)

Aufrufe der Apigee Edge-API erfordern eine Authentifizierung, damit wir sicher sein können, dass Sie der was Sie sagen. Damit wir Sie authentifizieren können, benötigen wir zusammen mit Ihrer Anfrage ein OAuth2-Zugriffstoken. um auf die API zuzugreifen.

Wenn Sie beispielsweise Details zu einer Organisation in Edge abrufen möchten, senden Sie eine Anfrage an eine URL wie die folgende ein:

https://api.enterprise.apigee.com/v1/organizations/ahamilton-eval

Sie können diese Anfrage jedoch nicht einfach senden, ohne uns mitzuteilen, wer Sie sind. Andernfalls kann jeder die Details Ihrer Organisation sehen konnte.

Hier kommt OAuth2 ins Spiel: Zur Authentifizierung benötigen wir von Ihnen ein Zugriffstoken. auch in dieser Anfrage. Das Zugriffstoken verrät uns, wer Sie sind, damit wir sicher sein können, dass Sie um die Details der Organisation anzuzeigen.

Glücklicherweise können Sie ein Token erhalten, indem Sie Ihre Anmeldedaten an den Edge OAuth2-Dienst senden. Die Der Dienst antwortet mit Zugriffs- und Aktualisierungstokens.

OAuth2-Ablauf: Die erste Anfrage

Die folgende Abbildung zeigt den OAuth2-Ablauf, wenn Sie beim ersten Zugriff auf die Edge API Zeit:

<ph type="x-smartling-placeholder">
</ph> OAuth-Ablauf: Erste Anfrage
Abbildung 1:OAuth-Ablauf: Erste Anfrage

Wie Abbildung 1 zeigt, gehen Sie bei Ihrer ersten Anfrage an die Edge API so vor:

  1. Sie fordern ein Zugriffstoken an. Dazu können Sie die Edge API, acurl oder get_token Hier einige Beispiele:
    get_token
    Enter username:
    ahamilton@apigee.com
    Enter the password for user 'ahamilton@apigee.com'
    [hidden input]
    Enter the six-digit code if 'ahamilton@apigee.com' is MFA enabled or press ENTER:
    123456
  2. Der Edge OAuth2-Dienst antwortet mit einem Zugriffstoken und gibt es an stdout aus. Beispiel:
    Dy42bGciOiJSUzI1NiJ9.eyJqdGkiOiJhM2YwNjA5ZC1lZTIxLTQ1YjAtOGQyMi04MTQ0MTYxNjNhNTMiLCJz
    AJpdGUiLCJhcHByb3ZhbHMubWUiLCJvYXV0aC5hcHByb3ZhbHMiXSwiY2xpZW50X2lkIjoiZWRnZWNsaSIsIm
    NjbGkiLCJhenAiOiJlZGdlY2xpIiwiZ3JhbnRfdHlwZSI6InBhc3N3b3JkIiwidXNlcl9pZCI6IjJkMWU3NDI
    GzQyMC1kYzgxLTQzMDQtOTM4ZS1hOGNmNmVlODZhNzkiLCJzY29wZSI6WyJzY2ltLm1lIiwib3BlbmlkIiwic
    ENC05MzhlLWE4Y2Y2ZWU4NmE3OSIsIm9yaWdpbiI6InVzZXJncmlkIiwidXNlcl9uYW1lIjoiZGFuZ2VyNDI0
    RI6ImUyNTM2NWQyIiwiaWF0IjoxNTI4OTE2NDA5LCJleHAiOjE1Mjg5MTgyMDksImlzcyI6Imh0dHBzOi8vbG
    420iLCJlbWFpbCI6ImRhbmdlcjQyNDJAeWFob28uY29tIiwiYXV0aF90aW1lIjoxNTI4OTE2NDA5LCJhbCI6M
    2lLmNvbSIsInppZCI6InVhYSIsImF1ZCI6WyJlZGdlY2xpIiwic2NpbSIsIm9wZW5pZCIsInBhc3N3b3JkIiw

    Die Dienstprogramme acurl und get_token speichern im Hintergrund den Zugriff und Aktualisierungstokens auf ~/.sso-cli (Das Aktualisierungstoken wird nicht in stdout. Wenn Sie den Edge OAuth2-Dienst verwenden, um Tokens abzurufen, müssen Sie diese für Sie später selbst nutzen können.

  3. Sie senden eine Anfrage mit dem Zugriffstoken an die Edge API. acurl Anhänge das Token automatisch. Beispiel:
    acurl https://api.enterprise.apigee.com/v1/organizations/ahamilton-eval

    Wenn Sie einen anderen HTTP-Client verwenden, achten Sie darauf, das Zugriffstoken hinzuzufügen. Beispiel:

    curl https://api.enterprise.apigee.com/v1/organizations/ahamilton-eval \
      -H "Authorization: Bearer ACCESS_TOKEN"
  4. Die Edge-API führt Ihre Anfrage aus und gibt normalerweise eine Antwort mit Daten zurück.

OAuth2-Ablauf: Nachfolgende Anfragen

Bei nachfolgenden Anfragen müssen Sie Ihre Anmeldedaten nicht gegen ein Token austauschen. Stattdessen können Sie einfach das bereits vorhandene Zugriffstoken einfügen, sofern es noch nicht abgelaufen ist:

<ph type="x-smartling-placeholder">
</ph> OAuth-Ablauf: Nachfolgende Anfragen
Abbildung 2:OAuth-Ablauf: Nachfolgende Anfragen

Wie in Abbildung 2 gezeigt, gehen Sie so vor, wenn Sie bereits ein Zugriffstoken haben:

  1. Sie senden eine Anfrage mit dem Zugriffstoken an die Edge API. acurl Anhänge das Token automatisch. Wenn Sie andere Tools verwenden, müssen Sie das Token manuell hinzufügen.
  2. Die Edge-API führt Ihre Anfrage aus und gibt normalerweise eine Antwort mit Daten zurück.

OAuth2-Ablauf: Wenn Ihr Zugriffstoken abläuft

Wenn ein Zugriffstoken abläuft (nach 12 Stunden), können Sie mit dem Aktualisierungstoken ein neues abrufen. Zugriffstoken:

<ph type="x-smartling-placeholder">
</ph> OAuth-Ablauf: Zugriffstoken aktualisieren
Abbildung 3: OAuth-Ablauf: Zugriffstoken aktualisieren

Wie in Abbildung 3 gezeigt, geschieht bei Ablauf Ihres Zugriffstokens Folgendes:

  1. Sie senden eine Anfrage an die Edge API, aber Ihr Zugriffstoken ist abgelaufen.
  2. Die Edge-API lehnt Ihre Anfrage als nicht autorisiert ab.
  3. Sie senden ein Aktualisierungstoken an den Edge-OAuth2-Dienst. Wenn Sie acurl verwenden, ist der Vorgang abgeschlossen. automatisch für Sie.
  4. Der Edge OAuth2-Dienst antwortet mit einem neuen Zugriffstoken.
  5. Sie senden eine Anfrage mit dem neuen Zugriffstoken an die Edge API.
  6. Die Edge-API führt Ihre Anfrage aus und gibt normalerweise eine Antwort mit Daten zurück.

Token abrufen

Um ein Zugriffstoken abzurufen, das Sie an die Edge API senden können, können Sie Folgendes verwenden: Apigee-Dienstprogramme wie curl:

  • get_token-Dienstprogramm: Taugt Ihre Apigee-Anmeldedaten gegen Zugriff aus und Aktualisierungstokens, mit denen Sie die Edge-API aufrufen können.
  • acurl-Dienstprogramm bietet einen Convenience-Wrapper um ein Standard- curl-Befehl. Konstruiert HTTP-Anfragen an den Edge API, ruft Zugriffs- und Aktualisierungstoken von get_token ab und übergibt das Zugriffstoken an die Edge-API.
  • Tokenendpunkte im Edge OAuth2-Dienst: Tauschen Sie Ihre Apigee-Anmeldedaten für die Zugriffs- und Aktualisierungstokens über einen Aufruf der Edge API.

Diese Dienstprogramme tauschen die Anmeldedaten für Ihr Apigee-Konto aus (E-Mail-Adresse und Passwort) für Tokens mit folgender Dauer:

  • Zugriffstokens laufen nach 12 Stunden ab.
  • Aktualisierungstokens laufen nach 30 Tagen ab.

Nachdem Sie erfolgreich einen API-Aufruf mit acurl oder get_token ausgeführt haben, können Sie das Tokenpaar noch 30 Tage lang verwenden. Nach Ablauf der Frist müssen Sie Ihre Anmeldedaten abrufen und neue Tokens abrufen.

Mit OAuth2 auf die Edge API zugreifen

Um auf die Edge-API zuzugreifen, senden Sie eine Anfrage an einen API-Endpunkt und fügen das Zugriffstoken hinzu. Sie können dafür jeden HTTP-Client verwenden, einschließlich Befehlszeilendienstprogramms wie curl, eine browserbasierte UI wie Postman oder ein Apigee-Dienstprogramm wie acurl nutzen.

Der Zugriff auf die Edge API mit acurl und curl wird unter in den folgenden Abschnitten.

Acurl verwenden

Um mit acurl auf die Edge API zuzugreifen, muss Ihre erste Anfrage Folgendes enthalten: Anmeldedaten. Der Edge OAuth2-Dienst antwortet mit den Zugriffs- und Aktualisierungstokens. acurl Speichert die Tokens lokal.

Bei nachfolgenden Anfragen verwendet acurl die in ~/.sso-cli gespeicherten Tokens, sodass damit Sie Ihre Anmeldedaten nicht noch einmal angeben müssen, bis die Tokens abgelaufen sind.

Das folgende Beispiel zeigt eine erste acurl-Anfrage, die Details zum „Ahamilton-eval“ Organisation:

acurl https://api.enterprise.apigee.com/v1/organizations/ahamilton-eval \
  -u ahamilton@apigee.com
Enter the password for user 'ahamilton@apigee.com'
[hidden input]
Enter the six-digit code (no spaces) if 'ahamilton@apigee.com' is MFA-enabled or press ENTER:
1a2b3c
{
  "createdAt" : 1491854501264,
  "createdBy" : "noreply_iops@apigee.com",
  "displayName" : "ahamilton",
  "environments" : [ "prod", "test" ],
  "lastModifiedAt" : 1491854501264,
  "lastModifiedBy" : "noreply_iops@apigee.com",
  "name" : "ahamilton",
  "properties" : {
    "property" : [ {
      "name" : "features.isSmbOrganization",
      "value" : "false"
    }, {
      "name" : "features.isCpsEnabled",
      "value" : "true"
    } ]
  },
  "type" : "trial"
}

acurl https://api.enterprise.apigee.com/v1/o/ahamilton-eval/apis/helloworld/revisions/1/policies

[ "SOAP-Message-Validation-1", "Spike-Arrest-1", "XML-to-JSON-1" ]

Dieses Beispiel zeigt nicht nur Details zur Organisation, sondern auch eine zweite Anfrage zum Abrufen einer Liste von Richtlinien im API-Proxy. In der zweiten Anfrage wird der Parameter „o“ wird gekürzt für „Organisationen“ in der URL.

acurl übergibt das Zugriffstoken bei der zweiten Anfrage automatisch. Ich Ihre Nutzeranmeldedaten müssen nicht weitergegeben werden, sobald acurl die OAuth2-Tokens speichert. Es ruft das Token von ~/.sso-cli für nachfolgende Aufrufe ab.

Weitere Informationen finden Sie unter Mit acurl auf die Edge API zugreifen.

curl verwenden

Sie können mit curl auf die Edge API zugreifen. Dazu müssen Sie zuerst das Ereignis Zugriffs- und Aktualisierungstokens. Sie können diese mit einem Dienstprogramm wie get_token oder dem Edge OAuth2-Dienst:

Nachdem Sie Ihr Zugriffstoken gespeichert haben, übergeben Sie es im Feld Authorization-Header Ihrer Aufrufe an die Edge API wie im folgenden Beispiel. Shows:

curl https://api.enterprise.apigee.com/v1/organizations/ahamilton-eval \
  -H "Authorization: Bearer ACCESS_TOKEN"

Das Zugriffstoken ist nach seiner Ausstellung zwölf Stunden lang gültig. Nach Ablauf des Zugriffstokens kann es 30 Tage lang verwendet werden, um es auszustellen. ohne Anmeldedaten. Apigee empfiehlt, erst nach Ablauf des Referenz-Tokens ein neues Zugriffstoken anzufordern, Anmeldedaten eingeben und bei jedem API-Aufruf eine neue Anfrage stellen.

Ablauf des Tokens

Sobald Ihr Zugriffstoken abgelaufen ist, können Sie mit dem Aktualisierungstoken ein neues Zugriffstoken abrufen, ohne müssen Sie Ihre Anmeldedaten noch einmal einreichen.

Wie Sie Ihr Zugriffstoken aktualisieren, hängt davon ab, welches Tool Sie verwenden:

  • acurl: Sie müssen nichts unternehmen. acurl aktualisiert das Zugriffstoken automatisch wenn Sie eine Anfrage senden, die eine veraltete enthält.
  • get_token: Rufen Sie get_token auf, um das Zugriffstoken zu aktualisieren.
  • Edge OAuth2-Dienst: Senden Sie eine Anfrage, die Folgendes enthält: <ph type="x-smartling-placeholder">
      </ph>
    • Aktualisierungstoken
    • grant_type-Formularparameter auf „refresh_token“ festgelegt

OAuth2 für Computernutzer

Sie können die Dienstprogramme acurl und get_token verwenden, um Scripts für den automatisierten Zugriff zu erstellen zu den Edge-APIs mit OAuth2-Authentifizierung für Computernutzer. Das folgende Beispiel zeigt, wie Sie get_token für Folgendes verwenden: Fordern Sie ein Zugriffstoken an und fügen Sie den Tokenwert dann einem curl-Aufruf hinzu:

  USER=me@example.com
  PASS=not-that-secret
  TOKEN=$(get_token -u $USER:$PASS -m '')
  curl -H "Authorization: Bearer $TOKEN" 'https://api.enterprise.apigee.com/v1/organizations/...'

Alternativ können Sie die Tokenanfrage und den curl-Aufruf mit dem acurl-Dienstprogramm kombinieren. Beispiel:

  USER=me@example.com
  PASS=not-that-secret
  acurl -u $USER:$PASS -m '' 'https://api.enterprise.apigee.com/v1/organizations/...'
  

In beiden Beispielen verhindert das Festlegen des Werts von -m auf einen leeren String, dass ein Computernutzer nicht zur Eingabe eines MFA-Codes aufgefordert.