Validation 验证客户端应用程序中的令牌

Validation 验证客户端应用程序中的令牌,validation,jwt,identityserver3,Validation,Jwt,Identityserver3,我有一个应用程序,它接受JWTtoken,检查声明并响应请求。收到JWTtoken后,我想验证它是否由我信任的Identity server颁发。 知道应用程序如何执行JWTtoken验证吗? 应用程序只需进行调用: /连接/identitytokenvalidation?令牌=&client_id=并完成令牌验证? 我是否需要创建TokenClient实例来调用RequestAssertionAsync?或者我可以通过在查询字符串中传递令牌值来发出http get请求? 我可以通过以下方式获得

我有一个应用程序,它接受JWTtoken,检查声明并响应请求。收到JWTtoken后,我想验证它是否由我信任的Identity server颁发。 知道应用程序如何执行JWTtoken验证吗? 应用程序只需进行调用: /连接/identitytokenvalidation?令牌=&client_id=并完成令牌验证? 我是否需要创建TokenClient实例来调用RequestAssertionAsync?或者我可以通过在查询字符串中传递令牌值来发出http get请求? 我可以通过以下方式获得令牌值: Request.GetOwinContext().Request.Headers[“Authorization”]


任何示例都会有很大帮助。

如果您的端点在Katana管道中运行,那么您可以使用Microsoft JWT承载身份验证中间件,也可以使用IdentityServer 3.AccessTokenValidation中间件。其中任何一项都将是正确的验证

如果您不想使用这些并手动执行,则可以使用Microsoft JwtSecurityTokenHandler类来执行验证

下面是我们示例web api中的相关代码行


您的“应用程序”是web api吗?令牌是访问令牌吗?是的,我实际上使用的是作为IdentityServer3示例的一部分部署的示例web api。该令牌是访问令牌。我仍在试图找到如何验证令牌。任何示例都会有很大的帮助。我还尝试调用url:以如下所示的形式传递令牌值:var form=new{token=Request.GetOwinContext().Request.Headers[“Authorization”]};var resp=PostForm(TestUrl,form);但是响应是错误的请求。是的,我在application2startup.cs中有一个调用:UseIdentityServerBearerTokenAuthentication。我想知道传入令牌何时得到验证。。。当Application1调用Application2时,Application1将把令牌传递给Application2。那么,如果我在Application2中有上面的代码,这就足够了吗?令牌会自动得到验证?而且我没有看到API:app.useIdentityServerBearTokenAuthentication调用IdenityServer来验证令牌。所以我想知道令牌何时得到验证
app.UseIdentityServerBearerTokenAuthentication(new IdentityServerBearerTokenAuthenticationOptions
            {
                Authority = "https://localhost:44333/core",
                RequiredScopes = new[] { "write" },
            });