Login AD .Net Core API (ERR_SSL_PROTOCOL_ERROR)

Irei tentar assim que eu entrar no serviço amanhã! Você é um gênio kk muito obrigado!

1 curtida

Tive um progresso, porém eu busco a API e ele me retorna “IIS APPPOOL\nome da minha API”

Pfvr, mostre-me o código do controlador que está retornando isso.

Bom dia, estou tentando da seguinte forma

  [Route("autorizar")]
        [HttpGet]
        public IActionResult IISAuthorize()
        {
           
            var name = HttpContext.User.Claims.FirstOrDefault(p => p.Type == ClaimTypes.Name)?.Value;
            return new ContentResult() { Content = $@"{ name }" };
        }
        // GET api/values/
        [HttpGet]
        public ActionResult<IEnumerable<string>>  Get()
        {
          
            string User = System.Security.Principal.WindowsIdentity.GetCurrent().Name;

            return new string[] { User };
        }

Bem, isso também retorna o usuario atual do Windows :slight_smile:

Vamos lá, esse tipo de autenticação que você está buscando se chama NTLM e consiste em você informar um Usuário e Senha e seu sistema negociar com o Active Directory para saber se essas credenciais são validas ou não.
Você NÃO estará de fato fazendo um login em um maquina Windows, apenas pedirá ao seu AD que verifique se essas credenciais são validas. Portanto, métodos como System.Security.Principal.WindowsIdentity.GetCurrent() e/ou System.Environment.UserName não irão te retornar o que você deseja.

Então como vou saber quem está fazendo essa requisição?

Uma API que use autenticação/autorização não é como um site web, que você faz login uma vez e não precisa se identificar a cada operação que realiza. Para cada requisição que você fizer na sua API, você precisa dizer a ela quem está fazendo.
Existem muitas formas de dizer a uma API quem é que está fazendo essa operação, acredito que hoje a forma mais conhecida e utilizada seja através de um Token JWT, mas como você provavelmente está em um ambiente interno e controlado, talvez enviar esse usuário e senha em toda requisição em um cabeçalho de autenticação seja a opção mais simples de se implementar.
E ai sim, quando o fulano for fazer alguma operação você conseguirá identifica-lo através do Token JWT/Informações enviadas no cabeçalho de autorização.

1 curtida

Muito obrigado pela explicação. Irei aplicar o JWT para fazer isso!!

1 curtida