通过OWIN实施了Google OAuth2后,我对一般的声明提出了疑问。
我们需要大量的声明,以便设置基于声明的授权。请注意,这不是基于声明的身份验证。 Google只提供一些声明,如电子邮件,姓名等。
我们需要更多声明,以便我们可以控制对资源的访问(授权)。在阅读了Microsoft的文档以及他们发布的相关电子书后,他们会这样说:
因为索赔涉及与发行人的明确信任关系, 您的应用程序仅相信当前用户的声明 信任发出索赔的实体。 见这里:An Introduction To Claims
我倾向于将自定义声明添加到AspNetUserClaims表。实际上,我已经完成了这项工作,并将声明与通过与Google集成创建的AspNetUser相关联。然而,这感觉无异于此时的伪造,因为谷歌尚未发布这些声明,我们的企业已经。看来,索赔概念的精神是“信任发行人”。哪个实体被视为索赔的发行人?这种混合方法是否可以通过外部发行人添加对身份验证的声明,这是一种公认的方法吗?除了手动将我们自己企业内的声明添加到这些经过外部验证的用户之外,我无法了解如何扩展Google提供的有限信息(这对于身份非常有用)。
顺便提一下,在ClaimsPrincipal.Current.Claims中找到的每个索赔都将Issuer和OriginalIssuer显示为" LOCAL AUTHORITY" ......没有关于Google的内容。