Microsoft kimlik platformu imzalama anahtarı geçişi

Bu makalede, güvenlik belirteçlerini imzalamak için Microsoft kimlik platformu tarafından kullanılan ortak anahtarlar hakkında bilmeniz gerekenler açıklanır. Bu anahtarların düzenli aralıklarla devredildiğini ve acil bir durumda hemen teslim edilebileceğini unutmayın. Microsoft kimlik platformu kullanan tüm uygulamaların anahtar geçişi işlemini program aracılığıyla işleyebilmesi gerekir. Anahtarların nasıl çalıştığını, geçişin uygulamanıza etkisini değerlendirmeyi ve gerekirse anahtar geçişini işlemek için uygulamanızı güncelleştirmeyi veya düzenli bir el ile geçiş işlemi oluşturmayı öğreneceksiniz.

Microsoft kimlik platformu imzalama anahtarlarına genel bakış

Microsoft kimlik platformu, kendisi ile onu kullanan uygulamalar arasında güven oluşturmak için sektör standartlarına dayalı olarak oluşturulmuş ortak anahtar şifrelemesini kullanır. Pratik olarak, bu şu şekilde çalışır: Microsoft kimlik platformu ortak ve özel anahtar çifti içeren bir imzalama anahtarı kullanır. Kullanıcı kimlik doğrulaması için Microsoft kimlik platformu kullanan bir uygulamada oturum açtığında, Microsoft kimlik platformu kullanıcı hakkında bilgi içeren bir güvenlik belirteci oluşturur. Bu belirteç, uygulamaya geri gönderilmeden önce özel anahtarı kullanılarak Microsoft kimlik platformu tarafından imzalanır. Belirtecin geçerli olduğunu ve Microsoft kimlik platformu kaynaklandığını doğrulamak için, uygulamanın kiracının OpenID Bağlan bulma belgesinde veya SAML/WS-Fed federasyon meta verilerinde yer alan Microsoft kimlik platformu tarafından kullanıma sunulan ortak anahtarları kullanarak belirtecin imzasını doğrulaması gerekir belgeyi seçin.

Güvenlik amacıyla, Microsoft kimlik platformu imzalama anahtarı düzenli aralıklarla alınır ve acil bir durumda hemen dağıtılabilir. Bu anahtar ruloları arasında ayarlanmış veya garantili bir süre yoktur. Microsoft kimlik platformu ile tümleşen tüm uygulamalar, ne sıklıkta gerçekleşebilirse gerçekleşsin anahtar geçişi olayını işlemeye hazır olmalıdır. Uygulamanız ani yenilemeleri işlemezse ve belirteçte imzayı doğrulamak için süresi dolmuş bir anahtar kullanmayı denerse, uygulamanız belirteci yanlış reddeder. Uygulamanızın önbelleğindeki anahtarlarla doğrulanmamış bir belirteçle karşılaşılırsa anahtar belgenin hemen yenilenmesi kısıtlanmış (en fazla beş dakikada bir) ile güncelleştirmeleri 24 saatte bir denetlemek en iyi yöntemdir.

OpenID Bağlan bulma belgesinde ve federasyon meta verileri belgesinde her zaman birden fazla geçerli anahtar bulunur. Uygulamanız belgede belirtilen anahtarların herhangi birini ve tümünü kullanmaya hazır olmalıdır, çünkü bir anahtar yakında alınabilir, başka bir anahtar onun yerine geçebilir vb. Mevcut anahtar sayısı, yeni platformları, yeni bulutları veya yeni kimlik doğrulama protokollerini desteklediğimiz için Microsoft kimlik platformu iç mimarisine göre zaman içinde değişebilir. Ne JSON yanıtında anahtarların sırası ne de kullanıma sunulma sırası uygulamanız için anlamlı kabul edilmemelidir.

Yalnızca tek bir imzalama anahtarını destekleyen veya imzalama anahtarlarında el ile güncelleştirme gerektiren uygulamalar doğal olarak daha az güvenli ve daha az güvenilirdir. Diğer en iyi yöntemlerle birlikte her zaman güncel imzalama anahtarları kullandıklarını güvence altına almak için standart kitaplıkları kullanacak şekilde güncelleştirilmeleri gerekir.

Uygulamanızın etkilenip etkilenmeyeceğini ve bu konuda ne yapılacağını değerlendirme

Uygulamanızın anahtar geçişi nasıl işlediği, uygulama türü veya hangi kimlik protokolü ve kitaplığının kullanıldığı gibi değişkenlere bağlıdır. Aşağıdaki bölümler, en yaygın uygulama türlerinin anahtar geçişinden etkilenip etkilenmediğini değerlendirir ve otomatik geçişi desteklemek veya anahtarı el ile güncelleştirmek için uygulamanın nasıl güncelleştirildiği konusunda rehberlik sağlar.

Bu kılavuz aşağıdakiler için geçerli değildir :

  • Microsoft Entra Uygulama Galerisi'nden (Özel dahil) eklenen uygulamalar, imzalama anahtarlarıyla ilgili ayrı yönergelere sahiptir. Daha fazla bilgi.
  • Uygulama ara sunucusu aracılığıyla yayımlanan şirket içi uygulamaların imzalama anahtarları konusunda endişelenmesi gerekmez.

Kaynaklara erişen yerel istemci uygulamaları

Yalnızca kaynaklara erişen uygulamalar (örneğin, Microsoft Graph, KeyVault, Outlook API ve diğer Microsoft API'leri) yalnızca bir belirteç alır ve bunu kaynak sahibine iletir. Hiçbir kaynağı korumadıkları göz önünde bulundurulduğunda, belirteci incelemez ve bu nedenle doğru imzalı olduğundan emin olmaları gerekmez.

İster masaüstü ister mobil olsun yerel istemci uygulamaları bu kategoriye girer ve bu nedenle geçişten etkilenmez.

Kaynaklara erişen web uygulamaları /API'ler

Yalnızca kaynaklara (Microsoft Graph, KeyVault, Outlook API ve diğer Microsoft API'leri gibi) erişen uygulamalar yalnızca bir belirteç alır ve bunu kaynak sahibine iletir. Hiçbir kaynağı korumadıkları göz önünde bulundurulduğunda, belirteci incelemez ve bu nedenle doğru imzalı olduğundan emin olmaları gerekmez.

Belirteç istemek için yalnızca uygulama akışını (istemci kimlik bilgileri / istemci sertifikası) kullanan web uygulamaları ve web API'leri bu kategoriye girer ve bu nedenle geçişten etkilenmez.

Kaynakları koruyan ve Azure Uygulaması Hizmetleri kullanılarak oluşturulan web uygulamaları/API'ler

Azure Uygulaması Hizmetleri'nin Kimlik Doğrulama / Yetkilendirme (EasyAuth) işlevselliği, anahtar geçişinin otomatik olarak işlenmesi için gerekli mantığa zaten sahiptir.

ASP.NET OWIN OpenID Bağlan, WS-Fed veya WindowsAzureActiveDirectoryBearerAuthentication ara yazılımını kullanarak kaynakları koruyan web uygulamaları/API'ler

Uygulamanız ASP.NET OWIN OpenID Bağlan, WS-Fed veya WindowsAzureActiveDirectoryBearerAuthentication ara yazılımını kullanıyorsa, anahtar geçişinin otomatik olarak işlenmesi için gerekli mantığa zaten sahiptir.

Uygulamanızın Startup.cs veya Startup.Auth.cs dosyalarında aşağıdaki kod parçacıklarından herhangi birini arayarak uygulamanızın bunlardan herhangi birini kullandığını onaylayabilirsiniz.

app.UseOpenIdConnectAuthentication(
    new OpenIdConnectAuthenticationOptions
    {
        // ...
    });
app.UseWsFederationAuthentication(
    new WsFederationAuthenticationOptions
    {
        // ...
    });
app.UseWindowsAzureActiveDirectoryBearerAuthentication(
    new WindowsAzureActiveDirectoryBearerAuthenticationOptions
    {
        // ...
    });

.NET Core OpenID Bağlan veya JwtBearerAuthentication ara yazılımını kullanarak kaynakları koruyan web uygulamaları/API'ler

Uygulamanız ASP.NET OWIN OpenID Bağlan veya JwtBearerAuthentication ara yazılımını kullanıyorsa, anahtar geçişinin otomatik olarak işlenmesi için gerekli mantığa zaten sahiptir.

Uygulamanızın Startup.cs veya Startup.Auth.cs aşağıdaki kod parçacıklarından herhangi birini arayarak uygulamanızın bunlardan herhangi birini kullandığını onaylayabilirsiniz

app.UseOpenIdConnectAuthentication(
     new OpenIdConnectAuthenticationOptions
     {
         // ...
     });
app.UseJwtBearerAuthentication(
    new JwtBearerAuthenticationOptions
    {
     // ...
     });

Node.js passport-azure-ad modülünü kullanarak kaynakları koruyan web uygulamaları/API'ler

Uygulamanız Node.js passport-ad modülünü kullanıyorsa anahtar geçişinin otomatik olarak işlenmesi için gerekli mantığa zaten sahiptir.

Uygulamanızın app.js aşağıdaki kod parçacığını arayarak passport-ad uygulamanızı onaylayabilirsiniz

var OIDCStrategy = require('passport-azure-ad').OIDCStrategy;

passport.use(new OIDCStrategy({
    //...
));

Kaynakları koruyan ve Visual Studio 2015 veya sonraki sürümlerle oluşturulan web uygulamaları /API'ler

Uygulamanız Visual Studio 2015 veya sonraki sürümlerinde bir web uygulaması şablonu kullanılarak oluşturulduysa ve Kimlik Doğrulamasını Değiştir menüsünden İş veya Okul Hesapları'nı seçtiyseniz, anahtar geçişinin otomatik olarak işlenmesi için gerekli mantığa zaten sahiptir. OWIN OpenID Bağlan ara yazılımına eklenmiş olan bu mantık, OpenID Bağlan bulma belgesinden anahtarları alır ve önbelleğe alır ve önbelleğe alır ve düzenli aralıklarla yeniler.

Çözümünüzde el ile kimlik doğrulaması eklediyseniz, uygulamanız gerekli anahtar geçişi mantığına sahip olmayabilir. Bunu kendiniz yazabilir veya diğer kitaplıkları kullanarak veya desteklenen protokollerden herhangi birini el ile uygulayarak Web uygulamaları/API'leri içindeki adımları izleyebilirsiniz.

Kaynakları koruyan ve Visual Studio 2013 ile oluşturulan web uygulamaları

Uygulamanız Visual Studio 2013'te bir web uygulaması şablonu kullanılarak oluşturulduysa ve Kimlik Doğrulamasını Değiştir menüsünden Kuruluş Hesapları'nı seçtiyseniz, anahtar geçişinin otomatik olarak işlenmesi için gerekli mantığa zaten sahiptir. Bu mantık, kuruluşunuzun benzersiz tanımlayıcısını ve imzalama anahtarı bilgilerini projeyle ilişkili iki veritabanı tablosuna depolar. Veritabanının bağlantı dizesi projenin Web.config dosyasında bulabilirsiniz.

Çözümünüzde el ile kimlik doğrulaması eklediyseniz, uygulamanız gerekli anahtar geçişi mantığına sahip olmayabilir. Bunu kendiniz yazmanız veya diğer kitaplıkları kullanarak veya desteklenen protokollerden herhangi birini el ile uygulayarak Web uygulamaları /API'ler içindeki adımları izlemeniz gerekir..

Aşağıdaki adımlar, mantığın uygulamanızda düzgün çalıştığını doğrulamanıza yardımcı olur.

  1. Visual Studio 2013'te çözümü açın ve ardından sağ penceredeki Sunucu Gezgini sekmesini seçin.
  2. Veri Bağlan ions, Default Bağlan ion ve ardından Tablolar'ı genişletin. IssuingAuthorityKeys tablosunu bulun, sağ tıklayın ve Tablo Verilerini Göster'i seçin.
  3. IssuingAuthorityKeys tablosunda, anahtarın parmak izi değerine karşılık gelen en az bir satır olacaktır. Tablodaki satırları silin.
  4. Kiracılar tablosuna sağ tıklayın ve tablo verilerini göster'i seçin.
  5. Kiracılar tablosunda, benzersiz bir dizin kiracı tanımlayıcısına karşılık gelen en az bir satır olacaktır. Tablodaki satırları silin. Hem Tenants tablosunda hem de IssuingAuthorityKeys tablosundaki satırları silmezseniz çalışma zamanında bir hata alırsınız.
  6. Uygulamayı derleyin ve çalıştırın. Hesabınızda oturum açtıktan sonra uygulamayı durdurabilirsiniz.
  7. Sunucu Gezgini'ne dönün ve IssuingAuthorityKeys ve Tenants tablosundaki değerlere bakın. Bunların federasyon meta verileri belgesinden uygun bilgilerle otomatik olarak yeniden doldurulduğunu fark edeceksiniz.

Kaynakları koruyan ve Visual Studio 2013 ile oluşturulan Web API'leri

Visual Studio 2013'te Web API şablonunu kullanarak bir web API uygulaması oluşturduysanız ve ardından Kimlik Doğrulamasını Değiştir menüsünden Kuruluş Hesapları'nı seçtiyseniz, uygulamanızda zaten gerekli mantık vardır.

Kimlik doğrulamasını el ile yapılandırdıysanız, web API'nizi anahtar bilgilerini otomatik olarak güncelleştirecek şekilde yapılandırmayı öğrenmek için aşağıdaki yönergeleri izleyin.

Aşağıdaki kod parçacığı, federasyon meta verileri belgesinden en son anahtarların nasıl alınduğunu gösterir ve ardından belirteci doğrulamak için JWT Belirteç İşleyicisi'ni kullanır. Kod parçacığı, bir veritabanında, yapılandırma dosyasında veya başka bir yerde olsun, gelecekteki belirteçleri Microsoft kimlik platformu doğrulamak için anahtarı kalıcı hale getirmek için kendi önbelleğe alma mekanizmanızı kullanacağınızı varsayar.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.IdentityModel.Tokens;
using System.Configuration;
using System.Security.Cryptography.X509Certificates;
using System.Xml;
using System.IdentityModel.Metadata;
using System.ServiceModel.Security;
using System.Threading;

namespace JWTValidation
{
    public class JWTValidator
    {
        private string MetadataAddress = "[Your Federation Metadata document address goes here]";

        // Validates the JWT Token that's part of the Authorization header in an HTTP request.
        public void ValidateJwtToken(string token)
        {
            JwtSecurityTokenHandler tokenHandler = new JwtSecurityTokenHandler()
            {
                // Do not disable for production code
                CertificateValidator = X509CertificateValidator.None
            };

            TokenValidationParameters validationParams = new TokenValidationParameters()
            {
                AllowedAudience = "[Your App ID URI goes here]",
                ValidIssuer = "[The issuer for the token goes here, such as https://sts.windows.net/aaaabbbb-0000-cccc-1111-dddd2222eeee/]",
                SigningTokens = GetSigningCertificates(MetadataAddress)

                // Cache the signing tokens by your desired mechanism
            };

            Thread.CurrentPrincipal = tokenHandler.ValidateToken(token, validationParams);
        }

        // Returns a list of certificates from the specified metadata document.
        public List<X509SecurityToken> GetSigningCertificates(string metadataAddress)
        {
            List<X509SecurityToken> tokens = new List<X509SecurityToken>();

            if (metadataAddress == null)
            {
                throw new ArgumentNullException(metadataAddress);
            }

            using (XmlReader metadataReader = XmlReader.Create(metadataAddress))
            {
                MetadataSerializer serializer = new MetadataSerializer()
                {
                    // Do not disable for production code
                    CertificateValidationMode = X509CertificateValidationMode.None
                };

                EntityDescriptor metadata = serializer.ReadMetadata(metadataReader) as EntityDescriptor;

                if (metadata != null)
                {
                    SecurityTokenServiceDescriptor stsd = metadata.RoleDescriptors.OfType<SecurityTokenServiceDescriptor>().First();

                    if (stsd != null)
                    {
                        IEnumerable<X509RawDataKeyIdentifierClause> x509DataClauses = stsd.Keys.Where(key => key.KeyInfo != null && (key.Use == KeyType.Signing || key.Use == KeyType.Unspecified)).
                                                             Select(key => key.KeyInfo.OfType<X509RawDataKeyIdentifierClause>().First());

                        tokens.AddRange(x509DataClauses.Select(token => new X509SecurityToken(new X509Certificate2(token.GetX509RawData()))));
                    }
                    else
                    {
                        throw new InvalidOperationException("There is no RoleDescriptor of type SecurityTokenServiceType in the metadata");
                    }
                }
                else
                {
                    throw new Exception("Invalid Federation Metadata document");
                }
            }
            return tokens;
        }
    }
}

Kaynakları koruyan ve Visual Studio 2012 ile oluşturulan web uygulamaları

Uygulamanız Visual Studio 2012'de oluşturulduysa, büyük olasılıkla uygulamanızı yapılandırmak için Kimlik ve Erişim Aracı'nı kullanmışsınızdır. Ayrıca, Doğrulayan Veren Adı Kayıt Defteri'ni (VINR) kullanıyor olmanız da olasıdır. VINR, güvenilen kimlik sağlayıcıları (Microsoft kimlik platformu) ve kendileri tarafından verilen belirteçleri doğrulamak için kullanılan anahtarlar hakkındaki bilgileri korumakla sorumludur. VINR ayrıca dizininizle ilişkili en son federasyon meta verileri belgesini indirerek, yapılandırmanın en son belgeyle güncel olup olmadığını denetleyerek ve uygulamayı gerektiğinde yeni anahtarı kullanacak şekilde güncelleştirerek web.config dosyasında depolanan anahtar bilgilerinin otomatik olarak güncelleştirilmesini kolaylaştırır.

Uygulamanızı Microsoft tarafından sağlanan kod örneklerinden veya izlenecek yol belgelerinden herhangi birini kullanarak oluşturduysanız anahtar geçişi mantığı projenize zaten dahil edilir. Aşağıdaki kodun projenizde zaten var olduğunu fark edeceksiniz. Uygulamanız bu mantığa sahip değilse, aşağıdaki adımları izleyerek uygulamayı ekleyin ve düzgün çalıştığını doğrulayın.

  1. Çözüm Gezgini'da, uygun proje için System.IdentityModel derlemesine bir başvuru ekleyin.
  2. Global.asax.cs dosyasını açın ve yönergeleri kullanarak aşağıdakileri ekleyin:
    using System.Configuration;
    using System.IdentityModel.Tokens;
    
  3. Global.asax.cs dosyasına aşağıdaki yöntemi ekleyin:
    protected void RefreshValidationSettings()
    {
     string configPath = AppDomain.CurrentDomain.BaseDirectory + "\\" + "Web.config";
     string metadataAddress =
                   ConfigurationManager.AppSettings["ida:FederationMetadataLocation"];
     ValidatingIssuerNameRegistry.WriteToConfig(metadataAddress, configPath);
    }
    
  4. Gösterildiği gibi Global.asax.cs'daki Application_Start() yönteminde RefreshValidation Ayarlar() yöntemini çağırın:
    protected void Application_Start()
    {
     AreaRegistration.RegisterAllAreas();
     ...
     RefreshValidationSettings();
    }
    

Bu adımları izledikten sonra, uygulamanızın Web.config'i federasyon meta veri belgesinden en son bilgilerle (en son anahtarlar dahil) güncelleştirilir. Bu güncelleştirme, uygulama havuzunuz IIS'de her geri dönüşümde gerçekleşir; varsayılan olarak IIS, uygulamaları 29 saatte bir geri dönüşüme dönüştürecek şekilde ayarlanır.

Anahtar geçişi mantığının çalıştığını doğrulamak için aşağıdaki adımları izleyin.

  1. Uygulamanızın yukarıdaki kodu kullandığını doğruladıktan sonra Web.config dosyasını açın ve issuerNameRegistry> bloğuna <gidin ve özellikle aşağıdaki birkaç satırı arayın:
    <issuerNameRegistry type="System.IdentityModel.Tokens.ValidatingIssuerNameRegistry, System.IdentityModel.Tokens.ValidatingIssuerNameRegistry">
         <authority name="https://sts.windows.net/aaaabbbb-0000-cccc-1111-dddd2222eeee/">
           <keys>
             <add thumbprint="3A38FA984E8560F19AADC9F86FE9594BB6AD049B" />
           </keys>
    
  2. <add thumbprint=""> ayarında, herhangi bir karakteri farklı bir karakterle değiştirerek parmak izi değerini değiştirin. Web.config dosyasını kaydedin.
  3. Uygulamayı derleyin ve çalıştırın. Oturum açma işlemini tamamlayabilirseniz, uygulamanız dizininizin federasyon meta veri belgesinden gerekli bilgileri indirerek anahtarı başarıyla güncelleştiriyor. Oturum açarken sorun yaşıyorsanız Microsoft kimlik platformu Kullanarak Web Uygulamanıza Oturum Açma Ekleme makalesini okuyarak veya şu kod örneğini indirip inceleyerek uygulamanızdaki değişikliklerin doğru olduğundan emin olun: Microsoft Entra Id için Çok Kiracılı Bulut Uygulaması.

Diğer kitaplıkları kullanarak kaynakları koruyan veya desteklenen protokollerden herhangi birini el ile uygulayan web uygulamaları/API'ler

Başka bir kitaplık kullanıyorsanız veya desteklenen protokollerden herhangi birini el ile uyguladıysanız, anahtarın OpenID Bağlan bulma belgesinden veya federasyon meta veri belgesinden alındığından emin olmak için kitaplığı veya uygulamanızı gözden geçirmeniz gerekir. Bunu denetlemenin bir yolu, OpenID bulma belgesine veya federasyon meta verileri belgesine yapılan çağrılar için kodunuzda veya kitaplığınızın kodunda arama yapmaktır.

Anahtar uygulamanızda bir yerde depolanıyorsa veya sabit kodlanmışsa, bu kılavuz belgesinin sonundaki yönergelere göre el ile geçiş yaparak anahtarı el ile alabilir ve uygun şekilde güncelleştirebilirsiniz. Microsoft kimlik platformu geçiş temposunu artırması veya acil durum bant dışı geçişe sahip olması durumunda gelecekteki kesintileri ve ek yükü önlemek için bu makalede açıklanan yaklaşımlardan herhangi birini kullanarak uygulamanızı otomatik geçişi destekleyecek şekilde geliştirmeniz kesinlikle tavsiye edilir.

Etkilenip etkilenmeyeceğini belirlemek için uygulamanızı test etme

Aşağıdaki PowerShell betiklerini kullanarak uygulamanızın otomatik anahtar geçişi destekleyip desteklemediğini doğrulayabilirsiniz.

İmzalama anahtarlarını PowerShell ile denetlemek ve güncelleştirmek için MSIdentityTools PowerShell modülü gerekir.

  1. MSIdentityTools PowerShell modülünü yükleyin:

    Install-Module -Name MSIdentityTools
    
  2. Gerekli kapsamları kabul etmek için bir yönetici hesabıyla Bağlan-MgGraph komutunu kullanarak oturum açın:

     Connect-MgGraph -Scope "Application.ReadWrite.All"
    
  3. Kullanılabilir imzalama anahtarı parmak izlerinin listesini alın:

    Get-MsIdSigningKeyThumbprint
    
  4. Anahtar parmak izinden herhangi birini seçin ve Microsoft Entra Id'yi bu anahtarı uygulamanızla birlikte kullanacak şekilde yapılandırın (Microsoft Entra yönetim merkezinden uygulama kimliğini alın):

    Update-MsIdApplicationSigningKeyThumbprint -ApplicationId <ApplicationId> -KeyThumbprint <Thumbprint>
    
  5. Yeni bir belirteç almak için oturum açarak web uygulamasını test edin. Önemli güncelleştirme değişikliği anında gerçekleşir, ancak yeni bir belirteç verildiğinden emin olmak için yeni bir tarayıcı oturumu (örneğin, Internet Explorer'ın "InPrivate"i, Chrome'un "Gizli" veya Firefox'un "Özel" modunu kullanarak) kullandığınızdan emin olun.

  6. Döndürülen imzalama anahtarı parmak izlerinin her biri için cmdlet'ini Update-MsIdApplicationSigningKeyThumbprint çalıştırın ve web uygulamanızın oturum açma işlemini test edin.

  7. Web uygulaması düzgün oturum açarsa otomatik geçişi destekler. Aksi takdirde, uygulamanızı el ile geçişi destekleyecek şekilde değiştirin. Daha fazla bilgi için Bkz . El ile geçiş işlemi oluşturma.

  8. Normal davranışa dönmek için aşağıdaki betiği çalıştırın:

    Update-MsIdApplicationSigningKeyThumbprint -ApplicationId <ApplicationId> -Default
    

Uygulamanız otomatik geçişi desteklemiyorsa el ile geçiş gerçekleştirme

Uygulamanız otomatik geçişi desteklemiyorsa, Microsoft kimlik platformu imzalama anahtarlarını düzenli aralıklarla izleyen ve uygun şekilde el ile geçiş gerçekleştiren bir işlem oluşturmanız gerekir.

İmzalama anahtarlarını PowerShell ile denetlemek ve güncelleştirmek için PowerShell modülü gerekir MSIdentityTools .

  1. PowerShell modülünü MSIdentityTools yükleyin:

    Install-Module -Name MSIdentityTools
    
  2. En son imzalama anahtarını alın (Microsoft Entra yönetim merkezinden kiracı kimliğini alın):

    Get-MsIdSigningKeyThumbprint -Tenant <tenandId> -Latest
    
  3. Bu anahtarı uygulamanızın şu anda sabit kodlanmış veya kullanmak üzere yapılandırılmış anahtarıyla karşılaştırın.

  4. En son anahtar uygulamanızın kullandığı anahtardan farklıysa en son imzalama anahtarını indirin:

    Get-MsIdSigningKeyThumbprint -Latest -DownloadPath <DownloadFolderPath>
    
  5. Uygulamanızın kodunu veya yapılandırmasını yeni anahtarı kullanacak şekilde güncelleştirin.

  6. Microsoft Entra Id'yi uygulamanızla en son anahtarı kullanacak şekilde yapılandırın (Microsoft Entra yönetim merkezinden uygulama kimliğini alın):

    Get-MsIdSigningKeyThumbprint -Latest | Update-MsIdApplicationSigningKeyThumbprint -ApplicationId <ApplicationId>
    
  7. Yeni bir belirteç almak için oturum açarak web uygulamasını test edin. Önemli güncelleştirme değişikliği anında gerçekleşir, ancak yeni bir belirteç verildiğinden emin olmak için yeni bir tarayıcı oturumu (örneğin, Internet Explorer'ın "InPrivate"i, Chrome'un "Gizli" veya Firefox'un "Özel" modunu kullanarak) kullandığınızdan emin olun.

  8. Herhangi bir sorunla karşılaşırsanız, kullanmakta olduğunuz önceki anahtara geri dönüp Azure desteği başvurun:

    Update-MsIdApplicationSigningKeyThumbprint -ApplicationId <ApplicationId> -KeyThumbprint <PreviousKeyThumbprint>
    
  9. Uygulamanızı el ile geçişi destekleyecek şekilde güncelleştirdikten sonra normal davranışa geri dönebilirsiniz:

    Update-MsIdApplicationSigningKeyThumbprint -ApplicationId <ApplicationId> -Default