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

时间:2016-03-24 10:17:13

标签: validation jwt identityserver3

我有一个接受JWTtoken的应用程序并完成索赔并回复请求。收到JWTtoken后,我想验证它是否由我信任的Identity服务器发出。 知道应用程序如何执行JWTtoken验证吗? 应用程序只需拨打电话: / connect / identitytokenvalidation?token =& client_id =并完成令牌验证? 我是否需要创建TokenClient实例来调用RequestAssertionAsync?或者我可以通过在查询字符串中传递令牌值来简单地获取http get请求? 我可以通过以下方式获取令牌值: Request.GetOwinContext()Request.Headers。["授权"];

任何样本都会有很大的帮助。

2 个答案:

答案 0 :(得分:0)

如果您的终端在Katana管道中运行,那么您可以使用Microsoft JWT承载认证中间件,也可以使用IdentityServer3.AccessTokenValidation中间件。这些都是正确的验证。

如果您不想使用它们并手动执行,那么您可以使用Microsoft JwtSecurityTokenHandler类来执行验证。

以下是我们的示例web api

中的相关代码行

https://github.com/IdentityServer/IdentityServer3.Samples/blob/master/source/Clients/SampleAspNetWebApi/Startup.cs

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中验证此令牌,以确保令牌由受信任的身份服务器发出。