GO 验证访问令牌(keycloak)

在现代的网络应用中,安全性是至关重要的。为了保护用户数据和系统资源,访问令牌的验证是必不可少的一环。而Keycloak作为一款强大的身份认证和访问管理解决方案,为开发者提供了一种简单而安全的验证方式。本文将由php小编西瓜为大家介绍如何使用Keycloak进行访问令牌的验证,以保障应用的安全性。通过本文的指导,您将能够轻松地实现访问令牌的验证,并确保只有经过授权的用户才能访问您的应用。,我正在尝试使用 GO 实现访问令牌验证。但我在网上看到的例子似乎只是用 TOKEN_SECRET 来验证它。但是我习惯了在Java spring中编程,并且不需要使用TOKEN_SECRET。我只是提供 jwk-set-uri,它会检查有效性(自动 – 安全过滤器等),我知道它与 oauth 服务器通信并进行此验证。,Go 中是否没有库可以通过向 oauth 服务器发出请求来检查令牌是否有效?,我知道我知道我可以通过向 oauth 服务器的用户信息端点发出请求来手动进行此操作:,(在带有密钥授权的标头中包含令牌),但我不知道这是否完全符合标准。,正确的做法是什么?,简短回答:使用 go-oidc,长答案:
首先,让我们了解 Spring Security 如何自动验证 JWT 访问令牌。按照惯例,如果您在 application.yaml 配置文件中定义 OAuth 2.0 或 OIDC 客户端属性,Spring 将自动在安全过滤器链中连接一个过滤器,从 Keycloak 中获取 jwk-set,Keycloak 是一组与密钥对应的公钥Keycloak 使用它来签署令牌。该过滤器将应用于所有受保护的路由,并且 spring 将使用公钥来检查令牌的签名是否有效,并在适用时进行其他检查(受众、超时等…),那么我们如何在 Go 中做到这一点呢?我们可以编写一个简单的中间件来接受 jwk-set 并使用它来验证令牌。您需要检查 alg 声明以查看使用了哪种签名算法,从 jwk-set 中选择相应的公钥并检查签名是否有效。然后,解码令牌,确认 isssub 声明,以确保它来自受信任的颁发者并面向目标受众,并检查它是否尚未过期。检查 nbf (不早于)和 iat (发布于)声明的时间是否正确。最后,如果下游需要,将令牌中的相关信息注入到请求上下文中。,
返回顶部
跳到底部

Copyright 2011-2024 南京追名网络科技有限公司 苏ICP备2023031119号-6 乌徒帮 All Rights Reserved Powered by Z-BlogPHP Theme By open开发

请先 登录 再评论,若不是会员请先 注册