为什么我们需要授权和身份验证?🔑
什么是授权和身份验证?
授权和身份验证的类型
API 测试器应用中的授权和身份验证如何工作
如何使用 API Tester App 测试身份验证和授权。
基本身份验证
API 密钥认证
结论
我们生活在一个数字数据日益成为宝贵资产的时代,随之而来的是隐私和安全的需求。授权和身份验证是两项重要的安全措施,它们使我们能够保护数据并确保只有授权人员才能访问。在本文中,我们将讨论为什么需要授权和身份验证、不同类型的授权和身份验证方法,以及如何在 API Tester 移动应用程序中应用它们。
什么是授权和身份验证?
授权和认证是计算机安全中的两个不同的概念。
授权是确定个人是否有权访问系统或资源的过程。API 授权可确保客户端请求能够安全地访问数据。这可能包括验证请求发起者的身份,以及他们是否有权查看或更改相关数据。如果您正在构建 API,则有许多不同的授权模型可供选择。如果您正在集成第三方 API,API 提供商将概述必要的授权。
身份验证涉及验证个人或系统的身份,以确保其身份与其声称的身份相符。授权和身份验证协同工作,为保护数据提供一个安全的环境,确保只有授权人员才能访问数据。随之而来的一个问题是:服务器如何识别谁可以访问其声称的信息?身份验证是客户端通过 API 访问服务器资源的凭证。
授权和身份验证的类型
有几种类型的授权和身份验证方法可用于保护数据。最常见的类型是:
1. OAuth 访问令牌用于授权对用户数据的有限访问请求。访问令牌在用户通过服务身份验证后颁发给用户,并用于访问受保护的资源。OAuth 的实现可能更复杂,但它提供了更高级别的安全性,并且受到 API 的广泛支持。
2. API 密钥是用于授权 API 请求的唯一标识符。它通常用于保护敏感数据并防止未经授权的访问。执行 API 请求时,客户端必须提供 API 密钥作为令牌。查询字符串可以包含该密钥。
3. HTTP 基本身份验证。这种身份验证类型用于保护 Web 应用程序和 Web 服务。它要求用户提供用户名和密码才能访问应用程序。它实现起来很简单,但由于凭据以纯文本形式发送,因此不太安全。
4. HMAC:基于哈希的消息认证码是一种数字签名方法,旨在重用 SHA-1 和 MD5 等消息摘要算法,并提供可靠的数据完整性协议机制。HMAC 已被选为互联网协议 (IP) 的必需安全实现,因为它用于在安全套接字层协议和 SSL 证书中安全地加密纯文本。
5. 用户身份验证。这是最基本的身份验证形式,用户必须提供用户名和密码才能访问系统或资源。这种身份验证通常用于保护 Web 应用程序、在线帐户和其他敏感数据。
6. OAuth 1.0 和 2.0是一种允许客户端应用程序代表用户访问第三方 API(例如服务提供商)数据的方式。这允许用户授予客户端应用程序访问其数据的权限,而无需共享其登录凭据(例如用户名和密码)。为此,客户端应用程序首先需要从 API 获取访问令牌。然后,此访问令牌将用于验证客户端应用程序将来向 API 发出的请求。
7.当客户端应用程序无法安全地存储客户端机密时,或者当授权码将在与最初发出请求的设备或系统不同的设备或系统上交换访问令牌时,使用授权码授予类型。
8. AWS 签名是一种对 Amazon Web Services (AWS) API 请求进行身份验证的方法。它用于确保对 AWS API 发出的请求经过授权和身份验证,并且可以追溯到发出请求的用户。
API 测试器应用中的授权和身份验证如何工作
API Tester移动应用程序是一款易于使用的免费 API 测试和调试工具。它支持任何类型的 API,包括 REST、GraphQL、WebSocket、SOAP、JSON RPC、XML、HTTP 和 HTTPS。您可以在请求设置选项卡中输入身份验证详细信息。API 中身份验证所需的数据可以位于标头和正文中。API 测试器可以自动检测并使用所选方法类型进行响应。变量和集合用于安全地确定身份验证。
API Tester 移动应用程序为测试 API 提供了一个安全的环境,并包含几种身份验证方法来帮助保护敏感数据:用户身份验证、OAuth 访问令牌、API 密钥、HTTP 基本身份验证。
如何使用 API Tester App 测试身份验证和授权。
为了解释身份验证,让我们使用 GitHub API 来获取用户信息。它为我们提供了实时数据。
首先,您需要点击“创建新请求”或右上角的 + 按钮来启动 Graph QL 请求。
您可以在“其他功能”下的新标签页中轻松找到 Graph QL 选项。点击它将带您进入更多选项。
在下一个屏幕上,您将看到一个未命名的 GraphQL 请求。您需要提供 API URL 并将其粘贴到以 HTTPS 开头的部分中。在本例中,将使用此 URL:https://api.github.com/graphql。
Github API 需要身份验证。在 Headers 部分中,您可以看到 OAuth 选项,因此您需要在此处提供访问令牌。
让我向您展示如何生成身份验证令牌,只需按照以下步骤操作:
1)登录你的GitHub账户,进入“设置”页面。
2)在“设置”页面,点击“开发者设置”选项卡。
3)在“个人访问令牌”部分下,单击生成新令牌(经典)。
4) 在“备注”字段中,输入您的代币名称(例如“我的代币”)。这将帮助您记住代币的用途。
5) 选择令牌的范围。范围决定了令牌可以访问哪些内容。您可以根据需要选择一个或多个可用选项。6
) 点击“生成令牌”按钮创建令牌。7
) 将令牌复制到剪贴板。该令牌不会再次显示,因此请确保将其保存在安全的位置。
就这样!现在,您可以使用个人访问令牌通过 GitHub API 进行身份验证,或使用命令行对您的帐户执行操作。请记住,个人访问令牌类似于密码,因此您应该以相同的安全级别对待它们。
现在,我们需要转到“正文”部分并指定查询以获取特定类型的数据。例如,让我们获取 Github 帐户的 ID 信息。因此,使用 Github 登录名的相应查询写在正文选项卡中,如下面的屏幕截图所示。
{
user(login:"mariamarshmallow")
{
login
id
}
}
身份验证完成后,Github 将发送一个 200 响应代码,其中包含有关用户、用户名和 ID 的信息。您授予访问权限的令牌的范围称为授权。
基本身份验证
基本身份验证通常与 HTTP 协议(万维网的基础)结合使用。当客户端向服务器发出请求时,服务器会返回一个响应,其中包含一个包含身份验证质询的标头字段。然后,客户端会发送第二个请求,其中包含一个包含用户名和密码的标头字段,这些字段以 base64 编码。服务器会检查凭据,如果凭据有效,则返回一个包含所请求资源的响应。
要测试基本身份验证,我们使用 Postman API 并获取以下 URL:https://postman-echo.com/basic-auth。这是一个开放 API,使用“用户名”和“密码”作为身份验证方式。
打开 API Tester 应用,创建一个新的 GET 请求,并粘贴上面的 URL。
接下来在 Auth 部分,输入 API 的用户名和密码进行身份验证。
单击蓝色播放按钮后,您将看到带有 200 响应代码“已验证”的响应屏幕。
如果您不输入身份验证详细信息,响应页面上会出现一条消息,响应代码为 401“受限”。
这就是我们如何使用 API Tester 移动应用程序通过基本身份验证测试 API。
API 密钥认证
它是服务器识别并授权客户端访问API资源的一种方式。
要使用 API 密钥身份验证,客户端必须在请求标头中或作为查询参数发送 API 密钥。然后,服务器将验证 API 密钥,如果有效,则允许客户端访问 API 资源。
从 API 提供商处注册 API 密钥。在您的 API 请求中,将 API 密钥添加为查询参数或添加到请求标头中。使用 API Tester 应用发出 API 请求。服务器将验证 API 密钥,如果有效,则允许客户端访问 API 资源。
以下是如何使用 API Tester 应用程序在 GET 请求中使用 API 密钥身份验证的示例。
创建一个新的 GET 请求,并在请求框中输入 API URL(例如:“ https://api.thecatapi.com ”)。在查询部分,添加 limit 参数和 API key 参数(例如:“limit=10&api_key=YOUR_API_KEY”)。
点击“播放”按钮发送请求。如果 API 密钥有效,您将收到包含请求信息的响应。
确保 API 密钥的保密性和安全性至关重要,因为它允许访问 API 资源。
请确保仅在受信任的环境中使用它,并且不要与他人共享。
结论
授权和身份验证是至关重要的安全措施,它们使我们能够保护数据并确保只有授权人员才能访问数据。在本文中,我们讨论了为什么需要授权和身份验证、不同类型的授权和身份验证方法,以及如何在 API Tester 移动应用程序中应用它们。通过实施有效的授权和身份验证措施,我们可以保护数据安全并防止未经授权的访问。定期审查和更新我们的安全措施至关重要,以确保它们始终有效并保护我们的数据免受潜在威胁。
感谢阅读!希望本文对您有所帮助。如有任何问题、评论或建议,欢迎随时留言。
顺便说一句,你可以请我喝杯咖啡来支持我的工作!我会在这里留一些链接给你:)
您也可以在Coinbase上支持我
文章来源:https://dev.to/mariamarsh/why-do-we-need-authorization-and-authentication-13d9