用于身份验证的 JWT
问题是,如何在不使用 oAuth、authO 或 Okta 的情况下向不同平台上的特定应用授予后端权限。
Auth0 和 Okta 是使用 OAuth2 和/或 OpenID Connect 标准对用户进行身份验证的身份验证提供程序,生成的令牌是 JWT,更准确地说是签名的 JWT,JWS 知道:
A JSON Web Signature (abbreviated JWS) is an IETF-proposed standard (RFC 7515) for signing arbitrary data.
This is used as the basis for a variety of web-based technologies including JSON Web Token.
JWT 可以在这种情况下工作吗?
是的,您只需要找到正确的包以在您的 API 服务器和前端中使用。
请记住,用户身份验证仅识别 谁 在请求中,而不是 什么 正在执行请求,根据我的经验,我认为这是常见的开发人员之间的误解,无论是初级还是高级。
访问 API 服务器的人和对象之间的区别
我写了一篇关于 API 和移动安全的 series of articles,在文章 Why Does Your Mobile App Need An Api Key? 中我更详细地介绍了 Who 和 What 之间的区别访问您的 API 服务器:
what 是向 API 服务器发出请求的事物。它真的是您的移动应用程序的真实实例,还是机器人、自动脚本或攻击者使用 Postman 之类的工具手动绕过您的 API 服务器?
谁是移动应用的用户,我们可以通过多种方式进行身份验证、授权和识别,例如使用 OpenID Connect 或 OAUTH2 流。
我希望在阅读后您现在意识到 谁 是您的 API 服务器将能够验证和授权访问数据的用户,以及 什么 strong> 是代表用户发出请求的软件。
将 API 服务器锁定到特定应用程序
我打算授予对 web 应用程序、android 应用程序和 ios 应用程序的 api 访问权限。问题是,如何在不使用 oAuth、authO 或 Okta 的情况下向不同平台上的特定应用授予后端权限。
好吧,你给自己买了一个很难解决的问题,但我们开发人员喜欢挑战,不是吗;)
虽然用户身份验证可能会让 API 服务器知道 谁 正在使用 API,但它不能保证请求源自您所期望的 What,即您的原始版本移动应用程序或网络应用程序,令您惊讶的是,您最终可能会发现有时您自己的合法用户可能会尝试绕过您的服务并使用重新打包的移动应用程序或自动化脚本版本来访问他们不会拥有的功能或好处否则。
要保护您的 API 服务器,您需要使用尽可能多的层进行深度防御(就像过去几个世纪在城堡中所做的那样),并且可能是法律或特定市场法规要求的。
对于网络应用程序
在 web 应用程序的上下文中,您可能希望按照我在 this answer 上的建议解决从应用程序调用中保护 api 数据,特别是标题为 DEFENDING THE API 服务器。
对于移动应用程序
对于移动应用,在使用 Mobile App Attestation 的概念时,API 服务器可以对 什么 发出请求更有信心,您可以阅读this answer我给出的问题如何保护移动应用的 API REST? 了解更多详情。您将专门阅读保护 API 服务器部分和可能更好的解决方案部分。
您想加倍努力吗?
在我对安全问题的任何回复中,我总是喜欢参考 OWASP 基金会的出色工作,它可以帮助您加强应用程序和服务器的安全性。
对于网络应用程序
OWASP Web Top 10 Risks
OWASP Top 10 是一份功能强大的 Web 应用程序安全意识文档。它代表了对 Web 应用程序最关键的安全风险的广泛共识。项目成员包括来自世界各地的各种安全专家,他们分享了他们的专业知识来制作此列表。
The Web Security Testing Guide:
OWASP Web 安全测试指南包括用户可以在自己的组织中实施的“最佳实践”渗透测试框架和描述测试最常见 Web 应用程序和 Web 服务安全问题的技术的“低级”渗透测试指南。
对于移动应用
OWASP Mobile Security Project - Top 10 risks
OWASP 移动安全项目是一个集中资源,旨在为开发人员和安全团队提供构建和维护安全移动应用程序所需的资源。通过该项目,我们的目标是对移动安全风险进行分类并提供开发控制以减少其影响或被利用的可能性。
OWASP - Mobile Security Testing Guide:
移动安全测试指南 (MSTG) 是一本用于移动应用安全开发、测试和逆向工程的综合手册。
对于 APIS
OWASP API Security Top 10
OWASP API 安全项目旨在通过强调不安全 API 中的潜在风险并说明如何降低这些风险,为软件开发人员和安全评估人员提供价值。为了实现这一目标,OWASP API 安全项目将创建和维护一份 API 安全风险前 10 名文档,以及一个文档门户,用于在创建或评估 API 时提供最佳实践。