我有一个 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 端点并不是真正的控制器操作。
是的,您应该将令牌端点设为安全。
在 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
将强制 url 是否为 SSL。