o que significa mecanismo de reivindicação no novo ASP.NET Identity Core?
Existem duas abordagens de autorização comuns baseadas em Função e Reivindicação.
Segurança baseada em funções
Um usuário é atribuído a uma ou mais funções através das quais o usuário obtém direitos de acesso. Além disso, ao atribuir um usuário a uma função, o usuário obtém imediatamente todos os direitos de acesso definidos para essa função.
Segurança baseada em declarações
Uma identidade baseada em declarações é o conjunto de declarações. Uma declaração é uma declaração que uma entidade (um usuário ou outro aplicativo) faz sobre si mesma, é apenas uma declaração. Por exemplo, uma lista de declarações pode ter o nome do usuário, email do usuário, idade do usuário, autorização do usuário para uma ação. Na segurança baseada em função, um usuário apresenta as credenciais diretamente para o aplicativo. Em um modelo baseado em declarações, o usuário apresenta as declarações e não as credenciais para o aplicativo. Para uma reivindicação ter valor prático, ela deve vir de uma entidade na qual a aplicação confia.
As etapas abaixo ilustram a sequência do que ocorre em um modelo de segurança baseado em declarações:
- O usuário solicita uma ação. O aplicativo de terceira parte confiável (RP) solicita um token.
- O usuário apresenta as credenciais à autoridade emissora em que o aplicativo RP confia.
- A autoridade emissora emite um token assinado com declarações, após autenticar as credenciais do usuário.
- O usuário apresenta o token para o aplicativo RP. O aplicativo valida a assinatura do token, extrai as declarações e, com base nas declarações, aceita ou nega a solicitação.
Mas ainda não consigo entender e encontrar nenhuma informação quando os dados são adicionados ao AspNetUserClaims e para quais situações essa tabela está sendo usada?
Quando você está em uma situação em que uma segurança baseada em funções não é usada e optou por usar a segurança baseada em declarações, seria necessário utilizar a tabela AspNetUserClaims. Para saber como usar declarações na identidade do ASP.NET, consulte o link abaixo para obter mais informações.
http://kevin-junghans.blogspot.com/2013/12/using-claims-in-aspnet-identity.html
Atualizar
Que horas tenho para usar a segurança baseada em função e quando baseada em declaração? Você poderia escrever alguns exemplos?
Não há uma situação muito clara em que você usaria ou não a segurança baseada em funções ou em declarações, não como um caso em que você usaria A em vez de B.
Porém, o controle de acesso baseado em declarações permite uma melhor separação das regras de autorização da lógica comercial principal. Quando as regras de autorização são alteradas, a lógica de negócios principal permanece inalterada. Em algumas situações, você pode preferir usar a abordagem baseada em declarações.
Às vezes, reivindicações não são necessárias. Este é um aviso importante. As empresas com vários aplicativos internos podem usar a Autenticação Integrada do Windows para obter muitos dos benefícios fornecidos pelas declarações. O Active Directory faz um ótimo trabalho de armazenamento de identidades de usuários e, como o Kerberos faz parte do Windows, seus aplicativos não precisam incluir muita lógica de autenticação. Desde que todos os aplicativos que você construa possam usar a Autenticação Integrada do Windows, você já pode ter atingido sua utopia de identidade. No entanto, existem muitas razões pelas quais você pode precisar de algo diferente da autenticação do Windows. Você pode ter aplicativos voltados para a Web usados por pessoas que não têm contas no domínio do Windows. Outro motivo pode ser que sua empresa se fundiu com outra e você ' está tendo problemas para se autenticar em duas florestas do Windows que não têm (e talvez nunca) tenham um relacionamento de confiança. Talvez você queira compartilhar identidades com outra empresa que não tenha aplicativos .NET Framework ou precise compartilhar identidades entre aplicativos em execução em plataformas diferentes (por exemplo, o Macintosh). Estas são apenas algumas situações em que a identidade baseada em declarações pode ser a escolha certa para você.
Para mais informações, visite http://msdn.microsoft.com/en-us/library/ff359101.aspx