Bir uygulamayı dış kimlik sağlayıcısına güvenecek şekilde yapılandırma
Makale
Bu makalede, Microsoft Entra Id'de bir uygulamada federasyon kimliği kimlik bilgilerinin nasıl yönetileceğini açıklanmaktadır. Federasyon kimliği kimlik bilgileri, bir uygulama ile dış kimlik sağlayıcısı (IdP) arasında bir güven ilişkisi oluşturur.
Daha sonra, harici bir kimlik sağlayıcısından alınan belirteci Microsoft kimlik platformundan bir erişim belirteci ile değiştirmek için harici yazılım iş yükünü yapılandırabilirsiniz. Dış iş yükü, gizli bilgileri yönetmeye gerek kalmadan (desteklenen senaryolarda) Microsoft Entra korumalı kaynaklara erişebilir. Jeton değişimi iş akışı hakkında daha fazla bilgi edinmek için iş yükü kimlik federasyonuhakkında okuyun.
Bu makalede, Microsoft Entra Id'de bir uygulamada federasyon kimlik bilgilerini oluşturmayı, listelemeyi ve silmeyi öğreneceksiniz.
Bir uygulamaya veya kullanıcı tarafından atanan yönetilen kimliğe en fazla 20 federasyon kimliği kimlik bilgisi eklenebilir.
Federasyon kimliği kimlik bilgilerini yapılandırdığınızda, sağlamanız gereken birkaç önemli bilgi vardır:
veren ve konu güven ilişkisini ayarlamak için gereken önemli bilgi parçalarıdır.
issuer ve subject birleşimi uygulamada benzersiz olmalıdır. Dış yazılım iş yükü, Microsoft kimlik platformundan bir erişim belirteci için dış belirtecin değişimini istediğinde, federasyon kimlik bilgilerinin veren ve konu değerleri, dış belirteçte sağlanan issuer ve subject taleplerine karşı denetlenir. Bu doğrulama denetimi geçerse, Microsoft kimlik platformu dış yazılım iş yüküne bir erişim belirteci oluşturur.
veren, dış kimlik sağlayıcısının URL'sidir ve değiştirilmekte olan dış belirtecin issuer talebiyle eşleşmelidir. Gerekli.
issuer talebinin değerinin başında veya sonunda boşluk varsa, belirteç alışverişi engellenir. Bu alanın karakter sınırı 600 karakterdir.
konu, dış yazılım iş yükünün tanımlayıcısıdır ve değiştirilmekte olan dış belirtecin sub (subject) talebiyle eşleşmelidir.
konu sabit bir biçime sahip değildir, çünkü her IdP kendi biçimini kullanır - bazen GUID, bazen iki nokta üst üste ile ayrılmış tanımlayıcı, bazen de rastgele dizeler. Bu alanın karakter sınırı 600 karakterdir.
Önemli
konu ayar değerleri GitHub iş akışı yapılandırmasındaki yapılandırmayla tam olarak eşleşmelidir. Aksi takdirde, Microsoft kimlik platformu gelen dış belirteci arar ve erişim belirteci değişimini reddeder. Hata almazsınız, değişim hata olmadan başarısız olur.
Önemli
Yanlış dış iş yükü bilgilerini yanlışlıkla konusuna eklerseniz, federasyon kimliği bilgileri hatasız bir şekilde başarıyla oluşturulur. Belirteç değişimi başarısız olana kadar hata görünür olmaz.
hedef kitleleri dış belirteçte gösterilebilen hedef kitleleri listeler. Gerekli. 600 karakter sınırı olan tek bir hedef kitle değeri eklemeniz gerekir. Önerilen değer "api://AzureADTokenExchange"dir. Gelen belirteçteki aud talebinde Microsoft kimlik platformunun kabul etmesi gerekenleri ifade eder.
ad, federe kimlik bilgisinin benzersiz tanımlayıcısıdır. Gerekli. Bu alanın karakter sınırı 3 ile 120 arasında olmalıdır ve URL dostu olmalıdır. Alfasayısal, tire veya alt çizgi karakterleri desteklenir, ancak ilk karakter yalnızca alfasayısal olmalıdır. Oluşturulduktan sonra değişmezdir.
açıklama, federasyon kimliği kimlik bilgilerinin kullanıcı tarafından sağlanan açıklamasıdır. Opsiyonel. Açıklama Microsoft Entra Id tarafından doğrulanmaz veya denetlenmiyor. Bu alanın sınırı 600 karakterdir.
Joker karakterler, herhangi bir federasyon kimlik bilgisi özellik değerinde desteklenmez.
Desteklenen bölgeler, federasyon kimlik bilgileri güncelleştirmelerini yayma zamanı, desteklenen verenler ve daha fazlası hakkında daha fazla bilgi edinmek için federasyon kimlik bilgileri için önemli noktalar ve kısıtlamalar konusunu okuyun.
Aşağıdaki adımlarda ihtiyacınız olan uygulamanın nesne kimliğini (uygulama (istemci) kimliği değil) bulun. Uygulamanın nesne kimliğini Microsoft Entra yönetim merkezindebulabilirsiniz. Uygulama kayıtları listesine gidin ve uygulama kaydınızı seçin.
Genel Bakışbölümünde Nesne Kimliği'ni bulabilirsiniz.
Dış IdP'niz ve yazılım iş yükünüz için aşağıdaki adımlarda ihtiyaç duyacağınız konu ve veren bilgilerini edinin.
Bir uygulamada federe kimlik doğrulama bilgisini yapılandırma
GitHub Actions
GitHub eylemleri için federasyon kimliği eklemek için şu adımları izleyin:
Microsoft Entra yönetim merkeziuygulama kayıtları deneyiminde uygulama kaydınızı bulun. Sol gezinti bölmesinde Sertifikalar & gizli diziler'i seçin, Federasyon kimlik bilgileri sekmesine gidin ve Kimlik bilgisi ekle'yi seçin.
Federasyon kimlik bilgileri senaryosu açılan kutusundaAzure kaynaklarını dağıtan GitHub eylemlerini seçin.
GitHub Actions iş akışınız için Kuruluş ve Deposu belirtin.
Varlık türü için Ortam, Dal, Çekme isteği veya Etiket seçin ve değeri belirtin. DeğerlerinGitHub iş akışındaki yapılandırmayla tam olarak eşleşmesi gerekir. Desen eşleştirme dallar ve etiketler için desteklenmez. İtme iş akışınız birçok dal veya etikete karşı çalışıyorsa bir çalışma ortamı belirtin. Daha fazla bilgi içinörneklerini okuyun.
Federe kimlik bilgisi için bir isim ekleyin.
Veren, hedef kitlelerve Konu tanımlayıcısı alanları girdiğiniz değerlere göre otomatik olarak doldurulur.
Federasyon kimlik bilgilerini yapılandırmak için ekle'yi seçin.
GitHub iş akışınız için Microsoft Entra uygulama kaydınızdan aşağıdaki değerleri kullanın:
AZURE_CLIENT_IDUygulama (istemci) kimliği
AZURE_TENANT_IDDizin (kiracı) kimliği
Aşağıdaki ekran görüntüsünde uygulama kimliğinin ve kiracı kimliğinin nasıl kopyalanması gösterilmektedir.
Varlık türü örnekleri
Dal örneği
Ana dalda bir gönderme veya çekme isteği olayı tarafından tetiklenen bir iş akışı için:
yml
on: push: branches:[main] pull_request: branches:[main]
Varlık türü olarak Dal ve GitHub dal adı olarak "main" belirtin.
OrtamVarlık türü ve "üretim" GitHub ortam adı belirtin.
Etiket örneği
Örneğin, "v2" etiketi adı verilen bir etikete yapılan gönderimle tetiklenen bir iş akışı için:
yml
on: push:# Sequence of patterns matched against refs/heads branches: -main -'mona/octocat' -'releases/**'# Sequence of patterns matched against refs/tags tags: -v2 -v1.*
Varlık türü olarak Etiketi ve "v2" olarak GitHub etiket adını belirtin.
Çekme isteği örneği
Çekme isteği olayının tetiklediği bir iş akışı için Varlık türü olarak Çekme isteği belirtin
Kubernetes
Microsoft Entra yönetim merkeziuygulama kayıtları deneyiminde uygulama kaydınızı bulun. Sol gezinti bölmesinde Sertifikalar ve gizli diziler seçin, Federasyon kimlik bilgileri sekmesine gidin ve Kimlik bilgisi ekle öğesini seçin.
Açılan menüden Azure kaynaklarına erişim sağlayan Kubernetes senaryosunu seçin.
Küme Yayıcı URL'sini, Ad Alanı, Hizmet Hesabı Adı ve İsim alanlarını doldurun.
Hizmet hesabı adı, Bir Pod'da çalışan işlemler için kimlik sağlayan Kubernetes hizmet hesabının adıdır.
Ad Alanı hizmet hesabı ad alanıdır.
Adı, federasyon kimlik bilgilerinin adıdır ve daha sonra değiştirilemez.
Diğer kimlik sağlayıcıları
Microsoft Entra yönetim merkeziuygulama kayıtları deneyiminde uygulama kaydınızı bulun. Sol gezinti bölmesinde Sertifikalar ve gizli diziler seçeneğini, Federasyon kimlik bilgileri sekmesini ve Kimlik bilgisi ekle öğesini seçin.
Açılır menüden Diğer ihraç eden senaryosunu seçin.
Aşağıdaki alanları belirtin (örnek olarak Google Cloud'da çalışan bir yazılım iş yükü kullanarak):
Adı, federasyon kimlik bilgilerinin adıdır ve daha sonra değiştirilemez.
Konu tanımlayıcısı: dış kimlik sağlayıcısınca verilen belirteçteki sub talebiyle uyumlu olmalıdır. Bu örnekte Google Cloud kullanılırken, konu kullanmayı planladığınız hizmet hesabının Benzersiz Kimliğidir.
Veren: dış kimlik sağlayıcısı tarafından verilen belirteçteki iss talebiyle eşleşmelidir. OIDC keşif spesifikasyonu ile uyumlu bir URL. Microsoft Entra ID, belirteci doğrulamak için gerekli anahtarları almak amacıyla bu verici URL'sini kullanır. Google Cloud için ihraç eden kuruluş, https://accounts.google.com'dir.
Bir uygulamada federe kimlik bilgilerini listele
Microsoft Entra yönetim merkeziuygulama kayıtları deneyiminde uygulama kaydınızı bulun. Sol gezinti bölmesinde Sertifikalar & gizli diziler seçin ve Federasyon kimlik bilgileri sekmesini seçin. Uygulamanızda yapılandırılmış federasyon kimlik bilgileri listelenmektedir.
Bir uygulamadan federatif kimlik bilgilerini silme
Microsoft Entra yönetim merkeziuygulama kayıtları deneyiminde uygulama kaydınızı bulun. Sol gezinti bölmesinde Sertifikalar & gizli diziler seçin ve Federasyon kimlik bilgileri sekmesini seçin. Uygulamanızda yapılandırılmış federasyon kimlik bilgileri listelenmektedir.
Federasyon kimlik bilgilerini silmek için, kimlik bilgisi için Sil simgesini seçin.
CLI referans komutlarını yerelde çalıştırmak istiyorsanız, Azure CLI'yi yükleyin. Windows veya macOS üzerinde çalıştırıyorsanız Azure CLI'yi bir Docker kapsayıcısında çalıştırmayı göz önünde bulundurun. Daha fazla bilgi için bkz. Azure CLI'yi docker kapsayıcısında çalıştırma.
Yerel yükleme kullanıyorsanız az login komutunu kullanarak Azure CLI'da oturum açın. Kimlik doğrulama işlemini tamamlamak için terminalinizde görüntülenen adımları izleyin. Diğer oturum açma seçenekleri için Azure CLI ile oturum açma'a bakın.
İstendiğinde, ilk kullanımda Azure CLI uzantısını yükleyin. Uzantılar hakkında daha fazla bilgi için bkz. Azure CLIile uzantıları kullanma .
Yüklü sürümü ve bağımlı kitaplıkları bulmak için az version çalıştırın. En son sürüme yükseltmek için az upgradeçalıştırın.
Microsoft Entra ID'de uygulama kaydı oluşturun. Uygulamanıza dış yazılım iş yükünüz tarafından hedeflenen Azure kaynaklarına erişim izni verin.
Aşağıdaki adımlarda ihtiyacınız olan nesne kimliğini, uygulama (istemci) kimliğini veya uygulamanın tanımlayıcı URI'sini bulun. Bu değerleri Microsoft Entra yönetim merkezindebulabilirsiniz. Kayıtlı uygulamalar listesine gidin ve uygulama kaydınızı seçin.
Genel Bakış->Temel Parçalarbölümünde, aşağıdaki adımlarda ihtiyacınız olan Nesne Kimliği, Uygulama (istemci) kimliğiveya Uygulama Kimliği URI'si değerini alın.
Dış kimlik sağlayıcı ve yazılım iş yükünüz için, aşağıdaki adımlarda ihtiyaç duyduğunuz subject ve issuer bilgilerini edinin.
Bir uygulamada federe kimlik doğrulama bilgisini yapılandırma
id parametresi, uygulamanın tanımlayıcı URI'sini, uygulama kimliğini veya nesne kimliğini belirtir.
parameters parametresi, federasyon kimliği kimlik bilgilerini oluşturmaya yönelik parametreleri JSON biçiminde belirtir.
GitHub Actions örneği
adı, federasyon kimliği kimlik bilgilerinin adını belirtir.
veren GitHub OIDC sağlayıcısının yolunu tanımlar: https://token.actions.githubusercontent.com/. Bu düzenleyici, Azure uygulamanız tarafından güvenilir olarak kabul edilir.
konusu GitHub Actions iş akışınızın GitHub kuruluşunu, deposunu ve ortamını tanımlar. GitHub Actions iş akışı, GitHub belirtecini bir erişim belirteciyle değiştirmek için Microsoft kimlik platformuna istekte bulunduğunda, federasyon kimlik kimlik bilgilerindeki değerler sağlanan GitHub belirtecine karşı kontrol ediliyor. Azure bir erişim belirteci vermeden önce isteğin burada tanımlanan koşullarla eşleşmesi gerekir.
Bir ortama bağlı işler için: repo:< Organization/Repository >:environment:< Name >
Ortamla bağlantılı olmayan görevler için, iş akışını tetiklemek amacıyla kullanılan referans yoluna göre dal/etiket için referans yolunu ekleyin: repo:< Organization/Repository >:ref:< ref path>. Örneğin, repo:n-username/ node_express:ref:refs/heads/my-branch veya repo:n-username/ node_express:ref:refs/tags/my-tag.
Çekme isteği etkinliği tarafından tetiklenen iş akışları için: repo:< Organization/Repository >:pull-request.
Azure CLI
az ad app federated-credential create --id00001111-aaaa-2222-bbbb-3333cccc4444 --parameters credential.json
("credential.json" contains the following content)
{
"name": "Testing",
"issuer": "https://token.actions.githubusercontent.com",
"subject": "repo:octo-org/octo-repo:environment:Production",
"description": "Testing",
"audiences": [
"api://AzureADTokenExchange"]
}
konu, hizmet hesabına verilen belirteçlerdeki konu adıdır. Kubernetes, konu adları için aşağıdaki biçimi kullanır: system:serviceaccount:<SERVICE_ACCOUNT_NAMESPACE>:<SERVICE_ACCOUNT_NAME>.
adı, federasyon kimlik bilgilerinin adıdır ve daha sonra değiştirilemez.
hedef kitleleri dış belirteçte gösterilebilen hedef kitleleri listeler. Bu alan zorunludur. Önerilen değer api://AzureADTokenExchange.
Azure CLI
az ad app federated-credential create --id00001111-aaaa-2222-bbbb-3333cccc4444 --parameters credential.json
("credential.json" contains the following content)
{
"name": "Kubernetes-federated-credential",
"issuer": "https://aksoicwesteurope.blob.core.windows.net/aaaabbbb-0000-cccc-1111-dddd2222eeee/",
"subject": "system:serviceaccount:erp8asle:pod-identity-sa",
"description": "Kubernetes service account federated credential",
"audiences": [
"api://AzureADTokenExchange"]
}
Diğer kimlik sağlayıcıları örneği
Bir uygulamada federasyon kimliği kimlik bilgilerini yapılandırabilir ve diğer dış kimlik sağlayıcılarıyla güven ilişkisi oluşturabilirsiniz. Aşağıdaki örnekte, örnek olarak Google Cloud'da çalışan bir yazılım iş yükü kullanılır:
name, federasyon kimlik bilgilerinin adıdır ve daha sonra değiştirilemez.
id: nesne kimliği, uygulama (istemci) kimliği veya uygulamanın tanımlayıcı URI'si.
subject: dış kimlik sağlayıcısı tarafından verilen belirteçte bulunan sub talebiyle uyumlu olmalıdır. Google Cloud'un kullanıldığı bu örnekte, konu, kullanmayı planladığınız hizmet hesabının Benzersiz Kimliğidir.
issuer: dış kimlik sağlayıcısı tarafından verilen belirteçteki iss talebiyle eşleşmelidir. OIDC Discovery spesifikasyonuna uygun bir URL. Microsoft Entra ID, belirteci doğrulamak için gerekli anahtarları almak amacıyla bu yayıncı URL'sini kullanır. Google Cloud'un ihraç eden kuruluşu 'dir.
audiences: dış belirteçte görüntülenebilen hedef kitleleri listeler. Bu alan zorunludur. Önerilen değer "api://AzureADTokenExchange"dir.
Azure CLI
az ad app federated-credential create --id00001111-aaaa-2222-bbbb-3333cccc4444 --parameters credential.json
("credential.json" contains the following content)
{
"name": "GcpFederation",
"issuer": "https://accounts.google.com",
"subject": "112633961854638529490",
"description": "Test GCP federation",
"audiences": [
"api://AzureADTokenExchange"]
}
id parametresi, uygulamanın tanımlayıcı URI'sini, uygulama kimliğini veya nesne kimliğini belirtir.
federated-credential-id, federe kimlik belgesinin kimliğini veya adını belirtir.
Azure CLI
az ad app federated-credential delete --id00001111-aaaa-2222-bbbb-3333cccc4444 --federated-credential-id c79f8feb-a9db-4090-85f9-90d820caa0eb
Önkoşullar
Örnek betikleri çalıştırmak için iki seçeneğiniz vardır:
Kod bloklarının sağ üst köşesindeki Deneyin düğmesini kullanarak açabileceğiniz Azure Cloud Shellkullanın.
Sonraki bölümde açıklandığı gibi betikleri Azure PowerShell ile yerel olarak çalıştırın.
Microsoft Entra ID'de uygulama kaydı oluşturun. Uygulamanıza dış yazılım iş yükünüz tarafından hedeflenen Azure kaynaklarına erişim izni verin.
Aşağıdaki adımlarda ihtiyacınız olan uygulamanın nesne kimliğini (uygulama (istemci) kimliği değil) bulun. Uygulamanın nesne kimliğini Microsoft Entra yönetim merkezindebulabilirsiniz. Kayıtlı uygulamalar listesine gidin ve uygulama kaydınızı seçin.
Genel Bakış->Temel Bilgilerbölümünde Nesne Kimliğibulunur.
Dış IdP ve yazılım iş yükünüz için, aşağıdaki adımlarda ihtiyaç duyacağınız konu ve verici bilgilerini edinin.
Azure PowerShell'i yerel olarak yapılandırma
Cloud Shell kullanmak yerine bu makalede Azure PowerShell'i yerel olarak kullanmak için:
Henüz yüklemediyseniz Azure PowerShell'nin en son sürümünü yükleyin.
ApplicationObjectId: Daha önce Microsoft Entra ID'ye kaydettiğiniz uygulamanın nesne kimliği (uygulama (istemci) kimliği değil).
Sağlayıcı, GitHub'ı dış belirteç sağlayıcısı olarak tanımlar.
Konu, GitHub Actions iş akışınızın GitHub kuruluşunu, deposunu ve ortamını tanımlar. GitHub Actions iş akışı, Microsoft kimlik platformundan bir GitHub jetonunu bir erişim jetonuyla değiştirmesini istediğinde, federasyon kimlik kimlik bilgilerindeki değerler sağlanan GitHub jetonuna karşı kontrol edilir.
Bir ortama bağlı işler için: repo:< Organization/Repository >:environment:< Name >
Ortamla bağlantılı olmayan görevler için, iş akışını tetiklemek amacıyla kullanılan referans yoluna göre dal/etiket için referans yolunu ekleyin: repo:< Organization/Repository >:ref:< ref path>. Örneğin, repo:n-username/ node_express:ref:refs/heads/my-branch veya repo:n-username/ node_express:ref:refs/tags/my-tag.
Çekme isteği etkinliği tarafından tetiklenen iş akışları için: repo:< Organization/Repository >:pull-request.
Adı, federasyon kimlik bilgilerinin adıdır ve daha sonra değiştirilemez.
Hedef Kitle, dış belirteçte gösterilebilen hedef kitleleri listeler. Bu alan zorunludur. Önerilen değer api://AzureADTokenExchange.
Konu, hizmet hesabına verilen belirteçlerdeki konu adıdır. Kubernetes, konu adları için aşağıdaki biçimi kullanır: system:serviceaccount:<SERVICE_ACCOUNT_NAMESPACE>:<SERVICE_ACCOUNT_NAME>.
Adı, federasyon kimlik bilgilerinin adıdır ve daha sonra değiştirilemez.
Hedef Kitle, dış belirtecin aud talebinde yer alabilecek hedef kitleleri listeler.
Aşağıdaki parametreleri belirtin (örnek olarak Google Cloud'da çalışan bir yazılım iş yükü kullanarak):
ObjectID: Daha önce Microsoft Entra ID'ye kaydettiğiniz uygulamanın nesne kimliği (uygulama (istemci) kimliği değil).
Adı, federasyon kimlik bilgilerinin adıdır ve daha sonra değiştirilemez.
Konu, dış kimlik sağlayıcısı tarafından verilen belirteçteki sub talebiyle eşleşmelidir. Google Cloud'un kullanıldığı bu örnekte, konu kullanmayı planladığınız hizmet hesabının Benzersiz Kimliğidir.
Veren: dış kimlik sağlayıcısı tarafından verilen belirteçteki iss talebiyle eşleşmelidir. OIDC Keşif belirtimiyle uyumlu bir URL. Microsoft Entra ID, belirteci doğrulamak için gerekli anahtarları almak için bu yayıncı URL'sini kullanır. Google Cloud'un ihraççısıhttps://accounts.google.comdır.
İzleyiciler: dış belirteçteki aud talebiyle eşleşmelidir. Güvenlik nedenleriyle, Microsoft Entra Kimliği'ne yönelik belirteçler için benzersiz bir değer seçmelisiniz. Önerilen değer "api://AzureADTokenExchange"dir.
Microsoft Entra ID'de uygulama kaydı oluşturun. Uygulamanıza dış yazılım iş yükünüz tarafından hedeflenen Azure kaynaklarına erişim izni verin.
Aşağıdaki adımlarda ihtiyacınız olan uygulamanın nesne kimliğini (uygulama (istemci) kimliği değil) bulun. Uygulamanın nesne kimliğini Microsoft Entra yönetim merkezindebulabilirsiniz. Kayıtlı uygulamalar listesine gidin ve uygulama kaydınızı seçin.
Genel Bakış->Temel Bilgilerbölümünde Nesne Kimliğibulunur.
Dış IdP ve yazılım iş yükünüz için aşağıdaki adımlarda ihtiyaç duyacağınız konu ve verici bilgilerini edinin.
Microsoft Graph uç birimi (https://graph.microsoft.com), uygulamalarda federatedIdentityCredentials oluşturmak, güncelleştirmek, silmek için REST API'lerini kullanıma sunar. Azure Cloud Shell başlatın ve AZ CLI'dan Microsoft Graph komutlarını çalıştırmak için kiracınızda oturum açın.
Bir uygulamada federe kimlik doğrulama bilgisini yapılandırma
GitHub Actions
Uygulamanızda (uygulamanın nesne kimliği ile belirtilen) yeni bir federasyon kimlik bilgisi oluşturmak için aşağıdaki yöntemi çalıştırın.
issuer, GitHub'ı dış belirteç sağlayıcısı olarak tanımlar.
subject GitHub Actions iş akışınızın GitHub kuruluşunu, deposunu ve ortamını tanımlar. GitHub Actions iş akışı, Microsoft kimlik platformundan bir erişim belirteci için bir GitHub belirtecinin değiş tokuşunu talep ettiğinde, federe kimlik kimlik bilgilerindeki değerler sağlanan GitHub belirtecine göre denetlenir.
Azure CLI
az rest --method POST --uri'https://graph.microsoft.com/applications/00001111-aaaa-2222-bbbb-3333cccc4444/federatedIdentityCredentials'--body'{"name":"Testing","issuer":"https://token.actions.githubusercontent.com","subject":"repo:octo-org/octo-repo:environment:Production","description":"Testing","audiences":["api://AzureADTokenExchange"]}'
issuer: GitHub OIDC sağlayıcısının yolu: https://token.actions.githubusercontent.com. Azure uygulamanız bu vereni güvenilir olarak kabul eder.
subject: Azure erişim belirteci vermeden önce isteğin burada tanımlanan koşullarla eşleşmesi gerekir.
Bir ortama bağlı işler için: repo:< Organization/Repository >:environment:< Name >
Ortamla bağlantılı olmayan görevler için, iş akışını tetiklemek amacıyla kullanılan referans yoluna göre dal/etiket için referans yolunu ekleyin: repo:< Organization/Repository >:ref:< ref path>. Örneğin, repo:n-username/ node_express:ref:refs/heads/my-branch veya repo:n-username/ node_express:ref:refs/tags/my-tag.
Çekme isteği etkinliği tarafından tetiklenen iş akışları için: repo:< Organization/Repository >:pull-request.
audiences, dış belirteçte görüntülenebilen hedef kitleleri listeler. Bu alan zorunludur. Önerilen değer "api://AzureADTokenExchange"dir.
Kubernetes örneği
Bir uygulamada federasyon kimliği kimlik bilgilerini yapılandırmak ve Kubernetes hizmet hesabıyla güven ilişkisi oluşturmak için aşağıdaki yöntemi çalıştırın. Aşağıdaki parametreleri belirtin:
subject, hizmet hesabına verilen belirteçlerdeki konu adıdır. Kubernetes, konu adları için aşağıdaki biçimi kullanır: system:serviceaccount:<SERVICE_ACCOUNT_NAMESPACE>:<SERVICE_ACCOUNT_NAME>.
name, federasyon kimlik bilgilerinin adıdır ve daha sonra değiştirilemez.
audiences, dış belirteçte görüntülenebilen hedef kitleleri listeler. Bu alan zorunludur. Önerilen değer "api://AzureADTokenExchange"dir.
Azure CLI
az rest --method POST --uri'https://graph.microsoft.com/applications/00001111-aaaa-2222-bbbb-3333cccc4444/federatedIdentityCredentials'--body'{"name":"Kubernetes-federated-credential","issuer":"https://aksoicwesteurope.blob.core.windows.net/aaaabbbb-0000-cccc-1111-dddd2222eeee/","subject":"system:serviceaccount:erp8asle:pod-identity-sa","description":"Kubernetes service account federated credential","audiences":["api://AzureADTokenExchange"]}'
Bir uygulamada federasyon kimliği kimlik bilgilerini yapılandırmak ve dış kimlik sağlayıcısıyla güven ilişkisi oluşturmak için aşağıdaki yöntemi çalıştırın. Aşağıdaki parametreleri belirtin (örnek olarak Google Cloud'da çalışan bir yazılım iş yükü kullanarak):
adı, federasyon kimlik bilgilerinin adıdır ve daha sonra değiştirilemez.
ObjectID: Daha önce Microsoft Entra ID'ye kaydettiğiniz uygulamanın nesne kimliği (uygulama (istemci) kimliği değil).
konu: dış kimlik sağlayıcısı tarafından verilen belirteçteki sub talebiyle eşleşmelidir. Google Cloud'un kullanıldığı bu örnekte, özne kullanmayı planladığınız hizmet hesabının Benzersiz Kimliğidir.
veren: dış kimlik sağlayıcısı tarafından verilen belirteçteki iss talebiyle eşleşmelidir. OIDC Bulma spesifikasyonuyla uyumlu bir URL. Microsoft Entra ID, belirteci doğrulamak için gerekli anahtarları almak için bu yayımcı URL'sini kullanır. Google Cloud için kimliği veren "https://accounts.google.com"".
hedef kitleleri dış belirteçte gösterilebilen hedef kitleleri listeler. Bu alan zorunludur. Önerilen değer "api://AzureADTokenExchange"dir.
Azure CLI
az rest --method POST --uri'https://graph.microsoft.com/applications/<ObjectID>/federatedIdentityCredentials'--body'{"name":"GcpFederation","issuer":"https://accounts.google.com","subject":"112633961854638529490","description":"Testing","audiences":["api://AzureADTokenExchange"]}'
Bir uygulama için federe kimlik bilgisi almak üzere aşağıdaki yöntemi çalıştırın (uygulamanın nesne kimliği tarafından belirtilir):
Azure CLI
az rest -m GET -u'https://graph.microsoft.com/applications/00001111-aaaa-2222-bbbb-3333cccc4444//federatedIdentityCredentials/00aa00aa-bb11-cc22-dd33-44ee44ee44ee'
Bir uygulamadan federatif kimlik bilgilerini silme
Bir uygulamadan (uygulamanın nesne kimliği tarafından belirtilen) bir federasyon kimlik bilgisi silmek için aşağıdaki yöntemi çalıştırın.
Azure CLI
az rest -m DELETE -u'https://graph.microsoft.com/applications/00001111-aaaa-2222-bbbb-3333cccc4444/federatedIdentityCredentials/00aa00aa-bb11-cc22-dd33-44ee44ee44ee'
Ayrıca bkz.
Kubernetes için iş yükü kimlik federasyonu kullanmayı öğrenmek için bkz. Kubernetes açık kaynak projesi için Microsoft Entra İş Yükü Kimliği.
Microsoft kimlik sağlayıcısından erişim belirteci almak ve Azure kaynaklarına erişmek için GitHub Actions iş akışınızı yapılandırma hakkında daha fazla bilgi edinmek için github actions belgelerini okuyun.
Dağıtım iş akışlarınızın Azure'da güvenli bir şekilde kimlik doğrulaması yapmasını sağlayan iş yükü kimlikleri oluşturmayı, yönetmeyi ve izinleri nasıl vereceğinizi öğrenin.