Active Directory é ainda o diretório oficial de utilizadores em muitas organizações. Os utilizadores, as palavras-passe e as associações de grupos geralmente já residem lá e, em muitos casos, já o fazem há anos.
Mas as aplicações modernas esperam frequentemente protocolos de federação modernos e opções de autenticação mais fortes.
As novas aplicações web, plataformas SaaS e portais orientados para o cliente geralmente suportam OpenID Connect ou SAML 2.0. Esperam tokens modernos, claims, metadados de federação, fluxos de logon único e, por vezes, autenticação intensificada com MFA.
Isto cria um desafio comum: como modernizar a autenticação sem substituir o Active Directory desde o primeiro dia?
É aqui que o FoxIDs Directory Connector for Active Directory se torna útil. Permite que as organizações mantenham o Active Directory como fonte de utilizadores, palavras-passe e associações de grupos, enquanto o FoxIDs acrescenta a camada de identidade moderna no topo.
Os utilizadores ainda podem iniciar sessão com as suas credenciais Active Directory existentes. As aplicações podem ser integradas no FoxIDs utilizando OpenID Connect ou SAML 2.0. E FoxIDs pode adicionar claims, funções, autenticação multifator e uma experiência de login de marca em torno do diretório existente.
Active Directory pode ficar onde está
Muitas organizações não procuram uma migração radical do Active Directory. Simplesmente precisam de fazer com que o seu diretório existente funcione com aplicações modernas.
Com o Directory Connector for Active Directory, o FoxIDs liga-se a um componente instalado dentro do ambiente Windows do cliente, junto aos controladores de domínio. FoxIDs chama o conector através de HTTPS, e o conector valida os utilizadores, manipula as operações de palavra-passe e devolve propriedades e claims de utilizador selecionadas de Active Directory.
A parte importante é que Active Directory continua a ser oficial.
Isto significa que as palavras-passe ainda podem ser validadas pelo AD. As políticas de palavras-passe existentes ainda podem ser aplicadas. Os utilizadores ainda podem ser geridos no diretório familiar. E a adesão ao grupo pode ainda ser controlada pelos processos de TI existentes.
FoxIDs torna-se então a camada de identidade moderna na frente do AD.
Em vez de ligar todas as aplicações diretamente ao Active Directory ou LDAP, as aplicações ligam-se ao FoxIDs. O FoxIDs trata do protocolo de federação, emissão de tokens, claims e fluxo de autenticação, enquanto o AD permanece o diretório subjacente.
Isto dá às organizações um caminho de migração prático. Podem começar por manter os utilizadores em Active Directory e depois movê-los para FoxIDs quando fizer sentido. A transição não tem de acontecer de uma só vez.
OIDC e SAML 2.0 para utilizadores existentes do AD
O valor principal é simples: os utilizadores Active Directory existentes podem entrar em aplicações modernas OpenID Connect e SAML 2.0 através de FoxIDs.
Para aplicações OpenID Connect, o FoxIDs atua como o fornecedor OpenID. As aplicações podem utilizar descoberta, autenticação, logout e o endpoint UserInfo. O FoxIDs também suporta PKCE e diferentes opções de autenticação de cliente.
Para aplicações SAML 2.0, o FoxIDs pode emitir asserções SAML e atuar como fornecedor de identidade para aplicações que dependem de logon único empresarial baseado em SAML.
Isto é útil quando uma organização tem uma combinação de tipos de aplicações. Uma aplicação pode usar OpenID Connect. Outro ainda pode exigir SAML 2.0. Um terceiro poderá necessitar posteriormente de tokens de acesso OAuth 2.0 para APIs.
Os utilizadores podem ainda ser os mesmos utilizadores do AD.
Isto evita uma situação em que a organização necessite de duplicar utilizadores, criar integrações LDAP personalizadas ou migrar identidades antes que a primeira aplicação moderna possa entrar em funcionamento.
Em vez disso, o FoxIDs pode preencher a lacuna entre o diretório existente e os protocolos que as aplicações modernas esperam.
Utilize grupos AD como claims de aplicações modernas
A autenticação é apenas parte da história. As aplicações também precisam de saber quem é o utilizador e a que tem permissão de aceder.
Active Directory geralmente já contém esta informação através de associações a grupos. Um utilizador pode ser membro de um grupo de Funcionários, de um grupo de Administradores, de um grupo Financeiro ou de um grupo de Apoio ao Cliente.
O Directory Connector pode devolver atributos AD configurados como claims e associações ao grupo AD configuradas como claims. os claims de grupo são geralmente devolvidas como claims de função e podem ser incluídos grupos aninhados.
Isto possibilita a utilização de estruturas de grupos AD existentes em aplicações modernas.
Por exemplo, um grupo AD como Funcionários pode ser devolvido como o claim de função com o valor Funcionários. A aplicação não precisa de compreender o LDAP ou consultar Active Directory diretamente. Só precisa de ler os claims emitidos por FoxIDs.
A captura de ecrã abaixo mostra um utilizador Active Directory que é membro do grupo Funcionários. Esta é a associação ao grupo existente já gerida em Active Directory.
Quando o utilizador entra através de FoxIDs, a adesão ao grupo AD pode ser incluída como o claim de função no token da aplicação emitido. Neste exemplo, o grupo Funcionários é devolvido como o claim de função.
A aplicação não precisa de consultar Active Directory diretamente. Só precisa de ler os claims emitidos por FoxIDs.
Esta é uma clara separação de responsabilidades.
Active Directory continua a ser o local onde a associação é gerida. FoxIDs transforma estas informações de diretório em claims de identidade modernas. A aplicação recebe o resultado no protocolo que já suporta.
Adicionar MFA em cima do login Active Directory
Um grande benefício de utilizar FoxIDs em vez de Active Directory é que o login pode ser fortalecido sem substituir o diretório.
O FoxIDs suporta autenticação simples de dois fatores e avançada autenticação multifator no método de autenticação de login. Os fatores integrados suportados incluem o código SMS, o código de e-mail, o código da aplicação autenticadora e o código de recuperação. FoxIDs também pode utilizar outros métodos de autenticação, como OIDC ou SAML 2.0, de acordo com os passos MFA.
MFA pode ser necessário de diversas formas.
Pode ser habilitado para usuários selecionados. Pode ser exigido no método de autenticação de login. Ou uma aplicação pode solicitar MFA quando necessário. Para OpenID Connect, a aplicação pode solicitar MFA com acr_values=urn:foxids:mfa. Para SAML 2.0, MFA pode ser solicitado através do contexto de autenticação.
Isto é valioso porque nem todas as aplicações necessitam do mesmo nível de garantia em todos os momentos.
Uma aplicação interna normal pode precisar apenas de nome de utilizador e palavra-passe. Um portal de administração confidencial pode exigir MFA sempre. Outra aplicação só pode solicitar MFA para ações específicas ou sessões de maior risco.
O FoxIDs pode suportar este tipo de modelo avançado enquanto o primeiro fator ainda está validado em relação ao Active Directory.
Na prática, isto significa que as organizações podem manter o AD como fonte de utilizador e palavra-passe e, ao mesmo tempo, adicionar controlos de segurança modernos à experiência de login.
Um melhor caminho de migração
A substituição de um diretório de identidade raramente é apenas uma decisão técnica. Afeta utilizadores, aplicações, operações de TI, políticas de segurança e processos de suporte.
É por isso que um caminho gradual é importante.
Com FoxIDs, uma organização pode começar por ligar Active Directory e permitir que os utilizadores iniciem sessão com as suas credenciais existentes. O FoxIDs pode manter um registo de utilizador interno com identificadores, propriedades, claims, definições MFA e atribuições de acesso, enquanto o diretório externo permanece autoritário para validação e alterações de palavras-passe.
Posteriormente, se a organização quiser migrar totalmente os utilizadores para FoxIDs, terá um caminho para o fazer.
Isto é especialmente útil para as organizações que desejam modernizar primeiro a autenticação e decidir sobre a migração do utilizador mais tarde. Também ajuda quando diferentes grupos de utilizadores se movem a velocidades diferentes. Os colaboradores podem permanecer no AD. Os utilizadores externos já podem residir em FoxIDs. As novas aplicações podem usar OIDC. As aplicações empresariais legada podem usar SAML 2.0.
FoxIDs pode ficar no meio e fazer com que estes mundos funcionem em conjunto.
Uma experiência de login de marca
A autenticação moderna não envolve apenas protocolos e segurança. A experiência do utilizador também é importante.
Quando os utilizadores são redirecionados para iniciar sessão, a página de início de sessão deve parecer familiar e fiável. FoxIDs suporta personalização da experiência de login, incluindo o título do browser, o ícone do browser e CSS. O mesmo fluxo de login também pode orientar os utilizadores através da autenticação multifator quando é necessária uma segurança mais forte.
Isto é útil para cenários internos e orientados para o cliente.
O login de um funcionário pode utilizar o nome e o estilo da organização e ainda adicionar MFA ao nome de utilizador e palavra-passe Active Directory existentes. Um portal do cliente pode utilizar a marca do cliente. Uma aplicação orientada para parceiros pode ter uma experiência de login personalizada sem alterar a integração subjacente do AD.
O exemplo abaixo mostra um ecrã de login com a marca MFA de uma empresa fictícia, a Northbridge Systems. O utilizador inicia sessão com uma conta existente e é-lhe pedido que complete a autenticação de dois fatores SMS em FoxIDs.
O CSS completo utilizado neste exemplo está incluído no final do artigo.
O resultado é uma camada de identidade mais completa: protocolos modernos, utilizadores suportados por AD, claims, MFA e um fluxo de login de marca.
Começando
A introdução não exige que todas as aplicações ou utilizadores sejam migrados.
Um primeiro passo típico é instalar o Directory Connector for Active Directory no ambiente Windows, onde pode aceder aos controladores de domínio. A partir daí, o FoxIDs pode validar os utilizadores através do conector e emitir respostas OpenID Connect ou SAML 2.0 modernas para aplicações.
A configuração torna-se então um processo incremental. Comece com uma aplicação, mapeie os atributos AD e as associações de grupo de que a aplicação necessita, decida se deve ser necessário MFA e, opcionalmente, customise a experiência de início de sessão.
Assim que o primeiro aplicativo estiver a funcionar, o mesmo padrão poderá ser reutilizado para aplicações adicionais. Alguns podem utilizar o OpenID Connect, outros podem utilizar o SAML 2.0 e as aplicações confidenciais podem exigir o MFA quando necessário.
Para obter os passos de configuração detalhados, consulte a documentação FoxIDs Directory Connector for Active Directory.
Conclusão
O Active Directory ainda é central para muitas organizações, mas as aplicações modernas precisam de autenticação moderna.
O FoxIDs Directory Connector for Active Directory torna possível manter os utilizadores, palavras-passe e grupos existentes do AD enquanto ativa os claims OpenID Connect, SAML 2.0 e MFA através de FoxIDs.
Oferece às organizações uma forma prática de modernizar a autenticação, melhorar a segurança e suportar novas aplicações sem substituir tudo de uma só vez.
Para muitas organizações, este é o caminho mais realista a seguir: manter o que já funciona, adicionar a camada de identidade moderna e migrar quando o negócio estiver pronto.
Exemplo CSS para o ecrã de login da marca
A captura de ecrã acima utiliza CSS abaixo para estilizar a página de login FoxIDs da empresa fictícia Northbridge Systems. Altera o nome da empresa, a paleta de cores, o fundo da página, o cartão de login, a cor do foco de entrada, os botões, os links e a mensagem informativa.
Em FoxIDs, este CSS pode ser adicionado no separador Login UI do método de autenticação de login juntamente com o título e o ícone do browser.
:root {
--brand-primary: #16324f;
--brand-primary-dark: #0f2439;
--brand-accent: #1f8a8a;
--brand-accent-dark: #176d6d;
--brand-accent-soft: #e9f6f6;
--brand-bg: #f4f8fb;
--brand-surface: rgba(255, 255, 255, 0.97);
--brand-border: #dbe5ec;
--brand-text: #14202b;
--brand-muted: #5f6f7f;
}
/* Page background */
body {
background:
radial-gradient(circle at top right, rgba(31, 138, 138, 0.12), transparent 28rem),
radial-gradient(circle at bottom left, rgba(22, 50, 79, 0.10), transparent 26rem),
linear-gradient(135deg, #ffffff 0%, var(--brand-bg) 100%);
color: var(--brand-text);
}
/* Page spacing */
.container.body-content {
padding-top: 3.5rem;
padding-bottom: 3.5rem;
}
/* Main content card */
.page-content {
background: var(--brand-surface);
border: 1px solid var(--brand-border);
border-radius: 1.25rem;
box-shadow: 0 1.25rem 3rem rgba(15, 36, 57, 0.10);
padding: 2.25rem 2.5rem;
}
/* Brand block */
.brand-content {
margin-bottom: 2rem;
}
/* Hide default text and replace with fictive company name */
.brand-content-text {
visibility: hidden;
height: auto;
}
.brand-content-text::before {
content: "Northbridge Systems";
visibility: visible;
display: block;
color: var(--brand-primary);
font-size: 2.9rem;
font-weight: 600;
line-height: 1.05;
letter-spacing: -0.03em;
}
.brand-content-text::after {
content: "Secure Login";
visibility: visible;
display: block;
color: var(--brand-accent);
font-size: 1.15rem;
font-weight: 500;
margin-top: 0.35rem;
letter-spacing: 0.01em;
}
/* Hide the default icon if you want a clean text-led brand */
.brand-content-icon {
display: none;
}
/* Main headings, e.g. SMS two-factor */
h1, .h1 {
color: var(--brand-primary);
font-weight: 300;
letter-spacing: -0.03em;
margin-bottom: 1.5rem;
}
/* General supporting text */
.info-message,
.info-message-filter,
.help-block,
.text-muted,
small {
color: var(--brand-muted) !important;
}
/* Labels */
label,
.label-control {
color: var(--brand-primary) !important;
font-weight: 500;
}
/* Inputs */
.form-control,
.input-control {
border: 1px solid #cfd9e2;
border-radius: 0.5rem;
color: var(--brand-text);
min-height: 2.8rem;
background-color: #ffffff;
}
.form-control:focus,
.input-control:focus,
.input:focus {
border-color: var(--brand-accent);
box-shadow: 0 0 0 0.2rem rgba(31, 138, 138, 0.18);
outline: none !important;
}
/* Primary button */
.btn-primary,
.btn-primary:hover,
.btn-primary:focus,
.btn-primary:active,
.btn-primary:not(:disabled):not(.disabled).active,
.btn-primary:not(:disabled):not(.disabled):active,
.show > .btn-primary.dropdown-toggle {
color: #ffffff;
background-color: var(--brand-primary);
border-color: var(--brand-primary);
border-radius: 0.5rem;
font-weight: 500;
padding-left: 1.15rem;
padding-right: 1.15rem;
}
.btn-primary:hover,
.btn-primary:active,
.btn-primary:not(:disabled):not(.disabled):active {
background-color: var(--brand-primary-dark);
border-color: var(--brand-primary-dark);
}
.btn-primary:focus,
.btn-primary:not(:disabled):not(.disabled).active:focus,
.btn-primary:not(:disabled):not(.disabled):active:focus,
.show > .btn-primary.dropdown-toggle:focus {
box-shadow: 0 0 0 0.2rem rgba(22, 50, 79, 0.22);
}
/* Disabled button */
.btn-primary.disabled,
.btn-primary:disabled {
color: #ffffff;
background-color: #8ea3b7;
border-color: #8ea3b7;
}
/* Links */
a,
a:hover,
.btn-link,
.btn-link:hover,
.btn-link:focus,
.btn-link:not(:disabled):not(.disabled):active,
.btn-link:not(:disabled):not(.disabled).active,
.show > .btn-link.dropdown-toggle {
color: var(--brand-accent-dark);
text-decoration: none;
}
a:hover,
.btn-link:hover {
text-decoration: underline;
}
/* Checkbox */
.form-check-label {
color: var(--brand-text) !important;
font-weight: 400;
}
/* Optional info panel before or inside login box */
div.page-content::before {
content: "Sign in with your company account. Multi-factor authentication may be required for added security.";
display: block;
background: var(--brand-accent-soft);
color: var(--brand-primary);
border: 1px solid #cfe7e7;
border-radius: 0.75rem;
padding: 0.9rem 1rem;
margin-bottom: 1.5rem;
font-size: 0.96rem;
line-height: 1.45;
}
/* Footer */
.footer,
footer {
color: var(--brand-muted);
font-size: 0.85rem;
}
/* Mobile */
@media (max-width: 767.98px) {
.container.body-content {
padding-top: 1.5rem;
padding-bottom: 1.5rem;
}
.page-content {
border-radius: 0.9rem;
padding: 1.5rem;
box-shadow: 0 0.75rem 2rem rgba(15, 36, 57, 0.08);
}
.brand-content-text::before {
font-size: 2.2rem;
}
.brand-content-text::after {
font-size: 1rem;
}
}