Bir uygulamayı dış kimlik sağlayıcısına güvenecek şekilde yapılandırma

Bir seçenek belirtin

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 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.

Ö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 Actions

GitHub eylemleri için federasyon kimliği eklemek için şu adımları izleyin:

  1. 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.

  2. Federasyon kimlik bilgileri senaryosu açılan kutusundaAzure kaynaklarını dağıtan GitHub eylemlerini seçin.

  3. GitHub Actions iş akışınız için Kuruluş ve Deposu belirtin.

  4. 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.

  5. Federe kimlik bilgisi için bir isim ekleyin.

  6. Veren, hedef kitlelerve Konu tanımlayıcısı alanları girdiğiniz değerlere göre otomatik olarak doldurulur.

  7. Federasyon kimlik bilgilerini yapılandırmak için ekle'yi seçin.

    Örnek değerleri gösteren Kimlik bilgisi ekle penceresinin ekran görüntüsü.

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ği

  • AZURE_TENANT_ID Dizin (kiracı) kimliği

    Aşağıdaki ekran görüntüsünde uygulama kimliğinin ve kiracı kimliğinin nasıl kopyalanması gösterilmektedir.

    Microsoft Entra yönetim merkezinden uygulama kimliğinin ve kiracı kimliğinin nasıl kopyalandığını gösteren ekran görüntüsü.

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.

Ortam örneği

"production" adlı bir ortama bağlı işler için:

yml
on:
  push:
    branches:
      - main

jobs:
  deployment:
    runs-on: ubuntu-latest
    environment: production
    steps:
      - name: deploy
        # ...deployment-specific steps

Ortam Varlı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.

  • 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 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.

Esnek Federatif Kimlik Bilgisi oluşturma (önizleme)

  1. Microsoft Entra Id'ye gidin ve federasyon kimliği kimlik bilgilerini yapılandırmak istediğiniz uygulamayı seçin.
  2. Sol gezinti bölmesinde Sertifikalar & gizli anahtarlarseçin.
  3. Birleşik Kimlik Bilgileri sekmesinde + Kimlik Bilgisi Ekleseçeneğini seçin.
  4. Görüntülenen Kimlik bilgisi ekle penceresinde,Federasyon kimlik bilgisi senaryosunun yanındaki açılır menüden Diğer veren seçeneğiniseçin.
  5. 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'de Bash için Hızlı Başlangıç.

  • 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

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 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 --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>.

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 --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 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 --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.

Azure CLI
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.

Azure CLI
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.

Azure CLI
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 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:

  1. Henüz yüklemediyseniz Azure PowerShell'nin en son sürümünü yükleyin.

  2. Azure'da oturum açın.

    Azure PowerShell
    Connect-AzAccount
    
  3. PowerShellGeten son sürümünü yükleyin.

    Azure PowerShell
    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.

  4. 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.

    Azure PowerShell
    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ışı, 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.
Azure PowerShell
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.
Azure PowerShell
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. 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.
Azure PowerShell
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 çalıştırın.

Azure PowerShell
Get-AzADApplication -ObjectId $app | Get-AzADAppFederatedCredential

Bir uygulamada federe kimlik yetkilendirmesi alma

Bir uygulamadan kimlik numarasına göre federe kimlik kimlik bilgilerini almak amacıyla Get-AzADAppFederatedCredential cmdlet'ini çalıştırın.

Azure PowerShell
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 çalıştırın.

Azure PowerShell
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 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"]}'

Ve yanıtı alırsınız:

Azure CLI
{
  "@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. 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:

  • 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.
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"]}'

Ve yanıtı alırsınız:

Azure CLI
{
  "@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. 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"]}'

Ve yanıtı alırsınız:

Azure CLI
{
  "@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 için 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'

Aşağıdakine benzer bir yanıt alırsınız:

Azure CLI
{
  "@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 federe kimlik bilgisi edinin

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'

Aşağıdakine benzer bir yanıt alırsınız:

Azure CLI
{
  "@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 ç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.