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:
claims : [
{"type": "name", "value": "Jon Snow"},
{"type": "home", "value": "Winterfell, The North, Westeros"},
{"type": "email", "value": "jon@nightswatch-veterans.org"},
{"type": "role", "value": "veteran;deserter;"},
{"type": "department", "value": "none"},
{"type": "allowEntry", "value": "true"},
{"type": "access", "value": "castleblack;eastwatch;"}
]
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.