我想为我的web构建一个基于令牌的身份验证,让第三方应用程序访问这些API。
没有用户交互,也没有委托、角色和连接的应用程序从管理门户手动管理。
有了这些需求,获得jwt令牌的最佳实践是什么?
我需要像OpenID或OAuth2这样的协议,还是简单地公开一个接受APIKey的端点,如果APIKey是有效的,它将返回一个安全令牌?
发布于 2017-02-15 12:48:58
发布于 2017-02-16 15:58:38
首先,我想解释一下OAuth和OpenID之间的区别。用户阿德里安班克斯对比了回答中的这两种情况。总之,OpenID是关于身份验证的--证明你是谁。OAuth是关于授权的--您是否可以访问该功能、数据和应用程序?现在回到你的问题上。
无论您是否需要OAuth,都应该查看奥林 (OpenWebInterfacefor.NET)中间件。我们目前正在使用OWIN来实现我们自己的开放API及其OAuth 2.0授权服务器功能。但是,OWIN并不局限于实现OAuth身份验证服务器。一定要看一看它是否符合你的需要。
就您的情况而言,实现OAuth 2.0可能不是必要的;然而,这正是我所建议的。对于这个问题,它是一个好的,安全的解决方案。它不仅将解决这个问题,而且在将来,如果您希望允许用户授权第三方集成,OAuth --更安全的选项--将已经实现。
如果不让用户使用第三方集成,则可以使用API键.只要您以安全的方式实现它,这是一个很好的选择。如果这是您要寻找的更多内容,请阅读有关使用API密钥为ASP.NET Web项目安全地验证(并授权)第三方应用程序的ASP.NET。
发布于 2017-02-16 16:16:37
我建议您有一个单独的身份验证服务器,以便您的管理、身份验证和授权与逻辑/UI分开保存。
https://stackoverflow.com/questions/42115027
复制相似问题