Federacja tożsamości obciążenia

Ten artykuł zawiera omówienie federacji tożsamości obciążenia dla obciążeń oprogramowania. Korzystanie z federacji tożsamości obciążenia umożliwia dostęp do chronionych zasobów firmy Microsoft bez konieczności zarządzania wpisami tajnymi (w przypadku obsługiwanych scenariuszy).

Federację tożsamości obciążenia można używać w scenariuszach, takich jak GitHub Actions, obciążenia uruchomione na platformie Kubernetes lub obciążenia działające na platformach obliczeniowych spoza platformy Azure.

Dlaczego warto używać federacji tożsamości obciążenia?

Obejrzyj ten film wideo, aby dowiedzieć się, dlaczego należy używać federacji tożsamości obciążenia.

Zazwyczaj obciążenie oprogramowania (takie jak aplikacja, usługa, skrypt lub aplikacja oparta na kontenerach) wymaga tożsamości w celu uwierzytelniania zasobów i uzyskiwania do ich dostępu lub komunikowania się z innymi usługami. Po uruchomieniu tych obciążeń na platformie Azure można używać tożsamości zarządzanych , a platforma Azure zarządza poświadczeniami. Tożsamości zarządzane można jednak używać tylko w przypadku obciążeń oprogramowania działających na platformie Azure. W przypadku obciążenia oprogramowania działającego poza platformą Azure należy użyć poświadczeń aplikacji (wpisu tajnego lub certyfikatu) w celu uzyskania dostępu do chronionych zasobów firmy Microsoft (takich jak Azure, Microsoft Graph, Microsoft 365 lub zasoby innych firm). Te poświadczenia stanowią zagrożenie bezpieczeństwa i muszą być przechowywane bezpiecznie i regularnie obracane. W przypadku wygaśnięcia poświadczeń wystąpi również ryzyko przestoju usługi.

Federacja tożsamości obciążenia służy do konfigurowania tożsamości zarządzanej przypisanej przez użytkownika lub rejestracji aplikacji w usłudze Microsoft Entra ID w celu zaufania tokenów od zewnętrznego dostawcy tożsamości, takiego jak GitHub lub Google. Tożsamość zarządzana przypisana przez użytkownika lub rejestracja aplikacji w usłudze Microsoft Entra ID staje się tożsamością dla obciążeń oprogramowania uruchomionych, na przykład w lokalnych przepływach pracy usługi Kubernetes lub GitHub Actions. Po utworzeniu tej relacji zaufania zewnętrzne obciążenie oprogramowania wymienia zaufane tokeny z zewnętrznego dostawcy tożsamości na potrzeby tokenów dostępu z Platforma tożsamości Microsoft. Obciążenie oprogramowania używa tego tokenu dostępu w celu uzyskania dostępu do chronionych zasobów firmy Microsoft, do których przydzielono obciążenie. Należy wyeliminować obciążenie konserwacją ręcznego zarządzania poświadczeniami i wyeliminować ryzyko wycieku wpisów tajnych lub wygaśnięcia certyfikatów.

Obsługiwane scenariusze

Następujące scenariusze są obsługiwane w przypadku uzyskiwania dostępu do chronionych zasobów firmy Microsoft przy użyciu federacji tożsamości obciążenia:

  • Obciążenia uruchomione w dowolnym klastrze Kubernetes (Azure Kubernetes Service (AKS), Amazon Web Services EKS, Google Kubernetes Engine (GKE) lub lokalnym. Ustanów relację zaufania między tożsamością zarządzaną przypisaną przez użytkownika lub aplikacją w usłudze Microsoft Entra ID i obciążeniem Kubernetes (opisane w omówieniu tożsamości obciążenia).
  • GitHub Actions. Najpierw skonfiguruj relację zaufania między tożsamością zarządzaną przypisaną przez użytkownika lub aplikacją w usłudze Microsoft Entra ID i repozytorium GitHub w centrum administracyjnym firmy Microsoft Entra lub przy użyciu programu Microsoft Graph. Następnie skonfiguruj przepływ pracy funkcji GitHub Actions, aby uzyskać token dostępu od dostawcy tożsamości firmy Microsoft i uzyskać dostęp do zasobów platformy Azure.
  • Google Cloud. Najpierw skonfiguruj relację zaufania między tożsamością zarządzaną przypisaną przez użytkownika lub aplikacją w usłudze Microsoft Entra ID i tożsamością w usłudze Google Cloud. Następnie skonfiguruj obciążenie oprogramowania uruchomione w chmurze Google, aby uzyskać token dostępu od dostawcy tożsamości firmy Microsoft i uzyskać dostęp do chronionych zasobów firmy Microsoft. Zobacz Access Microsoft Entra protected resources from an app in Google Cloud (Uzyskiwanie dostępu do zasobów chronionych przez firmę Microsoft w usłudze Google Cloud).
  • Obciążenia uruchomione w usługach Amazon Web Services (AWS). Najpierw skonfiguruj relację zaufania między tożsamością zarządzaną przypisaną przez użytkownika lub aplikacją w usłudze Microsoft Entra ID i tożsamością w aplikacji Amazon Cognito. Następnie skonfiguruj obciążenie oprogramowania uruchomione na platformie AWS, aby uzyskać token dostępu od dostawcy tożsamości firmy Microsoft i uzyskać dostęp do chronionych zasobów firmy Microsoft. Zobacz Federacja tożsamości obciążenia z usługą AWS.
  • Inne obciążenia działające na platformach obliczeniowych spoza platformy Azure. Skonfiguruj relację zaufania między tożsamością zarządzaną przypisaną przez użytkownika lub aplikacją w usłudze Microsoft Entra ID i zewnętrznym dostawcą tożsamości dla platformy obliczeniowej. Tokeny wystawione przez platformę umożliwiają uwierzytelnianie za pomocą Platforma tożsamości Microsoft i wywoływanie interfejsów API w ekosystemie firmy Microsoft. Użyj przepływu poświadczeń klienta, aby uzyskać token dostępu z Platforma tożsamości Microsoft, przekazując JWT dostawcy tożsamości JWT zamiast tworzyć token samodzielnie przy użyciu przechowywanego certyfikatu.
  • SPIFFE i SPIRE to zestaw niezależny od platformy, standardy typu open source umożliwiające dostarczanie tożsamości do obciążeń oprogramowania wdrożonych na różnych platformach i dostawcach usług w chmurze. Najpierw skonfiguruj relację zaufania między tożsamością zarządzaną przypisaną przez użytkownika lub aplikacją w usłudze Microsoft Entra ID i identyfikatorem SPIFFE dla obciążenia zewnętrznego. Następnie skonfiguruj zewnętrzne obciążenie oprogramowania, aby uzyskać token dostępu od dostawcy tożsamości firmy Microsoft i uzyskać dostęp do chronionych zasobów firmy Microsoft. Zobacz Federacja tożsamości obciążeń z usługami SPIFFE i SPIRE.
  • Utwórz nowe połączenie usługi w usłudze Azure Pipelines (wersja zapoznawcza). Utwórz połączenie usługi Azure Resource Manager przy użyciu federacji tożsamości obciążenia.

Uwaga

Wystawione tokeny identyfikatora Entra firmy Microsoft mogą nie być używane w przypadku przepływów tożsamości federacyjnych. Przepływ poświadczeń tożsamości federacyjnej nie obsługuje tokenów wystawionych przez identyfikator Entra firmy Microsoft.

Jak to działa

Utwórz relację zaufania między zewnętrznym dostawcą tożsamości a tożsamością zarządzaną przypisaną przez użytkownika lub aplikacją w usłudze Microsoft Entra ID. Poświadczenie tożsamości federacyjnej służy do wskazywania, który token z zewnętrznego dostawcy tożsamości powinien być zaufany przez aplikację lub tożsamość zarządzaną. Należy skonfigurować tożsamość federacyjną:

  • W tożsamości zarządzanej przypisanej przez użytkownika za pośrednictwem centrum administracyjnego firmy Microsoft, interfejsu wiersza polecenia platformy Azure, programu Azure PowerShell, zestawu Azure SDK i szablonów usługi Azure Resource Manager (ARM). Obciążenie zewnętrzne używa tokenu dostępu do uzyskiwania dostępu do chronionych zasobów firmy Microsoft bez konieczności zarządzania wpisami tajnymi (w obsługiwanych scenariuszach). Kroki konfigurowania relacji zaufania różnią się w zależności od scenariusza i zewnętrznego dostawcy tożsamości.
  • Rejestracja aplikacji w centrum administracyjnym firmy Microsoft Entra lub za pośrednictwem programu Microsoft Graph. Ta konfiguracja umożliwia uzyskanie tokenu dostępu dla aplikacji bez konieczności zarządzania wpisami tajnymi poza platformą Azure. Aby uzyskać więcej informacji, dowiedz się, jak skonfigurować aplikację pod kątem zaufania zewnętrznemu dostawcy tożsamości.

Przepływ pracy wymiany tokenu zewnętrznego dla tokenu dostępu jest taki sam, jednak w przypadku wszystkich scenariuszy. Na poniższym diagramie przedstawiono ogólny przepływ pracy obciążenia wymieniający token zewnętrzny dla tokenu dostępu, a następnie uzyskiwanie dostępu do zasobów chronionych przez firmę Microsoft Entra.

Diagram przedstawiający zewnętrzny token wymieniany dla tokenu dostępu i uzyskiwania dostępu do platformy Azure

  1. Obciążenie zewnętrzne (takie jak przepływ pracy funkcji GitHub Actions) żąda tokenu od zewnętrznego dostawcy tożsamości (takiego jak GitHub).
  2. Zewnętrzny dostawca tożsamości wystawia token do obciążenia zewnętrznego.
  3. Obciążenie zewnętrzne (na przykład akcja logowania w przepływie pracy usługi GitHub) wysyła token do Platforma tożsamości Microsoft i żąda tokenu dostępu.
  4. Platforma tożsamości Microsoft sprawdza relację zaufania na tożsamości zarządzanej przypisanej przez użytkownika lub rejestracji aplikacji i weryfikuje token zewnętrzny względem adresu URL wystawcy openID Połączenie (OIDC) w zewnętrznym dostawcy tożsamości.
  5. Gdy testy są spełnione, Platforma tożsamości Microsoft wystawia token dostępu do obciążenia zewnętrznego.
  6. Obciążenie zewnętrzne uzyskuje dostęp do chronionych zasobów firmy Microsoft przy użyciu tokenu dostępu z Platforma tożsamości Microsoft. Na przykład przepływ pracy funkcji GitHub Actions używa tokenu dostępu do publikowania aplikacji internetowej w celu aplikacja systemu Azure Service.

Platforma tożsamości Microsoft przechowuje tylko pierwsze 100 kluczy podpisywania po pobraniu ich z zewnętrznego punktu końcowego OIDC dostawcy tożsamości. Jeśli zewnętrzny dostawca tożsamości uwidacznia ponad 100 kluczy podpisywania, podczas korzystania z federacji tożsamości obciążenia mogą wystąpić błędy.

Następne kroki

Dowiedz się więcej o sposobie działania federacji tożsamości obciążenia:

  • Jak tworzyć, usuwać, pobierać lub aktualizować poświadczenia tożsamości federacyjnej w tożsamości zarządzanej przypisanej przez użytkownika.
  • Jak tworzyć, usuwać, pobierać lub aktualizować poświadczenia tożsamości federacyjnej podczas rejestracji aplikacji.
  • Zapoznaj się z omówieniem tożsamości obciążenia, aby dowiedzieć się, jak skonfigurować obciążenie Kubernetes w celu uzyskania tokenu dostępu od dostawcy tożsamości firmy Microsoft i uzyskać dostęp do zasobów chronionych przez firmę Microsoft Entra.
  • Przeczytaj dokumentację funkcji GitHub Actions, aby dowiedzieć się więcej na temat konfigurowania przepływu pracy funkcji GitHub Actions w celu uzyskania tokenu dostępu od dostawcy tożsamości firmy Microsoft i uzyskiwania dostępu do zasobów chronionych przez firmę Microsoft Entra.
  • Jak identyfikator Entra firmy Microsoft używa udzielenia poświadczeń klienta OAuth 2.0 i potwierdzenia klienta wystawionego przez innego dostawcę tożsamości w celu uzyskania tokenu.
  • Aby uzyskać informacje o wymaganym formacie JWTs utworzonym przez zewnętrznych dostawców tożsamości, przeczytaj o formacie asercji.