Implementacion LDAP en AdminUsuarios (login)

This commit is contained in:
Luis M 2024-03-13 15:31:47 -05:00
parent 724cd2f899
commit 5f09fac78b
4 changed files with 38 additions and 20 deletions

View File

@ -17,7 +17,7 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "MSAdminUsuarios", "Microser
EndProject EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "IntegradorBE", "Microservicios\IntegradorBE\IntegradorBE.csproj", "{E3B575F9-4A18-43E6-A542-7CC29B086752}" Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "IntegradorBE", "Microservicios\IntegradorBE\IntegradorBE.csproj", "{E3B575F9-4A18-43E6-A542-7CC29B086752}"
EndProject EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LdapLoginLib", "LdapLoginLib\LdapLoginLib.csproj", "{6E864339-08B2-4C2F-909C-FCF0392E3F6D}" Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LdapLoginLib", "LdapLoginLib\LdapLoginLib.csproj", "{16DD05BC-4EA2-424D-BEAC-1412A8EE38BC}"
EndProject EndProject
Global Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution GlobalSection(SolutionConfigurationPlatforms) = preSolution
@ -41,10 +41,10 @@ Global
{E3B575F9-4A18-43E6-A542-7CC29B086752}.Debug|Any CPU.Build.0 = Debug|Any CPU {E3B575F9-4A18-43E6-A542-7CC29B086752}.Debug|Any CPU.Build.0 = Debug|Any CPU
{E3B575F9-4A18-43E6-A542-7CC29B086752}.Release|Any CPU.ActiveCfg = Release|Any CPU {E3B575F9-4A18-43E6-A542-7CC29B086752}.Release|Any CPU.ActiveCfg = Release|Any CPU
{E3B575F9-4A18-43E6-A542-7CC29B086752}.Release|Any CPU.Build.0 = Release|Any CPU {E3B575F9-4A18-43E6-A542-7CC29B086752}.Release|Any CPU.Build.0 = Release|Any CPU
{6E864339-08B2-4C2F-909C-FCF0392E3F6D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {16DD05BC-4EA2-424D-BEAC-1412A8EE38BC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{6E864339-08B2-4C2F-909C-FCF0392E3F6D}.Debug|Any CPU.Build.0 = Debug|Any CPU {16DD05BC-4EA2-424D-BEAC-1412A8EE38BC}.Debug|Any CPU.Build.0 = Debug|Any CPU
{6E864339-08B2-4C2F-909C-FCF0392E3F6D}.Release|Any CPU.ActiveCfg = Release|Any CPU {16DD05BC-4EA2-424D-BEAC-1412A8EE38BC}.Release|Any CPU.ActiveCfg = Release|Any CPU
{6E864339-08B2-4C2F-909C-FCF0392E3F6D}.Release|Any CPU.Build.0 = Release|Any CPU {16DD05BC-4EA2-424D-BEAC-1412A8EE38BC}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection EndGlobalSection
GlobalSection(SolutionProperties) = preSolution GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE HideSolutionNode = FALSE
@ -54,7 +54,7 @@ Global
{76522272-9D28-4168-8296-AFC933D22650} = {F491CF9B-9CF8-4F3B-BBD7-A282F7DC1D6D} {76522272-9D28-4168-8296-AFC933D22650} = {F491CF9B-9CF8-4F3B-BBD7-A282F7DC1D6D}
{D0B80363-4C96-413F-8C82-48FCF2CD7F57} = {A449A86B-39E4-4EEB-B7C6-B6B12A0CBD2E} {D0B80363-4C96-413F-8C82-48FCF2CD7F57} = {A449A86B-39E4-4EEB-B7C6-B6B12A0CBD2E}
{E3B575F9-4A18-43E6-A542-7CC29B086752} = {A449A86B-39E4-4EEB-B7C6-B6B12A0CBD2E} {E3B575F9-4A18-43E6-A542-7CC29B086752} = {A449A86B-39E4-4EEB-B7C6-B6B12A0CBD2E}
{6E864339-08B2-4C2F-909C-FCF0392E3F6D} = {F491CF9B-9CF8-4F3B-BBD7-A282F7DC1D6D} {16DD05BC-4EA2-424D-BEAC-1412A8EE38BC} = {F491CF9B-9CF8-4F3B-BBD7-A282F7DC1D6D}
EndGlobalSection EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {EC576D5A-ADE3-40CC-BF55-7E52E6F18AC4} SolutionGuid = {EC576D5A-ADE3-40CC-BF55-7E52E6F18AC4}

View File

@ -43,14 +43,9 @@ namespace MSAdminUsuarios.Context
protected override void OnModelCreating(ModelBuilder modelBuilder) protected override void OnModelCreating(ModelBuilder modelBuilder)
{ {
if (Debugger.IsAttached)
{ //modelBuilder.HasDefaultSchema("HIMSCAP"); // => AFQ
modelBuilder.HasDefaultSchema("HIMSCAP"); // => AFQ
}
else
{
modelBuilder.HasDefaultSchema("ADMIN"); modelBuilder.HasDefaultSchema("ADMIN");
}
modelBuilder.Entity<MICROSERVICIO>(entity => modelBuilder.Entity<MICROSERVICIO>(entity =>

View File

@ -5,6 +5,7 @@ using MSAdminUsuarios.Context;
using Newtonsoft.Json.Linq; using Newtonsoft.Json.Linq;
using Security; using Security;
using System.IdentityModel.Tokens.Jwt; using System.IdentityModel.Tokens.Jwt;
using System.Reflection.Metadata;
using System.Security.Claims; using System.Security.Claims;
using System.Text; using System.Text;
@ -16,6 +17,8 @@ namespace MSAdminUsuarios.Controllers
{ {
private readonly ModelContext _context; private readonly ModelContext _context;
private readonly Encripter _encript = new(); private readonly Encripter _encript = new();
private readonly LDAP _ldap = new();
public AuthController(ModelContext context) public AuthController(ModelContext context)
{ {
_context = context; _context = context;
@ -28,15 +31,32 @@ namespace MSAdminUsuarios.Controllers
{ {
if (!_encript.IsValid) return BadRequest("Lectura inv<6E>lida"); if (!_encript.IsValid) return BadRequest("Lectura inv<6E>lida");
if (login.TX_LOGINNAME_USUMS == null) return BadRequest("Es necesario ingresar un correo"); if (login.TX_LOGINNAME_USUMS == null) return BadRequest("Es necesario ingresar un usuario");
if (login.TX_PASSWORD_USUMS == null) return BadRequest("Es necesario ingresar una contrase<73>a");
if (
string.IsNullOrEmpty(login.TX_LOGINNAME_USUMS?.Trim()) &&
string.IsNullOrEmpty(login.TX_PKDOC_USUMS?.Trim()) &&
string.IsNullOrEmpty(login.TX_CORREO_USUMS?.Trim())
)
{
throw new Exception("Es necesario ingresar un usuario.");
}
if (login.TX_PASSWORD_USUMS == null) return BadRequest("Es necesario ingresar una contraseña.");
USUARIO? userldap = _context.USUARIOSMs.FirstOrDefault(u => u.TX_LOGINNAME_USUMS == login.TX_LOGINNAME_USUMS); USUARIO? userldap = _context.USUARIOSMs.FirstOrDefault(u => u.TX_LOGINNAME_USUMS == login.TX_LOGINNAME_USUMS);
if (userldap == null) return BadRequest("usuario"); if (userldap == null) return BadRequest("usuario");
if(userldap.BL_VIENELDAP_USUMS == 1) if(userldap.BL_VIENELDAP_USUMS == 1)
{ {
bool boolldap = LoginLib.Login(login.TX_LOGINNAME_USUMS, login.TX_PASSWORD_USUMS); //bool boolldap = LoginLib.Login(login.TX_LOGINNAME_USUMS, login.TX_PASSWORD_USUMS);
if( boolldap == true) { bool loggedWithLdap = _ldap.Login(
username: login.TX_LOGINNAME_USUMS,
document: login.TX_PKDOC_USUMS,
email: login.TX_CORREO_USUMS,
password: login.TX_PASSWORD_USUMS
);
if (loggedWithLdap == true) {
string token = Token(userldap); string token = Token(userldap);
return Ok(new return Ok(new
{ {
@ -244,7 +264,8 @@ namespace MSAdminUsuarios.Controllers
new Claim("tipo_doc", tipo_doc.ToString()), new Claim("tipo_doc", tipo_doc.ToString()),
new Claim("pk", user.NU_PK_USUMS.ToString()), new Claim("pk", user.NU_PK_USUMS.ToString()),
new Claim("sedes", user.TX_SEDES_USUMS == null ? "" : user.TX_SEDES_USUMS), new Claim("sedes", user.TX_SEDES_USUMS == null ? "" : user.TX_SEDES_USUMS),
new Claim("TX_NOMBRE_PVD", user.TX_NOMBRE_PVD ?? "{}") new Claim("TX_NOMBRE_PVD", user.TX_NOMBRE_PVD ?? "{}"),
new Claim("uid", user.TX_UUID_USUMS.ToString())
}); });
@ -318,6 +339,8 @@ namespace MSAdminUsuarios.Controllers
public class LoginModel public class LoginModel
{ {
public string? TX_LOGINNAME_USUMS { get; set; } public string? TX_LOGINNAME_USUMS { get; set; }
public string? TX_CORREO_USUMS { get; set; }
public string? TX_PKDOC_USUMS { get; set; }
public string? TX_PASSWORD_USUMS { get; set; } public string? TX_PASSWORD_USUMS { get; set; }
} }

View File

@ -1,6 +1,6 @@
{ {
"ConnectionStrings": { "ConnectionStrings": {
"ConString": "user id=HIMSCAP;password=ITTASA2017;data source=(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=181.204.191.98)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=PROYECTOS)))" "ConString": "user id=ADMIN;password=ITTASA2017;data source=(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=181.204.191.98)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=PROYECTOS)))"
}, },
"RabbitMQConfig": { "RabbitMQConfig": {
"HostName": "localhost", "HostName": "localhost",