我有一个Web API项目,遵循此处概述的基本帐户身份验证过程:http://www.asp.net/web-api/overview/security/individual-accounts-in-web-api。我的问题是我应该用SSL(或其他东西)保护/ Token enpoint吗?否则,对“myURL / Token”的API调用只是通过明文发送,其中包含用户名和密码?
我在Web API SSL上阅读了这篇文章:http://www.asp.net/web-api/overview/security/working-with-ssl-in-web-api但我不知道应该在哪里放置[RequireHttps]属性,因为/ Token enpoint实际上不是控制器操作。
感谢您提供的任何指导!
答案 0 :(得分:5)
是的,您应该将令牌端点设置为安全。
在OAuthurizationServerOptions下的Setup.Auth.cs
文件中,您可以指定令牌端点是否需要SSL。
OAuthOptions = new OAuthAuthorizationServerOptions
{
TokenEndpointPath = new PathString("/Token"),
Provider = new ApplicationOAuthProvider(PublicClientId),
AuthorizeEndpointPath = new PathString("/api/Account/ExternalLogin"),
AccessTokenExpireTimeSpan = TimeSpan.FromMinutes(20),
AllowInsecureHttp = false
};
AllowInsecureHttp
会强制网址为SSL。