Uwierzytelnianie w Azure Key VaultAuthentication in Azure Key Vault

Uwierzytelnianie za Key Vault działa w połączeniu z usługą Azure Active Directory (Azure AD),która jest odpowiedzialna za uwierzytelnianie tożsamości dowolnego podmiotu zabezpieczeń.Authentication with Key Vault works in conjunction with Azure Active Directory (Azure AD), which is responsible for authenticating the identity of any given security principal.

Podmiot zabezpieczeń to obiekt reprezentujący użytkownika, grupę, usługę lub aplikację, która żąda dostępu do zasobów platformy Azure.A security principal is an object that represents a user, group, service, or application that's requesting access to Azure resources. Platforma Azure przypisuje unikatowy identyfikator obiektu do każdego podmiotu zabezpieczeń.Azure assigns a unique object ID to every security principal.

  • Podmiot zabezpieczeń użytkownika identyfikuje osobę, która ma profil w Azure Active Directory.A user security principal identifies an individual who has a profile in Azure Active Directory.

  • Podmiot zabezpieczeń grupy identyfikuje zestaw użytkowników utworzonych w Azure Active Directory.A group security principal identifies a set of users created in Azure Active Directory. Wszystkie role lub uprawnienia przypisane do grupy są przyznawane wszystkim użytkownikom w grupie.Any roles or permissions assigned to the group are granted to all of the users within the group.

  • Nazwa główna usługi to typ podmiotu zabezpieczeń, który tożsamościuje aplikację lub usługę, czyli fragment kodu, a nie użytkownika lub grupę.A service principal is a type of security principal that identities an application or service, which is to say, a piece of code rather than a user or group. Identyfikator obiektu jednostki usługi jest znany jako identyfikator klienta i działa jak nazwa użytkownika.A service principal's object ID is known as its client ID and acts like its username. Klucz tajny klienta jednostki usługi działa jak hasło.The service principal's client secret acts like its password.

W przypadku aplikacji istnieją dwa sposoby uzyskania jednostki usługi:For applications, there are two ways to obtain a service principal:

  • Zalecane: włącz tożsamość zarządzaną przypisaną przez system dla aplikacji.Recommended: enable a system-assigned managed identity for the application.

    Dzięki tożsamości zarządzanej platforma Azure wewnętrznie zarządza jednostką usługi aplikacji i automatycznie uwierzytelnia aplikację w innych usługach platformy Azure.With managed identity, Azure internally manages the application's service principal and automatically authenticates the application with other Azure services. Tożsamość zarządzana jest dostępna dla aplikacji wdrożonych w różnych usługach.Managed identity is available for applications deployed to a variety of services.

    Aby uzyskać więcej informacji, zobacz Omówienie tożsamości zarządzanej.For more information, see the Managed identity overview. Zobacz również usługi platformy Azure,które obsługują tożsamość zarządzaną . Linki do artykułów opisujących sposób włączania tożsamości zarządzanej dla określonych usług (takich jak App Service, Azure Functions, Virtual Machines itp.).Also see Azure services that support managed identity, which links to articles that describe how to enable managed identity for specific services (such as App Service, Azure Functions, Virtual Machines, etc.).

  • Jeśli nie możesz użyć tożsamości zarządzanej, zamiast tego zarejestruj aplikację w dzierżawie usługi Azure AD, zgodnie z opisem w przewodniku Szybki start: rejestrowanie aplikacji za pomocą platformy tożsamości platformy Azure.If you cannot use managed identity, you instead register the application with your Azure AD tenant, as described on Quickstart: Register an application with the Azure identity platform. Rejestracja tworzy również drugi obiekt aplikacji, który identyfikuje aplikację we wszystkich dzierżawach.Registration also creates a second application object that identifies the app across all tenants.

Konfigurowanie zapory Key Vault sieciowejConfigure the Key Vault firewall

Domyślnie program Key Vault dostęp do zasobów za pośrednictwem publicznych adresów IP.By default, Key Vault allows access to resources through public IP addresses. W celu zwiększenia bezpieczeństwa można również ograniczyć dostęp do określonych zakresów adresów IP, punktów końcowych usługi, sieci wirtualnych lub prywatnych punktów końcowych.For greater security, you can also restrict access to specific IP ranges, service endpoints, virtual networks, or private endpoints.

Aby uzyskać więcej informacji, zobacz Azure Key Vault dostępu za zaporą.For more information, see Access Azure Key Vault behind a firewall.

Przepływ Key Vault żądania z uwierzytelnianiemThe Key Vault request operation flow with authentication

Key Vault odbywa się w ramach każdej operacji żądania na Key Vault.Key Vault authentication occurs as part of every request operation on Key Vault. Po pobraniu tokenu można go użyć ponownie w kolejnych wywołaniach.Once token is retrieved, it can be reused for subsequent calls. Przykład przepływu uwierzytelniania:Authentication flow example:

  1. Token żąda uwierzytelnienia w usłudze Azure AD, na przykład:A token requests to authenticate with Azure AD, for example:

    • Zasób platformy Azure, taki jak maszyna wirtualna lub aplikacja App Service tożsamości zarządzanej, kontaktuje się z punktem końcowym REST w celu uzyskania tokenu dostępu.An Azure resource such as a virtual machine or App Service application with a managed identity contacts the REST endpoint to get an access token.
    • Użytkownik loguje się do Azure Portal przy użyciu nazwy użytkownika i hasła.A user logs into the Azure portal using a username and password.
  2. Jeśli uwierzytelnianie w usłudze Azure AD powiedzie się, podmiot zabezpieczeń otrzymał token OAuth.If authentication with Azure AD is successful, the security principal is granted an OAuth token.

  3. Wywołanie interfejsu API REST Key Vault za pośrednictwem Key Vault końcowego (URI) klienta.A call to the Key Vault REST API through the Key Vault's endpoint (URI).

  4. Key Vault Zapora sprawdza następujące kryteria.Key Vault Firewall checks the following criteria. Jeśli którekolwiek kryterium zostanie spełnione, wywołanie będzie dozwolone.If any criterion is met, the call is allowed. W przeciwnym razie wywołanie zostanie zablokowane i zostanie zwrócona niedozwolona odpowiedź.Otherwise the call is blocked and a forbidden response is returned.

    • Zapora jest wyłączona, a publiczny punkt końcowy Key Vault jest dostępny z publicznego Internetu.The firewall is disabled and the public endpoint of Key Vault is reachable from the public internet.
    • Wywołujący jest usługą Key Vault,dzięki czemu może pominąć zaporę.The caller is a Key Vault Trusted Service, allowing it to bypass the firewall.
    • Wywołujący jest wymieniony w zaporze według adresu IP, sieci wirtualnej lub punktu końcowego usługi.The caller is listed in the firewall by IP address, virtual network, or service endpoint.
    • Wywołujący może nawiązać Key Vault za pośrednictwem skonfigurowanego połączenia łącza prywatnego.The caller can reach Key Vault over a configured private link connection.
  5. Jeśli zapora zezwala na wywołanie, Key Vault usługę Azure AD w celu zweryfikowania tokenu dostępu podmiotu zabezpieczeń.If the firewall allows the call, Key Vault calls Azure AD to validate the security principal’s access token.

  6. Key Vault sprawdza, czy podmiot zabezpieczeń ma uprawnienia niezbędne do żądanej operacji.Key Vault checks if the security principal has the necessary permission for requested operation. Jeśli nie, Key Vault zwraca niedozwoloną odpowiedź.If not, Key Vault returns a forbidden response.

  7. Key Vault wykonuje żądaną operację i zwraca wynik.Key Vault carries out the requested operation and returns the result.

Na poniższym diagramie przedstawiono proces wywoływania przez aplikację interfejsu API Key Vault "Pobierz klucz tajny":The following diagram illustrates the process for an application calling a Key Vault "Get Secret" API:

Przepływ Azure Key Vault uwierzytelniania

Uwaga

Key Vault SDK dla wpisów tajnych, certyfikatów i kluczy wykonać dodatkowe wywołanie do usługi Key Vault bez tokenu dostępu, co powoduje odpowiedź 401 do pobrania informacji o dzierżawie.Key Vault SDK clients for secrets, certificates, and keys make an additional call to Key Vault without access token, which results in 401 response to retrieve tenant information. Aby uzyskać więcej informacji, zobacz Uwierzytelnianie, żądania i odpowiedziFor more information see Authentication, requests and responses

Uwierzytelnianie do Key Vault w kodzie aplikacjiAuthentication to Key Vault in application code

Key Vault SDK korzysta z biblioteki klienta tożsamości platformy Azure, która umożliwia bezproblemowe uwierzytelnianie w Key Vault środowiskach z tym samym kodemKey Vault SDK is using Azure Identity client library, which allows seamless authentication to Key Vault across environments with same code

Biblioteki klienta tożsamości platformy AzureAzure Identity client libraries

.NET.NET PythonPython JavaJava JavaScriptJavaScript
Azure Identity SDK .NETAzure Identity SDK .NET Zestaw SDK tożsamości platformy Azure dla języka PythonAzure Identity SDK Python Zestaw SDK tożsamości platformy Azure w języku JavaAzure Identity SDK Java Zestaw SDK tożsamości platformy Azure w języku JavaScriptAzure Identity SDK JavaScript

Aby uzyskać więcej informacji na temat najlepszych rozwiązań i przykładów dla deweloperów, zobacz Authenticate to Key Vault in code (Uwierzytelnianie w Key Vault w kodzie)More information about best practices and developer examples, see Authenticate to Key Vault in code

Następne krokiNext Steps