IdentityServer3 - 客户端和密钥

时间:2016-07-11 13:59:12

标签: jwt identityserver3

我正在阅读一些教程,看看我是否可以使用IdentityServer3问题/句柄令牌来授权访问某些Web Api端点。

我不太了解的一个概念是ClientSecret。在以前的项目中使用OAuth时,我从来不必传递标题中的clientsecret值。我只通过了grant_typeusernamepassword。然而,IdentityServer似乎期望clientsecret以及grant_typeusernamepassword

为什么需要client?不管客户端的类型如何,IdentityServer都不应该只传回一个承载令牌?另外,secret参数的目的是什么?这用于创建JWT令牌的签名吗?

1 个答案:

答案 0 :(得分:4)

client_idclient_secretpart of the OAuth spec,不是特定于Identity Server的实现。它们是客户注册的一部分,我将其视为访问控制列表,检查请求方是否有权使用请求的流量和范围接收访问令牌。

未注册的客户是supported in the OAuth规范,但我还没有遇到过。

根据它的声音,您一直在使用ResourceOwner流程,该流程需要grant_type passwordclient_idclient_secret,多个scope&# 39; s,usernamepassword

client_idclient_secret也可以使用Authorization方案在Basic标头中进行base64编码和传递。

该秘密不用于JWT验证,它仅用于验证传入的客户端。