Conectar o site do Azure ao aplicativo Xero Partner
Estou integrando meu aplicativo ao Xero, que requer dois certificados. Carreguei-os no Azure com a ajuda deesta artigo, mas ainda não consigo me conectar aoAPI Xero. Espero que alguém tenha experiência em integrar um Aplicativo de Parceiro Xero a um Aplicativo Web do Azure.
Fiz upload de dois arquivos PFX; um é um certificado autoassinado e o outro é o certificado de parceiro emitido pelo Xero. O último arquivo pfx contém dois certificados; um Sub CA1 Privado Comercial Entrust (seja qual for o significado) e um certificado exclusivo de ID de Entrust para meu aplicativo.
Estou usando o código a seguir para carregar os certificados por sua impressão digital exclusiva:
static X509Certificate2 GetCertificateFromStore(string thumbprint)
{
var store = new X509Store(StoreLocation.CurrentUser);
try
{
thumbprint = Regex.Replace(thumbprint, @"[^\da-zA-z]", string.Empty).ToUpper();
store.Open(OpenFlags.ReadOnly);
var certCollection = store.Certificates;
var currentCerts = certCollection.Find(X509FindType.FindByTimeValid, DateTime.Now, false);
var signingCert = currentCerts.Find(X509FindType.FindByThumbprint, thumbprint, false);
if (signingCert.Count == 0)
{
throw new Exception($"Could not find Xero SSL certificate. cert_name={thumbprint}");
}
return signingCert[0];
}
finally
{
store.Close();
}
}
Isso funciona bem localmente, mas no meu site azul eu recebo um erro 403.7:
The page you are attempting to access requires your browser to have a Secure Sockets Layer (SSL) client certificate that the Web server recognizes.
Também observei as seguintes referências para tentar resolver o problema:
Configuração SSL do Xero Partner no Azure (Utiliza um serviço de nuvem e não um aplicativo Web, por isso não pude seguir as etapas no final)403 Proibido ao carregar X509Certificate2 de um arquivo (O tópico publicado nos fóruns do Xero sobre o mesmo problema, descobriu que a resolução é apenas uma vez mais uma vez; serviços em nuvem)Conexões de parceiros Xero e sites do Azure (A solução publicada sugere o uso de uma VM)O que eu ainda não tentei:
Convertendo meu aplicativo Web em um serviço de nuvem; tentando evitar fazer isso, no entanto, não tenho certeza de quais etapas estão envolvidas.Usando uma VM; Não encontrei nenhuma etapa detalhada sobre como fazer isso, mas parece ser uma opção melhor do que acima.