当前位置: 首页 > 知识库问答 >
问题:

WSO2标识服务器JWT承载

巫马星雨
2023-03-14

我已经在WSO2是5.3.0中安装并配置了JWT Grant Type,然后按照本指南html" target="_blank">配置了一个服务提供程序,启用OAuth/OpenID Connect入站身份验证器。我能够通过javascript客户机验证使用开放ID范围的OAuth2协议的用户,获得有效的JWT令牌(JWTToken)。

最后,我尝试使用REST客户机并设置content-type=application/x-www-form-urlencoded向https://****/oauth2/token?grant_type=urn:ietf:params:oauth:grant-type:jwt-bearer&assertion=jwtToken发出POST请求。

当我执行请求时,WSOIS服务器要求提供用户名和密码。我能够通过这个步骤,提供一个有效的clientId和ClientSecret。

不幸的是,此时服务器dos没有使用访问令牌而是使用400错误请求进行答复,并在响应正文中写入“{”error_description“:”在解码租户域carbon.super的公共身份提供程序默认证书时发生错误“,”error:"invalid_grant“}”

我无法理解问题是传递给服务器的JWT令牌,还是证书有问题。有什么需要帮忙的吗?

共有1个答案

和和煦
2023-03-14

好啦。我想这应该对你有帮助。

如果将从WSO2 Identity Server获得的OpenID connect令牌放在jwt.io中,您将看到OpenID connect的“iss”(发行商)值为“https://localhost:9443/oauth2/token”(如果设置了主机名,请将localhosts替换为您的主机名),这是WSO2 Identity Server的令牌endpoint。

因此,当您将此令牌用作JWT承载授权时,为了验证签名,授权处理程序将尝试检索一个IDP,该IDP具有在发行方(iss)字段中给定的名称(即WSO2标识服务器的令牌endpoint)。由于它找不到任何标识提供程序,它检索缺省标识提供程序(注意,这是为了向后兼容性而添加的虚拟IDP),它没有任何证书。(您可以在$is_home/repository/conf/identity/identity-providers/default.xml下找到它)

所以有两种方法可以解决这个问题,

>

  • 更改Identity Server的颁发者值,以便它能够获取其常驻身份提供者的证书。

    为此,请登录到管理控制台,

    <Audiences> 
        <Audience>
            ${carbon.protocol}://${carbon.host}:${carbon.manag‌​ement.port}/oauth2/t‌​oken
        </Audience> 
    </Audiences>
    

  •  类似资料:
    • 我们使用的是WSO2 Identity Server 5.3.0。我配置了WSO2 IDP(符号名称“IDP1”)和服务提供商(符号名称”SP1)之间的信任。然后,我配置了WSO2作为服务提供者(“SP2”)和联合IDP(符号名“IDP2”,一些公共/政府服务)之间的第二信任。SP1保护一些资源,只有当用户通过IDP2身份验证时才允许访问这些资源。一切都基于SAML协议。登录工作正常-登录请求从W

    • 我正在尝试批量插入到具有标识列的表中。但我的主机文件包含标识列的空值。当我发出“bcp”命令时,我得到一个错误- 正在开始复制。。。 SQLState=S1000,NativeError=0 错误=[Microsoft][SQL服务器本地客户端10.0]在BCP数据文件中遇到意外的EOF SQLState=23000,NativeError=515 错误=[Microsoft][SQL Serve

    • 目前,我正在同一台服务器上运行Identity Server和API管理器。 我有一个无法访问的问题https://localhost:9443/dashboard 此页面显示空白屏幕。 显示没有错误。 这发生在我集成了标识服务器5.2.0和API管理器2.0.0作为密钥管理器之后。 有没有我错过的配置? 我根据这个留档配置了服务器: https://docs.wso2.com/display/C

    • 我在具有 identityserver4 的经过身份验证的应用程序中遇到此异常: 安全令牌验证签名异常: IDX10503: 签名验证失败。已尝试的密钥: 'Microsoft.IdentityModel.Tokens.RsaSecurityKey , KeyId: '.捕获的异常:“”。标记: '{“alg”:“RS256”,“典型值”:“JWT”}.{“nbf”:1501510053,“exp