İş yükü kimliği federasyonu

Bu makalede, yazılım iş yükleri için iş yükü kimlik federasyonuna genel bir bakış sağlanır. İş yükü kimlik federasyonu kullanmak, gizli dizileri yönetmeye gerek kalmadan (desteklenen senaryolar için) Microsoft Entra korumalı kaynaklara erişmenizi sağlar.

GitHub Actions, Kubernetes üzerinde çalışan iş yükleri veya Azure dışındaki işlem platformlarında çalışan iş yükleri gibi senaryolarda iş yükü kimlik federasyonu kullanabilirsiniz.

İş yükü kimlik federasyonu neden kullanılır?

İş yükü kimlik federasyonlarını neden kullanacağınızı öğrenmek için bu videoyu izleyin.

Genellikle, bir yazılım iş yükünün (uygulama, hizmet, betik veya kapsayıcı tabanlı uygulama gibi) kaynaklarda kimlik doğrulaması yapmak ve kaynaklara erişmek veya diğer hizmetlerle iletişim kurmak için bir kimliğe ihtiyacı vardır. Bu iş yükleri Azure'da çalıştırıldığında yönetilen kimlikleri kullanabilirsiniz ve kimlik bilgilerini Sizin için Azure platformu yönetir. Bununla birlikte, yönetilen kimlikleri yalnızca Azure'da çalışan yazılım iş yükleri için kullanabilirsiniz. Azure dışında çalışan bir yazılım iş yükü için, Microsoft Entra korumalı kaynaklara (Azure, Microsoft Graph, Microsoft 365 veya üçüncü taraf kaynaklar gibi) erişmek için uygulama kimlik bilgilerini (gizli dizi veya sertifika) kullanmanız gerekir. Bu kimlik bilgileri güvenlik riski oluşturur ve güvenli bir şekilde depolanması ve düzenli olarak döndürülmüş olması gerekir. Kimlik bilgilerinin süresi dolarsa hizmet kapalı kalma süresi riskini de çalıştırırsınız.

GitHub veya Google gibi bir dış kimlik sağlayıcısından (IdP) gelen belirteçlere güvenmek üzere Microsoft Entra ID'de kullanıcı tarafından atanan yönetilen kimliği veya uygulama kaydını yapılandırmak için iş yükü kimlik federasyonu kullanırsınız. Microsoft Entra ID'de kullanıcı tarafından atanan yönetilen kimlik veya uygulama kaydı, örneğin şirket içi Kubernetes veya GitHub Actions iş akışlarında çalışan yazılım iş yükleri için bir kimlik haline gelir. Bu güven ilişkisi oluşturulduktan sonra, dış yazılım iş yükünüz Microsoft kimlik platformu erişim belirteçleri için dış IdP'den güvenilen belirteçleri değiştirir. Yazılım iş yükünüz, iş yüküne erişim verilen Microsoft Entra korumalı kaynaklara erişmek için bu erişim belirtecini kullanır. Kimlik bilgilerini el ile yönetmenin bakım yükünü ortadan kaldırırsınız ve gizli dizilerin sızması veya sertifikaların süresinin dolması riskini ortadan kaldırırsınız.

Desteklenen senaryolar

İş yükü kimlik federasyonu kullanarak Microsoft Entra korumalı kaynaklara erişmek için aşağıdaki senaryolar desteklenir:

  • Herhangi bir Kubernetes kümesinde (Azure Kubernetes Service (AKS), Amazon Web Services EKS, Google Kubernetes Engine (GKE) veya şirket içinde çalışan iş yükleri. Microsoft Entra ID'de kullanıcı tarafından atanan yönetilen kimliğiniz veya uygulamanız ile kubernetes iş yükü arasında bir güven ilişkisi oluşturun (iş yükü kimliğine genel bakış bölümünde açıklanmıştır).
  • GitHub Actions. İlk olarak, Microsoft Entra Id'de kullanıcı tarafından atanan yönetilen kimliğiniz veya uygulamanız ile Microsoft Entra yönetim merkezindeki github deposu arasında veya Microsoft Graph kullanarak bir güven ilişkisi yapılandırın. Ardından , Microsoft kimlik sağlayıcısından erişim belirteci almak ve Azure kaynaklarına erişmek için bir GitHub Actions iş akışı yapılandırın.
  • Google Cloud. İlk olarak, Microsoft Entra Id'de kullanıcı tarafından atanan yönetilen kimliğiniz veya uygulamanız ile Google Cloud'daki bir kimlik arasında bir güven ilişkisi yapılandırın. Ardından, Microsoft kimlik sağlayıcısından erişim belirteci almak ve Microsoft Entra korumalı kaynaklara erişmek için Google Cloud'da çalışan yazılım iş yükünüzü yapılandırın. Bkz . Google Cloud'daki bir uygulamadan Microsoft Entra korumalı kaynaklara erişme.
  • Amazon Web Services'te (AWS) çalışan iş yükleri. İlk olarak, Microsoft Entra Id'de kullanıcı tarafından atanan yönetilen kimliğiniz veya uygulamanız ile Amazon Cognito'daki bir kimlik arasında bir güven ilişkisi yapılandırın. Ardından, Microsoft kimlik sağlayıcısından erişim belirteci almak ve Microsoft Entra korumalı kaynaklara erişmek için AWS'de çalışan yazılım iş yükünüzü yapılandırın. Bkz. AWS ile iş yükü kimlik federasyonu.
  • Azure dışındaki işlem platformlarında çalışan diğer iş yükleri. Microsoft Entra Id'de kullanıcı tarafından atanan yönetilen kimliğinizveya uygulamanız ile işlem platformunuzun dış IdP'si arasında bir güven ilişkisi yapılandırın. Microsoft kimlik platformu ile kimlik doğrulaması yapmak ve Microsoft ekosistemindeki API'leri çağırmak için bu platform tarafından verilen belirteçleri kullanabilirsiniz. Microsoft kimlik platformu'dan erişim belirteci almak için istemci kimlik bilgileri akışını kullanın ve depolanan sertifikayı kullanarak kendiniz oluşturmak yerine kimlik sağlayıcısının JWT'sini geçirin.
  • SPIFFE ve SPIRE, platformlar ve bulut satıcıları arasında dağıtılan yazılım iş yüklerinize kimlik sağlamak için platformdan bağımsız, açık kaynak standartları kümesidir. İlk olarak, Microsoft Entra Id'de kullanıcı tarafından atanan yönetilen kimliğiniz veya uygulamanız ile dış iş yükü için BIR SPIFFE Kimliği arasında bir güven ilişkisi yapılandırın. Ardından dış yazılım iş yükünüzü Microsoft kimlik sağlayıcısından erişim belirteci alacak ve Microsoft Entra korumalı kaynaklara erişecek şekilde yapılandırın. Bkz. SPIFFE ve SPIRE ile iş yükü kimlik federasyonu.
  • Azure Pipelines'da yeni bir hizmet bağlantısı oluşturma (önizleme). İş yükü kimlik federasyonu kullanarak bir Azure Resource Manager hizmet bağlantısı oluşturun.

Not

Microsoft Entra Kimliği tarafından verilen belirteçler federasyon kimlik akışları için kullanılamayabilir. Federasyon kimliği kimlik bilgileri akışı, Microsoft Entra Id tarafından verilen belirteçleri desteklemez.

Nasıl çalışır?

Microsoft Entra Id'de dış IdP ile kullanıcı tarafından atanan yönetilen kimlik veya uygulama arasında güven ilişkisi oluşturun. Federasyon kimliği kimlik bilgileri, uygulamanız veya yönetilen kimliğiniz tarafından dış IdP'den hangi belirtecin güvenilir olacağını belirtmek için kullanılır. Bir federasyon kimliği yapılandırabilirsiniz:

Ancak, erişim belirteci için dış belirteç alışverişi için iş akışı tüm senaryolar için aynıdır. Aşağıdaki diyagramda, erişim belirteci için dış belirteç alışverişinde bulunan ve ardından Microsoft Entra korumalı kaynaklara erişen bir iş yükünün genel iş akışı gösterilmektedir.

Diagram showing an external token exchanged for an access token and accessing Azure

  1. Dış iş yükü (GitHub Actions iş akışı gibi) dış IdP'den (GitHub gibi) bir belirteç ister.
  2. Dış IdP, dış iş yüküne bir belirteç verir.
  3. Dış iş yükü (örneğin GitHub iş akışındaki oturum açma eylemi), belirteci Microsoft kimlik platformu gönderir ve erişim belirteci ister.
  4. Microsoft kimlik platformu, kullanıcı tarafından atanan yönetilen kimlik veya uygulama kaydındaki güven ilişkisini denetler ve dış idp'de OpenID Bağlan (OIDC) veren URL'sine karşı dış belirteci doğrular.
  5. Denetimler karşılandığında Microsoft kimlik platformu dış iş yüküne bir erişim belirteci oluşturur.
  6. Dış iş yükü, Microsoft kimlik platformu erişim belirtecini kullanarak Microsoft Entra korumalı kaynaklara erişir. Örneğin GitHub Actions iş akışı, Azure Uygulaması Service'e bir web uygulaması yayımlamak için erişim belirtecini kullanır.

Microsoft kimlik platformu, dış IdP'nin OIDC uç noktasından indirildiğinde yalnızca ilk 100 imzalama anahtarını depolar. Dış IdP 100'den fazla imzalama anahtarını kullanıma sunarsa, iş yükü kimlik federasyonu kullanırken hatalarla karşılaşabilirsiniz.

Sonraki adımlar

İş yükü kimlik federasyonu nasıl çalıştığı hakkında daha fazla bilgi edinin: