我演练了
http://www.asp.net/web-api/overview/security/individual-accounts-in-web-api教程来实现ASP.NET WebApi Bearer Token身份验证.
当我在Azure WebSite上停止/重新启动/部署后访问已发布的承载令牌的[Authorize]方法时,它仍然可以访问它们.此外,我可以访问两个不同的设备(相同身份的不同令牌),仍然可以访问.
我不知道令牌识别机制的内部深处,但似乎发布的承载令牌不在服务器内存或数据库中维护.
我的问题可归纳如下……
>持票人令牌是否持续包含我的身份并在我重新授权之前确认我(基于上述教程)?
>为了制作持票人令牌,要混合和散列的信息是什么?只有我的relm,身份和时间戳?或服务器密钥(我知道以前的ASP.NET成员资格在注册表中使用服务器密钥)?
>如果我作为WebRoles部署到多个服务器怎么办?他们是否仍然承认已发布的令牌?
>每个身份是否有最大数量的可识别令牌?
最佳答案 >承载令牌不会确认您,oauth令牌提供程序端点会使用承载令牌向您确认.令牌将持续存在并识别您的到期(默认为10分钟).在此示例应用程序中,它设置为14天,请参阅AccessTokenExpireTimeSpan = TimeSpan.FromDays(14)
>它可能还包括一些请求本身.
>示例应用程序为OAuth令牌提供程序使用OWIN中间件实现,请参阅app.UseOAuthBearerTokens(OAuthOptions);这是基于每个服务器的,并且还有其他令牌提供程序来支持服务器的多个实例,例如Facebook,谷歌,微软帐户,推特,或者你可以自己推出.
>它取决于令牌提供程序,但大多数情况下,您可以拥有多个具有相同标识的会话.