4

我通过http://www.asp.net/web-api/overview/security/individual-accounts-in-web-api教程来实现 ASP.NET WebApi Bearer Token 身份验证。

当我在 Azure 网站上停止/重新启动/部署后使用已发布的不记名令牌访问[Authorize]方法时,它仍然可以访问它们。此外,我可以使用两个不同的设备(相同身份的不同令牌)访问,仍然可以访问。

我不了解令牌识别机制的内部,但似乎已发布的不记名令牌既不在服务器内存中,也不在数据库中维护。

我的问题可以总结如下......

  1. 不记名令牌是否会持续包含我的身份并在我重新授权之前确认我(基于上述教程)?
  2. 要混合和散列以制作不记名令牌的信息是什么?只有我的领域、身份和时间戳?或服务器密钥(我知道以前的 ASP.NET 成员在注册表中使用服务器密钥)?
  3. 如果我作为 WebRoles 部署到多个服务器会怎样?他们是否仍然承认已发布的代币等?
  4. 每个身份是否有最大数量的可识别令牌?
4

1 回答 1

2
  1. 不记名令牌不会确认您,oauth 令牌提供程序端点会使用不记名令牌确认您。令牌将持续存在并识别您,直到它过期(默认 10 分钟)。在此示例应用程序中,它设置为 14 天,请参阅AccessTokenExpireTimeSpan = TimeSpan.FromDays(14)
  2. 它还可能包括一些请求本身。
  3. 示例应用程序为 OAuth 令牌提供程序使用 OWIN 中间件实现,请参阅app.UseOAuthBearerTokens(OAuthOptions);这是基于每个服务器的,还有其他令牌提供程序支持服务器的多个实例,例如 facebook、google、microsoft 帐户、twitter,或者您可以滚动你自己。
  4. 这取决于令牌提供者,但大多数情况下,您可以拥有多个具有相同身份的会话。
于 2014-06-17T05:34:05.533 回答