Microsoft ile sertifikasız kimlik doğrulamayı yapılandırın. Identity.Web

Bu makalede, uygulamanızın sertifikaları veya istemci gizli dizilerini yönetmeden Microsoft Entra ID kimlik doğrulaması için sertifikasız kimlik doğrulamasını nasıl yapılandırabileceğiniz gösterilmektedir. Uygulamanız, kimlik bilgisi döngüsünü ortadan kaldıran, gizli anahtar dağılmasını azaltan ve Azure dağıtımlarını basitleştiren belirteçleri almak için Azure Yönetilen Kimlik ile desteklenen bir Federasyon Kimliği Kimlik Bilgisi (FIC) kullanır.

Microsoft. Identity.Web, 2.12.0 ve sonraki sürümlerde kullanılabilen SignedAssertionFromManagedIdentity kimlik bilgisi kaynak türü aracılığıyla sertifikasız kimlik doğrulamasını destekler.


Sertifikasız kimlik doğrulamayı anlama

Bu bölümde, sertifikasız kimlik doğrulamasının nasıl çalıştığı ve ne zaman kullanılacağı açıklanmaktadır.

Geleneksel olarak, gizli istemci uygulamaları bir istemci gizli anahtarı veya sertifika sunarak Microsoft Entra ID kimliklerini kanıtlar. Her iki yaklaşım da kimlik bilgisi yaşam döngüsünü yönetmenizi gerektirir; gizli dizilerin süresi dolmadan önce döndürülmesini, sertifikaların yenilenmesini ve güvenli bir şekilde depolanmasını sağlar.

Birleştirilmiş Kimlik Bilgileri (FIC) bu modeli değiştirir. FIC ile uygulama kaydınızla Yönetilen Kimlik arasında bir güven ilişkisi yapılandırabilirsiniz. Uygulamanızın kimlik doğrulaması gerektiğinde:

  1. Microsoft. Identity.Web, Azure konağındaki Yönetilen Kimlik uç noktasından bir belirteç istemektedir.
  2. Kitaplık, Microsoft Entra ID ile kimlik doğrulaması yapmak için yönetilen kimlik belirtecini imzalı onay olarak kullanır.
  3. Microsoft Entra ID, uygulama kaydındaki federasyon kimlik bilgisi yapılandırmasına karşı imzalı onaylamayı doğrular.
  4. Microsoft Entra ID istenen kaynak için bir erişim belirteci gönderir.

Sonuç, yapılandırma, kod veya ortam değişkenlerinizde gizli dizilerin veya sertifikaların bulunmadığı tam kimlik bilgisi içermeyen bir dağıtımdır.

Doğru kimlik doğrulama yaklaşımını seçin

Aşağıdaki tablo, sertifikasız kimlik doğrulamasının ne zaman doğru seçim olduğuna karar vermenize yardımcı olur.

Scenario Önerilen yaklaşım
Uygulama Azure üzerinde çalışır ve sıfır kimlik bilgisi yönetimi istiyorsunuz FIC ile sertifikasız
Uygulama Azure üzerinde çalışır ancak şirket içi geri dönüşü desteklemesi gerekir Birincil olarak FiC ile sertifika tabanlı kimlik bilgileri
Uygulama Azure dışında çalışır (şirket içi, diğer bulutlar) Sertifikalar veya istemci sırları
Yerel makinelerde geliştirme ve test etme Yerel depodan istemci gizli anahtarları veya sertifika

Önkoşullar

Başlamadan önce aşağıdaki kaynaklara ve araçlara sahip olduğunuzu doğrulayın:

  • Azure aboneliği. Hesabınız yoksa ücretsiz bir hesap oluşturun.
  • Senaryonuz için gerekli API izinlerine sahip Microsoft Entra ID uygulama kaydı.
  • Azure'da Managed Identity (işlem kaynağınızda sistem tarafından atanan veya tek başına kullanıcı tarafından atanan Yönetilen Kimlik).
  • Microsoft. Identity.Web sürüm 2.12.0 veya üzeri projenizde yüklü.
  • Azure App Service, Azure Kubernetes Service (AKS), Azure Container Apps veya Azure Sanal Makineler gibi Yönetilen Kimliği destekleyen bir Azure işlem kaynağı.

1. Adım: Yönetilen Kimlik oluşturma veya tanımlama

Sistem tarafından atanan veya kullanıcı tarafından atanan yönetilen kimliği kullanabilirsiniz. Henüz oluşturmadıysanız senaryonuzun yönergelerini izleyin.

A Seçeneği: Sistem tarafından atanan Yönetilen Kimlik kullanma

Sistem tarafından atanan Yönetilen Kimlikler, bir Azure kaynağının yaşam döngüsüne bağlıdır. App Service gibi bir kaynakta sistem tarafından atanan bir kimliği etkinleştirdiğinizde Azure otomatik olarak bir kimlik oluşturur.

  1. Azure portalında işlem kaynağınıza (örneğin App Service'inize) gidin.
  2. Sol gezinti menüsünden Kimlik'i seçin.
  3. Sistem tarafından atanan sekmesinde, Durum'u Açık olarak ayarlayın.
  4. Kaydet'i seçin ve eylemi onaylayın.
  5. Kimlik oluşturulduktan sonra Nesne (sorumlu) kimliğini kopyalayın. Federasyon kimlik bilgilerini yapılandırırken bu değere ihtiyacınız vardır.

B Seçeneği: Kullanıcı tarafından atanan Yönetilen Kimlik oluşturma

Kullanıcı tarafından atanan Yönetilen Kimlikler, bir veya daha fazla işlem kaynağına atayabileceğiniz tek başına Azure kaynaklardır.

  1. Azure portalındaYönetilen Kimlikler için arama yapın ve seçin.
  2. Oluştur'i seçin.
  3. Aboneliğinizi, Kaynak grubunuzu, Bölgenizi seçin ve kimlik için bir Ad girin.
  4. Gözden geçir ve oluştur'u ve ardından Oluştur'u seçin.
  5. Dağıtım tamamlandıktan sonra yeni Yönetilen Kimlik kaynağını açın.
  6. Genel Bakış sayfasından İstemci Kimliğini kopyalayın. Uygulama yapılandırmanız için bu değere ihtiyacınız vardır.

2. Adım: Azure portalında Federasyon Kimliği kimlik bilgilerini yapılandırma

Federasyon Kimliği Kimlik Bilgileri, uygulama kaydınızla Yönetilen Kimlik arasında bir güven ilişkisi kurar. Oluşturmak için şu adımları izleyin:

  1. Azure portalındaMicrosoft Entra ID>Uygulama kayıtları gidin.

  2. Uygulamanızın kullandığı uygulama kaydını seçin.

  3. Sol gezinti menüsünde Sertifikalar ve gizli anahtarlar'ı seçin.

  4. Birleştirilmiş kimlik bilgileri sekmesini seçin.

  5. Kimlik bilgisi ekle'yi seçin.

  6. Federasyon kimlik bilgisi senaryosu altında Müşteri tarafından yönetilen anahtarlar'ı veya Diğer veren'i seçin (kullanılabilir seçenekler portal sürümünüze bağlıdır).

  7. Aşağıdaki alanları yapılandırın:

    Alan Değer
    İhraç Eden https://login.microsoftonline.com/{tenant-id}/v2.0{tenant-id} değerini Microsoft Entra kiracı kimliğiniz ile değiştirin.
    Konu tanımlayıcısı Yönetilen Kimliğin Nesne (sorumlu) Kimliği . Sistem tarafından atananlar için kaynağın Kimlik sayfasında bunu bulun. Kullanıcı tarafından atananlar için bunu Yönetilen Kimliğin Genel Bakış sayfasında Asıl Kimlik altında bulabilirsiniz.
    İsim Açıklayıcı bir ad, örneğin fic-managed-identity-prod.
    Seyirci api://AzureADTokenExchange (varsayılan değer).
  8. Add (Ekle) seçeneğini belirleyin.

Önemli

Konu tanımlayıcısı, Yönetilen Kimliğin Nesne (sorumlu) kimliğiyle tam olarak eşleşmelidir. Uyuşmazlık, kimlik doğrulamasının bir AADSTS70021 hatayla başarısız olmasına neden olur.

Azure CLI ile Federasyon Kimliği kimlik bilgilerini yapılandırma

Alternatif olarak, Azure CLI ile federasyon kimlik bilgilerini oluşturun. Aşağıdaki komut, uygulama kaydınızda bir kimlik bilgisi oluşturur:

az ad app federated-credential create \
    --id <app-object-id> \
    --parameters '{
        "name": "fic-managed-identity-prod",
        "issuer": "https://login.microsoftonline.com/<tenant-id>/v2.0",
        "subject": "<managed-identity-principal-id>",
        "audiences": ["api://AzureADTokenExchange"],
        "description": "FIC for production managed identity"
    }'

Azure hizmetlerine göre çıkış URL'leri

Federasyon kimlik bilgilerindeki veren URL'si, uygulamanızı barındıran Azure hizmetine bağlıdır:

Azure hizmeti Veren URL'si
Azure App Service / Azure İşlevleri https://login.microsoftonline.com/{tenant-id}/v2.0
Azure Konteyner Uygulamaları https://login.microsoftonline.com/{tenant-id}/v2.0
Azure Kubernetes Hizmeti (AKS) Kümenizin OIDC sağlayıcı URL'si (az aks show --query oidcIssuerProfile.issuerUrl ile alın)
Azure Sanal Makineler https://login.microsoftonline.com/{tenant-id}/v2.0

Konu tanımlayıcı biçimi

Konu tanımlayıcısının biçimi Yönetilen Kimlik türüne bağlıdır:

Sistem tarafından atanan Yönetilen Kimlik — Kaynağın Kimlik sayfasındaki Nesne (sorumlu) Kimliğini kullanın. Bu bir GUID değeridir, örneğin a1b2c3d4-e5f6-7890-abcd-ef1234567890.

Kullanıcı tarafından atanan Yönetilen Kimlik — Yönetilen Kimlik kaynağının Genel Bakış sayfasındaki Asıl Kimliği (Nesne Kimliği olarak da adlandırılır) kullanın. Bu aynı zamanda bir GUID değeridir.

Uyarı

İş yükü kimliğine sahip AKS için konu tanımlayıcısı farklı bir biçim kullanır: system:serviceaccount:{namespace}:{service-account-name}. Bu değer, podunuzun kullandığı Kubernetes hizmet hesabıyla eşleşmelidir.


3. Adım: Uygulamanızı yapılandırma

appsettings.json dosyasını güncelle

Yapılandırmanıza ClientCredentials bölümünü ekleyin. değerini SourceType olarak SignedAssertionFromManagedIdentityayarlayın:

Kullanıcı tarafından atanan Yönetilen Kimlik için

{
  "AzureAd": {
    "Instance": "https://login.microsoftonline.com/",
    "TenantId": "YOUR_TENANT_ID",
    "ClientId": "YOUR_CLIENT_ID",
    "ClientCredentials": [
      {
        "SourceType": "SignedAssertionFromManagedIdentity",
        "ManagedIdentityClientId": "USER_ASSIGNED_MSI_CLIENT_ID"
      }
    ]
  }
}

Aşağıdaki yer tutucuları değiştirin:

Yer tutucu Açıklama
YOUR_TENANT_ID Microsoft Entra tenant kimliğiniz.
YOUR_CLIENT_ID Uygulama kaydınızın Uygulama (istemci) kimliği.
USER_ASSIGNED_MSI_CLIENT_ID Kullanıcı tarafından atanan Yönetilen Kimliğin İstemci Kimliği (kimliğin Genel Bakış sayfasından).

Sistem tarafından atanan Yönetilen Kimlik için

Sistem tarafından atanan bir Yönetilen Kimlik kullandığınızda, ManagedIdentityClientId özelliğini çıkartın. Microsoft. Identity.Web otomatik olarak konağın sistem tarafından atanan kimliğini kullanır:

{
  "AzureAd": {
    "Instance": "https://login.microsoftonline.com/",
    "TenantId": "YOUR_TENANT_ID",
    "ClientId": "YOUR_CLIENT_ID",
    "ClientCredentials": [
      {
        "SourceType": "SignedAssertionFromManagedIdentity"
      }
    ]
  }
}

hizmetleri Program.cs'a kaydetme

Başlangıç yapılandırmanızda özel kod değişikliği gerekmez. Standart Microsoft. Identity.Web kayıt yöntemleri ClientCredentials bölümünü otomatik olarak okur.

Aşağıdaki örnek, kullanıcılarda oturum açıp aşağı akış API'lerini çağıran bir web uygulaması için kimlik doğrulamasını kaydeder:

// For a web app that signs in users and calls downstream APIs
builder.Services.AddAuthentication(OpenIdConnectDefaults.AuthenticationScheme)
    .AddMicrosoftIdentityWebApp(builder.Configuration.GetSection("AzureAd"))
    .EnableTokenAcquisitionToCallDownstreamApi()
    .AddInMemoryTokenCaches();

Aşağıdaki örnek, aşağı akış API'lerini çağıran bir web API'sinin kimlik doğrulamasını kaydeder:

// For a web API that calls downstream APIs
builder.Services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme)
    .AddMicrosoftIdentityWebApi(builder.Configuration.GetSection("AzureAd"))
    .EnableTokenAcquisitionToCallDownstreamApi()
    .AddInMemoryTokenCaches();

Aşağıdaki örnek, kullanıcı etkileşimi olmadan bir daemon uygulaması için kimlik doğrulamasını kaydeder:

// For a daemon application (no user interaction)
builder.Services.AddAuthentication()
    .AddMicrosoftIdentityWebApi(builder.Configuration.GetSection("AzureAd"));

builder.Services.AddTokenAcquisition()
    .AddInMemoryTokenCaches();

Microsoft. Identity.Web, SignedAssertionFromManagedIdentity kaynak türünü algılar ve belirteç değişimini saydam bir şekilde işler.


Sistem tarafından atanan ve kullanıcı tarafından atanan Yönetilen Kimliği karşılaştırma

Mimarinize en uygun Yönetilen Kimlik türünü seçin. Aşağıdaki bölümlerde dezavantajlar özetlenmiştir.

Sistem tarafından atanan Yönetilen Kimlik

Sistem tarafından atanan kimlik, ait olduğu Azure kaynakla otomatik olarak oluşturulur ve silinir.

Avantajlar:

  • Yönetecek ayrı kaynak yok; kimlik yaşam döngüsü işlem kaynağıyla eşleşir.
  • Tek kaynaklı dağıtımlar için daha basit kurulum.
  • Yapılandırmada ManagedIdentityClientId gerekli değildir.

Düşünceler:

  • Kimliği birden çok kaynak arasında paylaşamazsınız.
  • Kaynağı silip yeniden oluşturursanız kimlik değişir; Federasyon Kimliği Kimlik Bilgilerini güncelleştirmeniz gerekir.

En iyi kullanım alanı: Bir işlem kaynağının tek bir uygulama kaydıyla eşleştiği tekil dağıtımlar.

Kullanıcı Tarafından Atanan Yönetilen Kimlik

Kullanıcı tarafından atanan kimlik, kendi yaşam döngüsüne sahip tek başına bir Azure kaynağıdır.

Avantajlar:

  • Birden çok işlem kaynağında (örneğin, farklı bölgelerdeki birden çok App Service örneği) tek bir kimlik paylaşın.
  • Kimlik, işlem kaynağı yaşam döngüsünden bağımsız olarak kalır.
  • İşlem kaynağını dağıtmadan önce önceden oluşturun ve önceden yapılandırın.

Düşünceler:

  • Yönetecek ek bir Azure kaynağı.
  • Yapılandırmada ManagedIdentityClientId belirtmelisiniz.

En iyileri: Çok örnekli veya çok bölgeli dağıtımlar, mavi-yeşil dağıtım desenleri ve işlem kaynaklarının sık sık yeniden oluşturulması senaryoları.


Azure işlem hizmetlerine dağıtma

Uygulamanızı yapılandırdıktan sonra Yönetilen Kimliği destekleyen bir Azure işlem hizmetine dağıtın.

Azure App Service

  1. App Service'inizde Yönetilen Kimliği etkinleştirin (bkz . 1. Adım).

  2. Tercih ettiğiniz yöntemi (Visual Studio, Azure CLI GitHub Actions) kullanarak uygulamanızı App Service'e dağıtın.

  3. Dağıtılan yapılandırmanızdaki bölümün AzureAd3. Adım'daki ayarlarla eşleştiğinden emin olun.

  4. Kullanıcı tarafından atanan bir Yönetilen Kimlik kullanıyorsanız, bunu App Service'e atayın:

    az webapp identity assign \
      --resource-group <resource-group> \
      --name <app-service-name> \
      --identities <managed-identity-resource-id>
    
  5. Kimlik atamasını almak için App Service'i yeniden başlatın.

Azure Kubernetes hizmeti (AKS)

AKS için bir Kubernetes hizmet hesabını Yönetilen Kimlik ile ilişkilendirmek için iş yükü kimliğini kullanın. Aşağıdaki adımları tamamlayın:

  1. AKS kümenizde iş yükü kimliği özelliğini etkinleştirin:

    az aks update \
      --resource-group <resource-group> \
      --name <aks-cluster-name> \
      --enable-oidc-issuer \
      --enable-workload-identity
    
  2. Yönetilen Kimlik istemci kimliğiyle anot edilmiş bir Kubernetes hizmet hesabı oluşturun.

    apiVersion: v1
    kind: ServiceAccount
    metadata:
      name: my-app-sa
      namespace: default
      annotations:
        azure.workload.identity/client-id: "<USER_ASSIGNED_MSI_CLIENT_ID>"
    
  3. AKS OIDC vereni Yönetilen Kimliğe bağlayan bir federasyon kimlik bilgisi oluşturun.

  4. Podunuzu hizmet hesabını kullanacak şekilde yapılandırın:

    apiVersion: v1
    kind: Pod
    metadata:
      name: my-app
      namespace: default
      labels:
        azure.workload.identity/use: "true"
    spec:
      serviceAccountName: my-app-sa
      containers:
        - name: my-app
          image: <your-container-image>
    
  5. Podu dağıtın. İş yükü kimliği web kancası, Yönetilen Kimlik belirteci uç noktası için gerekli ortam değişkenlerini ekler.

Azure Konteyner Uygulamaları

  1. Kapsayıcı Uygulamanızı Yönetilen Kimlikle oluşturun veya güncelleştirin:

    az containerapp identity assign \
      --resource-group <resource-group> \
      --name <container-app-name> \
      --user-assigned <managed-identity-resource-id>
    
  2. Kapsayıcı görüntünüzü uygun AzureAd yapılandırmayla dağıtın.

  3. Yönetilen Kimlik belirteci uç noktası kapsayıcının içinde otomatik olarak kullanılabilir.


Sertifikalardan sertifikasız kimlik doğrulamasına geçiş

Uygulamanız şu anda sertifika tabanlı kimlik doğrulaması kullanıyorsa, en az yapılandırma değişikliğiyle sertifikasız kimlik doğrulamasına geçirebilirsiniz.

Geçiş adımlarını tamamlama

  1. Azure işlem kaynağınız için Yönetilen Kimlik oluşturma (bkz. Step 1).

  2. Uygulama kaydınıza bir Federasyon Kimliği Kimlik Bilgisi ekleyin (bkz. 2. Adım).

  3. Kimlik bilgilerini eklemek için yapılandırmanızı güncelleştirinSignedAssertionFromManagedIdentity. Geçiş sırasında mevcut sertifika kimlik bilgilerini geri dönüş olarak tutabilirsiniz:

    {
      "AzureAd": {
        "Instance": "https://login.microsoftonline.com/",
        "TenantId": "YOUR_TENANT_ID",
        "ClientId": "YOUR_CLIENT_ID",
        "ClientCredentials": [
          {
            "SourceType": "SignedAssertionFromManagedIdentity",
            "ManagedIdentityClientId": "USER_ASSIGNED_MSI_CLIENT_ID"
          },
          {
            "SourceType": "KeyVault",
            "KeyVaultUrl": "https://your-keyvault.vault.azure.net",
            "KeyVaultCertificateName": "your-cert-name"
          }
        ]
      }
    }
    

    Microsoft. Identity.Web, kimlik bilgisi kaynaklarını sırayla dener. Azure üzerinde çalışırken, ilk kimlik bilgisi (SignedAssertionFromManagedIdentity) başarılı olur. Başarısız olursa (örneğin, yerel geliştirme sırasında), kütüphane sertifikaya geri döner.

  4. Üretime uygulamadan önce hazırlama ortamında dağıtın ve doğrulayın.

  5. Sertifikasız kimlik doğrulamasının üretimde çalıştığını onayladıktan sonra sertifika kimlik bilgilerini yapılandırmadan kaldırın.

  6. Sertifikayı silin ve artık gerekli olmadığında Azure Key Vault'tan ve uygulama kaydından silin.

Yapılandırmadan önce ve sonra karşılaştırma

Aşağıdaki örneklerde, sertifika tabanlı yapılandırmadan sertifikasız kimlik doğrulamasına yapılan yapılandırma değişikliği gösterilmektedir.

Önce (sertifika tabanlı):

{
  "AzureAd": {
    "ClientCredentials": [
      {
        "SourceType": "KeyVault",
        "KeyVaultUrl": "https://your-keyvault.vault.azure.net",
        "KeyVaultCertificateName": "your-cert-name"
      }
    ]
  }
}

Sonra (sertifikasız):

{
  "AzureAd": {
    "ClientCredentials": [
      {
        "SourceType": "SignedAssertionFromManagedIdentity",
        "ManagedIdentityClientId": "USER_ASSIGNED_MSI_CLIENT_ID"
      }
    ]
  }
}

Sık karşılaşılan hataları giderme

Sertifikasız kimlik doğrulamasıyla ilgili sorunları tanılamak ve çözmek için aşağıdaki kılavuzu kullanın.

AADSTS70021: Eşleşen federasyon kimliği kaydı bulunamadı

Neden: Federasyon Kimliği Kimlik Bilgileri'ndeki konu tanımlayıcısı Yönetilen Kimliğin nesne (sorumlu) kimliğiyle eşleşmiyor.

Çözünürlük:

  1. Azure portalında Yönetilen Kimlik kaynağına gidin ve Overview sayfasından Principal ID (Nesne Kimliği olarak da adlandırılır) kopyalayın.
  2. Uygulama kaydı >Sertifikalar ve gizli anahtarlar>Federasyon kimlik bilgileri seçeneğine gidin.
  3. Konu tanımlayıcısı alanının asıl kimlikle tam olarak eşleştiğinden emin olun.
  4. Değerler eşleşmiyorsa, kimlik bilgilerini silin ve doğru konu tanımlayıcısıyla yeniden oluşturun.

AADSTS700024: İstemci onaylama işlemi geçerli zaman aralığı içinde değil

Neden: İmzalı onay olarak kullanılan Yönetilen Kimlik belirtecinin süresi doldu veya sistem saati kaymış.

Çözünürlük:

  • Azure kaynağınızdaki sistem saatinin doğru olduğunu doğrulayın.
  • Yeni bir Yönetilen Kimlik belirteci isteğini zorlamak için uygulamayı yeniden başlatın.
  • Bir kapsayıcıda çalıştırırsanız, kapsayıcının saatinin ana bilgisayar ile eşitlendiğinden emin olun.

ManagedIdentityException: Yönetilen Kimlik uç noktası kullanılamıyor

Cause: Uygulama Azure Örnek Meta Veri Hizmeti'ne (IMDS) veya Yönetilen Kimlik belirteci uç noktasına erişemez.

Çözünürlük:

  • Uygulamanın Yönetilen Kimliği destekleyen bir Azure işlem kaynağında çalıştığını onaylayın.
  • Yönetilen Kimliğin etkinleştirildiğini ve işlem kaynağına atandığını doğrulayın.
  • AKS için, iş yükü kimliği web kancasının çalışıp çalışmadığını ve pod'un doğru hizmet hesabıyla etiketlendiğini kontrol edin.
  • Yerel geliştirme için bu hata beklenir. Geri dönüş kimlik bilgisi kaynağı kullanın (bkz . Geçiş adımları).

AADSTS700016: Uygulama dizinde bulunamadı

Neden:ClientId Yapılandırmanızdaki değeri, belirtilen kiracıdaki geçerli bir uygulama kaydıyla eşleşmiyor.

Çözünürlük:

  • ClientId Uygulama kaydınızın Uygulama (istemci) kimliğiyle eşleştiğni doğrulayın.
  • TenantId Uygulamanın kayıtlı olduğu kiracıyla eşleştiğinden emin olun.

Hata ayıklama kaydını etkinleştir.

Neden: Kimlik bilgisi kaynak sırası veya yapılandırmayla ilgili bir uyuşmazlık, kitaplığın FIC kimlik bilgilerini atlamasına neden olabilir.

Çözünürlük:

  1. Microsoft.Identity.Web'de günlük kaydını etkinleştirerek ayrıntılı belirteç edinim adımlarını görün. Aşağıdaki kod, kimlik kitaplıkları için hata ayıklama düzeyinde günlüğe kaydetmeyi yapılandırmaktadır:

    builder.Services.AddLogging(logging =>
    {
        logging.AddConsole();
        logging.SetMinimumLevel(LogLevel.Debug);
        logging.AddFilter("Microsoft.Identity", LogLevel.Debug);
    });
    
  2. Kitaplığın hangi kimlik bilgisi kaynağını denediğini ve döndürülen hatalarla ilgili iletilerin günlüklerini gözden geçirin.

Kullanıcı tarafından atanan Yönetilen Kimlik alınmadı

Neden: Kullanıcı tarafından atanan birden çok Yönetilen Kimliğin bir işlem kaynağına atandığı durumlarda, hangisinin kullanılacağı ManagedIdentityClientId belirtilmezse kitaplık yanlış kimliği kullanabilir.

Çözünürlük:

  • Kullanıcı tarafından atanan bir Yönetilen Kimlik kullandığınızda, her zaman ManagedIdentityClientId özelliğini belirtin.
  • İstemci kimliğinin Federasyon Kimliği Kimlik Bilgileri'ni yapılandırdığınız kimlikle eşleştiğinden emin olun.

Güvenlik avantajlarını gözden geçirme

FIC ile sertifikasız kimlik doğrulaması, geleneksel kimlik bilgisi tabanlı yaklaşımlara göre önemli güvenlik avantajları sağlar:

Sızdıracak sır yok

Yapılandırma veya dağıtım yapıtlarınızda sertifika dosyaları, PFX parolaları veya istemci gizli dizileri olmadığından, saldırganın ayıkladığı hiçbir şey yoktur. Bir saldırgan yapılandırma dosyalarınıza okuma erişimi kazansa bile uygulamanızın kimliğine Azure dışından bürünemez.

Kimlik bilgisi yenileme yok

Yönetilen Kimlik belirteçleri kısa sürelidir ve Azure platformu tarafından otomatik olarak yenilenir. Dağıtımlar arasında döndürme zamanlamaları uygulamanız, son kullanma tarihlerini izlemeniz veya kimlik bilgisi güncelleştirmelerini koordine etmeniz gerekmez.

Azaltılmış saldırı yüzeyi

Yönetilen Kimlik belirteci uç noktasına yalnızca kimliğin atandığı belirli Azure kaynaktan erişilebilir. Saldırgan farklı bir konaktan, ağdan veya bulut ortamından kimlik doğrulama bilgilerini kullanamaz.

Uyumluluk basitleştirmesi

Uzun süreli kimlik bilgileri olmadan, çeşitli uyumluluk sorunlarının kategorilerini ortadan kaldırırsınız:

  • Kaynak denetiminde, ortam değişkenlerinde veya yapılandırma dosyalarında gizli bilgiler depolanmaz.
  • Denetlenecek, döndürülecek veya iptal edilebilen önemli malzeme yok.
  • Korunacak sertifika altyapısı (CA, yenileme işlemleri) yok.

Derinlemesine savunma stratejisi

Katmanlı koruma için sertifikasız kimlik doğrulamasını diğer Azure güvenlik özellikleriyle birleştirin:

  • Azure RBAC: Hangi kimliklerin hangi kaynaklara erişebileceğini denetleme.
  • Koşullu Erişim: Kimlik riskine, konuma ve cihaz durumuna göre ilkeler uygulayın.
  • Private uç noktaları: Azure kaynaklarına ağ erişimini kısıtlayın.
  • Microsoft Defender for Cloud: Şüpheli kimlik doğrulama desenlerini izleyin.