Saya menggunakan Aplikasi Direktori Aktif Azure untuk mengautentikasi titik akhir istirahat saya yang digunakan di Azure. Saya menggunakan jenis sertifikat pfx dan kode di bawah ini untuk menghasilkan token akses sehingga titik akhir saya dapat diakses melalui token akses itu.

        var authority = string.Format(authorityUri, credentialConfigOptions.TenantId);
        var authContext = new AuthenticationContext(authority);
        X509Certificate2 certificate = default;using (var store = new X509Store(StoreName.My, StoreLocation.CurrentUser, OpenFlags.ReadOnly))
        {
            var certificateCollection = store.Certificates.Find(X509FindType.FindBySubjectName, credentialConfigOptions.CertificateName, false);
            if (certificateCollection.Count > 0)
            {
                certificate = certificateCollection[0];
            }
        };
        
        var clientAssertionCertificate = new ClientAssertionCertificate(credentialConfigOptions.AppId, certificate);
        AuthenticationResult token = await authContext.AcquireTokenAsync(appId, clientAssertionCertificate);
        return token?.AccessToken;

Sekarang saya harus menggunakan tipe sertifikat PEM daripada tipe sertifikat pfx jadi saya mendapatkan masalah saat mengonversi format PEM ke X509Certificate2. Bagaimana saya bisa menghasilkan token akses dengan sertifikat PEM?

0
Amit Agrawal 3 April 2021, 19:38

1 menjawab

Jawaban Terbaik

Jika Anda menggunakan Net 5.0, kita bisa langsung membuat X509Certificate2 dengan sertifikat dan kunci dengan metode X509Certificate2.CreateFromPemFile(<certpath>,<keypath>). Untuk detail selengkapnya, lihat di sini.

Jika Anda menggunakan versi lain, kami dapat membuat X509Certificate2 dengan file sertifikat kemudian mengimpor kunci pribadi dengan metode CopyWithPrivateKey. Akhirnya kami membuat Sertifikat dengan kode new X509Certificate2(pubKey.Export(X509ContentType.Pfx)). Untuk detail selengkapnya, lihat di sini.

1
Jim Xu 5 April 2021, 05:32