WSO2 IS 和 JWT 令牌

WSO2 IS and JWT Token

我有如下安全用例,正在考虑使用 WSO2 身份服务器 -

应用程序需要使用来自 WSO2 Identity Server 的身份验证服务。该应用程序接受 user/password。使用这些凭据,应用程序需要对 WSO2 身份服务器进行 API 调用,如果用户是有效用户,WSO2 身份服务器需要使用有效的 JWT 令牌和声明进行回复。 (用户安装到 Identity Server 中的用户存储之一。)

我可以使用 WSO2 Identity Server 来支持这个用例吗?

根据您的描述,客户端本身不会将用户重定向到授权服务器,而是会要求用户提供资源所有者的用户名和密码。然后,客户端会将这些凭据连同客户端自己的凭据(客户端 ID 和客户端密码)一起发送到授权服务器。然后授权服务器(WSO2 IS)将提供带有请求声明的 JWT 令牌。这可以通过 WSO2 身份服务器实现。

请参考:https://is.docs.wso2.com/en/5.9.0/learn/resource-owner-password-credentials-grant/

设置示例:https://is.docs.wso2.com/en/5.9.0/develop/deploying-the-sample-app/#deploying-playground2-webapp

使用示例尝试授予密码:https://is.docs.wso2.com/en/5.9.0/learn/try-password-grant/

An application needs to use authentication service from WSO2 Identity Server. The application accepts username and password

您正在使用一个应用程序,用户可以使用用户名和密码对应用程序进行身份验证。用户存在于身份服务器的用户存储中。如果用户存在于 IS 中,IS 可以充当身份提供者并对用户进行身份验证。

if the user is valid user, WSO2 Identity Server needs to reply back with valid JWT token and claims

WSO2 IS 支持不同的协议。如果服务提供商使用 OpenID Connect,一旦用户通过身份验证,ID 令牌(连同访问令牌)将被发送到服务提供商。此 ID 令牌是一个 JWT 令牌,其中包含 header.body.signature 并且正文包含声明。在 OpenID Connect 中,应用程序可以根据需要使用不同的授权类型。 授权代码、隐式和混合流 可用于对用户进行身份验证并获取用户的声明作为 JWT 令牌和访问令牌。

WSO2 Identity Server 通过 OpenID Connect 支持所有这些授权类型。当用户通过应用程序进行身份验证时,WSO2 身份服务器会将 JWT 令牌发送到应用程序。

请同时参考此 document for further reference of OpenID Connect Authentication in WSO2 IS. Refer this OpenID Connect 规范。