Foi-me dito que nosso aplicativo PHP pode precisar dar suporte à autenticação usando o ADFS.
Para uma pessoa que não é da Microsoft, o que é o ADFS?
Como isso difere em coisas como LDAP?
Como funciona? Que tipo de informação seria incluída em uma solicitação típica para um servidor ADFS? Ele foi projetado para autenticação e autorização?
Os servidores ADFS normalmente estão acessíveis na Internet (enquanto os controladores de domínio AD corporativos não seriam)?
Eu tentei ler alguns dos documentos da Technet, mas está cheio de fala da Microsoft que não é muito útil.
A Wikipedia é melhor (veja abaixo), mas talvez uma parte da comunidade ServerFault possa preencher algumas das lacunas.
Os Serviços de Federação do Active Directory (ADFS) são um componente de software desenvolvido pela Microsoft que pode ser instalado nos sistemas operacionais Windows Server para fornecer aos usuários acesso de logon único aos sistemas e aplicativos localizados nos limites da organização. Ele usa um modelo de autorização de controle de acesso baseado em declarações para manter a segurança do aplicativo e implementar a identidade federada.
A autenticação baseada em declarações é o processo de autenticação de um usuário com base em um conjunto de declarações sobre sua identidade contida em um token confiável.
No ADFS, a federação de identidades é estabelecida entre duas organizações, estabelecendo a confiança entre duas regiões de segurança. Um servidor de federação de um lado (o lado de Contas) autentica o usuário pelos meios padrão nos Serviços de Domínio Active Directory e emite um token que contém uma série de declarações sobre o usuário, incluindo sua identidade. Por outro lado, no lado Recursos, outro servidor de federação valida o token e emite outro token para os servidores locais aceitarem a identidade reivindicada. Isso permite que um sistema forneça acesso controlado a seus recursos ou serviços a um usuário pertencente a outro domínio de segurança, sem exigir que o usuário se autentique diretamente no sistema e sem que os dois sistemas compartilhem um banco de dados de identidades ou senhas do usuário.
Na prática, essa abordagem é normalmente percebida pelo usuário da seguinte maneira:
- O usuário faz login no PC local (como faria normalmente ao iniciar o trabalho pela manhã)
- O usuário precisa obter informações no site da extranet de uma empresa parceira - por exemplo, para obter preços ou detalhes do produto
- O usuário navega para o site da extranet da empresa parceira - por exemplo: http://example.com
- O site do parceiro agora não exige que nenhuma senha seja digitada. Em vez disso, as credenciais do usuário são passadas para o site da extranet do parceiro usando o AD FS
- O usuário agora está logado no site do parceiro e pode interagir com o site 'logado'
De https://en.wikipedia.org/wiki/Active_Directory_Federation_Services
fonte
Respostas:
O ADFS é a solução da Microsoft para Logon único e autenticação baseada na Web.
É usado principalmente para fornecer um único conjunto de credenciais que podem acessar uma variedade de sites não necessariamente hospedados no mesmo domínio.
LDAP:
mod_authnz_ldap
.ADFS:
Veja também esta resposta sobre o assunto.
Ele funciona com um único site (site A) que hospeda os servidores proxy do ADFS / ADFS, que tem acesso às credenciais (geralmente comunicando-se com um controlador de domínio do Active Directory). Em seguida, é atribuída uma confiança entre outros sites (sites B e C) que exigem autenticação através do ADFS.
Quando um usuário tenta acessar o site B em seu navegador, o site o redireciona para o site proxy do ADFS (site A), que solicita seu nome de usuário e senha, os autentica, devolve um conjunto de cookies para lembrá-los e os redireciona de volta ao site B, junto com um token de acesso.
Se o usuário tentar visitar o site C, ele também será redirecionado para o site A para autenticação no site proxy do ADFS. Se os cookies corretos existirem, o usuário não precisará digitar sua senha novamente, mas será redirecionado instantaneamente de volta ao site C com um token.
O ADFS pode ser configurado com reivindicações (ou permissões) específicas para o usuário, para fins de autorização. Portanto, ele pode servir aos dois papéis. (Observe a diferença entre autenticação e autorização .)
Algumas pessoas preferem não usá-lo para autorização, mas mantêm o gerenciamento de permissões no site de terceiros. A desvantagem óbvia é que ambos os sites A e B precisam acompanhar as contas de usuários, enquanto no cenário em que o ADFS lida com ambos, apenas o ADFS precisa estar ciente dos usuários.
Sim quase sempre. O ADFS é baseado na noção de que será usado principalmente para autenticação de sites. E é construído em torno do IIS.
O site proxy do ADFS é aquele geralmente acessível pela Internet. No entanto, o ADFS em si não é. O ADFS geralmente é um servidor separado do proxy do ADFS.
vinculado às credenciais e que possui a configuração de declarações e as relações de confiança. Geralmente não é acessível ao público.
servidor proxy do ADFS que hospeda a instância do IIS que possui as páginas de logon dos sites que exigem autenticação. Comunica-se de volta ao ADFS ao exigir autenticação. Geralmente acessível ao público.
fonte