Relatório Técnico de Atividade de Pesquisa - Identificação de Usuários Bloqueados
Relatório Técnico de Atividade de Pesquisa
Identificação de Usuários Bloqueados
OBJETIVO
Descrever o processo de análise e indicar a melhor alternativa para implantação da USER STORY “Eu como SETIC , preciso que o Sauron informe ao usuário que ele está bloqueado no AD”.
JUSTIFICATIVA
Após realização de diversas reuniões com o time da Infra, o time de desenvolvimento identificou que as consultas atualmente utilizadas pela aplicação Sistema de Autenticação do Estado de Rondônia - SAURON, em determinados cenários, estão retornando um valor inesperado, impossibilitando o gerenciamento automatizado do grupo de usuários desabilitados do Diretorio de Usuários (AD).
RESULTADOS ESPERADOS
ENVOLVIDOS
GLOSSÁRIO
PREMISSAS
ACTIVE DIRECTORY
DEFINIÇÃO
O Active Directory (AD) é uma ferramenta de gerenciamento de usuários de rede, denominada serviço de diretório. Um diretório nada mais é do que um banco de dados contendo informações dos usuários de uma organização, tais como nome, login, senha, cargo, perfil e etc.
O AD é implementado em protocolo LDAP (Lightweight Directory Access Protocol), que, traduzido ao pé da letra, significa: Protocolo Leve de Acesso a Diretório. Trata-se de um protocolo livre que é conhecido como o padrão do mercado para gerenciamento de informações de diretório distribuído sobre uma rede de Protocolo da Internet (IP).
Através da implementação de serviço LDAP, o Active Directory permite o uso de um único diretório para controle de acesso a todos sistemas e serviços dentro de uma rede corporativa. Isso significa que o colaborador de uma empresa não precisa criar um usuário e senha para cada sistema que tiver acesso, e sim utilizar seu usuário e senhas únicos(as).
PROPRIEDADES RELEVANTES
Para a atender a demanda, serão analisadas as propriedades relacionadas com a habilitação/desabilitação da conta do usuário do AD.
BIBLIOTECAS AUXILIARES
NOVELL
A propriedade “user-AccountControl” é suportada pela biblioteca NOVELL ( https://www.novell.com/documentation/idm35drivers/ad/data/bp8d4f4.html ), não sendo necessárias alterações na estrutura atual de código. Quanto a propriedade “ms-Ds-UserAccountDisabled”, a documentação da Biblioteca orienta o pareamento da informação fornecida pela primeira propriedade para obter o valor desejado ( https://www.novell.com/coolsolutions/trench/8558.html )
DIRECTORY SERVICES
A propriedade “user-AccountControl” é suportada pela biblioteca Directory Services ( https://support.microsoft.com/pt-br/help/305144/how-to-use-useraccountcontrol-to-manipulate-user-account-properties ) não sendo necessárias alterações na estrutura atual de código.
PROPOSTAS
A seguir são descritas duas abordagens possíveis para a implantação, sendo destacadas quais as ações associadas são necessárias para a implantação da User Story, seguidas de um estudo da complexidade envolvida com o processo de desenvolvimento de cada uma dessas ações. Os valores de complexidade foram atribuídos após reunião entre os participantes.
1.UTILIZAÇÃO DO SERVIÇO ADAM
Considerando C(n) = (Σ P_INFRA + Σ P_DEV) = 9 pontos de complexidade, sendo 6 pontos para a equipe de Infraestrutura de TI e 3 pontos para a equipe DEV.
2.UTILIZAÇÃO DA PROPRIEDADE USER-ACCOUNTCONTROL
Considerando C(n) = (Σ P_INFRA + Σ P_DEV) = 9 pontos de complexidade, sendo 2 pontos para a equipe de Infraestrutura de TI e 7 pontos para a equipe DEV.
EXEMPLO
Para exemplificar o calculo binário da propriedade “user-AccountControl”, realizaremos o calculo para dois usuários do nosso AD, comparando os resultados com a tabela em anexo, no fim deste documento. Para este experimento utilizaremos a aplicação Microsoft ADExplorer com as credenciais da aplicação Sauron, como demonstrado a seguir:
Para o Exemplo 1, onde o valor obtido foi 66048, ao calcularmos as propriedades do usuário a partir da tabela presente no anexo 1, temos:
NORMAL_ACCOUNT (512) + DONT_EXPIRE_PASSWORD (65536) = 66048
Logo, o usuário possui uma conta normal, com a opção de não expiração de senha ativada.
Para o exemplo 2, onde o valor obtido é 512 temos:
NORMAL_ACCOUNT (512)
Sabendo que a propriedade ACCOUNTDISABLE (2) logo, ao subtrair 2 da propriedade se subtrairmos apenas valores que são potências de 2, do maior para o menor possível e chegarmos no valor 0, então o usuário possui uma conta desativada.
Um exemplo para consolidação é o exemplo a seguir:
Para o usuário em questão temos o valor 66050.
1º passo - subtraímos 2^ 16 ( DONT_EXPIRE_PASSWORD (65536)) = 514
2º passo - subtraímos 2^9 ( NORMAL_ACCOUNT (512) ) = 2
3º passo - subtraímos 2^1 ( ACCOUNTDISABLE (2) ) = 0
Logo, temos certeza que a conta do usuário está desabilitada.
RESULTADOS
Na Tabela 1 é apresentado um comparativo entre as alternativas propostas para a resolução da User Story em questão. Para cada opção é considerado os pontos de complexidade para o time de desenvolvedores e para o time de infraestrutura de TI. São levados em conta quatro diferentes aspectos descritos a seguir:
Tabela 1. Comparativo da complexidade ( C(n) ), pontos fortes e fracos das opções analisadas.
OP
C(n)
PONTOS FORTES
PONTOS FRACOS
1
DEV - 3
INFRA - 6
2
DEV - 7
INFRA - 2
CONCLUSÃO
Após análise da documentação das bibliotecas e serviços, foi identificado que a propriedade “ms-DS-User-Account-Disabled “ não retorna nenhum valor pois necessita da ativação do serviço ADAM, atualmente indisponível. Será verificado junto a equipe de Infraestrutura de TI a viabilidade da ativação deste serviço a partir da disponibilização do AD LDM (ADAM) e, caso negado, faremos o pareamento da propriedade “User-Account-Control”.
REFERÊNCIAS
APÊNDICE 1 - TABELA DE CONVERSÃO DA PROPRIEDADE “USER-ACCOUNTCONTROL”
Tabela 1. Relação dos Valores em HEX e Decimal
UserAccountControl Flag
HEX Value
Decimal Value
SCRIPT (Running the logon script)
0x0001
1
ACCOUNTDISABLE (The account is disabled)
0x0002
2
HOMEDIR_REQUIRED (The home folder is required)
0x0008
8
LOCKOUT (The account is locked)
0x0010
16
PASSWD_NOTREQD (No password is required)
0x0020
32
PASSWD_CANT_CHANGE (Prevent user from changing password)
0x0040
64
ENCRYPTED_TEXT_PWD_ALLOWED (Store password using reversible encryption)
0x0080
128
TEMP_DUPLICATE_ACCOUNT (An account of a user, whose primary account is in another domain)
0x0100
256
NORMAL_ACCOUNT (A default account, a typical active account)
0x0200
512
INTERDOMAIN_TRUST_ACCOUNT
0x0800
2048
WORKSTATION_TRUST_ACCOUNT
0x1000
4096
SERVER_TRUST_ACCOUNT
0x2000
8192
DONT_EXPIRE_PASSWORD (user accounts with passwords that don’t expire)
0x10000
65536
MNS_LOGON_ACCOUNT
0x20000
131072
SMARTCARD_REQUIRED (To log on to the network, the user needs a smart card)
0x40000
262144
TRUSTED_FOR_DELEGATION
0x80000
524288
NOT_DELEGATED
0x100000
1048576
USE_DES_KEY_ONLY
0x200000
2097152
DONT_REQ_PREAUTH (Kerberos pre-authentication is not required)
0x400000
4194304
PASSWORD_EXPIRED (The user password has expired)
0x800000
8388608
TRUSTED_TO_AUTH_FOR_DELEGATION
0x1000000
16777216
PARTIAL_SECRETS_ACCOUNT
0x04000000
67108864