Zabezpieczanie interfejsu API przez wymaganie kluczy interfejsu API

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

Czego się nauczysz

Z tego samouczka dowiesz się, jak:

  • Utwórz serwer proxy interfejsu API, który wymaga klucza API.
  • Dodaj usługę API.
  • Dodaj dewelopera i zarejestruj aplikację.
  • Wywołaj swój interfejs API za pomocą klucza interfejsu API.

Ochrona interfejsu API przed nieuprawnionym dostępem jest bardzo ważna. W jedną stronę należy użyć kluczy API (nazywanych też kluczami publicznymi, konsumentami lub klucze aplikacji).

Gdy aplikacja wysyła żądanie do Twojego API, aplikacja musi dostarczyć prawidłowy klucz. Zasada weryfikacji klucza interfejsu API w czasie działania sprawdza, czy podany klucz interfejsu API:

  • Jest prawidłowe
  • Nie zostało unieważnione
  • Pasuje do klucza interfejsu API usługi API, która ujawnia żądany zasoby

Jeśli klucz jest prawidłowy, żądanie jest dozwolone. Jeśli klucz jest nieprawidłowy, parametr spowoduje błąd autoryzacji.

W tym samouczku utworzysz serwer proxy API, który wymaga prawidłowego interfejsu API aby uzyskać do niego dostęp.

Czego potrzebujesz

  • Konto Apigee Edge. Jeśli nie masz jeszcze konta, możesz się zarejestrować z trasą dojazdu na Tworzę konto Apigee Edge.
  • Przeglądarka internetowa do wywoływania interfejsu API.
  • (Niewymagane w przypadku sekcji dodatkowych środków) Aplikacja cURL została zainstalowana na komputerze, aby wywoływać interfejs API z poziomu wiersza poleceń.

Tworzenie serwera proxy interfejsu API

Informacje o celu próbnym

Usługa mocktarget jest hostowana w Apigee i zwraca proste i skalowalnych danych. Nie wymaga klucza API ani tokena dostępu. W każdej chwili możesz w przeglądarce. Aby wypróbować tę funkcję, kliknij:

http://mocktarget.apigee.net

Wartość docelowa zwraca Hello, Guest!. Użyj /help możesz znaleźć stronę pomocy z innymi dostępnymi zasobami

  1. Przejdź do https://apigee.com/edge i zaloguj się.
  2. Przełącz się do wybranej organizacji, klikając swoją nazwę użytkownika u góry bocznego paska nawigacyjnego, aby wyświetlić menu profilu użytkownika, a następnie wybierając organizację z listy.

    wybierz organizację w menu profilu użytkownika
  3. Na stronie docelowej kliknij Serwery proxy interfejsów API, aby wyświetlić interfejs API. listę serwerów proxy.

    Menu interfejsów Edge API
  4. Kliknij + Serwer proxy.
    Przycisk Utwórz serwer proxy
  5. Na stronie Utwórz serwer proxy wybierz Odwrotny serwer proxy (najczęstszy).
  6. Na stronie Szczegóły serwera proxy skonfiguruj serwer proxy w ten sposób:
    W tym polu zrób to
    Nazwa serwera proxy Wpisz: helloworld_apikey
    Ścieżka bazowa projektu

    Zmień na: /helloapikey

    Ścieżka bazowa projektu jest częścią adresu URL służącego do utworzenia do serwera proxy API.

    Uwaga: aby uzyskać zalecenia Apigee dotyczące obsługi wersji interfejsów API, zobacz Obsługa wersji w narzędziu Web API Design: The Missing Link e-booka.

    Istniejący interfejs API

    Wpisz: http://mocktarget.apigee.net

    Definiuje to docelowy adres URL, który Apigee Edge wywołuje na do serwera proxy API.

    Opis Wpisz: hello world protected by API key
  7. Kliknij Dalej.
  8. Na stronie Typowe zasady w sekcji Bezpieczeństwo: Autoryzacja, wybierz Klucz interfejsu API i kliknij Dalej. Ten doda 2 zasady do serwera proxy interfejsu API.
  9. Na stronie Virtual Hosts (Hosty wirtualne) wybierz default i secure i kliknij Dalej. Wybranie ustawienia domyślnego pozwala musisz wywołać interfejs API za pomocą funkcji http://. Wybieram bezpieczne, umożliwia wywołanie interfejsu API za pomocą metody https://.
  10. Na stronie Podsumowanie sprawdź, czy testowe wdrożenie zostało wdrożone. i kliknij Utwórz i wdróż.
  11. Pojawi się potwierdzenie, że nowy serwer proxy i interfejs API usługa została utworzona oraz że serwer proxy interfejsu API został wdrożony w środowisku testowym.
  12. Kliknij Edytuj serwer proxy, aby wyświetlić stronę Przegląd dla Proxy API.

Wyświetl zasady

  1. W edytorze serwera proxy API kliknij kartę Programowanie. Zobaczysz, że do przepływu żądań serwera proxy interfejsu API zostały dodane 2 zasady:
    • Zweryfikuj klucz interfejsu API: sprawdza wywołanie interfejsu API, aby upewnić się, że klucz interfejsu API jest obecny (wysłany jako parametr zapytania).
    • Remove Query Param apikey: zasada AssignMessage, która: usuwa klucz interfejsu API po sprawdzeniu, aby nie został przekazany i niepotrzebnie się eksponować.
  2. Kliknij ikonę zasad weryfikacji klucza interfejsu API w widoku przepływu i sprawdź, konfiguracji XML zasady w widoku u dołu kodu. Element <APIKey> informuje zasadę, gdzie powinna po wywołaniu klucza interfejsu API. Domyślnie szuka ona jako parametr zapytania o nazwie apikey w interfejsie HTTP żądanie:

    <APIKey ref="request.queryparam.apikey" />
    

    Nazwa apikey jest dowolna i może być dowolną właściwością który zawiera klucz interfejsu API.

Spróbuj wywołać interfejs API

W tym kroku wykonasz udane wywołanie interfejsu API bezpośrednio do wartości docelowej , potem wyślesz nieudane wywołanie do serwera proxy interfejsu API, aby sprawdzić, i jest chronione zgodnie z zasadami.

  1. Sukces

    W przeglądarce wejdź na ten adres. To jest usługa docelowa, którą serwer proxy interfejsu API ma przekazywać z żądaniem, ale na razie wykonujesz działanie bezpośrednio:

    http://mocktarget.apigee.net
    

    Powinna pojawić się taka odpowiedź: Hello, Guest!

  2. Błąd

    Teraz spróbuj wywołać serwer proxy interfejsu API:

    http://ORG_NAME-test.apigee.net/helloapikey
    

    Zastąp ORG_NAME nazwą swojego Organizacja brzegowa.

    Bez zasady weryfikacji klucza interfejsu API wywołanie to zwróciłoby taki sam efekt jako poprzedniego wywołania. W tym przypadku jednak trzeba uzyskać atrybut ten błąd:

    {"fault":{"faultstring":"Failed to resolve API Key variable request.queryparam.apikey","detail":{"errorcode":"steps.oauth.v2.FailedToResolveAPIKey"}}}
    

    oznacza to, że nie przekazano prawidłowego klucza interfejsu API ( parametr zapytania).

W następnych krokach dodasz usługę API.

Dodaj usługę API

Aby dodać usługę API za pomocą interfejsu użytkownika Apigee:

  1. Kliknij Opublikuj > Usługi API.
  2. Kliknij + Usługa API.
  3. Wpisz szczegóły produktu API.

    Pole Opis
    Nazwa Wewnętrzna nazwa usługi API. Nie wolno użyć w nazwie znaków specjalnych.
    Uwaga: nie można edytować nazwy po utworzeniu usługi API. Dla: przykład: helloworld_apikey-Product.
    Wyświetlana nazwa Wyświetlana nazwa usługi API. Wyświetlana nazwa jest używana w: w interfejsie użytkownika i możesz go w każdej chwili edytować. Jeśli go nie podasz, Zostanie użyta wartość nazwy. To pole jest wypełniane automatycznie za pomocą Nazwa wartości; możesz edytować i usuwać jej zawartość. Wyświetlacz nazwa może zawierać znaki specjalne. Przykład: helloworld_apikey-Product
    Opis Opis usługi API. Na przykład: Test product for tutorial.
    Środowisko Środowiska, do których usługa API zezwala na dostęp. na przykład test lub prod.
    Dostęp Wybierz Publiczny.
    Automatycznie zatwierdzaj prośby o dostęp Włącz automatyczne zatwierdzanie żądań kluczy dla tego interfejsu API z dowolnej aplikacji.
    Limit Ignoruj w tym samouczku.
    Dozwolone zakresy protokołu OAuth Ignoruj w tym samouczku.
  4. W sekcji zasobów interfejsu API wybierz serwer proxy interfejsu API, którego Utworzono. Na przykład: helloworld_apikey.
  5. Kliknij Dodaj.
  6. W sekcji Ścieżki dodaj ścieżkę „/”.
  7. Kliknij Dodaj.
  8. Kliknij Zapisz.

W następnych krokach otrzymasz wymagany klucz interfejsu API.

Dodaj dewelopera i aplikację do swojego organizacja

Następnie przeprowadzimy symulację przepływu pracy programisty rejestrującego się dla użytkowników interfejsów API. deweloper będzie mieć co najmniej jedną aplikację, która wywołuje Twoje interfejsy API, a każda aplikacja otrzymuje unikalny klucz interfejsu API. Dzięki temu, dostawcy API, szczegółową kontrolę nad dostępem do interfejsów API i bardziej szczegółowe raporty Ruch API według aplikacji.

Utwórz programistę

Aby utworzyć programistę:

  1. Kliknij Opublikuj > Programistów.
  2. Kliknij + Deweloper.
  3. W oknie Nowy programista wpisz te dane:

    W tym polu Enter
    Imię Keyser
    Nazwisko Soze
    Nazwa użytkownika keyser
    E-mail keyser@example.com
  4. Kliknij Utwórz.

Zarejestruj aplikację

Aby zarejestrować aplikację dewelopera:

  1. Kliknij Opublikuj > Aplikacje.
  2. Kliknij + Aplikacja.
  3. W oknie Nowa aplikacja wpisz te informacje:

    p
    W tym polu zrób to
    Nazwa i Wyświetlana nazwa Wpisz: keyser_app
    Firma / deweloper Wybierz: Developer
    Deweloper Wybierz: Keyser Soze (keyser@example.com)
    Callback URL (Adres URL wywołania zwrotnego) i Notes (Uwagi) Pozostaw puste
  4. W sekcji Credentials (Dane logowania) wybierz Never (Nigdy) Menu Wygasa. Dane logowania do tej aplikacji nigdy nie wygasną.
  5. W sekcji Produkty kliknij Dodaj produkt.
  6. Wybierz helloworld_apikey-Product.
  7. Kliknij Dodaj.
  8. Kliknij Utwórz powyżej, na prawo od szczegółów aplikacji. aby zapisać swoją pracę.

Uzyskiwanie klucza interfejsu API

Aby uzyskać klucz interfejsu API:

  1. Na stronie Aplikacje (Publikowanie > Aplikacje) kliknij keyser_app.
  2. Na stronie keyser_app kliknij Pokaż obok Key. w sekcji Dane logowania. W sekcji Produkt: zauważ, że klucz jest powiązany z helloworld_apikey.

    ,
  3. Wybierz i skopiuj Klucz. Użyjesz go w następnym kroku.

Wywoływanie interfejsu API za pomocą klucza

Po utworzeniu klucza interfejsu API możesz go używać do wywoływania serwera proxy API. Wejście następujące opcje w przeglądarce. Podstawianie nazwy organizacji Edge dla ORG_NAME oraz klucz interfejsu API dla API_KEY poniżej. Sprawdź, czy w parametrze zapytania nie ma dodatkowych spacji.

http://ORG_NAME-test.apigee.net/helloapikey?apikey=API_KEY

Teraz gdy wywołujesz serwer proxy interfejsu API, powinna pojawić się taka odpowiedź: Hello, Guest!

Gratulacje! Udało Ci się utworzyć serwer proxy interfejsu API i chronić go przez wymaga podania w wywołaniu prawidłowego klucza interfejsu API.

Pamiętaj, że ogólnie nie jest dobrym sposobem przekazywania klucza interfejsu API jako parametru zapytania. Zastanów się, i przekazywać go w nagłówku HTTP.

Sprawdzona metoda: przekazywanie klucza w nagłówku HTTP

W tym kroku zmodyfikujesz serwer proxy, tak aby szukał klucza interfejsu API w nagłówek o nazwie x-apikey.

  1. Edytuj serwer proxy interfejsu API. Kliknij Programowanie > Serwery proxy interfejsów API > helloworld_apikey i otwórz widok Develop.
  2. Wybierz zasadę Verify API Key (Zweryfikuj klucz API) i zmodyfikuj kod XML zasad, zasady do sprawdzenia w header, a nie w queryparam:

    <APIKey ref="request.header.x-apikey"/>
    
  3. Zapisz serwer proxy interfejsu API, aby wdrożyć zmianę.
  4. Wykonaj poniższe wywołanie interfejsu API za pomocą polecenia cURL, aby przekazać klucz interfejsu API jako nagłówek o nazwie x-apikey. Nie zapomnij zastąpić prefiksu nazwę organizacji.

    curl -v -H "x-apikey: API_KEY" http://ORG_NAME-test.apigee.net/helloapikey
    

Aby w pełni dokończyć zmianę, musisz też skonfigurować Zasada AssignMessage usuwa nagłówek zamiast parametru zapytania. Na przykład:

<Remove>
<Headers>
    <Header name="x-apikey"/>
</Headers>
</Remove>

Powiązane artykuły

Oto niektóre tematy bezpośrednio związane z tym samouczkiem:

Co więcej, ochrona interfejsów API za pomocą kluczy API to tylko część. Często Ochrona interfejsów API obejmuje dodatkowe zabezpieczenia, takie jak OAuth.

Protokół OAuth otwarty protokół, który w skrócie używa danych logowania (takich jak nazwa użytkownika i hasło) do tokeny dostępu. Tokeny dostępu to długie, losowe ciągi znaków, które można przekazać wokół wiadomości nawet z aplikacji do aplikacji, bez naruszania pierwotnych danych logowania. Dostęp tokeny często mają krótki czas życia, więc zawsze są generowane nowe.