Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
DOTYCZY: Wszystkie warstwy usługi API Management
W usłudze Azure API Management subskrypcje są najczęstszym sposobem, w jaki użytkownicy interfejsu API uzyskują dostęp do API opublikowanych w ramach instancji API Management. Ten artykuł zawiera omówienie koncepcji.
Uwaga
Subskrypcja usługi API Management jest używana specjalnie do wywoływania interfejsów API za pośrednictwem usługi API Management przy użyciu klucza subskrypcji. Nie jest to samo co subskrypcja platformy Azure.
Co to są subskrypcje?
Publikując interfejsy API za pośrednictwem usługi API Management, można łatwo zabezpieczyć dostęp do interfejsu API przy użyciu kluczy subskrypcji. Deweloperzy, którzy muszą korzystać z opublikowanych interfejsów API, muszą dołączyć prawidłowy klucz subskrypcji do żądań HTTP podczas wywoływania tych interfejsów API. Bez prawidłowego klucza subskrypcji wywołania są następujące:
- Natychmiast odrzucone przez bramkę zarządzania API.
- Nie są przekazywane do usług zaplecza.
Aby uzyskać dostęp do interfejsów API, deweloperzy potrzebują subskrypcji i klucza subskrypcji. Subskrypcja jest nazwanym kontenerem dla pary kluczy subskrypcji.
W dodatku
- Deweloperzy mogą uzyskiwać subskrypcje bez potrzeby zatwierdzenia przez wydawców interfejsu API.
- Wydawcy interfejsu API mogą tworzyć subskrypcje bezpośrednio dla użytkowników interfejsu API.
Napiwek
Usługa API Management obsługuje również inne mechanizmy zabezpieczania dostępu do interfejsów API, w tym następujące przykłady:
Zarządzanie kluczami subskrypcji
Regularne ponowne generowanie kluczy jest typowym środkiem ostrożności. Podobnie jak większość usług platformy Azure, które wymagają klucza subskrypcji, usługa API Management generuje klucze w parach. Każda aplikacja korzystająca z usługi może przełączyć się z klucza A na klucz B i ponownie wygenerować klucz A z minimalnymi zakłóceniami i odwrotnie.
Zamiast ponownego generowania kluczy można ustawić określone klucze, wywołując subskrypcję usługi Azure API Management — tworzenie lub aktualizowanie interfejsu API REST platformy Azure. W szczególności ustaw properties.primaryKey i/lub properties.secondaryKey w treści żądania HTTP.
Uwaga
- Usługa API Management nie udostępnia wbudowanych funkcji do zarządzania cyklem życia kluczy subskrypcji, takich jak ustawianie dat wygaśnięcia lub automatyczne obracanie kluczy. Przepływy pracy można opracowywać w celu zautomatyzowania tych procesów przy użyciu narzędzi, takich jak program Azure PowerShell lub zestawy SDK platformy Azure.
- Aby wymusić ograniczony czas dostępu do interfejsów API, wydawcy interfejsów API mogą mieć możliwość używania zasad z kluczami subskrypcji lub użyć mechanizmu zapewniającego wbudowane wygaśnięcie, takie jak uwierzytelnianie oparte na tokenach.
Zakres subskrypcji
Subskrypcje można skojarzyć z różnymi zakresami: produktem, wszystkimi interfejsami API lub indywidualnym interfejsem API.
Subskrypcje produktu
Tradycyjnie subskrypcje są kojarzone w usłudze API Management z jednym zakresem produktu . Deweloperzy:
- Znajdź listę produktów w portalu dla deweloperów.
- Prześlij żądania subskrypcji dotyczące produktów, które chcą używać.
- Uzyskaj dostęp do interfejsów API w produkcie przy użyciu kluczy w tych subskrypcjach, które zostały zatwierdzone automatycznie lub przez wydawców interfejsu API.
Obecnie portal dla deweloperów pokazuje tylko subskrypcje zakresu produktów w sekcji Profil użytkownika.
Subskrypcje dla wszystkich interfejsów API lub pojedynczego interfejsu API
Możesz również utworzyć klucze, które udzielają dostępu do jednego z następujących:
- Pojedynczy interfejs API lub
- Wszystkie interfejsy API w wystąpieniu zarządzania interfejsami API.
W takich przypadkach nie musisz najpierw tworzyć produktu i dodawać do niego interfejsy API.
Subskrypcja z pełnym dostępem
Każde wystąpienie zarządzania API zawiera wbudowaną subskrypcję z pełnym dostępem do wszystkich interfejsów API. Ta subskrypcja obejmująca zakres usług ułatwia właścicielom usług testowanie i debugowanie interfejsów API w konsoli testowej.
Ostrzeżenie
Subskrypcja zapewniająca pełen dostęp umożliwia dostęp do każdego interfejsu API w instancji usługi API Management. Tylko autoryzowani użytkownicy powinni używać tej subskrypcji. Nigdy nie używaj tej subskrypcji do rutynowego dostępu do interfejsu API ani nie osadzaj klucza subskrypcji z pełnym dostępem w aplikacjach dla klientów.
Uwaga
Jeśli używasz subskrypcji o zakresie API, subskrypcji obejmującej wszystkie interfejsy API lub wbudowanej subskrypcji z pełnym dostępem, to zasady skonfigurowane na poziomie produktu nie są stosowane do żądań z tej subskrypcji.
Subskrypcje autonomiczne
Usługa API Management umożliwia również autonomiczne subskrypcje, które nie są skojarzone z kontem dewelopera. Ta funkcja jest przydatna w scenariuszach, takich jak udostępnianie subskrypcji przez kilku programistów lub zespoły.
Tworzenie subskrypcji bez przypisywania właściciela sprawia, że jest to subskrypcja autonomiczna. Aby udzielić deweloperom i pozostałej części zespołu dostępu do autonomicznego klucza subskrypcji, wykonaj następujące czynności:
- Ręcznie udostępnij klucz subskrypcji.
- Użyj systemu niestandardowego, aby udostępnić klucz subskrypcji zespołowi.
Uwaga
Nie można bezpośrednio przypisywać subskrypcji w usłudze API Management do grup zabezpieczeń identyfikatora Entra firmy Microsoft. Aby zapewnić dostęp do subskrypcji wielu użytkowników w grupie, utwórz autonomiczną subskrypcję i rozpowszechnij klucze subskrypcji do członków grupy lub zintegruj się z identyfikatorem Entra firmy Microsoft na potrzeby uwierzytelniania i użyj zasad do kontrolowania dostępu do interfejsu API na podstawie członkostwa w grupie.
Tworzenie subskrypcji i zarządzanie nimi w witrynie Azure Portal
Wydawcy interfejsu API (administratorzy lub deweloperzy z odpowiednimi uprawnieniami) mogą tworzyć subskrypcje bezpośrednio w witrynie Azure Portal, logując się do wystąpienia usługi API Management. Użytkownicy interfejsu API nie mogą tworzyć subskrypcji za pośrednictwem witryny Azure Portal; zazwyczaj żądają subskrypcji za pośrednictwem portalu deweloperów lub otrzymują je od wydawców interfejsu API.
Podczas tworzenia subskrypcji w portalu jest ona w stanie Aktywny , co oznacza, że subskrybent może wywołać skojarzony interfejs API przy użyciu prawidłowego klucza subskrypcji. Możesz zmienić stan subskrypcji zgodnie z potrzebami. Możesz na przykład wstrzymać, anulować lub usunąć dowolną subskrypcję (w tym wbudowaną subskrypcję z dostępem wszystkim), aby uniemożliwić dostęp do interfejsu API.
Używanie klucza subskrypcji
Subskrybenci mogą używać klucza subskrypcji usługi API Management na dwa sposoby:
- Dodaj nagłówek HTTP Ocp-Apim-Subscription-Key do żądania, przekazując wartość prawidłowego klucza subskrypcji.
- Uwzględnij parametr zapytania subscription-key i prawidłową wartość w adresie URL. Parametr zapytania jest sprawdzany tylko wtedy, gdy nagłówek nie jest obecny.
Napiwek
Ocp-Apim-Subscription-Key jest domyślną nazwą nagłówka klucza subskrypcji, a klucz-subskrypcji jest domyślną nazwą parametru zapytania. W razie potrzeby można zmodyfikować te nazwy w ustawieniach dla każdego interfejsu API. Na przykład w portalu zaktualizuj te nazwy na karcie Ustawienia interfejsu API.
Uwaga
W przypadku dołączania do nagłówka żądania lub parametru zapytania klucz subskrypcji jest domyślnie przekazywany do zaplecza i może być uwidoczniony w dziennikach monitorowania zaplecza lub w innych systemach. Jeśli te dane są poufne, możesz skonfigurować zasady na końcu inbound sekcji, aby usunąć nagłówek klucza subskrypcji (set-header) lub parametr zapytania (set-query-parameter).
Włączanie lub wyłączanie wymagań dotyczących subskrypcji dla interfejsu API lub dostępu do produktu
Domyślnie podczas tworzenia interfejsu API klucz subskrypcji jest wymagany do uzyskiwania dostępu do interfejsu API. Podobnie podczas tworzenia produktu domyślnie klucz subskrypcji jest wymagany do uzyskania dostępu do dowolnego interfejsu API dodanego do produktu. W niektórych scenariuszach wydawca interfejsu API może chcieć opublikować produkt lub określony interfejs API do publicznej wiadomości bez konieczności używania subskrypcji. Chociaż wydawca może zdecydować się na włączenie niezabezpieczonego (anonimowego) dostępu do niektórych interfejsów API, zaleca się skonfigurowanie innego mechanizmu zabezpieczania dostępu klienta.
Uwaga
Należy zachować ostrożność podczas konfigurowania produktu lub interfejsu API, który nie wymaga subskrypcji. Ta konfiguracja może być zbyt permisywna, co może sprawić, że interfejs API będzie bardziej podatny na niektóre zagrożenia bezpieczeństwa interfejsu API.
Uwaga
Otwarte produkty mają wyłączone ustawienie Wymaga subskrypcji , co oznacza, że użytkownicy nie muszą ich subskrybować. Z tego powodu otwarte produkty nie są wyświetlane na stronie Produkty portalu dla deweloperów.
Możesz wyłączyć wymaganie subskrypcji podczas tworzenia API lub produktu, lub później.
Aby wyłączyć wymaganie dotyczące subskrypcji przy użyciu portalu:
- Wyłącz wymaganie dotyczące produktu — na stronie Ustawienia produktu wyłącz opcję Wymaga subskrypcji.
- Wyłącz wymaganie dotyczące interfejsu API — na stronie Ustawienia interfejsu API wyłącz opcję Wymagana subskrypcja.
Po wyłączeniu wymagania dotyczącego subskrypcji można uzyskać dostęp do wybranego interfejsu API lub interfejsów API bez klucza subskrypcji.
Jak usługa API Management obsługuje żądania z kluczami subskrypcji lub bez tych kluczy
Żądanie interfejsu API z kluczem subskrypcji
Gdy funkcja API Management otrzyma żądanie API od klienta z kluczem subskrypcji, obsługuje żądanie zgodnie z poniższymi regułami:
Sprawdza, czy klucz jest prawidłowy i skojarzony z aktywną subskrypcją, zdefiniowany jako:
- Subskrypcja obejmująca zakres interfejsu API.
- Subskrypcja powiązana z zakresem produktu przypisanego do API.
- Subskrypcja obejmująca wszystkie interfejsy API.
- Subskrypcja o zasięgu usługi (wbudowana w subskrypcję obejmującą pełny dostęp).
Jeśli klucz jest ważny dla aktywnej subskrypcji w odpowiednim zakresie, usługa API Management udziela dostępu. Stosuje zasady w zależności od konfiguracji definicji zasad w tym zakresie.
Jeśli klucz jest nieprawidłowy, ale produkt istnieje, który zawiera interfejs API bez wymagania subskrypcji ( otwartego produktu), usługa API Management ignoruje klucz i obsługuje żądanie jako żądanie interfejsu API bez klucza subskrypcji (zobacz następującą sekcję).
W przeciwnym razie usługa API Management nie zezwala na dostęp (błąd odmowy dostępu 401).
Żądanie interfejsu API bez klucza subskrypcji
Gdy funkcja API Management otrzyma żądanie API od klienta bez klucza subskrypcji, obsługuje żądanie zgodnie z tymi regułami:
- Sprawdza istnienie produktu, który zawiera interfejs API, ale nie wymaga subskrypcji ( otwartego produktu). Jeśli otwarty produkt istnieje, usługa API Management obsługuje żądanie w kontekście interfejsów API, zasad i reguł dostępu skonfigurowanych dla otwartego produktu. Interfejs API może być skojarzony z co najwyżej jednym otwartym produktem.
- Jeśli otwarty produkt zawierający interfejs API nie zostanie znaleziony, usługa API Management sprawdzi, czy interfejs API wymaga subskrypcji. Jeśli subskrypcja nie jest wymagana, usługa API Management obsługuje żądanie w kontekście tego interfejsu API i operacji.
- Jeśli nie znaleziono skonfigurowanego produktu lub interfejsu API, usługa API Management odmówi dostępu (błąd odmowy dostępu 401).
Tabela podsumowania
Poniższa tabela przedstawia, w jaki sposób brama obsługuje żądania API z kluczami subskrypcji lub bez w różnych scenariuszach. Tabela zawiera informacje o konfiguracjach, które mogą potencjalnie umożliwić niezamierzony, anonimowy dostęp do interfejsu API.
| Wszystkie produkty przypisane do interfejsu API wymagają subskrypcji | Interfejs API wymaga subskrypcji | Wywołanie interfejsu API z kluczem subskrypcji | Wywołanie interfejsu API bez klucza subskrypcji | Typowe scenariusze |
|---|---|---|---|---|
| ✔️ | ✔️ | Dozwolony dostęp: • Klucz o zakresie produktu • Klucz o zakresie interfejsu API Klucz o zakresie wszystkich interfejsów API • Klucz o zakresie usługi Odmowa dostępu: • Inny klucz, który nie jest powiązany z odpowiednim produktem lub interfejsem API |
Odmowa dostępu | Chroniony dostęp do interfejsu API z użyciem subskrypcji o zakresie produktu lub interfejsu API |
| ✔️ | ❌ | Dozwolony dostęp: • Klucz o zakresie produktu • Klucz o zakresie interfejsu API Klucz o zakresie wszystkich interfejsów API • Klucz o zakresie usługi • Inny klucz, który nie jest powiązany z odpowiednim produktem lub interfejsem API |
Dostęp dozwolony (kontekst interfejsu API) | • Chroniony dostęp do interfejsu API z subskrypcją obejmującą zakres produktów • Anonimowy dostęp do interfejsu API. Jeśli dostęp anonimowy nie jest zamierzony, skonfiguruj zasady na poziomie interfejsu API w celu wymuszania uwierzytelniania i autoryzacji. |
| ❌ 1 | ✔️ | Dozwolony dostęp: • Klucz o zakresie produktu • Klucz o zakresie interfejsu API Klucz o zakresie wszystkich interfejsów API • Klucz o zakresie usługi Odmowa dostępu: • Inny klucz, który nie jest powiązany z odpowiednim produktem lub interfejsem API |
Dostęp dozwolony (otwarty kontekst produktu) | • Chroniony dostęp do interfejsu API z subskrypcją o zakresie interfejsu API • Anonimowy dostęp do interfejsu API. Jeśli dostęp anonimowy nie jest zamierzony, skonfiguruj przy użyciu zasad produktu w celu wymuszania uwierzytelniania i autoryzacji |
| ❌ 1 | ❌ | Dozwolony dostęp: • Klucz o zakresie produktu • Klucz o zakresie interfejsu API Klucz o zakresie wszystkich interfejsów API • Klucz o zakresie usługi • Inny klucz, który nie jest powiązany z odpowiednim produktem lub interfejsem API |
Dostęp dozwolony (otwarty kontekst produktu) | Anonimowy dostęp do interfejsu API. Jeśli dostęp anonimowy nie jest zamierzony, skonfiguruj przy użyciu zasad produktu w celu wymuszania uwierzytelniania i autoryzacji |
1 Istnieje otwarty produkt, który jest skojarzony z interfejsem API.
Kwestie wymagające rozważenia
- Dostęp do interfejsu API w kontekście produktu jest taki sam, niezależnie od tego, czy produkt jest publikowany, czy nie. Cofanie publikowania produktu powoduje ukrycie go w portalu deweloperów, ale nie powoduje unieważnienia nowych ani istniejących kluczy subskrypcji.
- Jeśli interfejs API nie wymaga uwierzytelniania subskrypcji, każde żądanie interfejsu API zawierające klucz subskrypcji jest traktowane tak samo jak żądanie bez klucza subskrypcji. Klucz subskrypcji jest ignorowany.
- "Kontekst dostępu do interfejsu API oznacza zasady i mechanizmy kontroli dostępu stosowane w określonym zakresie (na przykład interfejs API lub produkt)."
Powiązana zawartość
Uzyskaj więcej informacji na temat usługi API Management:
- Dowiedz się, jak zasady usługi API Management są stosowane w różnych zakresach.
- Poznaj inne pojęcia w zarządzaniu API.
- Postępuj zgodnie z naszymi samouczkami, aby dowiedzieć się więcej o usłudze API Management.
- Zapoznaj się z naszą stroną często zadawanych pytań, aby uzyskać odpowiedzi na często zadawane pytania.