如何使用 API 密钥和秘密保护 Spring Boot API

Posted

技术标签:

【中文标题】如何使用 API 密钥和秘密保护 Spring Boot API【英文标题】:How to secure spring Boot API with API key and secret 【发布时间】:2019-11-29 19:06:17 【问题描述】:

我正在尝试保护 Spring Boot API 端点。我只想传递 api 密钥和秘密作为标头的一部分来调用 API。我尝试了此链接中发布的代码。但是在标题中使用 Authorization 调用 api 时访问被拒绝。 Securing Spring Boot API with API key and secret 我想知道我应该作为标头的一部分传递什么,以便我可以从 API 获得成功的响应 我做了以下步骤: 我在 application.properties 中添加了以下条目

myapp.http.auth-token-header-name=samplekey
myapp.http.auth-token=abc123

并且我试图传递如下标题 授权:myapp.http.auth-token-header-name=samplekey,myapp.http.auth-token=abc123

【问题讨论】:

我也有同样的问题。你找到解决办法了吗? 【参考方案1】:

使用您显示的示例值,您需要提供名称为“samplekey”和值“abc123”的标题。

GET / HTTP/1.1
Host: example.com
samplekey: abc123

或者,如果你把它放在配置中:

myapp.http.auth-token-header-name=X-API-KEY
myapp.http.auth-token=abc123

那么您需要提供名称为“X-API-KEY”和值“abc123”的标头。

GET / HTTP/1.1
Host: example.com
X-API-KEY: abc123

【讨论】:

以上是关于如何使用 API 密钥和秘密保护 Spring Boot API的主要内容,如果未能解决你的问题,请参考以下文章

如何通过哈希比较限制 API 密钥的使用

如何在没有弹簧安全的情况下使用 api 密钥保护 rest api

API 密钥和秘密密钥如何工作?如果我必须将我的 API 和密钥传递给另一个应用程序,它会安全吗?

使用 WSO2 作为移动应用程序的 API 网关时,如何安全地处理用户密钥和秘密

在 Spring Boot 中使用令牌保护 api

密钥管理概述