Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
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.
Önemli noktalar ve kısıtlamalar
Federasyon kimliği kimlik bilgilerini oluşturmak, güncelleştirmek veya silmek için, eylemi gerçekleştiren hesabın uygulamanın sahibi olması veya şu Entra rollerinden birine sahip olması gerekir: Uygulama Yöneticisi, Bulut Uygulama Yöneticisi, Genel Yöneticiveya karma kimlik yöneticisi . Federasyon kimliği kimlik bilgilerini güncelleştirmek için microsoft.directory/applications/credentials/update izni gerekir.
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
vesubject
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ğlananissuer
vesubject
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.
Önkoşullar
- Microsoft Entra ID'de uygulama kaydı oluşturun veya yönetilen kimlik 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. 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 İşlemleri
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 veKimlik bilgisi ekle 'yi seçin.Federasyon kimlik bilgileri senaryosu açılan kutusundaAzure kaynaklarını dağıtan GitHub eylemleriniseçin. GitHub Actions iş akışınız için Kuruluş ve Deposu belirtin.
Varlık türü için Ortam ,Dal ,Çekme isteği veyaEtiket 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_ID
Uygulama (istemci) kimliğiAZURE_TENANT_ID
Dizin (kiracı) kimliğiAş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:
on:
push:
branches: [ main ]
pull_request:
branches: [ main ]
Varlık türü olarak Dal ve GitHub dal adı olarak "main" belirtin.
Ortam örneği
"production" adlı bir ortama bağlı işler için:
on:
push:
branches:
- main
jobs:
deployment:
runs-on: ubuntu-latest
environment: production
steps:
- name: deploy
# ...deployment-specific steps
Etiket örneği
Örneğin, "v2" etiketi adı verilen bir etikete yapılan gönderimle tetiklenen bir iş akışı için:
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
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.
- Küme verici URL'si, yönetilen küme için OIDC verici URL'si veya öz yönetimli bir küme için OIDC verici URL'si.
- 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
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.
Esnek Federatif Kimlik Bilgisi oluşturma (önizleme)
- Microsoft Entra Id'ye gidin ve federasyon kimliği kimlik bilgilerini yapılandırmak istediğiniz uygulamayı seçin.
- Sol gezinti bölmesinde Sertifikalar & gizli anahtarlarseçin.
- Birleşik Kimlik Bilgileri sekmesinde + Kimlik Bilgisi Ekleseçeneğini seçin.
- Görüntülenen
Kimlik bilgisi ekle penceresinde,Federasyon kimlik bilgisi senaryosunun yanındaki açılır menüden Diğer veren seçeneğini seçin. - Değer kullanmak istediğiniz talep eşleştirme ifadesini girin.
Önkoşullar
- Henüz bir Azure hesabınız yoksa devam etmeden önce ücretsiz bir hesap oluşturmak için kaydolun.
Azure Cloud Shellbash ortamını kullanın. Daha fazla bilgi için bkz. Azure Cloud Shell'i kullanmaya başlama.
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 bkz. Azure CLI kullanarak Azure'da kimlik doğrulaması.
İstendiğinde, ilk kullanımda Azure CLI uzantısını yükleyin. Uzantılar hakkında daha fazla bilgi için bkz. Azure CLI ile uzantıları kullanma ve yönetme.
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ış 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
Uygulamanızda yeni bir federasyon kimlik bilgisi oluşturmak için az ad app federated-credential create komutunu çalıştırın.
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
veyarepo: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
.
az ad app federated-credential create --id 00001111-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"
]
}
Kubernetes örneği
düzenleyici, hizmet hesabı düzenleyici URL'nizdir (yönetilen küme için OIDC düzenleyici URL'si veya kendi kendine yönetilen küme için OIDC düzenleyici URL'si).
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>
.
hedef kitleleri dış belirteçte gösterilebilen hedef kitleleri listeler. Bu alan zorunludur. Önerilen değer api://AzureADTokenExchange
.
az ad app federated-credential create --id 00001111-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 bulunansub
talebiyle uyumlu olmalıdır. Bu örnekte Google Cloud kullanılırken, konu kullanmayı planladığınız hizmet hesabının Benzersiz Kimliğidir. -
issuer
: dış kimlik sağlayıcısı tarafından verilen belirteçte bulunaniss
talebiyle uyumlu olmalıdır. 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. -
audiences
: dış belirteçte görüntülenebilen hedef kitleleri listeler. Bu alan zorunludur. Önerilen değer "api://AzureADTokenExchange"dir.
az ad app federated-credential create --id 00001111-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"
]
}
Bir uygulamada federe kimlik bilgilerini listele
Uygulamanızdaki federasyon kimlik bilgilerini listelemek için az ad app federated-credential list komutunu çalıştırın.
id
parametresi, uygulamanın tanımlayıcı URI'sini, uygulama kimliğini veya nesne kimliğini belirtir.
az ad app federated-credential list --id 00001111-aaaa-2222-bbbb-3333cccc4444
Bir uygulamada federasyon kimlik bilgisi edinme
Uygulamanızda bir federasyon kimlik bilgisi almak için az ad app federated-credential show komutunu çalıştırın.
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.
az ad app federated-credential show --id 00001111-aaaa-2222-bbbb-3333cccc4444 --federated-credential-id c79f8feb-a9db-4090-85f9-90d820caa0eb
Bir uygulamadan federatif kimlik bilgilerini silme
az ad app federated-credential delete komutunu çalıştırarak uygulamanızdan bir federasyon kimlik bilgisi kaldırın.
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.
az ad app federated-credential delete --id 00001111-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'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.
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. Azure'da oturum açın.
Connect-AzAccount
PowerShellGet
en son sürümünü yükleyin. Install-Module -Name PowerShellGet -AllowPrerelease
Sonraki adım için bu komutu çalıştırdıktan sonra geçerli PowerShell oturumundan çıkmanız
Exit
gerekebilir.Bu makaledeki federasyon kimliği kimlik bilgileri işlemlerini gerçekleştirmek için
Az.Resources
modülünün yayın öncesi sürümünü yükleyin.Install-Module -Name Az.Resources -AllowPrerelease
Bir uygulamada federe kimlik doğrulama bilgisini yapılandırma
Yeni bir federasyon kimlik bilgisi oluşturmak için New-AzADAppFederatedCredential cmdlet'ini bir uygulamada çalıştırın.
GitHub Actions örneği
- 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ışı, 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.
- 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
veyarepo: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
.
- Bir ortama bağlı işler için:
- 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
.
New-AzADAppFederatedCredential -ApplicationObjectId $appObjectId -Audience api://AzureADTokenExchange -Issuer 'https://token.actions.githubusercontent.com/' -Name 'GitHub-Actions-Test' -Subject 'repo:octo-org/octo-repo:environment:Production'
Kubernetes örneği
- ApplicationObjectId: Daha önce Microsoft Entra ID'ye kaydettiğiniz uygulamanın nesne kimliği (uygulama (istemci) kimliği değil).
- Issuer, sizin hizmet hesabı veren URL'nizdir (yönetilen küme için OIDC veren URL'si veya öz-yönetimli küme için OIDC veren URL'si).
-
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.
New-AzADAppFederatedCredential -ApplicationObjectId $appObjectId -Audience api://AzureADTokenExchange -Issuer 'https://aksoicwesteurope.blob.core.windows.net/aaaabbbb-0000-cccc-1111-dddd2222eeee/' -Name 'Kubernetes-federated-credential' -Subject 'system:serviceaccount:erp8asle:pod-identity-sa'
Diğer kimlik sağlayıcıları örneği
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. 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. -
İ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.
New-AzADAppFederatedCredential -ApplicationObjectId $appObjectId -Audience api://AzureADTokenExchange -Issuer 'https://accounts.google.com' -Name 'GcpFederation' -Subject '112633961854638529490'
Bir uygulamada federe kimlik bilgilerini listele
Bir uygulamanın federasyon kimlik bilgilerini listelemek için Get-AzADAppFederatedCredential cmdlet'ini
Get-AzADApplication -ObjectId $app | Get-AzADAppFederatedCredential
Bir uygulamada federasyon kimlik bilgisi edinme
Bir uygulamadan kimlik numarasına göre federe kimlik kimlik bilgilerini almak amacıyla Get-AzADAppFederatedCredential cmdlet'ini çalıştırın.
Get-AzADAppFederatedCredential -ApplicationObjectId $appObjectId -FederatedCredentialId $credentialId
Bir uygulamadan federatif kimlik bilgilerini silme
Bir uygulamadan federasyon kimliği kimlik bilgilerini silmek için Remove-AzADAppFederatedCredential cmdlet'ini
Remove-AzADAppFederatedCredential -ApplicationObjectId $appObjectId -FederatedCredentialId $credentialId
Önkoşullar
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'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.
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
Bir uygulamada federe kimlik doğrulama bilgisini yapılandırma
GitHub İşlemleri
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ışı, 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.
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"]}'
Ve yanıtı alırsınız:
{
"@odata.context": "https://graph.microsoft.com/$metadata#applications('00001111-aaaa-2222-bbbb-3333cccc4444')/federatedIdentityCredentials/$entity",
"audiences": [
"api://AzureADTokenExchange"
],
"description": "Testing",
"id": "00aa00aa-bb11-cc22-dd33-44ee44ee44ee",
"issuer": "https://token.actions.githubusercontent.com",
"name": "Testing",
"subject": "repo:octo-org/octo-repo:environment:Production"
}
Kod parçacığında parametreler aşağıdaki gibidir:
-
name
: Azure uygulamanızın adı. -
issuer
: GitHub OIDC sağlayıcısının yolu:https://token.actions.githubusercontent.com
. Bu düzenleyici, Azure uygulamanız tarafından güvenilir olarak kabul edilir. -
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
veyarepo: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
.
- Bir ortama bağlı işler için:
-
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:
-
issuer
, hizmet hesabı sağlayıcı URL'nizdir (yönetilen küme için OIDC sağlayıcı URL veya kendi kendine yönetilen küme için OIDC sağlayıcı URL'si). -
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.
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"]}'
Ve yanıtı alırsınız:
{
"@odata.context": "https://graph.microsoft.com/$metadata#applications('00001111-aaaa-2222-bbbb-3333cccc4444')/federatedIdentityCredentials/$entity",
"audiences": [
"api://AzureADTokenExchange"
],
"description": "Kubernetes service account federated credential",
"id": "51ecf9c3-35fc-4519-a28a-8c27c6178bca",
"issuer": "https://aksoicwesteurope.blob.core.windows.net/aaaabbbb-0000-cccc-1111-dddd2222eeee/",
"name": "Kubernetes-federated-credential",
"subject": "system:serviceaccount:erp8asle:pod-identity-sa"
}
Diğer kimlik sağlayıcıları örneği
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. 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 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.
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"]}'
Ve yanıtı alırsınız:
{
"@odata.context": "https://graph.microsoft.com/$metadata#applications('00001111-aaaa-2222-bbbb-3333cccc4444')/federatedIdentityCredentials/$entity",
"audiences": [
"api://AzureADTokenExchange"
],
"description": "Testing",
"id": "51ecf9c3-35fc-4519-a28a-8c27c6178bca",
"issuer": "https://accounts.google.com"",
"name": "GcpFederation",
"subject": "112633961854638529490"
}
Bir uygulamada federe kimlik bilgilerini listele
Bir uygulamanın federasyon kimlik bilgilerini listelemek
az rest -m GET -u 'https://graph.microsoft.com/applications/00001111-aaaa-2222-bbbb-3333cccc4444/federatedIdentityCredentials'
Aşağıdakine benzer bir yanıt alırsınız:
{
"@odata.context": "https://graph.microsoft.com/$metadata#applications('00001111-aaaa-2222-bbbb-3333cccc4444')/federatedIdentityCredentials",
"value": [
{
"audiences": [
"api://AzureADTokenExchange"
],
"description": "Testing",
"id": "00aa00aa-bb11-cc22-dd33-44ee44ee44ee",
"issuer": "https://token.actions.githubusercontent.com/",
"name": "Testing",
"subject": "repo:octo-org/octo-repo:environment:Production"
}
]
}
Bir uygulamada federasyon kimlik bilgisi edinme
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):
az rest -m GET -u 'https://graph.microsoft.com/applications/00001111-aaaa-2222-bbbb-3333cccc4444//federatedIdentityCredentials/00aa00aa-bb11-cc22-dd33-44ee44ee44ee'
Aşağıdakine benzer bir yanıt alırsınız:
{
"@odata.context": "https://graph.microsoft.com/$metadata#applications('00001111-aaaa-2222-bbbb-3333cccc4444')/federatedIdentityCredentials",
"value": {
"@odata.context": "https://graph.microsoft.com/$metadata#applications('00001111-aaaa-2222-bbbb-3333cccc4444')/federatedIdentityCredentials/$entity",
"@odata.id": "https://graph.microsoft.com/v2/3d1e2be9-a10a-4a0c-8380-7ce190f98ed9/directoryObjects/$/Microsoft.DirectoryServices.Application('00001111-aaaa-2222-bbbb-3333cccc4444')/federatedIdentityCredentials('00001111-aaaa-2222-bbbb-3333cccc4444')/00001111-aaaa-2222-bbbb-3333cccc4444",
"audiences": [
"api://AzureADTokenExchange"
],
"description": "Testing",
"id": "00aa00aa-bb11-cc22-dd33-44ee44ee44ee",
"issuer": "https://token.actions.githubusercontent.com/",
"name": "Testing",
"subject": "repo:octo-org/octo-repo:environment:Production"
}
}
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
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.
- GitHub Actions için iş yükü kimliği federasyonu kullanmayı öğrenmek için bkz. Erişim belirteci almak için GitHub Actions iş akışını yapılandırma.
- 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. - Daha fazla bilgi için Microsoft Entra ID'nin OAuth 2.0 istemci kimlik bilgileri verme ile başka bir IdP tarafından verilen bir istemci onayı ve belirteç almak için nasıl kullandığını okuyun.
- Dış kimlik sağlayıcıları tarafından oluşturulan gereken JWT formatı hakkında bilgi için onay formatı hakkında bilgi edinin.