首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >API身份验证的最佳实践是什么?

API身份验证的最佳实践是什么?
EN

Stack Overflow用户
提问于 2017-02-08 13:54:04
回答 3查看 7.1K关注 0票数 6

我想为我的web构建一个基于令牌的身份验证,让第三方应用程序访问这些API。

没有用户交互,也没有委托、角色和连接的应用程序从管理门户手动管理。

有了这些需求,获得jwt令牌的最佳实践是什么?

我需要像OpenID或OAuth2这样的协议,还是简单地公开一个接受APIKey的端点,如果APIKey是有效的,它将返回一个安全令牌?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2017-02-15 12:48:58

所以,我知道你的要求是一台机器到机器的通讯。如果是,最简单的方法是实现“客户端凭据授予OAuth 2.0流”(参见:文档)。

只有当数据不包含高度敏感的数据时,上述方法才适用。

其他选项是使用自己的代码或使用第三方框架实现一个完整的授权服务器,并遵循“授权代码授予OAuth 2.0流”(参见:文档)。

这个选项很昂贵,我推荐第一个。

票数 2
EN

Stack Overflow用户

发布于 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。

票数 6
EN

Stack Overflow用户

发布于 2017-02-16 16:16:37

我建议您有一个单独的身份验证服务器,以便您的管理、身份验证和授权与逻辑/UI分开保存。

https://github.com/IdentityServer/IdentityServer3是一个很好的实践。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42115027

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档