Postgrest API可以通过内置的JWT令牌或通过Auth0,Okta或Keycloak(http://postgrest.org/en/v5.0/install.html)等第三方服务来保护
我们只想使用Keycloak提供的JWT,但是可用的文档非常有限。
有人可以指导我如何通过密钥斗篷保护Postgrest api吗?
谢谢
答案 0 :(得分:0)
有几种方法可以做到,我只介绍一种:
"role": "username"
的声明)详细信息
/#/realms/<realm name>/clients/<client id>/mappers
并设置所需的声明#/realms/<realm name>/keys
的keycloak管理控制台中,您可以获取rsa公钥,将其转换为jwk格式并将其保存到postgrest配置中。为了把它翻译成jwk
-----BEGIN PUBLIC KEY-----
中将其转换为pem格式
-----END PUBLIC KEY-----
req.kauth.grant
处读取令牌,并将其放在发送给浏览器的html的隐藏字段中从浏览器中读取令牌,并将其放置在带有承载前缀的身份验证标头中。如果您使用axios:
axios({
method: 'get',
url: 'your url',
headers: { 'authorization': `Bearer ${token}` }
})
请注意,您并不是以这种方式保护postgrest api,而只是使用keycloak来管理用户并生成必要的令牌