public async Task <CredencialTokenBancoDTO> GetCredencialBanco(CredTipoBancoDTO credTipoBanco)
        {
            switch (credTipoBanco.bancoId)
            {
            case 1:

                var envBanco1 = JsonConvert.DeserializeObject <EnviBancoDTO>(File.ReadAllText("Configs/TPP207/Banco_1/postman/environment_TPP207_Banco_1.json"));
                return(await RealizaGetCredencialBanco(envBanco1, credTipoBanco));


            case 2:
                var envBanco2 = JsonConvert.DeserializeObject <EnviBancoDTO>(File.ReadAllText("Configs/TPP207/Banco_2/postman/environment_TPP207_Banco_2.json"));
                return(await RealizaGetCredencialBanco(envBanco2, credTipoBanco));

            default:
                return(null);
            }
        }
        //public string MakeToken(string kid, string client_id, EnviBancoDTO envBanco1)
        //{
        //    var KID = "MuhkohmJqv1r66JwYdpTHKE4EahbtDCxlZEW6S_-9_k"; // o sign in
        //    var OIDC_CLIENT_ID = "986b1862-b44f-4b30-bcd9-1803e53f34ce";

        //    var jwt_iat = DateTime.Now;
        //    var jwt_exp = jwt_iat.AddDays(600);
        //    var header = new Dictionary<string, string>
        //    {
        //        { "alg", "PS256" },
        //        { "kid", kid },
        //        { "typ", "JWT" }
        //    };

        //    var V3_ACCT_BASEURL = envBanco1.values.Where(v => v.key.Equals("tokenEndpoint")).FirstOrDefault().value;

        //    var rfc4122bytes = Convert.FromBase64String("aguidthatIgotonthewire=="); // AQUI NO PYTHON TÁ RANDOM
        //    Array.Reverse(rfc4122bytes, 0, 4);
        //    Array.Reverse(rfc4122bytes, 4, 2);
        //    Array.Reverse(rfc4122bytes, 6, 2);
        //    var guid = new Guid(rfc4122bytes);

        //    var claims = new Dictionary<string, string>
        //    {
        //        { "iss", client_id },
        //        { "sub", client_id },
        //        { "aud", V3_ACCT_BASEURL },
        //        { "jti", guid.ToString() },
        //        { "iat", jwt_iat.ToString() },
        //        { "exp", jwt_exp.ToString() }
        //    };

        //    var token = GetAuth.GenerateTokenByStr(guid.ToString(), header, claims);

        //    var cert = new X509Certificate2(Path.Combine(_environment.ContentRootPath, crt), Path.Combine(_environment.ContentRootPath, key));


        //    key_obj = jwk.JWK.from_pem(PRIVATE_RSA_KEY.encode('latin-1'))
        //    token.make_signed_token(key_obj)
        //    signed_token = token.serialize()


        //}

        /* VARIAVEIS DO PYTHON */
        //var KID = "MuhkohmJqv1r66JwYdpTHKE4EahbtDCxlZEW6S_-9_k"; // o sign in

        //var PRIVATE_RSA_KEY = @"
        //---- - BEGIN RSA PRIVATE KEY---- -

        //    -----END RSA PRIVATE KEY---- -
        //    ";

        //var OIDC_CLIENT_ID = "986b1862-b44f-4b30-bcd9-1803e53f34ce";
        //var OIDC_SECRET = "856d1f96-605f-4102-8cc3-2698466cee49";

        //var TRANSPORT_CERT_KEY = Path.Combine(_environment.ContentRootPath, string.Format("Configs\\TPP207\\Banco_{0}\\certs\\client_private_key.key", credTipoBanco.bancoId));
        //var TRANSPORT_CERT = @"https://tecban-uat-us-east-1-keystore.s3.amazonaws.com/fd4846dc-035d-4bbd-9710-d00a4f94e570/0ad44fe1-e109-4003-9eb6-6b8f0d776ae5/KTMpVt-6wXztNyq4BU2xGnN0g3Ky_Cntz_8n8GZD4bk.pem";

        //var V3_ACCT_BASEURL = envBanco1.values.Where(v => v.key.Equals("tokenEndpoint")).FirstOrDefault().value;
        //var V3_PYMT_BASEURL = ">> https://rs1.o3bank.co.uk/open-banking/v3.1/pisp/ <<";



        private async Task <CredencialTokenBancoDTO> RealizaGetCredencialBanco(EnviBancoDTO envBanco1, CredTipoBancoDTO credTipoBanco)
        {
            try
            {
                var crt = string.Format("Configs/TPP207/Banco_{0}/certs/client_certificate.crt", credTipoBanco.bancoId);
                var key = string.Format("Configs/TPP207/Banco_{0}/certs/client_private_key.key", credTipoBanco.bancoId);

                var cert = new X509Certificate2(
                    "https://tecban-uat-us-east-1-keystore.s3.amazonaws.com/fd4846dc-035d-4bbd-9710-d00a4f94e570/0ad44fe1-e109-4003-9eb6-6b8f0d776ae5/KTMpVt-6wXztNyq4BU2xGnN0g3Ky_Cntz_8n8GZD4bk.pem",
                    key
                    );


                var handler = new HttpClientHandler();
                handler.ServerCertificateCustomValidationCallback = (sender, cert, chain, sslPolicyErrors) => { return(true); };
                handler.ClientCertificates.Add(cert);
//                handler.SslProtocols = SslProtocols.Tls13 | SslProtocols.Tls12 | SslProtocols.Tls11 | SslProtocols.Tls;

                var client = new HttpClient(handler);


                /* SETA AS BODY */
                var cont = JsonConvert.SerializeObject(File.ReadAllText("Configs\\Params\\access-token-body.json"));

                var request = new HttpRequestMessage()
                {
                    RequestUri = new Uri(envBanco1.values.Where(v => v.key.Equals("tokenEndpoint")).FirstOrDefault().value),
                    Method     = HttpMethod.Post,
                };

                request.Headers.Authorization = new AuthenticationHeaderValue("Basic", envBanco1.values.Where(v => v.key.Equals("basicToken")).FirstOrDefault().value);
                request.Content = new StringContent(cont, Encoding.UTF8, "application/x-www-form-urlencoded");

                var response = await client.SendAsync(request);

                if (response.IsSuccessStatusCode)
                {
                    var responseContent = await response.Content.ReadAsStringAsync();

                    var data = JsonConvert.DeserializeObject <CredencialTokenBancoDTO>((responseContent));
                    return(data);
                }
                else
                {
                    return(null);
                }
            }
            catch (Exception e)
            {
                return(null);
            }
        }
Example #3
0
 public async Task <CredencialTokenBancoDTO> GetCredencialBanco([FromBody] CredTipoBancoDTO credTipoBanco)
 {
     return(await _serv.GetCredencialBanco(credTipoBanco));
 }