未获取授权类型的JWT令牌(id_令牌)';客户凭证';在wso2中

未获取授权类型的JWT令牌(id_令牌)';客户凭证';在wso2中,wso2,wso2is,wso2carbon,Wso2,Wso2is,Wso2carbon,我正在使用IS\u BASE\u URL/oauth2/token端点来获取JWT令牌。 但它只返回访问令牌。有什么办法可以得到JWT代币吗 对于授予\u类型客户端\u凭据,并在客户端和密钥凭据(服务提供商基础)上设置JWT\u令牌基础的可配置过期时间。您需要以openid的形式提供作用域 示例curl请求如下所示 curl-k-d“grant\u type=client\u credentials&scope=openid” -H“授权:基本ZJDJBK9MQ2DXRUZYCKVNA1HQA2

我正在使用IS\u BASE\u URL/oauth2/token端点来获取JWT令牌。 但它只返回访问令牌。有什么办法可以得到JWT代币吗
对于授予\u类型客户端\u凭据,并在客户端和密钥凭据(服务提供商基础)上设置JWT\u令牌基础的可配置过期时间。

您需要以openid的形式提供作用域

示例curl请求如下所示

curl-k-d“grant\u type=client\u credentials&scope=openid” -H“授权:基本ZJDJBK9MQ2DXRUZYCKVNA1HQA2DFU1BWUDK0YTPJZKHSZ0DSOHVZOXI4TLKYBKXPN0TIQXQQTRH” 令牌终端

在以后的IS版本(IS-5.4.0以后)中,我们在文件identity.xml中有如下配置

        <SupportedGrantType>
            <GrantTypeName>client_credentials</GrantTypeName>
            <GrantTypeHandlerImplClass>org.wso2.carbon.identity.oauth2.token.handlers.grant.ClientCredentialsGrantHandler</GrantTypeHandlerImplClass>
            <IsRefreshTokenAllowed>false</IsRefreshTokenAllowed>
            <IdTokenAllowed>false</IdTokenAllowed>
        </SupportedGrantType>

客户端凭据
org.wso2.carbon.identity.oauth2.token.handlers.grant.ClientCredentialsGrantHandler
假的
假的
在这里你必须提到IdTokenAllowed是真的。然后,您将获得id令牌以及客户端\ U凭据授予类型的访问令牌

目前,我们没有办法为每个应用程序配置id令牌或JWT令牌到期时间,而只有全局配置。您可以在标记IDTokenExpiration内的identity.xml文件中全局设置id令牌过期时间(默认情况下,identity.xml文件包含标记IDTokenExpiration)

3600

更新:-从最新的identity server(IS-5.6.0)开始,您可以为每个应用程序配置id令牌到期时间。您可以参考更多信息。

您使用的是什么版本?是的,我在范围值参数中设置了openid,但它仍然不起作用。感谢Nilasini的持续支持,在完成上述更改后,现在我能够获得id\u令牌作为响应。再次感谢您的快速更新。另请注意,为客户端凭据授予类型使用id令牌没有意义,因为此授予类型中没有用户身份验证(仅验证客户端)。这就是默认情况下没有为客户端凭据授予类型启用id令牌的原因。只是为了向后兼容,我们有一个配置来启用它。是的,您的问题是正确的,但是我们使用grant_类型“client_credential”而不是用户身份验证来验证消费者应用程序,并且在授权标头中期望JWT令牌用于将来的所有后续服务调用。
<IDTokenExpiration>3600</IDTokenExpiration>