【发布时间】:2015-07-25 03:05:48
【问题描述】:
我正在基于 Web API 2 模板的 Web 服务中设置刷新令牌。我们自己的网站以及外部客户都将使用它。
经过一段时间的研究,保护刷新令牌免受 XSS 攻击的一般建议是将标识符存储在加密的 cookie 中。我知道我可以通过使用 UseCookieAuthentication 方法而不是 UseOAuthBearerAuthentication 来返回 cookie 中的身份验证和刷新令牌,但是当我与外部客户端打交道时会导致复杂性。
我目前用于设置配置的代码是:
public void ConfigureAuth(IAppBuilder app)
{
var applicationProvider = new ApplicationOAuthProvider();
var applicationRefreshProvider = new ApplicationRefreshTokenProvider();
var oAuthServerOptions = new OAuthAuthorizationServerOptions
{
AllowInsecureHttp = true,
TokenEndpointPath = new PathString("/token"),
AccessTokenExpireTimeSpan = TimeSpan.FromDays(1),
Provider = applicationProvider,
RefreshTokenProvider = applicationRefreshProvider
};
// Token Generation
app.UseOAuthAuthorizationServer(oAuthServerOptions);
app.UseOAuthBearerAuthentication(new OAuthBearerAuthenticationOptions());
}
我可以实现的解决方法是向资源服务器上的控制器添加一个方法,然后为基于 javascript 的客户端执行转换步骤,但这对我来说不太有意义。
有没有办法可以在身份验证配置中完成此操作,这是正确的方法吗?如果我能帮上忙,我不想走错方向。
【问题讨论】:
标签: c# asp.net-web-api oauth-2.0 asp.net-identity owin