单点登录颁发的 token 所使用的算法没有对应的 jwks

我创建了一个单点登录 SSO 应用,然后实际体验登录时,用户得到的 token,其算法是

{
  "alg": "HS256",
  "typ": "JWT"
}

然而,在 jwks 中只有 RS256 的 key (https://hardway.authing.cn/oidc/.well-known/jwks.json ) ,导致应用验签失败。

这个有办法解决么?虽然在自建应用中设置了用 RS256 算法颁发 token,但是如果通过 SSO 登录时,颁发的 token 仍然是 HS256 的。

  • 有没有办法对 SSO 颁发 token 的算法进行修改,从 HS256 改成 RS256?
  • 如果没有,怎样才能在 jwks 中提供 HS256 的 key?

你是如何体验登录的,使用设置了 RS256 的应用信息发起 oidc 登录,返回的 id token 就是 RS256 签名的

感谢回复!在自建应用中是可以设置 RS256 的,没有问题。但是在使用 SSO 登录时,得到的 Token 使用的就是 HS256,而且没有地方可以修改。具体地说,是通过 SSO 中集成了 GitHub Enterprise 应用之后,从这里体验登录的,但是这个 SSO 集成的应用,并没有入口去设置签名算法。

了解了,可能是 github 签名算法变了,我们本周加一下支持修改算法的配置

1 Like

@f11 非常感谢!请问预计什么时候可以修改?

今晚上线

1 Like

我看了下,我们应用市场的 github 是 SAML 协议的,不涉及 oidc Token 的签名算法,你是如何集成的

完全按照文档来的,

我的理解是不是,SAML 成功之后, authing 会颁发一个 OIDC token?

不会,SAML 应用不会办法 token,你现在是如何获取用户 token 的,SAML 过程不需要用到这个 token