SAURON - Atualizar Minhas Informações Pessoais
Guardiões da Galáxia Implementação: 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”. 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). 1.1 Resultados esperados Para a atender a demanda, serão analisadas as propriedades relacionadas com a habilitação/desabilitação da conta do usuário do AD. ms-DS-User-Account-Disabled Descrição: Indica se uma conta está desativada ou ativada. Nome LDAP: msDS-UserAccountDisabled Retorno: Booleano true - Desativado false - Ativado Implementação - Somente ADAM User-Account-Control Descrição: Sinalizadores que controlam o comportamento da conta do usuário. Nome LDAP: userAccountControl Retorno: 4bytes (HEX) 0x00000002 - ADS_UF_ACCOUNTDISABLE - conta desativada. 0x00000010 - ADS_UF_LOCKOUT - conta bloqueada 0x00000200 - ADS_UF_NORMAL_ACCOUNT - conta normal 0x00800000 - ADS_UF_PASSWORD_EXPIRED - senha expirada 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. 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. AÇÕES ASSOCIADAS Alinhamento com a equipe de Infraestrutura de TI (1 Ponto - CADA) Análise da Viabilidade de Implantação por parte da Infra (2 Pontos - INFRA) Instalação, Configuração e Disponibilização (se viável) (3 Pontos - INFRA) Pareamento no Código (1 Ponto - DEV) Testes realizados (1 Ponto - DEV) COMPLEXIDADE - constante para cada questão adicionada. 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. AÇÕES ASSOCIADAS Alinhamento com a equipe de Infraestrutura de TI (1 Ponto - CADA) Identificação dos Cenários para Calculo Binário ( 1 Ponto - CADA) Pareamento no Código (1 Ponto - DEV) Calculo do valor pareado de acordo com cenários (3 Pontos - DEV) Testes realizados (1 Ponto - DEV) COMPLEXIDADE - constante para cada questão adicionada. 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. 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: EXEMPLO 1 Usuário: Pedro Henrique de Andrade Gomes userAccountControl: 66048 EXEMPLO 2 Usuário: Raaby Liandry de Souza Teixeira userAccountControl: 512 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. 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: Complexidade Técnica - dificuldade para entendimento, elucidação e implantação da solução proposta em linhas de código. Configuração - dificuldade de implantação da solução por parte da equipe de infraestrutura de TI. Sustentabilidade - dificuldade de garantia de qualidade e manutenção da solução como um todo. Responsabilidade - quantidade de responsabilidade herdada pela aplicação (Sauron). 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 complexidade técnica (-) sustentabilidade (+) responsabilidade (-) configuração (+) 2 DEV - 7 INFRA - 2 configuração (-) complexidade técnica (+) sustentabilidade (-) responsabilidade (+) 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”. PORTAL GSTI - https://www.portalgsti.com.br/active-directory/sobre/ ms-UserAccountControl - https://support.microsoft.com/pt-br/help/305144/how-to- use-useraccountcontrol-to-manipulate-user-account-properties ADAM - https://www.microsoft.com/pt-br/download/details.aspx?id=4201 Exemplo utilização sem ADAM - https://community.idera.com/database- tools/powershell/ask_the_experts/f/active_directory powershell_remoting- 9/3565/how-do-i-display-the-msds-useraccountdisabled-attribute Calculo ms-UserAccountControl - https://social.technet.microsoft.com/Forums/ie/en-US/7ff0fb2f-0cd1-44a9-b172- 7abd196ee617/account-disabled-attribute-question?forum=winserverDS 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 67108864Data:
Data de elaboração
31/01/21
Autores:
Responsável pelo estudo
1.Objetivo
Equipe do estudo
Alvo
Sauron
Origem
2.IntroduçãoApós
realizaçãObjetivo
Verificar a melhor alternativa para que o
deSauron diversasinforme reuniõao usuário que ele está bloqueado no AD
Observações
Foi identificado com o
timeestudo daas Infra,possíveis formas para que o timeSauron deconsiga desenvolvimentoinformar 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 deao usuáriosrio desabilitadosse doele Diretorioestá debloqueado Usuáriosno (AD).AD2.1 Resultados esperados
Relatório contendo a análise da causa-raiz do problema relacionado ao retorno do valor inesperado.
Breve explicação sobre a utilização de Diretórios de Usuários (AD).
Análise das propriedades do AD que atendam nossa demanda.
Análise da Documentação da Biblioteca Novell.
Análise da Documentação da Biblioteca DirectoryServices.
2.2 GLOSSÁRIO
3.1. Introdução
2. Desenvolvimento
3.2.1 Active Directory
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.
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).
ú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).3.2.2 Propriedades relevantes
3.2.3 Bibliotecas Auxiliares3.32.4 Propostas3.3.2.4.1 Utilização do Serviço ADAM
3.3.2.4.2 Utilização da Propriedade User-AccountControl
3.3.2.4.3 Exemplo
3.42.5 Resultados
4.3. Conclusão5.4. Referências