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

View File

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

View File

@ -5,6 +5,7 @@ using MSAdminUsuarios.Context;
using Newtonsoft.Json.Linq;
using Security;
using System.IdentityModel.Tokens.Jwt;
using System.Reflection.Metadata;
using System.Security.Claims;
using System.Text;
@ -16,6 +17,8 @@ namespace MSAdminUsuarios.Controllers
{
private readonly ModelContext _context;
private readonly Encripter _encript = new();
private readonly LDAP _ldap = new();
public AuthController(ModelContext context)
{
_context = context;
@ -28,15 +31,32 @@ namespace MSAdminUsuarios.Controllers
{
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_PASSWORD_USUMS == null) return BadRequest("Es necesario ingresar una contrase<73>a");
if (login.TX_LOGINNAME_USUMS == null) return BadRequest("Es necesario ingresar un usuario");
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);
if (userldap == null) return BadRequest("usuario");
if(userldap.BL_VIENELDAP_USUMS == 1)
{
bool boolldap = LoginLib.Login(login.TX_LOGINNAME_USUMS, login.TX_PASSWORD_USUMS);
if( boolldap == true) {
//bool boolldap = LoginLib.Login(login.TX_LOGINNAME_USUMS, login.TX_PASSWORD_USUMS);
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);
return Ok(new
{
@ -244,7 +264,8 @@ namespace MSAdminUsuarios.Controllers
new Claim("tipo_doc", tipo_doc.ToString()),
new Claim("pk", user.NU_PK_USUMS.ToString()),
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 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; }
}

View File

@ -1,6 +1,6 @@
{
"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": {
"HostName": "localhost",