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

Wyświetlasz dokumentację Apigee Edge.
Przejdź do dokumentacji Apigee X.
info

SAML obsługuje środowisko logowania jednokrotnego (SSO). Używając SAML z Edge, możesz obsługiwać logowanie jednokrotne w interfejsie Edge UI i interfejsie API, a także w innych usługach, które udostępniasz i które też obsługują SAML.

Wymaganie wstępne: aby móc używać SAML do uzyskiwania dostępu do interfejsu Edge API, musisz włączyć SAML w co najmniej 1 organizacji.

Różnice między SAML a OAuth2

Po skonfigurowaniu SAML korzystanie z niego jest bardzo podobne do używania OAuth2 do uzyskiwania dostępu do interfejsu Edge API. Gdy wywołujesz interfejs Edge API, w żądaniu umieszczasz token dostępu OAuth2 w

Główna różnica między SAML a OAuth2 w przypadku uzyskiwania dostępu do interfejsu Edge API polega na sposobie uzyskiwania tokenów. W przypadku SAML podczas pobierania pary tokenów musisz podać te informacje:

  1. Strefy: użytkownicy Edge w chmurze publicznej muszą podczas pobierania tokenów odwoływać się do nazwy swojej strefy.
  2. Kod dostępu: podczas wysyłania prośby o parę tokena dostępu i tokena odświeżania podaj jednorazowy kod dostępu.

SAML używa tych samych punktów końcowych w usłudze Edge OAuth2, ale z dodatkiem odpowiedniej nazwy strefy.

Aby uzyskać tokeny dostępu za pomocą SAML, możesz użyć jednej z tych metod opisanych w tej sekcji:

Dodatkowo możesz zautomatyzować proces generowania tokenów dla użytkowników maszyn, jak opisano w sekcji Automatyzowanie procesu generowania tokenów.

Uzyskiwanie tokenów dostępu za pomocą get_token

Za pomocą narzędzia get_token możesz wymienić swoje dane logowania na tokeny dostępu i tokeny odświeżania OAuth2, których używasz z SAML.

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

  1. Ustaw zmienną środowiskową SSO_LOGIN_URL na adres URL logowania. Adres URL logowania ma postać:
    https://zoneName.login.apigee.com

    Na przykład w przypadku strefy o nazwie "acme" ustaw SSO_LOGIN_URL na "https://acme.login.apigee.com", jak pokazano w tym przykładzie:

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

    Pojawi się prośba o odwiedzenie wyświetlanego 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 nie zalogowano się ostatnio u dostawcy tożsamości, pojawi się prośba o zalogowanie się.

    Ten adres URL zwraca jednorazowy kod dostępu, który pozostaje ważny do momentu odświeżenia tego adresu URL w celu uzyskania nowego kodu dostępu lub użycia kodu dostępu z narzędziem get_token do wygenerowania tokena dostępu. Na przykład:

  3. Wpisz kod dostępu. Narzędzie get_token pobiera tokeny OAuth2, wyświetla token dostępu w stdout, oraz zapisuje tokeny dostępu i tokeny odświeżania w ~/.sso-cli.

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

    Wartość tokena dostępu można skopiować z stdout.

    Ten przykład pobiera szczegóły dotyczące danej organizacji. Pełną listę punktów końcowych interfejsu Management API znajdziesz w dokumentacji Apigee Edge API.

Gdy token dostępu wygaśnie, możesz ponownie wywołać narzędzie get_token, aby uzyskać nowy token dostępu. 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 dostępu.

Gdy token odświeżania wygaśnie, narzędzie get_token poprosi Cię o podanie nowego kodu dostępu. Aby wygenerować nowy token dostępu OAuth2, musisz wygenerować nowy kod dostępu.

Uzyskiwanie tokenów dostępu za pomocą usługi Edge OAuth2

Za pomocą usługi Edge OAuth2 możesz uzyskać tokeny dostępu, których używasz z SAML. Aby uwierzytelnić się w interfejsie Edge API, w pierwszym żądaniu używasz kodu dostępu, aby uzyskać parę tokena dostępu i tokena odświeżania , a następnie 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 uzyskać 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 nie zalogowano się ostatnio u dostawcy tożsamości, pojawi się prośba o zalogowanie się.

    Ten adres URL zwraca jednorazowy kod dostępu, który służy jako dane logowania do uzyskiwania tokenów i pozostaje ważny do momentu odświeżenia adresu URL w celu uzyskania nowego kodu dostępu. Możesz też użyć kodu dostępu z narzędziem get_token do wygenerowania tokena dostępu. Na przykład:

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

    passcode służy jako dane logowania do autoryzacji.

    Gdzie:

    • Nagłówek Authorization ma wartość "Basic ZWRnZWNsaTplZGdlY2xpc2VjcmV0" (użyj dokładnie tej wartości).
    • Typ żądania to POST.
    • Treść żądania zawiera te informacje:
      • grant_type to „password”.
      • response_type to „token”.
      • passcode, gdzie passcode to kod dostępu zwrócony w poprzednim kroku.

    Wywołanie wyświetla na ekranie tokeny dostępu i tokeny odświeżania.

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

Wyślij żądanie do https://zoneName.login.apigee.com/oauth/token, jak pokazano w tym 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 ma wartość "Basic ZWRnZWNsaTplZGdlY2xpc2VjcmV0" (użyj dokładnie tej wartości).
  • Typ żądania to POST.

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

Do uzyskiwania dostępu do interfejsu Edge API możesz używać narzędzi takich jak curl lub narzędzie pomocnicze Apigee acurl do uzyskiwania dostępu do interfejsu Edge API.

W przypadku narzędzia curl wywołujesz interfejs Edge API i przekazujesz token dostępu w nagłówku Authorization: Bearer, jak pokazano w tym przykładzie:

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

W przypadku narzędzia acurl nie musisz określać nagłówka Authorization. Na przykład:

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

Te przykłady wywołują punkt końcowy interfejsu Edge API, który pobiera szczegóły dotyczące danej organizacji. Pełną listę punktów końcowych interfejsu Edge API znajdziesz w dokumentacji Apigee Edge API.

Więcej informacji o innych metodach wywoływania interfejsu API, w tym o sposobach zapewnienia, że token pozostanie aktualny, znajdziesz w artykule Uzyskiwanie dostępu do interfejsu Edge API za pomocą OAuth2.

Użytkownicy maszyn w strefach SAML

Za pomocą narzędzi acurl i get_token możesz tworzyć skrypty automatycznego dostępu do interfejsów Edge API dla użytkowników maszyn w strefach SAML. Ten przykład pokazuje, jak użyć get_token aby poprosić o token 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 wyświetlanie użytkownikowi maszyny prośby o kod MFA. Użycie flagi --force-basic-auth spowoduje zastąpienie standardowej prośby o kod dostępu wywoływanej przez żądania ze stref 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/...'