【发布时间】:2017-06-26 04:24:06
【问题描述】:
我想为我的 Web API 构建基于令牌的身份验证,以让第 3 方应用程序访问这些 API。
没有用户交互,没有委托,角色和连接的应用程序都是从管理门户手动管理的。
根据这些要求,获取 jwt 令牌的最佳做法是什么?
我是否需要像 OpenID 或 OAuth2 这样的协议,或者只是公开一个接受 APIKey 的 Endpoint,如果 APIKey 有效,它将返回一个安全令牌?
【问题讨论】:
-
最好的方法是与第 3 方应用程序和第 3 方本身共享密钥,以根据密钥从他们这边构建 JWT,您的 api 只需验证令牌。
-
@CuongLe 您能否添加您的评论作为讨论的答案?
-
我的评论真的能解决你的问题吗?
-
如果您需要连接第 3 方,您可能需要一个“标准/事实”系统,而不是自定义系统。此外,在您设计 API(两足与三足 OAuth2 等)时,应用程序到应用程序与最终用户到应用程序的要求是基本要求。我建议你从google的做事方式中汲取灵感:developers.google.com/identity/protocols/OAuth2ServiceAccount你只有客户端(json/rest),但它可以很好地理解你应该在服务器端做什么。
-
@SimonMourier 感谢您的链接。我的 scanrio 是代表用户登录,但使用服务器到服务器的身份验证。当用户批准访问他/她的数据时,OAuth2 和 OpenID 似乎很棒
标签: authentication asp.net-web-api oauth-2.0 openid