Zabezpieczenia na ostatnim etapie

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

Zabezpieczenia ostatniego etapu chronią usługi backendu, które są obsługiwane przez usługi API. Głównym celem zabezpieczeń ostatniego etapu jest zapobieganie tzw. atakom „end-run”, w których programista aplikacji odkrywa adres URL usługi backendu i omija wszelkie proxy interfejsu API, aby bezpośrednio trafić na adres URL backendu .

Oto główne opcje konfigurowania zabezpieczeń ostatniego etapu:

  • TLS/SSL klienta
  • Uwierzytelnianie wychodzące
  • Moduł Node.js tls

TLS/SSL klienta

Głównym mechanizmem zabezpieczania ostatniego etapu jest TLS/SSL klienta, znany też jako „uwierzytelnianie wzajemne”.

Zobacz Konfigurowanie TLS od Edge do backendu (Cloud i Private Cloud).

Uwierzytelnianie wychodzące

Zabezpieczenia ostatniego etapu można też wymusić, wymagając od proxy interfejsu API przedstawienia danych logowania do usługi backendu.

Możesz na przykład chcieć, aby proxy interfejsu API przedstawiało klucz interfejsu API usłudze backendu. Możesz też skonfigurować proxy interfejsu API tak, aby pobierało i przedstawiało token dostępu z danymi logowania klienta OAuth.

Klucz interfejsu API

Klucze interfejsu API można stosować do żądań wychodzących z proxy interfejsu API do usług backendu. Zakłada się, że usługa backendu jest interfejsem API, który może wydawać i weryfikować klucze interfejsu API.

Jeśli skonfigurujesz proxy interfejsu API tak, aby przedstawiało klucz interfejsu API w żądaniach wychodzących, musisz zapisać ten klucz w miejscu, z którego proxy interfejsu API może go pobrać w czasie działania. Jednym z miejsc, w których można przechowywać klucze interfejsu API, jest mapa klucz-wartość. Zobacz zasadę Działania na mapach klucz-wartość policy.

Aby dodać klucz interfejsu API jako nagłówek HTTP, parametr zapytania lub element ładunku do żądania wychodzącego, możesz użyć typu zasady AssignMessage. Zobacz zasadę Przypisywanie wiadomości.

Dane logowania klienta OAuth

Dane logowania klienta OAuth mogą służyć do dodawania warstwy odwoływalności do kluczy interfejsu API. Jeśli Twoje usługi backendu obsługują dane logowania klienta OAuth, możesz skonfigurować proxy interfejsu API tak, aby przedstawiało token dostępu z danymi logowania klienta w przypadku każdego żądania.

Proxy interfejsu API musi być skonfigurowane tak, aby wykonywało wywołanie w celu uzyskania tokena dostępu z punktu końcowego tokena. Proxy interfejsu API musi też zapisywać token dostępu w pamięci podręcznej, aby nie pobierać nowego tokena dostępu przy każdym wywołaniu.

Do implementowania wychodzących danych logowania klienta można użyć kilku metod.

Możesz zmodyfikować ten przykład, aby wywoływać punkt końcowy tokena w celu uzyskania tokena dostępu. Ten przykład używa JavaScriptu do dołączania tokena do żądania wychodzącego jako nagłówka HTTP Authorization. W tym celu możesz też użyć zasady Przypisywanie wiadomości.

SAML

Typ zasady GenerateSAMLAssertion może służyć do dołączania asercji SAML do wychodzącej wiadomości XML z proxy interfejsu API do usługi backendu. Dzięki temu usługa backendu może przeprowadzać uwierzytelnianie i autoryzację żądań otrzymywanych z proxy interfejsu API.

Zobacz zasady dotyczące asercji SAML.

Node.js

Jeśli celem proxy interfejsu API jest aplikacja Node.js, możesz użyć modułu Node.js tls do tworzenia bezpiecznych połączeń z usługami backendu. Za pomocą modułu tls możesz wysyłać żądania wychodzące w taki sam sposób jak zwykle w Node.js. Musisz po prostu dodać klucze i certyfikaty po stronie klienta (pliki .pem) do katalogu resources/node i załadować je w skrypcie. Informacje o korzystaniu z tls modułu i jego metod znajdziesz w dokumentacji modułu tls Node.js. Więcej informacji znajdziesz w artykule Obsługa modułów Node.js w Edge.