如何在Azure网站上安全地管理Google Analytics证书
本文关键字:管理 Google Analytics 证书 安全 Azure 网站 | 更新日期: 2023-09-27 18:17:41
我读了这篇关于如何在c#中使用Google Analytics的教程。
我想用它在我的ASP。NET5应用程序,我想把它做好。我需要使用Service Account认证(我的应用程序将抓取我生成的统计数据和预置报告给用户)。
- 我想保持证书的代码库
- 我不想每次部署 时都要记住它
- 最好的选择是在Azure Portal中配置它(像连接字符串)-但据我所知,他们不接受配置中的文件
Google以两种形式提供证书
- JSON文件
- p12文件
我正在考虑从JSON证书中提取值并将它们放入配置中,但我必须实例化X509Certificate2
,它只需要到P12文件的路径,或者在构造函数中使用一些神秘的byte[] rawData
。
var certificate = new X509Certificate2(pathToP12File, "myPassword", X509KeyStorageFlags.Exportable);
var credential = new ServiceAccountCredential( new ServiceAccountCredential.Initializer(serviceAccountEmail) {
Scopes = scopes}.FromCertificate(certificate));
有什么主意吗?
对于WebApp,转到Azure Portal:
- 浏览到您的WebApp>>设置>>自定义域和SSL>>上传证书并完成使用证书的过程。下一个…
- 设置应用程序设置以使用证书:设置>>应用程序设置-并在应用程序设置部分,添加密钥:WEBSITE_LOAD_CERTIFICATES,值:*(注意-这也可以是拇指指纹,或拇指指纹的逗号分隔列表
-
使用类似于下面的代码来检索证书(注意-在WebApps中证书存储在
StoreLocation.CurrentUser
:var thumb = "your-certificate-thumbprint"; var store = new X509Store(StoreName.My, StoreLocation.CurrentUser); store.Open(OpenFlags.ReadOnly); var cert = store.Certificates.Cast<X509Certificate2>().FirstOrDefault(xc => xc.Thumbprint == thumb); if (cert == null) { throw new Exception(string.Format("Could not find a certificate with thumbprint {0} in StoreName.{1} at StoreLocation.{2}", thumb, store.Name, store.Location)); }
Web/Worker Roles类似,通过门户(1)将证书上传到Cloud Service并跳过(2)。对于(3),请注意Web/Worker Roles中的证书存储在StoreLocation.LocalMachine
中。