Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.



Informações
titleAtenção

Esta página foi revisada para considerar as configurações de server do TOTVS Fluig Plataforma a partir da atualização 1.6.

...


Índice

Índice
maxLevel4
outlinetrue
excludeÍndcie
 
.*ndice
stylenone


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 , como o Active Directory, via protocolo LDAP (Lightweight Directory Access Protocol).

Ao configurar a autenticação via LDAP, será necessário Uma vez realizada a configuração, os usuários deverão informar os dados de acesso do LDAP do (usuário/senha) na tela de login do fluig para obter acesso à plataforma. 


Configuração

...

1. Edite o arquivo [Instalação_fluig domain.xml localizado na pasta [diretório_instalação]\appserver\domain\configuration\domain.xml.

2. Localize e substitua o trecho abaixo:

Bloco de código
languagexml
titledomain.xml
<security-domain name="TOTVSTech" cache-type="default">
    <authentication>
        <login-module code="com.totvs.foundation.auth.FoundationDatabaseServerLoginModule" flag="requiredsufficient" 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>
<login-module code="com.totvs.foundation.auth.FoundationJwtLoginModule" flag="sufficient"  </authentication>
</security-domain>

Acesso à fonte de dados LDAP sem credencial

...

module="com.totvs.foundation.auth">
	<module-option name="password-stacking" value="useFirstPass"/>
	<module-option name="principalClass" value="com.totvs.technology.foundation.common.TOTVSTechPrincipal"/>
</login-module>

3. Informe os dados de acesso à fonte de dados LDAP, conforme o tipo de validação utilizado em seu Active Diretory:

Deck of Cards
historyfalse
idldap
Card
defaulttrue
labelCom credencial encriptada
  • Caso seja utilizado o LDAP com necessidade de credencial, deve-se possuir as credenciais de um usuário válido e com permissão de consulta no diretório LDAP (Active Directory).

  • Os dados de acesso devem ser informados nas propriedades java.naming,security.principal (login) e bindCredential (senha encriptada - veja abaixo como gerar a senha encriptada), após substituir pelo trecho abaixo.

Bloco de código
languagexml
themeEclipse
titledomain.xml
<login-module code="com.totvs.foundation.auth.FoundationJwtLoginModule" flag="sufficient" module="com.totvs.foundation.auth">
	<module-option name="password-stacking" value="useFirstPass"/>
	<module-option name="principalClass" value="com.totvs.technology.foundation.common.TOTVSTechPrincipal"/>
</login-module>
<security-domain name="TOTVSTech" cache-type="default"> <authentication>
<login-module code="com.totvs.foundation.auth.
FoundationLdapLoginModule
FoundationExtLdapLoginModule" flag="
required
sufficient" 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>"/> <!-- Exemplo: value="[email protected]" -->
    <module-option name="bindCredential" value="<SENHA_ENCRIPTADA>" />
    <module-option name="uidAttributeID" value="sAMAccountName"/> 
    <module-option name="
principalDNSuffix
baseFilter" value="
@<DOMINIO>
(sAMAccountName={0})"/> 
    <module-option name="
rolesCtxDN
loginCombinedWithDatabase" value="
DC=local
false"/> 
 
<!--não
 
alterar,
 
variável
 
padrão-->
<module-option name="baseCtxDN" value="DC=<ESTRUTURA>"/> 
    <module-option name="
loginCombinedWithDatabase
rolesCtxDN" value="
false
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>

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

...

 
Nota
titleImportante!

O TOTVS Fluig precisa estar atualizado com os pacotes 1.8.1-230718, 1.8.0-230718 ou superior para o funcionamento da senha criptografada.


Encriptação da senha LDAP


Nessa etapa, a senha LDAP é encriptada usando o método principal da classe SecureIdentityLoginModule, passando como parâmetro a senha em texto plano do LDAP utilizado. Para fazer a configuração, siga os passos abaixo:

Deck of Cards
historyfalse
idEncriptação
Card
defaulttrue
id01
labelPasso 01

Navegue até a pasta raiz de instalação, e acesse a pasta appserver.

Linux              ==> /opt/fluig/appserver

Windows        ==> c:\fluig\appserver

Card
id02
labelPasso 02

Gere a senha encriptada.


Bloco de código
titleLinux
../jdk-64/bin/java -cp modules/system/layers/base/org/jboss/logging/main/jboss-logging-3.3.0.Final.jar:modules/system/layers/base/org/picketbox/main/picketbox-5.0.3.Final.jar org.picketbox.datasource.security.SecureIdentityLoginModule senha#do#LDAP@123!
Bloco de código
titleWindows
java -cp modules/system/layers/base/org/picketbox/main/picketbox-5.0.3.Final.jar org.picketbox.datasource.security.SecureIdentityLoginModule senha#do#LDAP@123!
Nota
titleImportante!

Neste caso senha#do#LDAP@123!, será a senha de acesso ao LDAP, e o resultado será:

Encoded password: -73d03118655333edd11db66184fee4f35a6d08d87b9a0393

Card
labelCom credencial
  • Caso seja utilizado o LDAP com necessidade de credencial,

...

  • deve-se possuir as credenciais de um usuário válido e com permissão de consulta no

...

  • diretório LDAP (Active Directory).

  • Os dados de acesso devem ser informados nas propriedades java.naming,security.principal (login) e java.naming,security.credentials (senha), após substituir pelo trecho abaixo.

Bloco de código
language

...

xml
themeEclipse

...

titledomain.xml
<login-module code="com.totvs.foundation.auth.FoundationJwtLoginModule" flag="sufficient" module="com.totvs.foundation.auth">
	<module-option name="

...

password-stacking" 

...

value="useFirstPass"/>
	<module-option name="principalClass" value="com.totvs.technology.foundation.common.TOTVSTechPrincipal"/>
</login-module>
<login-module code="com.totvs.foundation.auth.FoundationExtLdapLoginModule" flag="

...

sufficient" 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>"/> 

...

<!-- Exemplo: 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> 
Card
labelSem credencial
  • Caso seja utilizado a forma de validação direta, sem necessidade credencial, substitua pelo trecho abaixo:
Bloco de código
languagexml
themeEclipse
titledomain.xml
<login-module code="com.totvs.foundation.auth.FoundationJwtLoginModule" flag="sufficient" module="com.totvs.foundation.auth">
	<module-option 

...

name="password-stacking" value="useFirstPass"/>
	<module-option name="principalClass" value="com.totvs.technology.foundation.common.TOTVSTechPrincipal"/>
</login-module>
<login-module code="com.totvs.foundation.auth.FoundationLdapLoginModule" flag="sufficient" 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=<ESTRUTURA>"/>
    <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>
Dica
titleDica!

Caso opte por utilizar o login

...

combinado

...

, ou seja, deseja permitir tanto o acesso através do login/senha

...

do Active Directory quanto da plataforma, altere o valor da

...

propriedade loginCombinedWithDatabase para "true".

...

Assim o usuário poderá utilizar ambos os tipos de credenciais para autenticar-se na plataforma.


Autenticação do usuário wcmadmin após a configuração de autenticação LDAP

...

No arquivo domain.xml, quando configurada a autenticação via LDAP é informado o parâmetro:

Bloco de código
<module-option name="loginCombinedWithDatabase" value="false"/>

Quando definido como false, este parâmetro indica que o login funciona apenas com a senha do Active Directory e não funcionará com a senha que há na base. Como o wcmadmin é um usuário apenas da plataforma, ele não existe no AD. 

Há duas formas para corrigir a situação:

1. Criar um usuário com o campo login do AD igual a 'wcmadmin' e senha de sua preferência, assim a plataforma irá logar o usuário wcmadmin igual aos demais usuários, através do AD.

2. Alterar o parâmetro "loginCombinedWithDatabase" no arquivo domain.xml (que fica no diretório <Diretório de instalação>\appserver\domain\configuration) para 'true'. Com isso, a plataforma irá permitir o login tanto com a senha da base de dados quanto com a senha do AD. Nesse caso o usuário wcmadmin irá se logar com a senha da base de dados normalmente. Demais usuários que tentarem se logar com a senha da base de dados também conseguirão.


Cadastro dos usuários

...

Para que o usuário consiga acessar a plataforma utilizando LDAP, seu login deverá ser criado na plataforma utilizando o padrão do Active Directory (AD) configurado. Por exemplo, considere o login e e-mail abaixo

 

 

 

 

 

 

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

...

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

...

titleDica

AD deverão ser iguais ao login e e-mail deste usuário cadastrados na plataforma. Não há necessidade da senha do usuário

...

na plataforma ser igual

...

à cadastrada no AD.

...

titleDetalhes de configuração

...


Propriedades de Busca LDAP

...

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)

Propriedade rolesCtxDN

...

: utiliza a configuração de pesquisa de função semelhante

...

às 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)

Propriedade 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).

Dica
titleDica!

Para mais

 

Mais informações sobre as propriedades rolesCtxDN e baseCtxDN aqui.Exemplo clique aqui ou confira um exemplo de uso aqui.

 

...