0

我有一个 Web 应用程序,其中包含浏览器提供的 javascript 应用程序和 Android 手机应用程序使用的服务。

javascript 应用程序使用 System.IdentityModel.SessionAuthenticationModule cookie 进行身份验证,移动应用程序在 Authentication 标头中使用 JWT 令牌。

我可以将应用程序配置为使用 System.IdentityModel.SessionAuthenticationModule 和 cookie 工作或 thinktecture AuthorizationHandler 和令牌工作,但我不知道如何让它们同时工作?

这个答案Thinktecture IdentityModel AuthenticationConfiguration Mapping for Cookie - how?表明这是不可能的,但它似乎使用的是自定义 cookie 而不是FederatedAuthentication.SessionAuthenticationModule.WriteSessionTokenToCookie(token);

4

1 回答 1

0

只要 web.config 中没有授权元素妨碍,这应该可以工作。或者 IOW 使用 AuthorizeAttribute 代替。

但这是基于 cookie 的 Web API 身份验证的普遍问题,因为现在您正在向 CSRF 攻击敞开大门。您真正应该做的是分离 UI 和 API,并将两个客户端视为“外部”,并使用基于令牌的身份验证。但这当然是一个巨大的架构变化(尽管方向正确)。

于 2014-02-01T09:16:33.757 回答