ISTO É POSSÍVEL, COM C#?

MARCOS 07/08/2024 13:11:05
#503471
Bom dia!
Peço se possível, uma orientação aos colegas de trabalho:

Quando crio minhas aplicações desktop (Com Telas) em C#, inclusive corporativas (Empresa),
também crio o meu próprio controle de acesso. Com telas para
login e todo aquele mecanismo com cadastro de usuários, perfis, etc.
para definir o que o usuário "pode ou não fazer".
No entanto, fui consultado pela direção, sobre a possibilidade de
criar meu próximo aplicativo integrado ao "AD". ou seja, de tal
modo que o usuário faça o login no meu aplicativo, usando suas credenciais de usuário e senha
do próprio Windows(11).
Como nunca fiz isso, resolvi consultar os colegas:

1.) É perfeitamente possível?

2.) Tem alguma desvantagem, por usar o "AD" ao invés de criar meu próprio mecanismo de autenticação e controle de acesso?

3.) Usando integração com "AD", eu tenho como definir o que o usuário pode ou não fazer(Que funcionalidades pode usar), ou a integração
servirá somente para autenticar o Login?

Agradeço qualquer orientação.


WEBMASTER 07/08/2024 17:18:01
#503472
1) Sim, totalmente possivel, eu por exemplo fazia intranets com usuario vindo do SO previamente autenticado (ou seja, nao precisa de senha, ja sei que esta logado e bola para frente)
2) Nao, pelo contrario, voce so chega na aplicacao tendo passado por outras camadas
3) A autenticacao servira exclusivamente para voce achar o usuario (nao recomendo pedir a senha novamente, a menos que voce queira e vai dar trabalho). Parta do principio de que se chegou na aplicacao com um usuario valido do AD, bora para frente.

Desvantagens:
- se quiser bater a senha de rede do usuario vai dar trabalho
- nao ha possibilidade de ficar se passando por outra pessoa/usuario, tem que de fato deslogar da maquina

Vantagens
- id do usuario externo fornecido pelo SO
- dados extras (nome, email, telefone, etc...) ja vem de bandeja
- se chegou na aplicacao esta ativo, exemplo : demitidos sao inativados automaticamente e voce nao precisa se preocupar

KERPLUNK 08/08/2024 10:59:05
#503474
Resposta escolhida
Active Directory é muito legal de trabalhar. Você pode usar o namespace System.DirectoryServices para as funções mais básicas, mas não é só isso. É assunto pra uma formação inteira à respeito. No mais é como o WebMaster falou, se está na aplicação é porque já está logado no AD.
MARCOS 08/08/2024 13:15:27
#503475
Alterado em 08/08/2024 13:17:04 Boa tarde, colegas!
Agradeço muito as respostas.
Mas, aqui na empresa, temos um contexto "específico".

Uma mesma máquina é compartilhada, por vários usuários do mesmo setor.

Logo, se eu usar integração com o AD (Até onde entendi), a aplicação fica liberada depois que
a máquina é ligada e "qualquer" um do setor realizou o primeiro login.

Estou certo?

KERPLUNK 08/08/2024 15:14:24
#503476
Exato. Quem quer que tenha logado é o usuário da sessão.
O ideal em uma máquina compartilhada é que o usuário faça o login, execute suas tarefas e faça o logout. E o ciclo é o mesmo para qualquer usuário. Loga, trabalha e desloga.

Senão de que adianta ter um controle de usuários se tanto faz quem loga?

Até é possível rodar a aplicação em contexto de usuários diferentes, mas é bem esquisito.
MARCOS 14/08/2024 10:39:21
#503490
Muito obrigado, pelos esclarecimentos.
Tópico encerrado , respostas não são mais permitidas