Есть ли лучше использовать сертификат и получать секретные ключи Azure? - PullRequest
0 голосов
/ 18 июня 2019

У меня был следующий код, который передает отпечаток сертификата для получения секретов из хранилища ключей Azure.И мне интересно, есть ли лучший способ сделать это без необходимости передавать отпечаток, чтобы полностью устранить этот риск?Ниже мой код

        public static async Task<string> GetAccessToken(string authority, string resource, string scope)
        {
            var certificate = GetCertificateFromStore(ConfigurationManager.AppSettings["Thumbprint"]);
            var clientAssertionCertificate = new ClientAssertionCertificate(ConfigurationManager.AppSettings["ClientId"], certificate);
            var context = new AuthenticationContext(authority, TokenCache.DefaultShared);
            var result = await context.AcquireTokenAsync(resource, clientAssertionCertificate);

            return result.AccessToken;
        }

        public static X509Certificate2 GetCertificateFromStore(string thumbprint)
        {
            X509Certificate2 certificate;
            // Get the certificate store for the current user.
            thumbprint = Regex.Replace(thumbprint, @"[^\da-fA-F]", string.Empty).ToUpper();
            X509Store store = new X509Store(StoreName.My, StoreLocation.LocalMachine);
            try
            {
                store.Open(OpenFlags.ReadOnly);
                X509Certificate2Collection certCollection = store
                    .Certificates
                    .Find(X509FindType.FindByThumbprint, thumbprint, false);

                if (certCollection == null || certCollection.Count == 0)
                {
                    throw new Exception("Certificate not installed in the store");
                }
                return certificate = certCollection[0];
            }
            finally
            {
                store.Close();
            }
        } 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...