Saltar al contenido principal
Version: 3.0.0

Autenticación

Obtener token vía API gRPC

Se utiliza este servicio para obtener los token de la API del Registro Provincial del las Personas

  • Se debe conectarse mediante el protocolo gRPC

Archivo .proto

Utilice el siguiente archivo auth.proto para generar el codigo de cliente de gRPC.

syntax = "proto3";

option csharp_namespace = "RP.Services.ExternalEntities.V1";


package auth.v1;


service Auth{
rpc GetClientCredentialsToken (ClientCredentialsRequest) returns (TokenResponse);
rpc GetPasswordToken (PasswordRequest) returns (TokenResponse);
}

message ClientCredentialsRequest {
string grant_type = 1;
string client_id = 2;
string client_secret = 3;
string scope = 4;
}

message PasswordRequest {
string grant_type = 1;
string client_id = 2;
string client_secret = 3;
string scope = 4;
string username = 5;
string password = 6;
}

message TokenResponse{
string access_token = 1;
sint64 expires_in = 2;
string token_type = 3;
string scope = 4;
string error = 5;
}

La request de los servicios tanto GetClientCredentialsToken() como GetPasswordToken() devolveran como respuesta un objeto con la siguiente estructura:

  • access_token: token a utilizar en para conectarse a los servicios,
  • expires_in: tiempo de expiración del token,
  • token_type: tipo de token,
  • scope: scope del token
{
"access_token": "abcdefg.hijklmnopq.rstuwxyz",
"expires_in": 18144000,
"token_type": "Bearer",
"scope": "api1"
}

Ejemplo en .Net Core

Este es un fragmento de código de como obtener token mediante el servicio GetClientCredentialsToken()

	 string url = "https://api.registrocivilctes.gob.ar"; 

using (var channel = GrpcHelper.CreateChannel(url))
{
var client = new RP.Services.ExternalEntities.Auth.AuthClient(channel);

var tokenRequest = new RP.Services.ExternalEntities.ClientCredentialsRequest()
{
GrantType = "client_credentials",
ClientId = "{CLIENT_ID}",
ClientSecret = "{CLIENT_SECRET}",
Scope = "api1",
};

var helloReply = client.GetClientCredentialsToken(tokenRequest);
Console.WriteLine(helloReply);
}

La respuesta de servicio es la siguiente:
Ejemplo de obtener token por GetClientCredentialsToken