如何在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));

有什么主意吗?

如何在Azure网站上安全地管理Google Analytics证书

对于WebApp,转到Azure Portal:

  1. 浏览到您的WebApp>>设置>>自定义域和SSL>>上传证书并完成使用证书的过程。下一个…
  2. 设置应用程序设置以使用证书:设置>>应用程序设置-并在应用程序设置部分,添加密钥:WEBSITE_LOAD_CERTIFICATES,值:*(注意-这也可以是拇指指纹,或拇指指纹的逗号分隔列表
  3. 使用类似于下面的代码来检索证书(注意-在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中。