Version Date Notes By
0.1 2024-09-16 Initial commit Bruno Borges
0.2 2025-01-07 Changes applied to first general template Bruno Borges

E-mail service configuration e-mail template (General)

Para entrar com a plataforma em produção, necessitamos de configurar o serviço de e-mail, e se aplicável, serviço de autenticação externa.

Se utilizarem um serviço de e-mail SMTP, por exemplo, necessitaremos das seguintes informações:

  • Host;
  • Porta;
  • Tipo de encriptação (SSL/TLS), se aplicável;
  • Credenciais de autenticação, se aplicável;
  • Nome e Email do remetente a associar as comunicações;

Se utilizarem algum serviço como Microsoft 365 para o e-mail ou autenticação Azure, também poderemos comunicar as configurações que necessitaremos nesse caso.

E-mail service configuration e-mail template (Microsoft Office 365)

Podem verificar o seguinte artigo (https://geisi.dev/blog/getting-rid-of-deprecated-microsoft-office-365-smtp-mail-sending/) que ajudará na configuração da aplicação Azure para o envio de e-mail.

Da nossa parte necessitaremos dos seguintes dados:

  • MICROSOFT_GRAPH_CLIENT_ID (Azure app ID)
  • MICROSOFT_GRAPH_CLIENT_SECRET (value)
  • MICROSOFT_GRAPH_TENANT_ID
  • MAIL_FROM_ADDRESS (email do remetente a associar ao envio de emails)
  • MAIL_FROM_NAME (nome do remetente a associar ao envio de emails)

Podem verificar também aqui (https://learn.microsoft.com/en-us/graph/permissions-reference#mailsend) as indicações da Microsoft relativamente às permissões na secção Mail.Send.

Active Directory configuration e-mail template (General)

Relativamente à AD, necessitamos de configurar as seguintes variáveis de ambiente:

  • LDAP_HOST(S)
  • LDAP_PORT
  • LDAP_BASE_DN
  • LDAP_USERNAME
  • LDAP_PASSWORD
  • LDAP_GROUP_SCOPE
  • LDAP_AUTH_IDENTIFIER
  • LDAP_EMAIL_IDENTIFIER

O LDAP_GROUP_SCOPE servirá para que, quando for realizada a sincronização com a AD, seja aplicado um filtro "memberOf" a esse grupo:

  • Os utilizadores retornados pela query serão criados (se não existirem) ou atualizados na plataforma.
  • Os utilizadores que existam na plataforma, mas que deixem de fazer parte desse grupo, serão inativados.

No caso do LDAP_BASE_DN e do LDAP_GROUP_SCOPE, necessitamos do distinguished name. Exemplo:

  • LDAP_BASE_DN: dc=acme,dc=com
  • LDAP_GROUP_SCOPE: cn=WeMake_SGI,cn=Users,dc=acme,dc=com

O LDAP_USERNAME e LDAP_PASSWORD deverá corresponder a uma conta com acesso de consulta à AD e, preferencialmente, que faça parte do grupo mencionado acima, para que possamos testar a integração.

O LDAP_AUTH_IDENTIFIER será o atributo da AD através do qual pretendem validar as credenciais. Neste momento, o login local é feito através de username, se pretenderem manter, em princípio será o atributo samaccountname.

O LDAP_EMAIL_IDENTIFIER será o atributo da AD que armazena o email do utilizador. Normalmente é o userprincipalname ou mail.

Active Directory configuration e-mail template (Microsoft Azure AD)

Relativamente à AD, da nossa parte necessitaremos dos seguintes dados:

  • CLIENT_ID (Azure Web application ID)
  • CLIENT_SECRET (value)
  • TENANT_ID

Será necessário da vossa parte criarem uma aplicação web com um redirect URI para https://frontend.pt e permissão User.Read do Microsoft Graph. Depois basta colocarem lá os utilizadores ou grupos que pretendam dar acesso à plataforma.

Active Directory in Azure - Configuration guide

Deve ser criada uma app "Web" e devem definir o redirect_uri com o URL do frontend, ou seja, https://frontend.pt. Create web app

Ao nível de permissões, apenas é necessário "User.Read" do "Microsoft Graph". Add permissions

Para configurar o IMS, iremos necessitar do "Tenant ID" e do "Client ID". Get Tenant and Client IDs

Também necessitaremos do "Client Secret", que podem obter na coluna "Value" do exemplo abaixo. Get secret value

Após os passos acima, devem adicionar os utilizadores e/ou grupos que pretendam que tenham acesso à aplicação criada. Add users/groups