【问题标题】:IDX10634: Unable to create the SignatureProviderIDX10634:无法创建 SignatureProvider
【发布时间】:2020-12-13 12:53:07
【问题描述】:

我不知道这里出了什么问题。我正在尝试使用 RS SHA256 创建 JWT。在 handler.WriteToken 我得到这个错误:

IDX10634:无法创建 SignatureProvider。 算法:'System.String',SecurityKey:'Microsoft.IdentityModel.Tokens.SymmetricSecurityKey' 不支持。支持的算法列表可在此处获得:https://aka.ms/IdentityModel/supported-algorithms

按照我的解释,它告诉我我指定了一个不受支持的算法,但 SecurityAlgorithms.RsaSha256 解析为“RS256”。

任何指导将不胜感激。下面是我的代码。

Imports System.Security.Cryptography
Imports Microsoft.IdentityModel.Tokens
Imports System.IdentityModel.Tokens.Jwt


Public Function GetJWT()
    Dim rsaPrivateKey As String = "MIIEvQI...small piece of key included here...J83wMcqFO4WXjrMXU="
    Dim rsaPrivateKeyBytes() As Byte = System.Text.Encoding.Default.GetBytes(Base64UrlEncode(rsaPrivateKey))
    Dim securityKey As Microsoft.IdentityModel.Tokens.SymmetricSecurityKey = New Microsoft.IdentityModel.Tokens.SymmetricSecurityKey(rsaPrivateKeyBytes)
    Dim credentials As SigningCredentials = New Microsoft.IdentityModel.Tokens.SigningCredentials(securityKey, SecurityAlgorithms.RsaSha256)
    Dim header As JwtHeader = New JwtHeader(credentials)
    Dim payload As JwtPayload = New JwtPayload()
    payload.Item("test") = "this is a test"
    Dim secToken As JwtSecurityToken = New JwtSecurityToken(header, payload)
    Dim handler As JwtSecurityTokenHandler = New JwtSecurityTokenHandler()
    Dim tokenString As String = handler.WriteToken(secToken)
    Return tokenString

End Function
Public Function Base64UrlEncode(input As String) As String
    Dim inputBytes() As Byte = System.Text.Encoding.UTF8.GetBytes(input)
    Return Convert.ToBase64String(inputBytes).Replace("+", "-").Replace("/", "_").Replace("=", "")
End Function

【问题讨论】:

    标签: vb.net cryptography jwt rsa


    【解决方案1】:

    根据您发布的链接,RsaSha256 不是受支持的对称 算法。你需要试试对称算法,比如SecurityAlgorithms.HmacSha256

    【讨论】:

    • 好的,我想我明白你在说什么——切换到对称算法应该可以让我的代码正常工作。因此,从技术上讲,您的答案是正确的,因为它应该可以修复错误。但是,我必须使用 RSA(我正在尝试使用带有谷歌云服务的服务帐户)所以看起来我真正的问题是如何使用 RSA 之一。感谢您让我朝着正确的方向前进。
    猜你喜欢
    • 2018-09-27
    • 1970-01-01
    • 2021-01-11
    • 2022-12-11
    • 2015-09-16
    • 2021-04-18
    • 2014-11-21
    • 2018-05-12
    • 2011-07-09
    相关资源
    最近更新 更多