Índice

 

Objetivo

O objetivo deste guia é orientar o administrador do fluig sobre como configurar a plataforma para permitir acesso dos usuários através das credenciais existentes em um diretório LDAP.

 

Configuração

Configurações válidas para autenticação utilizando o Protocolo LDAP (Lightweight Directory Access Protocol).

Ao configurar a autenticação via LDAP, será necessário informar os dados de acesso LDAP do usuário na tela de login do fluig para obter acesso à plataforma.

 

1. Edite o arquivo [Instalação_fluig]\appserver\configuration\domain.xml.

2. Localize o trecho abaixo:

<security-domain name="TOTVSTech" cache-type="default">
    <authentication>
        <login-module code="com.totvs.foundation.auth.FoundationDatabaseServerLoginModule" flag="required" module="com.totvs.foundation.auth">
            <module-option name="hashAlgorithm" value="MD5"/>
            <module-option name="hashEncoding" value="HEX"/>
            <module-option name="principalClass" value="com.totvs.technology.foundation.common.TOTVSTechPrincipal"/>
        </login-module>
    </authentication>
</security-domain>


Acesso à fonte de dados LDAP sem credencial

3. a) Caso seja utilizado a forma de validação direta, sem necessidade credencial, substitua pelo trecho abaixo:

<security-domain name="TOTVSTech" cache-type="default">
 <authentication>
  <login-module code="com.totvs.foundation.auth.FoundationLdapLoginModule" flag="required" module="com.totvs.foundation.auth">
    <module-option name="java.naming.factory.initial" value="com.sun.jndi.ldap.LdapCtxFactory"/>
    <module-option name="java.naming.provider.url" value="ldap://<SERVIDOR>:<PORTA>/"/>
    <module-option name="java.naming.security.authentication" value="simple"/>
    <module-option name="java.naming.security.protocol" value=""/>
    <module-option name="uidAttributeID" value="sAMAccountName"/>
    <module-option name="principalDNSuffix" value="@<DOMINIO>"/>
    <module-option name="rolesCtxDN" value="DC=local"/> <!--não alterar, variável padrão-->
    <module-option name="loginCombinedWithDatabase" value="false"/>
    <module-option name="hashAlgorithm" value="MD5"/>
    <module-option name="hashEncoding" value="HEX"/>
    <module-option name="principalClass" value="com.totvs.technology.foundation.common.TOTVSTechPrincipal"/>
   </login-module>
 </authentication>
</security-domain>

Dica: Caso opte por utilizar o login "combinado", ou seja, login/senha da rede E do banco de dados, altere o valor da propriedade loginCombinedWithDatabase para "true".



Acesso à fonte de dados LDAP com credencial

3. b) Caso seja utilizado o LDAP com necessidade de credencial, substitua pelo trecho abaixo:

Para essa configuração é necessário ter um usuário válido e com permissão de consulta no AD para as propriedades java.naming,security.principal (login) e java.naming,security.credentials (senha).

<security-domain name="TOTVSTech" cache-type="default">
<authentication>
<login-module code="com.totvs.foundation.auth.FoundationExtLdapLoginModule" flag="required" module="com.totvs.foundation.auth">
<module-option name="java.naming.factory.initial" value="com.sun.jndi.ldap.LdapCtxFactory"/>
        <module-option name="java.naming.provider.url" value="ldap://<SERVIDOR>:<PORTA>/"/> 
        <module-option name="java.naming.security.authentication" value="simple"/> 
        <module-option name="java.naming.security.protocol" value=""/> 
        <module-option name="java.naming.security.principal" value="<USUARIO>@<DOMINIO>"/> ex:value="[email protected]"
        <module-option name="java.naming.security.credentials" value="<SENHA>"/> 
        <module-option name="uidAttributeID" value="sAMAccountName"/> 
        <module-option name="baseFilter" value="(sAMAccountName={0})"/> 
        <module-option name="loginCombinedWithDatabase" value="false"/> 
        <module-option name="baseCtxDN" value="DC=<ESTRUTURA>"/> 
        <module-option name="rolesCtxDN" value="DC=<ESTRUTURA>"/> 
        <module-option name="hashAlgorithm" value="MD5"/> 
        <module-option name="hashEncoding" value="HEX"/>
        <module-option name="principalClass" value="com.totvs.technology.foundation.common.TOTVSTechPrincipal"/>
        </login-module> 
   </authentication> 
</security-domain>

Caso opte por utilizar o login "combinado", ou seja, login/senha da rede E do banco de dados, altere o valor da propriedade loginCombinedWithDatabase para "true".

 

 

 

 

 

 


AD - Login dos usuários

4. Para que o usuário consiga efetuar login no fluig utilizando LDAP, seu usuário deverá ser criado utilizando o padrão do AD em questão, um exemplo de nome de usuário do AD seria:

Login:
nome.sobrenome
E-mail: [email protected]

Logo, este deverá ser o login e e-mail do usuário no fluig, respectivamente.

Não há necessidade da senha do usuário no fluig ser igual a cadastrada no AD.

Propriedades rolesCtxDN e baseCtxDN

O módulo de login LDAP passa as propriedades para definir a busca por um determinado usuário e seus papéis para o servidor LDAP.


Definindo pesquisa por papel (Defining Role Search)

rolesCtxDN,  utiliza a configuração de pesquisa de função semelhante as configurações do LdapExtLoginModule, entretanto a recursão usada encontra os papéis listados dentro de um DN.

Para tanto ele usa o DN fixo do contexto de pesquisa para papéis de usuário. Considere que este não é o nome distinto de onde os papéis são reais, em vez disso,

este é o DN de onde os objetos que contêm os papéis de usuário (por exemplo, para o diretório active, este é o DN onde a conta de usuário está).

 

Definindo pesquisa DN (Defining DN Search)

baseCtxDN, define o DN fixo do contexto de pesquisa para papéis de usuário. Considere que este não é o nome distinto de onde os papéis reais estão localizados,

mas o DN dos objetos que contêm a localização dos papéis de usuário (isto é, para o diretório ativo, este é o DN com a conta de usuário).

 

Mais informações sobre as propriedades rolesCtxDN e baseCtxDN aqui.

Exemplo de uso aqui.