Identity Server 4 验证自己发布的 JWT
Identity Server 4 validate own issued JWTs
好的,用户进行身份验证,客户端从我的 IS4 实例获取 JWT。所有的工作。现在,由于某些原因,在被权威声称了解 OAuth 但实际上并不了解的人折磨后,我仍然在晚上哭泣,客户正在通过网络向我发送身份令牌 JWT 以执行操作,我需要根据其中的主题。我想尽量减少这个决定的后果并防止有人给我植入假令牌的情况,所以我想验证 JWT 以确保它来自我,确实是我发布它的人。为了简化,我需要在令牌验证过程中同时充当客户端和服务器,而在 IS4 上 运行。
由于这违反了 OAuth 协议,我不确定是否支持开箱即用,但问题来了:有没有办法做到这一点?我什至试图反省令牌,但这需要身份验证上下文,而且我似乎无法让客户端凭证流工作,因为我只使用 openid/profile 范围并且客户端凭证流不支持它们(因为用户仅在 JWT 中定义。
令牌的接收者应始终验证令牌的签名以确保它来自您的 IdentityServer。这通常由最适当的 JWT-libraries 自动完成。该库将从您的 IdentityServer 下载 public-key 并使用它来验证令牌的签名。
如果您正在使用 ASP.NET,那么 JwtBearer 库将为您完成。
好的,用户进行身份验证,客户端从我的 IS4 实例获取 JWT。所有的工作。现在,由于某些原因,在被权威声称了解 OAuth 但实际上并不了解的人折磨后,我仍然在晚上哭泣,客户正在通过网络向我发送身份令牌 JWT 以执行操作,我需要根据其中的主题。我想尽量减少这个决定的后果并防止有人给我植入假令牌的情况,所以我想验证 JWT 以确保它来自我,确实是我发布它的人。为了简化,我需要在令牌验证过程中同时充当客户端和服务器,而在 IS4 上 运行。
由于这违反了 OAuth 协议,我不确定是否支持开箱即用,但问题来了:有没有办法做到这一点?我什至试图反省令牌,但这需要身份验证上下文,而且我似乎无法让客户端凭证流工作,因为我只使用 openid/profile 范围并且客户端凭证流不支持它们(因为用户仅在 JWT 中定义。
令牌的接收者应始终验证令牌的签名以确保它来自您的 IdentityServer。这通常由最适当的 JWT-libraries 自动完成。该库将从您的 IdentityServer 下载 public-key 并使用它来验证令牌的签名。
如果您正在使用 ASP.NET,那么 JwtBearer 库将为您完成。