Rollover kunci penandatanganan di platform identitas Microsoft

Artikel ini membahas apa yang perlu Anda ketahui tentang kunci publik yang digunakan oleh platform identitas Microsoft untuk menandatangani token keamanan. Penting untuk dicatat bahwa kunci ini bergulir secara berkala dan, dalam keadaan darurat, dapat segera digulirkan. Semua aplikasi yang menggunakan platform identitas Microsoft harus dapat secara terprogram menangani proses rollover kunci. Anda akan memahami cara kerja kunci, cara menilai dampak rollover ke aplikasi Anda dan cara memperbarui aplikasi Anda atau membuat proses rollover manual berkala untuk menangani rollover kunci jika perlu.

Ikhtisar kunci penandatanganan di platform identitas Microsoft

Platform identitas Microsoft menggunakan kriptografi kunci publik yang dibangun berdasarkan standar industri, untuk membangun kepercayaan antara platform dan aplikasi yang menggunakannya. Dalam istilah praktis, ini berfungsi dengan cara berikut: Platform identitas Microsoft menggunakan kunci penandatanganan yang terdiri dari pasangan kunci publik dan pribadi. Saat pengguna masuk ke aplikasi yang menggunakan platform identitas Microsoft untuk autentikasi, platform identitas Microsoft membuat token keamanan yang berisi informasi tentang pengguna. Token ini ditandatangani oleh platform identitas Microsoft menggunakan kunci privatnya sebelum dikirim kembali ke aplikasi. Untuk memverifikasi bahwa token adalah valid dan berasal dari platform identitas Microsoft, aplikasi harus memvalidasi tanda tangan token menggunakan kunci publik yang diekspose oleh platform identitas Microsoft yang dimuat dalam dokumen penemuan OpenID Connect penyewa atau dokumen metadata federasi SAML/WS-Fed.

Demi tujuan keamanan, kunci penandatanganan platform identitas Microsoft bergulir secara berkala, dan dalam keadaan darurat dapat segera digulirkan. Tidak ada waktu yang ditetapkan atau dijamin antara roll kunci ini - aplikasi apa pun yang terintegrasi dengan platform identitas Microsoft harus disiapkan untuk menangani peristiwa rollover utama tidak peduli seberapa sering itu mungkin terjadi. Jika aplikasi Anda tidak menangani refresh tiba-tiba, dan mencoba menggunakan kunci kedaluwarsa untuk memverifikasi tanda tangan pada token, aplikasi Anda salah menolak token. Memeriksa pembaruan setiap 24 jam adalah praktik terbaik, dengan refresh segera (paling lama lima menit sekali) dokumen kunci jika ditemukan token yang tidak divalidasi dengan kunci dalam cache aplikasi Anda.

Selalu ada lebih dari satu kunci valid yang tersedia di dokumen penemuan OpenID Koneksi dan dokumen metadata federasi. Aplikasi Anda harus siap untuk menggunakan salah satu dan semua kunci yang ditentukan dalam dokumen, karena satu kunci mungkin segera digulirkan, kunci yang lain mungkin merupakan penggantinya, dan seterusnya. Jumlah kunci yang tersedia dapat berubah dari waktu ke waktu, berdasarkan arsitektur internal platform identitas Microsoft saat kami mendukung platform baru, cloud baru, atau protokol autentikasi baru. Urutan kunci dalam respons JSON maupun urutan kemunculannya tidak boleh dianggap bermakna bagi aplikasi Anda.

Aplikasi yang hanya mendukung satu kunci penandatanganan, atau yang memerlukan pembaruan manual untuk kunci penandatanganan, pada dasarnya kurang aman dan kurang dapat diandalkan. Mereka harus diperbarui untuk menggunakan pustaka standar untuk memastikan bahwa mereka selalu menggunakan kunci penandatanganan terbaru, di antara praktik terbaik lainnya.

Cara menilai apakah aplikasi Anda akan terdampak, dan apa yang harus dilakukan tentang terkait hal tersebut

Bagaimana aplikasi Anda menangani rollover kunci tergantung pada variabel seperti jenis aplikasi atau protokol identitas, dan pustaka apa yang digunakan. Bagian di bawah ini menilai apakah jenis aplikasi yang paling umum terdampak oleh rollover kunci, dan memberikan panduan cara memperbarui aplikasi untuk mendukung rollover otomatis atau memperbarui kunci secara manual.

Panduan ini tidak berlaku untuk:

  • Aplikasi yang ditambahkan dari Galeri Aplikasi Microsoft Entra (termasuk Kustom) memiliki panduan terpisah mengenai kunci penandatanganan. Informasi selengkapnya.
  • Aplikasi lokal yang diterbitkan melalui proksi aplikasi tidak perlu khawatir tentang kunci penandatanganan.

Aplikasi klien native yang mengakses sumber daya

Aplikasi yang hanya mengakses sumber daya (misalnya, Microsoft Graph, KeyVault, Outlook API, dan API Microsoft lainnya) hanya mendapatkan token dan meneruskannya kepada pemilik sumber daya. Mengingat bahwa mereka tidak melindungi sumber daya apa pun, mereka tidak memeriksa token dan karena itu tidak perlu memastikannya ditandatangani dengan benar.

Aplikasi klien native, baik desktop atau seluler, termasuk dalam kategori ini dan dengan demikian tidak terdampak oleh rollover.

Aplikasi web/API yang mengakses sumber daya

Aplikasi yang hanya mengakses sumber daya (seperti Microsoft Graph, KeyVault, Outlook API, dan API Microsoft lainnya) hanya mendapatkan token dan meneruskannya kepada pemilik sumber daya. Mengingat bahwa mereka tidak melindungi sumber daya apa pun, mereka tidak memeriksa token dan karena itu tidak perlu memastikannya ditandatangani dengan benar.

Aplikasi web dan API web yang menggunakan alur aplikasi saja (kredensial klien/sertifikat klien) untuk meminta token dimasukkan dalam kategori ini, dan dengan demikian tidak terdampak oleh rollover.

Aplikasi web/API yang melindungi sumber daya dan dibangun menggunakan Azure App Services

Fungsionalitas Autentikasi / Otorisasi Azure App Services (EasyAuth) sudah memiliki logika yang diperlukan untuk menangani rollover kunci secara otomatis.

Aplikasi web / API yang melindungi sumber daya menggunakan ASP.NET Koneksi OWIN OpenID, WS-Fed, atau WindowsAzureActiveDirectoryBearerAuthentication middleware

Jika aplikasi Anda menggunakan Koneksi OWIN OpenID ASP.NET, WS-Fed, atau WindowsAzureActiveDirectoryBearerAuthentication, aplikasi sudah memiliki logika yang diperlukan untuk menangani rollover kunci secara otomatis.

Anda dapat mengonfirmasi bahwa aplikasi Anda menggunakan salah satu kunci ini dengan mencari salah satu cuplikan berikut dalam file Startup.cs atau Startup.Auth.cs aplikasi Anda.

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

Aplikasi web/API yang melindungi sumber daya menggunakan middleware .NET Core OpenID Connect atau JwtBearerAuthentication

Jika aplikasi Anda menggunakan middleware ASP.NET OWIN OpenID Koneksi atau JwtBearerAuthentication, aplikasi tersebut sudah memiliki logika yang diperlukan untuk menangani rollover kunci secara otomatis.

Anda dapat mengonfirmasi bahwa aplikasi Anda menggunakan salah satu kunci ini dengan mencari salah satu cuplikan berikut dalam Startup.cs atau Startup.Auth.cs aplikasi Anda

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

Aplikasi web/API yang melindungi sumber daya menggunakan modul Node.js passport-azure-ad

Jika aplikasi Anda menggunakan modul Node.js passport-ad, aplikasi tersebut sudah memiliki logika yang diperlukan untuk menangani rollover kunci secara otomatis.

Anda dapat mengonfirmasi bahwa aplikasi Anda passport-ad dengan mencari cuplikan berikut di app.js aplikasi Anda

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

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

Aplikasi web/API yang melindungi sumber daya dan dibuat dengan Visual Studio 2015 atau versi lebih baru

Jika aplikasi Anda dibuat menggunakan templat aplikasi web di Visual Studio 2015 atau versi lebih baru, dan Anda memilih Akun Kantor atau Sekolah dari menu Ubah Autentikasi, aplikasi tersebut sudah memiliki logika yang diperlukan untuk menangani rollover kunci secara otomatis. Logika ini, disematkan di middleware Koneksi OWIN OpenID, mengambil, dan menyimpan kunci dari dokumen penemuan OpenID Koneksi dan secara berkala merefreshnya.

Jika Anda menambahkan autentikasi ke solusi Anda secara manual, aplikasi Anda kemungkinan tidak memiliki logika rollover kunci yang diperlukan. Anda dapat menulisnya sendiri, atau mengikuti langkah-langkah dalam aplikasi Web / API menggunakan pustaka lain atau menerapkan protokol yang didukung secara manual.

Aplikasi web yang melindungi sumber daya dan dibuat dengan Visual Studio 2013

Jika aplikasi Anda dibuat menggunakan templat aplikasi web di Visual Studio 2013 atau versi lebih baru, dan Anda memilih Akun Organisasi dari menu Ubah Autentikasi, aplikasi tersebut sudah memiliki logika yang diperlukan untuk menangani rollover kunci secara otomatis. Logika ini menyimpan pengidentifikasi unik organisasi Anda, dan informasi kunci penandatanganan dalam dua tabel database terkait proyek. Anda dapat menemukan untai sambungan untuk database dalam file Web.config proyek.

Jika Anda menambahkan autentikasi ke solusi Anda secara manual, aplikasi Anda kemungkinan tidak memiliki logika rollover kunci yang diperlukan. Anda harus menulisnya sendiri, atau mengikuti langkah-langkah dalam Aplikasi web /API menggunakan pustaka lain atau menerapkan protokol yang didukung secara manual.

Langkah-langkah berikut membantu Anda memverifikasi bahwa logika berfungsi dengan baik di aplikasi Anda.

  1. Di Visual Studio 2013, buka solusi, lalu pilih pada tab Server Explorer di jendela kanan.
  2. Perluas Sambungan Data, DefaultConnection, lalu Tabel. Temukan tabel IssuingAuthorityKeys, klik kanan tabel, lalu pilih Perlihatkan Data Tabel.
  3. Dalam tabel IssuingAuthorityKeys, minimal akan ada satu baris yang sesuai dengan nilai thumbprint untuk kunci. Hapus semua baris dalam tabel.
  4. Klik kanan tabel Penyewa, lalu pilih Perlihatkan Data Tabel.
  5. Dalam tabel Penyewa, minimal akan ada satu baris yang sesuai dengan pengidentifikasi penyewa direktori unik. Hapus semua baris dalam tabel. Jika Anda tidak menghapus baris di tabel Penyewa dan tabel IssuingAuthorityKeys , Anda akan mendapatkan kesalahan saat runtime.
  6. Membuat dan menjalankan aplikasi. Setelah masuk ke akun, Anda dapat menghentikan aplikasi.
  7. Kembali ke Penjelajah Server dan lihat nilai dalam tabel IssuingAuthorityKeys dan Penyewa. Anda akan melihat bahwa tabel telah secara otomatis diisi ulang dengan informasi yang sesuai dari dokumen metadata federasi.

API web yang melindungi sumber daya dan dibuat dengan Visual Studio 2013

Jika Anda membuat aplikasi API web di Visual Studio 2013 menggunakan templat API Web, lalu memilih Akun Organisasi dari menu Ubah Autentikasi, Anda sudah memiliki logika yang diperlukan di aplikasi Anda.

Jika Anda mengonfigurasi autentikasi secara manual, ikuti petunjuk di bawah ini untuk mempelajari cara mengonfigurasi API web Anda untuk memperbarui informasi kuncinya secara otomatis.

Cuplikan kode berikut menunjukkan cara mendapatkan kunci terbaru dari dokumen metadata federasi, lalu menggunakan JWT Token Handler untuk memvalidasi token. Cuplikan kode mengasumsikan bahwa Anda akan menggunakan mekanisme penembolokan Anda sendiri untuk mempertahankan kunci untuk memvalidasi token di masa mendatang dari platform identitas Microsoft, baik itu dalam database, file konfigurasi, atau di tempat lain.

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;
        }
    }
}

Aplikasi web yang melindungi sumber daya dan dibuat dengan Visual Studio 2012

Jika aplikasi Anda dibangun di Visual Studio 2012, Anda mungkin menggunakan Identitas dan Alat Akses untuk mengonfigurasi aplikasi Anda. Kemungkinan Anda juga menggunakan Validating Issuer Name Registry (VINR). VINR bertanggung jawab untuk memelihara informasi tentang penyedia identitas tepercaya (platform identitas Microsoft), dan kunci yang digunakan untuk memvalidasi token yang diterbitkan oleh mereka. VINR juga memudahkan untuk memperbarui secara otomatis informasi kunci yang disimpan dalam file Web.config, dengan mengunduh dokumen metadata federasi terbaru yang terkait dengan direktori Anda, memeriksa apakah konfigurasi sudah kedaluwarsa dengan dokumen terbaru, dan memperbarui aplikasi untuk menggunakan kunci baru jika dibutuhkan.

Jika Anda membuat aplikasi menggunakan salah satu sampel kode atau dokumentasi panduan yang disediakan oleh Microsoft, logika rollover kunci sudah disertakan dalam proyek Anda. Anda akan melihat bahwa kode di bawah ini sudah ada dalam proyek Anda. Jika aplikasi Anda belum memiliki logika ini, ikuti langkah-langkah di bawah ini untuk menambahkannya, dan memverifikasi bahwa aplikasi tersebut berfungsi dengan benar.

  1. Di Penjelajah Solusi, tambahkan referensi ke rakitan System.IdentityModel untuk proyek yang sesuai.
  2. Buka file Global.asax.cs dan tambahkan yang berikut ini menggunakan direktif:
    using System.Configuration;
    using System.IdentityModel.Tokens;
    
  3. Tambahkan metode berikut ke file Global.asax.cs :
    protected void RefreshValidationSettings()
    {
     string configPath = AppDomain.CurrentDomain.BaseDirectory + "\\" + "Web.config";
     string metadataAddress =
                   ConfigurationManager.AppSettings["ida:FederationMetadataLocation"];
     ValidatingIssuerNameRegistry.WriteToConfig(metadataAddress, configPath);
    }
    
  4. Panggil metode RefreshValidation Pengaturan() dalam metode Application_Start() di Global.asax.cs seperti yang ditunjukkan:
    protected void Application_Start()
    {
     AreaRegistration.RegisterAllAreas();
     ...
     RefreshValidationSettings();
    }
    

Setelah Anda mengikuti langkah-langkah ini, Web.config aplikasi Anda akan diperbarui dengan informasi terbaru dari dokumen metadata federasi, termasuk kunci terbaru. Pembaruan ini akan dilakukan setiap kali kumpulan aplikasi Anda mendaur ulang di IIS; secara default IIS diatur untuk mendaur ulang aplikasi setiap 29 jam.

Ikuti langkah-langkah di bawah ini untuk memverifikasi bahwa logika rollover kunci berfungsi.

  1. Setelah Anda memverifikasi bahwa aplikasi Anda menggunakan kode di atas, buka file Web.config dan navigasikan ke< blok issuerNameRegistry>, khususnya mencari beberapa baris berikut:
    <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. Dalam pengaturan <tambahkan thumbprint="">, ubah thumbprint dengan mengganti karakter apa pun menjadi karakter yang berbeda. Simpan file Web.config.
  3. Buat aplikasi, lalu jalankan. Jika Anda dapat menyelesaikan proses masuk, aplikasi Anda berhasil memperbarui kunci dengan mengunduh informasi yang diperlukan dari dokumen metadata federasi direktori Anda. Jika Anda mengalami masalah saat masuk, pastikan perubahan dalam aplikasi Anda sudah benar dengan membaca artikel Menambahkan Masuk ke Aplikasi Web Anda Menggunakan platform identitas Microsoft, atau mengunduh dan memeriksa sampel kode berikut: Aplikasi Cloud Multi-Penyewa untuk ID Microsoft Entra.

Aplikasi web/API yang melindungi sumber daya menggunakan pustaka lain atau menerapkan protokol yang didukung secara manual

Jika Anda menggunakan beberapa pustaka lain atau menerapkan protokol yang didukung secara manual, Anda harus meninjau pustaka atau penerapan Anda, untuk memastikan bahwa kunci tersebut diambil dari dokumen penemuan OpenID Connect atau dokumen metadata federasi. Salah satu cara untuk memeriksanya adalah dengan melakukan pencarian dalam kode Anda atau kode pustaka, untuk setiap panggilan ke dokumen penemuan OpenID atau dokumen metadata federasi.

Jika kunci tersebut disimpan di suatu tempat atau dikodekan secara permanen dalam aplikasi Anda, Anda dapat mengambil kunci secara manual dan memperbaruinya sesuai dengan melakukan rollover manual, sesuai petunjuk di akhir dokumen panduan ini. Sangat disarankan agar Anda meningkatkan aplikasi untuk mendukung rollover otomatis menggunakan pendekatan yang diuraikan dalam artikel ini untuk menghindari gangguan dan biaya di masa mendatang, jika platform identitas Microsoft meningkatkan frekuensi rollover atau melakukan rollover out-of-band darurat.

Cara menguji aplikasi Anda untuk menentukan apakah aplikasi tersebut akan terdampak

Anda dapat memvalidasi apakah aplikasi Anda mendukung rollover kunci otomatis dengan menggunakan skrip PowerShell berikut.

Untuk memeriksa dan memperbarui kunci penandatanganan dengan PowerShell, Anda memerlukan modul MSIdentityTools PowerShell.

  1. Instal modul MSIdentityTools PowerShell:

    Install-Module -Name MSIdentityTools
    
  2. Masuk menggunakan perintah Connect-MgGraph dengan akun admin untuk menyetujui cakupan yang diperlukan:

     Connect-MgGraph -Scope "Application.ReadWrite.All"
    
  3. Dapatkan daftar thumbprint kunci penandatanganan yang tersedia:

    Get-MsIdSigningKeyThumbprint
    
  4. Pilih salah satu thumbprint kunci dan konfigurasikan ID Microsoft Entra untuk menggunakan kunci tersebut dengan aplikasi Anda (dapatkan ID aplikasi dari pusat admin Microsoft Entra):

    Update-MsIdApplicationSigningKeyThumbprint -ApplicationId <ApplicationId> -KeyThumbprint <Thumbprint>
    
  5. Uji aplikasi web dengan masuk untuk mendapatkan token baru. Perubahan pembaruan kunci bersifat instan, tetapi pastikan Anda menggunakan sesi browser baru (misalnya menggunakan mode "InPrivate" di Internet Explorer, "Penyamaran" di Chrome, atau "Pribadi" di Firefox) untuk memastikan Anda mengeluarkan token baru.

  6. Untuk setiap thumbprint kunci penandatanganan yang ditampilkan, jalankan cmdlet Update-MsIdApplicationSigningKeyThumbprint dan uji proses masuk aplikasi web Anda.

  7. Jika proses masuk aplikasi web Anda benar, artinya aplikasi web mendukung rollover otomatis. Jika tidak, ubah aplikasi Anda untuk mendukung rollover manual. Lihat Membuat proses rollover manual untuk informasi lebih lanjut.

  8. Jalankan skrip berikut untuk kembali ke perilaku normal:

    Update-MsIdApplicationSigningKeyThumbprint -ApplicationId <ApplicationId> -Default
    

Cara melakukan rollover manual jika aplikasi Anda tidak mendukung rollover otomatis

Jika aplikasi Anda tidak mendukung rollover otomatis, Anda harus membuat proses yang memantau kunci penandatanganan platform identitas Microsoft secara berkala dan melakukan rollover manual yang sesuai.

Untuk memeriksa dan memperbarui kunci penandatanganan dengan PowerShell, Anda memerlukan MSIdentityTools modul PowerShell.

  1. MSIdentityTools Instal modul PowerShell:

    Install-Module -Name MSIdentityTools
    
  2. Dapatkan kunci penandatanganan terbaru (dapatkan ID penyewa dari pusat admin Microsoft Entra):

    Get-MsIdSigningKeyThumbprint -Tenant <tenandId> -Latest
    
  3. Bandingkan kunci ini dengan kunci aplikasi Anda yang dikodekan secara permanen atau dikonfigurasi yang akan digunakan saat ini.

  4. Jika kunci terbaru berbeda dari kunci yang digunakan aplikasi Anda, unduh kunci penandatanganan terbaru:

    Get-MsIdSigningKeyThumbprint -Latest -DownloadPath <DownloadFolderPath>
    
  5. Perbarui kode atau konfigurasi aplikasi Anda untuk menggunakan kunci baru.

  6. Konfigurasikan ID Microsoft Entra untuk menggunakan kunci terbaru tersebut dengan aplikasi Anda (dapatkan ID aplikasi dari pusat admin Microsoft Entra):

    Get-MsIdSigningKeyThumbprint -Latest | Update-MsIdApplicationSigningKeyThumbprint -ApplicationId <ApplicationId>
    
  7. Uji aplikasi web dengan masuk untuk mendapatkan token baru. Perubahan pembaruan kunci bersifat instan, tetapi pastikan Anda menggunakan sesi browser baru (misalnya menggunakan mode "InPrivate" di Internet Explorer, "Penyamaran" di Chrome, atau "Pribadi" di Firefox) untuk memastikan Anda mengeluarkan token baru.

  8. Jika Anda mengalami masalah, kembali ke kunci yang sebelumnya Anda gunakan dan hubungi dukungan Azure:

    Update-MsIdApplicationSigningKeyThumbprint -ApplicationId <ApplicationId> -KeyThumbprint <PreviousKeyThumbprint>
    
  9. Setelah Anda memperbarui aplikasi untuk mendukung rollover manual, kembalikan ke perilaku normal:

    Update-MsIdApplicationSigningKeyThumbprint -ApplicationId <ApplicationId> -Default