Toda outra família deste catálogo responde a uma pergunta sobre tráfego. Esta responde a uma pergunta sobre pessoas, e ela vem sendo respondida de um jeito diferente mais ou menos a cada década desde que computador passou a ter mais de um usuário.

Antes do diretório

A primeira resposta foi um arquivo. O /etc/passwd em cada máquina, que funciona perfeitamente para uma máquina e vira cinquenta bases de usuário separadas no momento em que existem cinquenta servidores, cada uma mantida à mão.

O NIS da Sun, em 1984, foi a primeira tentativa séria de resposta central - baseada em difusão, sem cifra, espaço de nomes plano. Revolucionária para a época e um passivo nos anos 1990, que é descrição justa da maioria das primeiras tentativas deste catálogo.

1988: o bom modelo que ninguém conseguia rodar

O X.500 foi o serviço de diretório que o mundo OSI produziu, e o importante a dizer sobre ele é que o modelo de dados estava certo. A hierarquia, as classes de objeto, o nome distinto - tudo isso sobrevive hoje, porque tudo isso estava correto.

O protocolo em volta é que era o problema. O Directory Access Protocol exigia a pilha OSI completa e recursos de porte de mainframe; a maioria dos computadores de mesa do início dos anos 1990 simplesmente não conseguia falar com um diretório X.500. Uma especificação pode ser tecnicamente excelente e inimplantável ao mesmo tempo, e a indústria nunca foi boa em distinguir as duas coisas de antemão.

Julho de 1993: a rebelião, publicada como RFC

Tim Howes, na Universidade de Michigan, com Wengyik Yeong e Steve Kille, publicou a 1487: o X.500 Lightweight Directory Access Protocol.

Leia as decisões de projeto e a discussão fica inconfundível. Elementos de protocolo carregados diretamente sobre TCP, contornando a sobrecarga de sessão e apresentação. Elementos de dados codificados como cadeias comuns. Codificação leve em tudo. O objetivo declarado era reduzir o alto custo de entrada associado à tecnologia.

Eles mantiveram o modelo e jogaram fora o transporte. Hierarquia, classes de objeto e nomes distintos ficaram; a pilha OSI foi embora, e o que sobrou rodava sobre um soquete TCP na porta 389, em qualquer máquina existente.

O L significa uma discussão sobre processos de padronização. Um comitê produziu algo correto e inutilizável; três engenheiros publicaram uma versão enxuta que dava para implantar, e é a versão enxuta que o mundo roda. É exatamente o protesto que o artigo de SDN descreve quinze anos depois, e exatamente o desfecho que o artigo de firewall descreve quando a inspeção com estado venceu os proxies: o que entrega vence, e estar certo não basta.

O v3, RFC 2251 de 1997, acrescentou SASL, TLS, controles e referências, e ainda é a versão em produção.

Kerberos: a outra metade

O saiu do Project Athena do MIT, nos anos 1980, resolvendo outro problema: provar quem você é através de uma rede sem mandar a senha para todo serviço que pergunta.

O projeto dele descende do protocolo Needham-Schroeder e a propriedade dele é um tíquete - afirmação com prazo e proteção criptográfica de que um terceiro já verificou você. Essa é a primeira aparição, nesta família, da ideia que hoje a domina: identidade como algo AFIRMADO por um emissor confiável, em vez de conferido por cada serviço.

A divisão de trabalho que resultou disso é a que a maioria das empresas ainda roda. O LDAP responde quem existe e o que pode fazer; o Kerberos responde se a pessoa à sua frente é quem diz ser. Diretório e autenticação são problemas separados, e tratá-los como um só é fonte recorrente de confusão em revisão de projeto.

A Microsoft lançou o em 1999 e 2000 usando os dois - LDAP para consulta, Kerberos para autenticação - com extensões proprietárias por cima. É a implementação mais bem-sucedida desta família por margem enorme, e as extensões dela são a razão de "é só usar LDAP" raramente ser plano completo de migração.

A web muda a pergunta

O modelo de diretório supõe que o serviço e o usuário estão dentro da mesma fronteira administrativa. O software como serviço quebrou essa suposição por completo: a aplicação é de outra pessoa, e ainda assim precisa saber quem você é.

O respondeu com afirmações assinadas passando pelo navegador, e virou a língua do login único corporativo. O respondeu a uma pergunta relacionada mas distinta - autorização delegada, deixar uma aplicação agir em seu nome sem ter sua senha - e o OpenID Connect pôs identidade em cima dele, que é o que a maioria das aplicações modernas de fato usa.

A distinção entre os dois é a coisa mais confundida deste campo e vale dizer sem rodeio: OAuth trata de PERMISSÃO, OpenID Connect trata de IDENTIDADE, e um sistema que usa um token de autorização como prova de quem alguém é cometeu um erro de categoria que uma hora será explorado.

Os cargos e as práticas

Esta família criou o engenheiro de identidade, e é um papel com propriedade incomum: é a única disciplina de infraestrutura em que um erro tranca a organização inteira de uma vez. Isso produz uma cautela característica - implantação escalonada, contas de emergência e um caminho de volta testado - que outras disciplinas aprendem depois e esta aprende de imediato.

As práticas dela são reconhecíveis em toda parte. Entrada, movimentação e saída como ciclo de vida, e não como três chamados. Desprovisionamento como o controle que de fato importa, porque a conta que ninguém fechou é a via de entrada mais comum. Menor privilégio e a revisão de direitos que vem junto, que existem porque diretório acumula exatamente como base de regras de firewall, e pela mesma razão - ninguém consegue provar o que quebraria ao remover algo.

A Sarbanes-Oxley, em 2002, transformou controle de acesso em responsabilidade legal, e a governança de identidade virou categoria do mesmo jeito que o firewall de aplicação web: a regulação criou o mercado, e o centro de compra saiu da engenharia e foi para a auditoria.

As empresas

A pesquisa veio de Michigan e do MIT, e nenhuma das duas a comercializou. A Novell foi dona do mercado de diretório e o perdeu; a Microsoft o segura há vinte e cinco anos; Sun, Oracle, IBM e Ping Identity construíram a camada de federação; Okta, Ping, Microsoft Entra e ForgeRock seguram o mercado moderno, com Keycloak e OpenLDAP carregando a linhagem aberta.

Para onde vai

Identidade virou o plano de controle. Todo artigo de família desta série termina com a política migrando para identidade, e é aqui que ela migrou. Quando o perímetro se dissolve, a pergunta "esta conexão é permitida" passa a ser respondida por quem e o quê, e não por onde.

Identidade de carga de trabalho já é maior que identidade humana. A maior parte das autenticações num parque moderno é um serviço se provando a outro, e os mecanismos - certificados, tokens, hardware atestado - são os mesmos, aplicados a coisas que não esquecem senha.

Senhas estão sendo removidas, e não fortalecidas. Chaves de acesso e autenticadores de plataforma são a primeira mudança em cinquenta anos que REMOVE o segredo compartilhado em vez de alongá-lo, e é a única correção estrutural que esta família já teve disponível.

E a discussão da ossificação está na hora de novo. O LDAP venceu porque era implantável quando a resposta correta não era. Os padrões de identidade de hoje são grandes, em camadas e cada vez mais difíceis de implementar por completo - que é exatamente a condição em que alguém publica uma versão enxuta e todo mundo adota. A história deste artigo diz que essa pessoa será um engenheiro com um problema específico de implantação, e não um comitê.

Fontes