这方面的文档非常稀少,这意味着我在任何地方都找不到明确的答案。如果我没记错的话,在 MVC 应用程序中使用 cookie 身份验证时,cookie 包含加密信息,该信息在每个请求中被解密并植入到 Principal 中。Bearer Tokens 也会发生同样的事情吗?令牌是否包含进入 Principal 的所有信息?它在幕后是如何运作的?如果这是一个愚蠢的问题,我很抱歉,但我发现 Asp.Net MVC 和 web api 中当前的身份验证/授权实现非常令人困惑,而且那里没有很多好的文档。
问问题
344 次
1 回答
0
根据我的理解,你说的很对。
在验证用户的凭据时,您扩展了覆盖 GrantResourceOwnerCredentials 方法的 OAuthAuthorizationServerProvider 类;然后在其中创建一个 ClaimsIdentity 实例并将其传递给 AuthenticationTicket。
ClaimsIdentity(以及任何分配的声明和数据)随后被加密并作为响应的“access_token”部分的一部分发送。
Microsoft 的 OWIN 身份验证中间件负责加密/解密和序列化过程的管道。对于 IIS 托管方案,加密使用 machine.config 中的 machineKey。对于自托管,OWIN 回退到数据保护 api
在他的博客上,Brock Allen 对微软的 OWIN 身份验证中间件以及幕后发生的事情提供了一些非常好的见解和解释。我会在这里和这里阅读以获取更多详细信息
于 2014-06-03T05:45:05.190 回答