我有一个接受JWTtoken的应用程序并完成索赔并回复请求。收到JWTtoken后,我想验证它是否由我信任的Identity服务器发出。 知道应用程序如何执行JWTtoken验证吗? 应用程序只需拨打电话: / connect / identitytokenvalidation?token =& client_id =并完成令牌验证? 我是否需要创建TokenClient实例来调用RequestAssertionAsync?或者我可以通过在查询字符串中传递令牌值来简单地获取http get请求? 我可以通过以下方式获取令牌值: Request.GetOwinContext()Request.Headers。["授权"];
任何样本都会有很大的帮助。
答案 0 :(得分:0)
如果您的终端在Katana管道中运行,那么您可以使用Microsoft JWT承载认证中间件,也可以使用IdentityServer3.AccessTokenValidation中间件。这些都是正确的验证。
如果您不想使用它们并手动执行,那么您可以使用Microsoft JwtSecurityTokenHandler类来执行验证。
以下是我们的示例web api
中的相关代码行app.UseIdentityServerBearerTokenAuthentication(new IdentityServerBearerTokenAuthenticationOptions
{
Authority = "https://localhost:44333/core",
RequiredScopes = new[] { "write" },
});
答案 1 :(得分:0)
有关如何使用IdentityServer3.AccessTokenValidation的任何示例?我仍在试图弄清楚如何验证令牌。 My Application1在客户端(指向Applicaiton2)对象上设置令牌,如下所示:
var client = new HttpClient
{
BaseAddress = new Uri(Application2Address)
};
client.SetBearerToken(token);
现在,当请求转到Application2时,我想在Application2中验证此令牌,以确保令牌由受信任的身份服务器发出。