【发布时间】:2019-06-07 05:11:47
【问题描述】:
我有一个已成功创建的 .NET Core API,它具有 OAuth 功能。
我使用grant_type=password 以及username 和password 来接收访问令牌并使用请求Authorization 标头和AuthorizeAttributes 以及控制器上的Policy 参数调用我的控制器操作行动。一切都很好。
但是,有几种情况我不确定如何处理。例如:
有时我希望我的客户端应用程序(会有多个)在用户尚未通过身份验证时允许访问 API,但我不想让它向世界开放。也就是说,对于某些端点,不需要对特定用户进行身份验证,但我想限制访问。稍后,用户可能会选择登录,根据他们的授权授予他们对更多 API 的访问权限。
我应该如何处理?我应该在每个请求中传递client_id 和client_secret 吗?如果是这样,我该如何在我的 AuthorizeAttributes 中处理这个?或者我应该使用client_id 和client_secret 和一个空白的username 和password 进行一次身份验证......然后当/如果用户实际使用所有4 个参数登录时再次验证?
【问题讨论】:
标签: c# .net authentication oauth-2.0