oauth-2.0 - OAuth 和 OpenIDConnect 是否仅用于针对我们的 API 对其他人应用程序进行身份验证和授权?
问题描述
我是 OAuth 2.0 和 OpenIDConnect 的新手,我想问一下是否有必要为我们的登录实现 OAuth 2.0 和 OpenIDConnect,注册我们自己创建的客户端应用程序(移动应用程序和服务器端应用程序)的流程?
因为我一直在搜索实现登录的教程,所以现在注册流程的最佳实践是使用 OAuth 2.0 和 OpenIDConnect,但它们的实现是为了保护我们的 API 免受其他人客户端应用程序的影响。此身份验证流程是否仅用于保护其他人的客户端应用程序访问我们的 API?
谢谢
解决方案
OAuth 2.0 是优雅简单还是极其复杂,这取决于您对技术的理解以及如何实现授权。
我是 OAuth 2.0 和 OpenIDConnect 的新手,我想问一下是否有必要为我们的登录实现 OAuth 2.0 和 OpenIDConnect,注册我们自己创建的客户端应用程序(移动应用程序和服务器端应用程序)的流程?
不,没有必要实施。有许多认证和授权方法。OAuth 只是比较流行的方法之一。
一个更简单而糟糕的方法是只为您的用户实现用户名和密码。在这种情况下,更简单是一个相对术语,因为现在您需要担心将用户名和密码安全地存储在某个地方。
OAuth 可用于保护对您的网站、应用程序(REST 端点)等的公共访问。OAuth 可用于服务器到服务器的授权。最后,OAuth 只是一种创建呈现给服务的令牌的方法。该服务验证该令牌的访问权限并拒绝或继续该请求。
授权和身份验证是需要大量经验才能正确实施的领域。有许多细微差别需要考虑。这就是为什么这么多公司遭到破坏,他们做错了或实施了薄弱的方法。在我访问过的一家公司进行审计时,我写下了 10 个用户名和密码,因为每个人的显示器上都有黄色的便利贴。即使是最好的 OAuth 实现也会遇到该级别的安全性问题。
推荐阅读
- ios - 在 Swift 如何识别音频文件中的多个声音?
- asp.net-core - 通过比较原始图和修改图 EF Core 来更新实体状态的通用解决方案
- r - 安装 R 时出错
- mysql - django.db.utils.OperationalError: (2002, "Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)")
- amazon-web-services - 如何将 AWS Cognito 用户与 DynamoDB 同步
- reactjs - 如何在 React .jsx 文件中包含标准 html?
- javascript - 为什么点击事件只适用于一个元素?
- c# - Microsoft office Interop word 文档从模板创建并关闭不工作
- c++ - 在 C++ 中使用智能指针在成员函数中构造的嵌套类
- php - Laravel ZIP 目录和子目录