Uzyskiwanie dostępu do interfejsu API Edge za pomocą SAML

Przeglądasz dokumentację Apigee Edge.
Przejdź do Dokumentacja Apigee X.
informacje.

SAML obsługuje środowisko logowania jednokrotnego. Obsługa logowania jednokrotnego przez SAML w Edge interfejsu Edge UI i API, a także wszelkich innych usług świadczonych przez Ciebie i obsługujących SAML (Administracja > SAML).

Warunek wstępny: musisz włączyć SAML przez co najmniej jedną organizację, zanim będzie można za jej pomocą uzyskać dostęp do interfejsu Edge API.

Różnice między SAML a OAuth2

Po skonfigurowaniu SAML korzystanie z niego jest bardzo podobne do korzystania z OAuth2 uzyskiwania dostępu przy użyciu Edge API. Wywołując interfejs Edge API, podajesz token dostępu OAuth2 na Twoją prośbę.

Różnica między SAML i OAuth2 podczas uzyskiwania dostępu do interfejsu Edge API jest przeszkodą otrzymasz tokeny. W przypadku SAML musisz w swojej konfiguracji uzyskać dostęp do tych informacji: para tokenów:

  1. Strefy: użytkownicy Edge dla Cloud Public Cloud muszą odnosić się do nazwy strefy podczas uzyskiwania tokenów.
  2. Hasło: dołącz jednorazowy kod dostępu, gdy prosisz o dostęp lub odświeżenie danych. .

SAML używa tych samych punktów końcowych w usłudze Edge OAuth2, z dodaną odpowiednią nazwą strefy.

Aby uzyskać tokeny dostępu przez SAML, możesz użyć jednej z następujących metod opisanych w tej sekcji:

Ponadto możesz zautomatyzować proces generowania tokenów dla użytkowników maszyn zgodnie z opisem w artykule Automatyzacja procesu generowania tokenów.

Uzyskiwanie tokenów dostępu za pomocą metody get_token

Możesz użyć narzędzia get_token, aby wymienić dane logowania na potrzeby dostępu OAuth2 oraz odświeża tokeny używane w SAML.

Aby uzyskać token dostępu za pomocą metody get_token:

  1. Ustaw zmienną środowiskową SSO_LOGIN_URL na adres URL logowania. Adres URL logowania zawiera następujący formularz:
    https://zoneName.login.apigee.com

    Na przykład w przypadku strefy o nazwie „acme” ustaw SSO_LOGIN_URL na „https://acme.login.apigee.com”. co widać w następnym przykładzie:

    export SSO_LOGIN_URL=https://acme.login.apigee.com
  2. Wywołaj get_token, aby uzyskać token dostępu OAuth2:
    get_token -u me@example.com

    Pojawi się prośba o odwiedzenie wyświetlonego adresu URL w celu uzyskania jednorazowego kodu dostępu:

    Get passcode from https://acme.login.apigee.com/passcode
    [Note:  Passcode can be used only time time and expires] Input passcode (no spaces) and then press ENTER:

    Jeśli ostatnio nie logowałeś(-aś) się przez dostawcę tożsamości, pojawi się prośba o zalogowanie cal

    Ten URL zwraca jednorazowy kod dostępu, który pozostaje ważny, dopóki go nie odświeżysz w uzyskać nowy kod dostępu lub użyć kodu dostępu za pomocą funkcji get_token, aby wygenerować token dostępu. Na przykład:

  3. Wpisz kod dostępu. Narzędzie get_token uzyskuje tokeny OAuth2, wypisuje token dostępu do stdout oraz zapisuje tokeny dostępu i odświeżania do: ~/.sso-cli.

  4. Wywołaj interfejs Edge API i przekaż token dostępu w aplikacji Authorization: Bearer jak w tym przykładzie:
    curl https://api.enterprise.apigee.com/v1/organizations/ahamilton-eval \
      -H "Authorization: Bearer ACCESS_TOKEN"

    Wartość tokena dostępu może być skopiowana z stdout.

    Ten przykład zawiera szczegółowe informacje o danej organizacji. Pełną listę funkcji zarządzania Punkty końcowe interfejsu API znajdziesz w dokumentacji interfejsu API Apigee Edge.

Gdy token dostępu wygaśnie, możesz ponownie wywołać get_token, by uzyskać nowy dostęp token. Na przykład:

get_token -u me@example.com

Dopóki token odświeżania nie wygaśnie, nie pojawi się prośba o podanie nowego kodu.

Gdy token odświeżania wygaśnie, get_token poprosi o podanie nowego kodu dostępu. Musisz wygeneruj nowy kod dostępu, zanim będzie można wygenerować nowy token dostępu OAuth2.

Uzyskiwanie tokenów dostępu dzięki usłudze Edge OAuth2

Tokenów dostępu używanych przez SAML możesz uzyskiwać za pomocą usługi Edge OAuth2. Do uwierzytelnienia przy użyciu Edge API, przy pierwszym żądaniu musisz podać kod dostępu, aby uzyskać dostęp lub odświeżyć stronę. i ponownie, aby uzyskać nową parę tokenów.

Aby uzyskać parę tokenów za pomocą interfejsu Edge API:

  1. W przeglądarce otwórz ten adres URL, aby otrzymać jednorazowy kod dostępu:
    https://zoneName.login.apigee.com/passcode

    Na przykład w przypadku strefy o nazwie „acme” otwórz ten adres URL:

    https://acme.login.apigee.com/passcode

    Jeśli ostatnio nie logowałeś(-aś) się przez dostawcę tożsamości, pojawi się prośba o zalogowanie cal

    Ten adres URL zwraca jednorazowy kod dostępu, który działa jak dane logowania do otrzymywania tokenów i pozostaje ważny do momentu odświeżenia adresu URL uzyskać nowy kod dostępu. Możesz też użyć kodu dostępu i get_token, aby wygenerować token dostępu. Na przykład:

  2. Wyślij żądanie do interfejsu Edge API zgodnie z tym przykładem:
    curl https://zoneName.login.apigee.com/oauth/token \
          -s \
          -H "Accept: application/json" \
          -d 'grant_type=password&response_type=token&passcode=passcode'

    passcode działa jako dane logowania do autoryzacji.

    Gdzie:

    • Nagłówek Authorization to „Podstawowy ZWRnZWNsaTplZGdlY2xpc2VjcmV0” (użyj tego dokładną wartość).
    • Typ żądania to POST.
    • Treść żądania zawiera te informacje:
      • grant_type to „hasło”.
      • response_type to „token”.
      • passcode, gdzie passcode to kod dostępu zwrócony w poprzednim kroku.

    Połączenie wydrukuje na ekranie tokeny dostępu i odśwież.

Aby odświeżyć token dostępu:

Prześlij prośbę do firmy https://zoneName.login.apigee.com/oauth/token. co widać w następnym przykładzie:

curl https://zoneName.login.apigee.com/oauth/token \
      -d 'grant_type=refresh_token&refresh_token=REFRESH_TOKEN'

Gdzie:

  • Treść żądania zawiera te informacje:
    • grant_type to „refresh_token”.
    • refresh_token to wartość tokena odświeżania.
  • Nagłówek Authorization to „Podstawowy ZWRnZWNsaTplZGdlY2xpc2VjcmV0” (użyj tego dokładną wartość).
  • Typ żądania to POST.

Uzyskiwanie dostępu do interfejsu Edge API przez SAML

Możesz użyć takich narzędzi jak curl lub wygodnego narzędzia Apigee acurl do dostęp do interfejsu Edge API.

Korzystając z curl, wywołujesz interfejs Edge API i przekazujesz token dostępu w polu wyboru Authorization: Bearer, tak jak w tym przykładzie:

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

Jeśli korzystasz z elementu acurl, nie musisz określać nagłówka Authorization. Na przykład:

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

W tych przykładach wywoływany jest punkt końcowy interfejsu Edge API, który uzyskuje informacje o danej organizacji. Pełną listę punktów końcowych interfejsu Edge API znajdziesz w dokumentacji interfejsu API Apigee Edge.

Dodatkowe metody wywoływania interfejsu API, w tym sposoby zagwarantowania, że token pozostanie aktywny przeczytaj artykuł Dostęp do interfejsu Edge API przez OAuth2.

Użytkownicy komputerów w strefach SAML

Do skryptu automatycznego dostępu możesz użyć narzędzi acurl i get_token do interfejsów Edge API dla użytkowników maszyn w strefach SAML. Ten przykład pokazuje, jak użyj get_token do zażądać tokena dostępu, a następnie dodać wartość tokena do wywołania curl:

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

W powyższym przykładzie ustawienie wartości -m na pusty ciąg znaków uniemożliwi użytkownikowi komputera przed wyświetleniem prośby o kod MFA. Użycie flagi --force-basic-auth spowoduje zastąpienie standardowy prompt z prośbą o podanie kodu dostępu aktywowany przez żądania ze strefami SAML.

Możesz też połączyć żądanie tokena i wywołanie curl za pomocą narzędzia acurl. Na przykład:

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