Bem, não exatamente para uma criança de 5 anos, mas evite a palavra da moda e as empresas, se possível.
A autenticação baseada em declarações parece ser a última moda agora, mas não consegui encontrar uma explicação simples e prática do que realmente é, como é diferente do que temos agora (presumo "o que temos agora" autenticação baseada em função), quais são os benefícios de usá-la etc.
terminology
claims-based-identity
Anton Gogolev
fonte
fonte
Respostas:
O @Marnix tem uma resposta muito boa, mas para se afastar do aspecto técnico:
A autenticação com base em declarações refere-se à definição de quem você confia para fornecer informações precisas sobre identidade e ao uso apenas dessas informações fornecidas. Meu (o) exemplo a seguir está em um bar. Imagine por um momento que você quer tomar uma cerveja no bar. Em teoria, o barman deve pedir uma prova de idade. Como você prova isso? Bem, uma opção é fazer com que o barman o corte ao meio e conte o número de toques, mas pode haver alguns problemas com isso. A outra opção é escrever o seu aniversário em um pedaço de papel para o qual o barman aprova ou desaprova. A terceira opção é ir ao governo, obter um cartão de identificação e depois apresentá-lo ao barman.
Alguns podem rir da ideia de escrever seu aniversário em um pedaço de papel, mas é isso que acontece quando você autentica usuários no próprio aplicativo, porque depende do barman (ou do seu aplicativo) confiar no pedaço de papel . No entanto, confiamos na afirmação do governo de que o aniversário no ID é válido e o ID é para a pessoa que solicita a bebida. Para todos os efeitos, o barman (ou aplicativo) realmente não se importa com a forma como a autenticação ocorreu devido à confiança. O barman não sabe nada sobre você, exceto sua data de nascimento, porque é tudo o que o barman precisa saber. Agora, o barman pode armazenar informações que eles considerem importantes para eles, como sua bebida favorita, mas o governo não se importa (pois não é a fonte autorizada),
A chave do CBA é "quem é a fonte autorizada da identidade?"
fonte
(Esta é a minha opinião pessoal sobre isso, outros podem diferir. Poste outros pontos de vista como respostas separadas.)
Identidade / autenticação / autorização baseada em declarações é sobre separar a manutenção de autorizações de usuário e logon de usuário de um aplicativo (web), transformando autenticação / autorização em um serviço (web) separado.
Por exemplo, quando eu navego para um aplicativo Web habilitado para declarações pela primeira vez, ele redireciona meu navegador para um 'serviço de logon' em que confia. Eu vou me autenticar nesse serviço (usando autenticação do Windows, um cartão inteligente ou qualquer outra coisa) e, em resposta, ele envia de volta um 'token', que o navegador envia de volta ao aplicativo Web. Agora, o aplicativo da Web verifica se o token é assinado digitalmente por seu serviço de logon confiável e, em seguida, analisa as 'declarações' no token. Com base exclusivamente nessas alegações, o aplicativo decide qual funcionalidade o usuário é oferecido.
As declarações quase sempre incluem a identidade do usuário, geralmente também há declarações relacionadas à autorização ('esse usuário pode visualizar dados de vendas, mas não atualizá-lo') e, às vezes, outras informações também ('tamanho do sapato = 42').
O ponto principal é que o aplicativo não sabe nem se importa como o usuário foi autenticado, nem como as autorizações são administradas: ele usa apenas as informações das declarações no token assinado para determinar quem é o usuário e / ou o que o usuário pode veja ou faça e / ou qualquer outra informação sobre o usuário.
(Sim, estou assumindo uma criança de 5 anos bastante inteligente e bem informada aqui. :-)
fonte
O exemplo do mundo real a seguir é retirado de Um Guia para Identidade Baseada em Declarações e Controle de Acesso (2ª Edição) .
fonte
Para um garoto de cinco anos, peça que ele assuma que ele ingressou em uma nova escola assinando o pedido de seus pais. Após a aprovação da administração da escola para sua inscrição, ele recebe um cartão de acesso que contém todas as informações abaixo que podemos chamar de RECLAMAÇÕES para entrar na escola.
No primeiro dia de aula, enquanto ele entra na escola, ele passa o cartão de acesso e os portões se abrem, significa que ele foi RECLAMADO como uma das pessoas da escola. Dessa forma, ele é uma PESSOA AUTENTICADA para entrar na escola.
Depois de chegar à sua turma, ele usou o cartão de acesso para entrar em cada turma, mas às portas da 8ª classe se abriram como alegava ser da 8ª classe.
Na escola, ele só está autorizado a entrar em sua classe, pois agora estuda o 8º padrão. E se ele tentar entrar no 6º Padrão, o professor da escola NÃO O AUTORIZARÁ.
fonte
Tão não técnico quanto possível:
Se você descrevesse algo sobre quem você é e o que podia ver ou fazer, cada uma dessas coisas seria algo que você estava "alegando" ser verdade e, portanto, cada "coisa" nessa lista seria um " afirmação".
Sempre que você disser a alguém algo sobre você ou "reivindicar" que você pode ver ou fazer algo, você entrega a sua lista de reivindicações. Eles verificarão com uma autoridade que suas reivindicações são verdadeiras e, se forem, acreditarão em qualquer coisa nessa lista de reivindicações. Portanto, se você afirma que é Brad Pitt, sua lista de afirmações diz que você é Brad Pitt e foi verificado com a autoridade que todas as suas afirmações são verdadeiras - elas acreditarão que você é Brad Pitt, juntamente com qualquer outra coisa nessa lista.
Reivindicação : o que você afirma ser verdadeiro. Pode ser uma informação ou uma descrição de uma permissão que você alega ter. O sistema ao qual você apresenta suas reivindicações precisa entender apenas o que é / significa e também pode verificar com a autoridade.
Autoridade : o sistema que reúne sua lista de reivindicações e a assina, que basicamente diz "Sob minha autoridade, tudo nesta lista é verdadeiro". Enquanto o sistema que estiver lendo as declarações puder verificar com a autoridade que a assinatura está correta, tudo na lista de declarações será considerado autêntico e verdadeiro.
Além disso, não vamos chamá-lo de "autenticação baseada em declarações"; em vez disso, vamos chamá-lo de "identidade baseada em declarações".
Um pouco mais técnico:
Portanto, agora neste processo, você se autentica usando algum tipo de mecanismo (nome de usuário / senha, segredo do cliente, certificado etc.) e fornece um token que prova que você é quem diz ser. Em seguida, você troca esse token de acesso por um token de ID. Esse processo usará sua identidade para encontrar e criar uma lista de reivindicações, assiná-la e, em seguida, devolver um token de identificação com todas as suas reivindicações.
Como etapa da autorização , dependendo de como é implementado, o recurso analisará seu token de ID (declarações) e verificará se você possui as declarações necessárias para acessar esse recurso.
Por exemplo, se o recurso "CastleBlack / CommandersTower" diz que "você precisa ter acesso ao castelo preto e ser o comandante do lorde, ele analisará sua lista de reivindicações para ver se essas duas coisas são verdadeiras.
Como você vê, "reivindicações" pode ser qualquer coisa. Pode ser um papel, pode ser um fato, pode ser uma bandeira. É apenas uma lista de pares de valores-chave e o "valor" é opcional. Às vezes, é apenas ver se a reivindicação existe:
Portanto, se Jon se conectasse e tentasse acessar o recurso descrito acima, ele seria negado porque, embora seja quem ele diz ser e tenha acesso ao castelo negro, ele não é mais o comandante do senhor nem tem acesso explícito a a torre do comandante e, portanto, não pode implicitamente entrar na torre do comandante.
Mais especificamente, "CastleBlack" provavelmente seria um escopo [maior], e cada área seria uma permissão específica, mas essa é uma discussão diferente.
Como cada aplicativo lida com o acesso será diferente, mas usará declarações para fazer isso.
fonte
Considerando que uma declaração é um atributo que informa algo sobre o usuário (nome, idade, etnia etc.), você trabalha em um serviço de token de segurança para validar essas declarações e também as usa para autorização, além da autenticação.
O trecho a seguir foi retirado da Wikipedia ( http://en.wikipedia.org/wiki/Claims-based_identity ) e é a melhor analogia que encontrei até agora
"Para entender melhor o conceito de serviço de token de segurança, considere a analogia de uma boate com um porteiro. O porteiro quer impedir a entrada de clientes menores de idade. Para facilitar isso, ele solicita que um cliente apresente uma carteira de motorista, cartão de seguro de saúde ou outra identificação (o token) emitida por um terceiro confiável (o serviço do token de segurança), como o departamento de licença de veículo provincial ou estadual, departamento de saúde ou companhia de seguros. A boate é assim aliviada da responsabilidade de determinar a responsabilidade do cliente Só precisa confiar na autoridade emissora (e, é claro, julgar a autenticidade do token apresentado). Com essas duas etapas concluídas, a boate autenticou com êxito o usuário com relação à alegação de que ele é idade legal para beber.
Continuando a analogia, a boate pode ter um sistema de associação e alguns membros podem ser regulares ou VIP. O porteiro pode pedir outro token, o cartão de sócio, que pode fazer outra reivindicação; que o membro é um VIP. Nesse caso, a autoridade emissora confiável do token provavelmente seria o próprio clube. Se o cartão de associado alegar que o usuário é um VIP, o clube poderá reagir de acordo, traduzindo a solicitação de associação VIP autenticada para uma permissão, como o usuário que pode sentar-se na área exclusiva do lounge e receber bebidas gratuitas ".
fonte