Zabezpieczanie usług zaplecza przy użyciu uwierzytelniania certyfikatu klienta w usłudze Azure API Management
DOTYCZY: Wszystkie warstwy usługi API Management
Usługa API Management umożliwia zabezpieczanie dostępu do usługi zaplecza interfejsu API przy użyciu certyfikatów klienta i wzajemnego uwierzytelniania TLS. W tym przewodniku pokazano, jak zarządzać certyfikatami w wystąpieniu usługi Azure API Management przy użyciu witryny Azure Portal. Wyjaśniono również, jak skonfigurować interfejs API do używania certyfikatu w celu uzyskania dostępu do usługi zaplecza.
Certyfikaty usługi API Management można również zarządzać przy użyciu interfejsu API REST usługi API Management.
Opcje certyfikatu
Usługa API Management oferuje dwie opcje zarządzania certyfikatami używanymi do zabezpieczania dostępu do usług zaplecza:
- Odwołanie do certyfikatu zarządzanego w usłudze Azure Key Vault
- Dodanie pliku certyfikatu bezpośrednio w usłudze API Management
Korzystanie z certyfikatów magazynu kluczy jest zalecane, ponieważ pomaga zwiększyć bezpieczeństwo usługi API Management:
- Certyfikaty przechowywane w magazynach kluczy mogą być ponownie używane w usługach
- Szczegółowe zasady dostępu można stosować do certyfikatów przechowywanych w magazynach kluczy
- Certyfikaty aktualizowane w magazynie kluczy są automatycznie obracane w usłudze API Management. Po aktualizacji w magazynie kluczy certyfikat w usłudze API Management zostanie zaktualizowany w ciągu 4 godzin. Możesz również ręcznie odświeżyć certyfikat przy użyciu witryny Azure Portal lub interfejsu API REST zarządzania.
Wymagania wstępne
Uwaga
Do interakcji z platformą Azure zalecamy używanie modułu Azure Az w programie PowerShell. Aby rozpocząć, zobacz Instalowanie programu Azure PowerShell. Aby dowiedzieć się, jak przeprowadzić migrację do modułu Az PowerShell, zobacz Migracja programu Azure PowerShell z modułu AzureRM do modułu Az.
Jeśli jeszcze nie utworzono wystąpienia usługi API Management, zobacz Tworzenie wystąpienia usługi API Management.
Usługa zaplecza powinna być skonfigurowana na potrzeby uwierzytelniania certyfikatu klienta. Aby skonfigurować uwierzytelnianie certyfikatów w usłudze aplikacja systemu Azure, zapoznaj się z tym artykułem.
Musisz mieć dostęp do certyfikatu i hasła do zarządzania w magazynie kluczy platformy Azure lub przekazać go do usługi API Management. Certyfikat musi być w formacie PFX . Certyfikaty z podpisem własnym są dozwolone.
Jeśli używasz certyfikatu z podpisem własnym:
Zainstaluj zaufane certyfikaty głównego i pośredniego urzędu certyfikacji w wystąpieniu usługi API Management.
Uwaga
Certyfikaty urzędu certyfikacji do weryfikacji certyfikatu nie są obsługiwane w warstwie Zużycie.
Wymagania wstępne dotyczące integracji z magazynem kluczy
Uwaga
Obecnie ta funkcja nie jest dostępna w obszarach roboczych.
Jeśli nie masz jeszcze magazynu kluczy, utwórz go. Aby uzyskać instrukcje tworzenia magazynu kluczy, zobacz Szybki start: tworzenie magazynu kluczy przy użyciu witryny Azure Portal.
Aby utworzyć lub zaimportować certyfikat do magazynu kluczy, zobacz Szybki start: ustawianie i pobieranie certyfikatu z usługi Azure Key Vault przy użyciu witryny Azure Portal.
Włącz tożsamość zarządzaną przypisaną przez system lub przypisaną przez użytkownika w wystąpieniu usługi API Management.
Konfigurowanie dostępu do magazynu kluczy
W portalu przejdź do magazynu kluczy.
W menu po lewej stronie wybierz pozycję Konfiguracja dostępu i zanotuj skonfigurowany model uprawnień.
W zależności od modelu uprawnień skonfiguruj zasady dostępu magazynu kluczy lub dostęp RBAC platformy Azure dla tożsamości zarządzanej usługi API Management.
Aby dodać zasady dostępu do magazynu kluczy:
- W menu po lewej stronie wybierz pozycję Zasady dostępu.
- Na stronie Zasady dostępu wybierz pozycję + Utwórz.
- Na karcie Uprawnienia w obszarze Uprawnienia w obszarze Uprawnienia tajne wybierz pozycję Pobierz i listę, a następnie wybierz pozycję Dalej.
- Na karcie Podmiot zabezpieczeń wybierz jednostkę, wyszukaj nazwę zasobu tożsamości zarządzanej, a następnie wybierz pozycję Dalej. Jeśli używasz tożsamości przypisanej przez system, podmiot zabezpieczeń to nazwa wystąpienia usługi API Management.
- Ponownie wybierz przycisk Dalej . Na karcie Przeglądanie i tworzenie wybierz pozycję Utwórz.
Aby skonfigurować dostęp RBAC platformy Azure:
- W menu po lewej stronie wybierz pozycję Kontrola dostępu (Zarządzanie dostępem i tożsamościami)..
- Na stronie Kontrola dostępu (Zarządzanie dostępem i tożsamościami) wybierz pozycję Dodaj przypisanie roli.
- Na karcie Rola wybierz pozycję Użytkownik certyfikatu usługi Key Vault.
- Na karcie Członkowie wybierz pozycję Tożsamość> zarządzana+ Wybierz członków.
- Na stronie Wybieranie tożsamości zarządzanej wybierz tożsamość zarządzaną przypisaną przez system lub tożsamość zarządzaną przypisaną przez użytkownika skojarzona z wystąpieniem usługi API Management, a następnie wybierz pozycję Wybierz.
- Wybierz Przejrzyj + przypisz.
Wymagania dotyczące zapory usługi Key Vault
Jeśli zapora usługi Key Vault jest włączona w magazynie kluczy, są spełnione następujące dodatkowe wymagania:
Aby uzyskać dostęp do magazynu kluczy, musisz użyć przypisanej przez system tożsamości zarządzanej wystąpienia usługi API Management.
W zaporze usługi Key Vault włącz opcję Zezwalaj zaufanym usługom firmy Microsoft na obejście tej zapory .
Upewnij się, że lokalny adres IP klienta może tymczasowo uzyskać dostęp do magazynu kluczy podczas wybierania certyfikatu lub wpisu tajnego, który ma zostać dodany do usługi Azure API Management. Aby uzyskać więcej informacji, zobacz Konfigurowanie ustawień sieci usługi Azure Key Vault.
Po zakończeniu konfiguracji możesz zablokować adres klienta w zaporze magazynu kluczy.
Wymagania dotyczące sieci wirtualnej
Jeśli wystąpienie usługi API Management zostało wdrożone w sieci wirtualnej, skonfiguruj również następujące ustawienia sieciowe:
- Włącz punkt końcowy usługi w usłudze Azure Key Vault w podsieci usługi API Management.
- Skonfiguruj regułę sieciowej grupy zabezpieczeń, aby zezwolić na ruch wychodzący do tagów usługi AzureKeyVault i AzureActiveDirectory.
Aby uzyskać szczegółowe informacje, zobacz Konfiguracja sieci podczas konfigurowania usługi Azure API Management w sieci wirtualnej.
Dodawanie certyfikatu magazynu kluczy
Zobacz Wymagania wstępne dotyczące integracji magazynu kluczy.
Ważne
Podczas dodawania certyfikatu magazynu kluczy do wystąpienia usługi API Management musisz mieć uprawnienia do wyświetlania listy wpisów tajnych z magazynu kluczy.
Uwaga
W przypadku korzystania z certyfikatu magazynu kluczy w usłudze API Management należy zachować ostrożność, aby nie usuwać certyfikatu, magazynu kluczy lub tożsamości zarządzanej używanej do uzyskiwania dostępu do magazynu kluczy.
Aby dodać certyfikat magazynu kluczy do usługi API Management:
W witrynie Azure Portal przejdź do wystąpienia usługi API Management.
W obszarze Zabezpieczenia wybierz pozycję Certyfikaty.
Wybierz pozycję Certyfikaty>+ Dodaj.
W polu Id (Identyfikator) wprowadź wybraną nazwę.
W obszarze Certyfikat wybierz pozycję Magazyn kluczy.
Wprowadź identyfikator certyfikatu magazynu kluczy lub wybierz pozycję Wybierz , aby wybrać certyfikat z magazynu kluczy.
Ważne
Jeśli samodzielnie wprowadzisz identyfikator certyfikatu magazynu kluczy, upewnij się, że nie ma informacji o wersji. W przeciwnym razie certyfikat nie będzie automatycznie obracany w usłudze API Management po aktualizacji w magazynie kluczy.
W obszarze Tożsamość klienta wybierz tożsamość zarządzaną przypisaną przez system lub istniejącą tożsamość zarządzaną przypisaną przez użytkownika. Dowiedz się, jak dodawać lub modyfikować tożsamości zarządzane w usłudze API Management.
Uwaga
Tożsamość musi mieć uprawnienia do pobierania i wyświetlania listy certyfikatów z magazynu kluczy. Jeśli nie skonfigurowano jeszcze dostępu do magazynu kluczy, usługa API Management wyświetli monit o automatyczne skonfigurowanie tożsamości przy użyciu niezbędnych uprawnień.
Wybierz Dodaj.
Wybierz pozycję Zapisz.
Przekaż certyfikat
Aby przekazać certyfikat klienta do usługi API Management:
W witrynie Azure Portal przejdź do wystąpienia usługi API Management.
W obszarze Zabezpieczenia wybierz pozycję Certyfikaty.
Wybierz pozycję Certyfikaty>+ Dodaj.
W polu Id (Identyfikator) wprowadź wybraną nazwę.
W obszarze Certyfikat wybierz pozycję Niestandardowy.
Przejdź do wybrania pliku pfx certyfikatu i wprowadź jego hasło.
Wybierz Dodaj.
Wybierz pozycję Zapisz.
Po przekazaniu certyfikatu zostanie on wyświetlony w oknie Certyfikaty . Jeśli masz wiele certyfikatów, zanotuj odcisk palca żądanego certyfikatu, aby skonfigurować interfejs API do używania certyfikatu klienta na potrzeby uwierzytelniania bramy.
Konfigurowanie interfejsu API do używania certyfikatu klienta na potrzeby uwierzytelniania bramy
W witrynie Azure Portal przejdź do wystąpienia usługi API Management.
W obszarze Interfejsy API wybierz pozycję Interfejsy API.
Wybierz interfejs API z listy.
Na karcie Projektowanie wybierz ikonę edytora w sekcji Zaplecze.
W obszarze Poświadczenia bramy wybierz pozycję Certyfikat klienta i wybierz certyfikat z listy rozwijanej.
Wybierz pozycję Zapisz.
Uwaga
Ta zmiana jest skuteczna natychmiast i wywołuje operacje tego interfejsu API, które będą używać certyfikatu do uwierzytelniania na serwerze zaplecza.
Napiwek
Po określeniu certyfikatu na potrzeby uwierzytelniania bramy dla usługi zaplecza interfejsu API staje się on częścią zasad dla tego interfejsu API i może być wyświetlany w edytorze zasad.
Wyłączanie walidacji łańcucha certyfikatów dla certyfikatów z podpisem własnym
Jeśli używasz certyfikatów z podpisem własnym, należy wyłączyć walidację łańcucha certyfikatów dla usługi API Management w celu komunikowania się z systemem zaplecza. W przeciwnym razie zostanie zwrócony kod błędu 500. Aby to skonfigurować, możesz użyć New-AzApiManagementBackend
polecenia cmdlet programu PowerShell (dla nowego zaplecza) lub Set-AzApiManagementBackend
(dla istniejącego zaplecza -SkipCertificateChainValidation
) i ustawić parametr na True
.
$context = New-AzApiManagementContext -resourcegroup 'ContosoResourceGroup' -servicename 'ContosoAPIMService'
New-AzApiManagementBackend -Context $context -Url 'https://contoso.com/myapi' -Protocol http -SkipCertificateChainValidation $true
Walidację łańcucha certyfikatów można również wyłączyć przy użyciu interfejsu API REST zaplecza.
Usuwanie certyfikatu klienta
Aby usunąć certyfikat, wybierz go, a następnie wybierz pozycję Usuń z menu kontekstowego (...).
Ważne
Jeśli certyfikat jest przywołyyny przez jakiekolwiek zasady, zostanie wyświetlony ekran ostrzegawczy. Aby usunąć certyfikat, należy najpierw usunąć certyfikat z wszystkich zasad skonfigurowanych do jego używania.