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";
package auth;
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: