Capítulo 16 Clientes, groupware & CLI Admin: #pIdentity

Fontes de identidade: Active Directory, LDAP, Entra ID, Keycloak e SCIM

Em Admin > Fontes de identidade, você conecta um locatário ou domínios individuais ao Active Directory ou LDAP (login por bind, sincronização de usuários, grupos aninhados e contatos) ou ao Microsoft Entra ID, Keycloak e outros provedores OpenID Connect (login por SSO, provisionamento por SCIM 2.0). Contas locais continuam totalmente utilizáveis ao lado delas (operação mista). Cada conta tem exatamente uma fonte; a correspondência usa o ExternalId (AD objectGUID, Entra objectId, LDAP entryUUID), nunca apenas o endereço de e-mail. Campos gerenciados pela fonte são somente leitura na administração e em "Minha conta".

Dica operacional & nota de arquitetura

Mantenha pelo menos um administrador de servidor local sem origem como acesso de emergência (break-glass). Ele nunca é assumido do AD, nunca faz login pela correspondência de e-mail do SSO e funciona mesmo quando o AD ou o Entra estão inacessíveis. Defina o limite de bloqueio do nextxch (padrão 5 falhas) abaixo do limite de bloqueio de contas do AD: assim, invasores nunca bloqueiam uma conta do AD, porque o nextxch para antes do bind.

Entra ID: registro de app para login e SCIM

Login: registro de app próprio (plataforma web) com o URI de redirecionamento de Admin > Fontes de identidade. Provisionamento: app corporativo fora da galeria com modo de provisionamento "Automático", URL do locatário e token secreto do nextxch.

Referência / configuração
1. Entra admin center > App registrations > New registration
   Name:            nextxch Webmail
   Account types:   Accounts in this organizational directory only (single tenant)
   Redirect URI:    Web  https://mail.example.com/api/auth/sso/callback
2. Certificates & secrets > New client secret  -> enter it in nextxch as client secret
3. Token configuration > Add optional claim: ID token "email" (otherwise preferred_username = UPN is used)
4. App roles (optional): e.g. create "Nextxch.TenantAdmins", assign users,
   in nextxch: claim "roles", value "Nextxch.TenantAdmins" -> role TenantAdmin
5. nextxch Admin > Identity sources > Add Entra ID / OIDC
   Authority:  https://login.microsoftonline.com/<directory id>/v2.0
   Client id:  <application id>
6. SCIM: Enterprise applications > New application > Create your own (non-gallery)
   Provisioning > Automatic
   Tenant URL:    https://mail.example.com/scim/v2
   Secret token:  nxscim_...   (Admin > Identity sources > Create SCIM token)
   Mappings: userName <- userPrincipalName, emails[type eq "work"].value <- mail,
             externalId <- objectId (recommended) or mailNickname

Configurações, valores padrão e boas práticas

Configuração / local Descrição Valor padrão Boa prática para produção
Active Directory: Dienstkonto Usuário de domínio normal sem direitos de administrador, somente leitura (o acesso de leitura padrão "Authenticated Users" é suficiente). A senha não expira. Armazenada criptografada, nunca exibida. CN=svc-nextxch,OU=Service,... Nenhum administrador de domínio. Leitura basta para fotos e proxyAddresses. Opcionalmente, restrinja "Fazer logon em" aos DCs.
LDAPS 636 / StartTLS 389 Conexão criptografada com os controladores de domínio. Vários DCs são tentados em ordem (failover), com timeout por DC configurável. LDAPS, 10 s Confie no certificado do DC (ou da CA interna) no servidor nextxch. Use "Não verificar o certificado" apenas brevemente durante a configuração.
Anmeldung (alle Protokolle) Webmail, admin, IMAP, SMTP, POP3, ActiveSync, EWS, MAPI e DAV verificam a senha do AD por bind. Nomes de login: endereço de e-mail, userPrincipalName, sAMAccountName ou DOMAIN\user. Cache 15 min (Hash) O cache curto de entrada armazena apenas um HMAC, nunca a senha, e mantém a entrada funcionando durante uma breve indisponibilidade do DC. 0 o desativa.
Abgleich: Benutzer, Gruppen, Kontakte mail e proxyAddresses (SMTP: = principal, smtp: = alias), displayName, givenName, sn, telephoneNumber, mobile, title, department, company, physicalDeliveryOfficeName, manager, thumbnailPhoto; userAccountControl e accountExpires desativam a caixa de correio. Grupos habilitados para e-mail tornam-se listas de distribuição (aninhadas via LDAP_MATCHING_RULE_IN_CHAIN) e contatos aparecem no catálogo de endereços. Delta 15 min, voll 02:00 Use "Pré-visualizar" antes da primeira execução: mostra quais contas seriam criadas, assumidas ou desativadas, sem alterar nada. Filtre por um grupo "Usuários de e-mail".
Gelöschte Objekte Quando um objeto desaparece do AD (ou o Entra envia SCIM DELETE), a caixa de correio é desativada imediatamente. Após o período de carência, o administrador decide: excluir, manter como caixa de correio compartilhada ou manter desativada. 30 Tage Renomear não é excluir: o endereço principal antigo permanece como alias.
Vorlagen Mapeamento de atributos para Microsoft AD, Samba AD, OpenLDAP, Univention Corporate Server e FreeIPA; cada campo pode ser sobrescrito ou desativado com "-". Active Directory O OpenLDAP precisa do overlay memberOf para o filtro de grupos; o nextxch resolve grupos aninhados ali por conta própria.
OIDC (Entra ID, Keycloak) Fluxo de código de autorização com PKCE no servidor, descoberta e JWKS com rotação automática de chaves, RS256/ES256, verificações de iss, aud, exp, nonce e do locatário do Entra (tid). Claims de grupo ou de função de app são mapeados para User, TenantAdmin e ServerAdmin. Knopf auf der Anmeldeseite Keycloak: authority https://kc.example.com/realms/<realm>, cliente confidencial com standard flow, URI de redirecionamento como acima; funções pelo claim realm_access.roles.
Lokale Passwörter pro Domain Pode ser desativado separadamente para webmail/admin e protocolos. As senhas do Entra nunca chegam ao nextxch: apps de e-mail (Outlook, iPhone, Thunderbird) usam senhas de app; o webmail orienta a configuração com um assistente. An Por protocolo, você pode adicionalmente impor "somente OAuth / Kerberos" (veja os capítulos 16a e 16b). Usuários do AD podem alterar a senha no webmail quando a origem permitir.
Kennwort ändern (AD / LDAP) Com "Usuários podem alterar a senha", o webmail mostra um formulário em Configurações > Segurança (senha atual e nova). AD: unicodePwd via LDAPS com a senha antiga, de modo que se aplicam a complexidade, o histórico de senhas e a idade mínima do AD; outros diretórios: RFC 3062. Os administradores redefinem senhas na caixa de diálogo da conta (opcionalmente "alterar no próximo logon"). Aus Para o reset pelo administrador, delegue à conta de serviço apenas "Redefinir senha" na OU de usuários. Senhas nunca são registradas em log.