返回顶部
首页 > 资讯 > 精选 >Go 中的 Azure JWT 验证不起作用
  • 148
分享到

Go 中的 Azure JWT 验证不起作用

go语言安全传输 2024-02-09 11:02:56 148人浏览 八月长安
摘要

在使用Go语言开发Azure应用程序时,经常会遇到Jwt(JSON WEB Token)验证不起作用的问题。JWT是一种用于在网络应用间传递声明的安全传输方式,但有时在Go中使用Azu

在使用Go语言开发Azure应用程序时,经常会遇到JwtJSON WEB Token)验证不起作用的问题。JWT是一种用于在网络应用间传递声明的安全传输方式,但有时在Go中使用Azure的JWT验证时会遇到各种问题。本文将为您介绍一些可能导致JWT验证不起作用的原因,并提供相应的解决方案,帮助您解决这个常见的问题。本文经过PHP小编苹果精心整理,希望对您有所帮助。

问题内容

我有一个 go Http 服务器。我想使用 azure jwt 令牌保护我的路由。我能够生成令牌,但无法验证它。

我就是这样做的:

package main

import (
    "context"
    "errors"
    "fmt"

    "GitHub.com/dgrijalva/jwt-go"
    "github.com/lestrrat-go/jwx/jwa"
    "github.com/lestrrat-go/jwx/jwk"
    njwt "github.com/lestrrat-go/jwx/jwt"
)

const token = ""

const jwksurl = `https://login.microsoftonline.com/common/discovery/keys`

func main() {
    set, _ := jwk.fetch(context.todo(), jwksurl)
    // verified that set has required kid 
    verify2(token, set)
    token, err := verify(token, set)
    // token, err := jwt.parse(token, geTKEy)
    if err != nil {
        panic(err)
    }
    claims := token.claims.(jwt.mapclaims)
    for key, value := range claims {
        fmt.printf("%s\t%v\n", key, value)
    }
}

func verify2(token string, keyset jwk.set) {
    btoken := []byte(token)
    parsedtoken, err := njwt.parse(
        btoken, //token is a []byte
        njwt.withkeyset(keyset),
        njwt.withvalidate(true),
    )
    fmt.printf("%v %v", parsedtoken, err)
}

func verify(tokenstring string, keyset jwk.set) (*jwt.token, error) {
    tkn, err := jwt.parse(tokenstring, func(token *jwt.token) (interface{}, error) {
        if token.method.alg() != jwa.rs256.string() {
            return nil, fmt.errorf("unexpected signing method: %v", token.header["alg"])
        }
        kid, ok := token.header["kid"].(string)
        if !ok {
            return nil, errors.new("kid header not found")
        }
        keys, ok := keyset.lookupkeyid(kid)
        if !ok {
            return nil, fmt.errorf("key %v not found", kid)
        }
        var raw interface{}
        err := keys.raw(&raw)
        return raw, err
    })
    return tkn, err
}

verify2(..) 给出 未能匹配任何键 verify(..) 给出 crypto/rsa: 验证错误

我的 jwt 标头:

{
  "typ": "JWT",
  "nonce": "...",
  "alg": "RS256",
  "x5t": "-KI3Q9nNR7bRofxmeZoXqbHZGew",
  "kid": "-KI3Q9nNR7bRofxmeZoXqbHZGew"
}

解决方法

您使用的 Azure AD 访问令牌类型错误。 JWT 标头中带有随机数的内容并非旨在由您自己的 api 进行验证 - 它们适用于 Microsoft 自己的 API。

您需要公开一个 API 范围来解决此问题,之后您将获得一个访问令牌,而 JWT 标头中没有随机数。我的博客文章有一些进一步的相关信息。

以上就是Go 中的 Azure JWT 验证不起作用的详细内容,更多请关注编程网其它相关文章!

--结束END--

本文标题: Go 中的 Azure JWT 验证不起作用

本文链接: https://lsjlt.com/news/562460.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Go 中的 Azure JWT 验证不起作用
    在使用Go语言开发Azure应用程序时,经常会遇到JWT(JSON Web Token)验证不起作用的问题。JWT是一种用于在网络应用间传递声明的安全传输方式,但有时在Go中使用Azu...
    99+
    2024-02-09
    go语言 安全传输
  • Go语言中使用jwt-go库实现JWT Token验证认证
    在Go语言中使用jwt-go库实现JWT Token鉴权 JWT(JSON Web Token)是一种轻量级的身份验证和授权的方式,可以帮助我们基于 JSON 格式在用户和系统之间传递安全可信的信息。在构造 ...
    99+
    2024-01-22
    Go语言 鉴权 JWT Token
  • php使用jwt作登录验证
    1 在项目根目录下,安装jwt composer require firebase/php-jwt 2 在登录控制器中加入生成token的代码 use Firebase\JWT\JWT;use Firebase\JWT\Key;class ...
    99+
    2023-09-14
    php 开发语言
  • 特定路由的 Gorilla 中间件身份验证不起作用
    学习Golang要努力,但是不要急!今天的这篇文章《特定路由的 Gorilla 中间件身份验证不起作用》将会介绍到等等知识点,如果你想深入学习Golang,可以关注我!我会持续更新相关文章的,希望对...
    99+
    2024-04-05
  • ASP.NET项目中的JWT身份验证
    JWT (JSON Web Token) 是一种用于身份验证的开放标准,可以在客户端和服务器之间传递安全的信息。在ASP.NET项目...
    99+
    2023-09-27
    ASP.NET
  • jquery验证引擎funcCall仅在规则时不起作用
    jQuery Validation 插件中的 `funcCall` 方法可以用于执行自定义的验证函数。该方法可以在规则中使用,也可以...
    99+
    2023-09-17
    jquery
  • Django中的JWT身份验证的实现
    1.认证与授权 1.验证:身份验证是验证个人或设备标识的过程。身份验证过程之一是登录过程。注册网站后,您的信息(ID,密码,名称,电子邮件等)将存储在其数据库中。之后,您无需创建帐...
    99+
    2024-04-02
  • ThinkPHP6使用JWT+中间件实现Token验证
    目录 前言 一、JWT介绍 二、使用composer安装JWT扩展包  三、在ThinkPHP6中直接使用JWT生成验证Token(简单粗暴) (一)代码文件 (二)请求接口测试 四、在ThinkPHP6中使用JWT+中间件生成验证Tok...
    99+
    2023-09-01
    php 开发语言
  • 与工作区一起使用时 go build 不起作用
    php小编香蕉在这里向大家介绍一个常见的问题,那就是在使用工作区时,go build命令无法正常工作的情况。这个问题可能会让开发者陷入困惑,因为工作区是Go语言中非常重要的一个概念,而...
    99+
    2024-02-08
    go语言
  • 为什么我的 echo jwt 自定义代码不起作用?
    php小编鱼仔经常收到读者的问题,其中一个常见的问题是关于"为什么我的 echo jwt 自定义代码不起作用?"。在使用 JWT(JSON Web Token)时,有时候我们会遇到自定...
    99+
    2024-02-08
  • go语言使用jwt认证的实现
    目录加密解密这几天在学习nodejs,进一步了解npm,学习过程中解开了以前的一个疑惑,以前不知道token可以携带信息,只以为是用来做对比的,学到了jwt身份认证,知道了如何使用的...
    99+
    2024-04-02
  • golang中gin框架接入jwt使用token验证身份
    目录jwt 流程: 1.token 工具类 2. 使用该中间件 3. controller部分代码 jwt jwt的原理和session有点相像,其目的是为了解决rest api中...
    99+
    2024-04-02
  • 使用JWT在PHP API接口中进行身份验证的方法
    在 Web 开发中,最常见的需求之一就是用户身份验证。为了实现安全的身份验证,Web 开发者可以依赖于许多不同的机制。其中一种很受欢迎的方法是 JSON Web Tokens(JWT),它提供了一种基于令牌的身份验证方法。 在本...
    99+
    2024-01-22
    API PHP jwt
  • ssl证书更新不起作用的原因有哪些
    SSL证书更新不起作用的原因可能包括以下几点:1、证书无效在更新SSL证书过程中证书无效或者错误。2、客户端设置不正确客户端设置不正...
    99+
    2023-03-02
    ssl证书更新不起作用 ssl证书 ssl
  • golang中gin框架接入jwt如何使用token验证身份
    本篇内容介绍了“golang中gin框架接入jwt如何使用token验证身份”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!jwtjwt的原理...
    99+
    2023-06-22
  • 我如何解决 go build 和 go install 不起作用的问题
    对于一个Golang开发者来说,牢固扎实的基础是十分重要的,编程网就来带大家一点点的掌握基础知识点。今天本篇文章带大家了解《我如何解决 go build 和 go install 不起作用的问题》,...
    99+
    2024-04-04
  • css中hover不起作用的原因
    这篇“css中hover不起作用的原因”除了程序员外大部分人都不太理解,今天小编为了让大家更加理解“css中hover不起作用的原因”,给大家总结了以下内容,具有一定借鉴价值,内容详细步骤清晰,细节处理妥当,希望大家通过这篇文章有所收获,下...
    99+
    2023-06-06
  • windows下使用redis requirepass认证不起作用的解决方法
    因为windows下面使用redis 有两个配置文件 分别是 redis.windows.conf和 redis.windows-service.conf 由于启动时候没有指定配置文件所以我们需要指定配置文...
    99+
    2024-04-02
  • 解决swagger2中@ApiResponse的response不起作用
    目录swagger可以生成比较友好的在线API说明文档我们用的是swagger2swagger可以生成比较友好的在线API说明文档 友好的API说明重要性不言而喻,因为所谓API,肯...
    99+
    2024-04-02
  • 使用 ozzo 验证不会调用嵌入结构的验证方法
    php小编鱼仔发现,使用ozzo验证库可以轻松实现数据验证,但有时候可能会遇到需要调用嵌入结构的验证方法的情况。然而,ozzo验证库的设计原则是避免调用嵌入结构的验证方法,以确保代码的...
    99+
    2024-02-13
    overflow
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作