IdentityServer4 学习三

ClientCredentials客户端类型实现

 

客户端应用向IdentityServer请求AccessToken,IdentityServer验证通过把AccessToken返回给客户端应用,客户端应用拿着AccessToken访问API资源,获得响应;

 客户端应用不代表用户,客户端应用本身相当于是资源所有者;Client Credentials通常用于机器对机器的通信;客户端应用也是需要身份认证;

代码实现:把config类中的其余两种方式注释掉,并修改如下地方,运行

 

创建一个控制台应用程序,需要安装包

也可以使用c#7.1中的async main

首先修改项目文件添加最新语法特性

 

客户端请求token

断点调试返回成功,调用api测试

返回失败

错误403,资源不存在。

定义API资源:

创建一个API项目端口修改下

新建IdentityController修改如下:

startup中的配置:

依次启动Idp 、ApiResource、ConsoleClient 项目,可以看到ConsoleClient中打印出正确的返回结果:

 Client Credentials - Token 请求 :

在ConsoleClient项目中打上断点把并使用Fiddler 进行抓包查看

 

请求Header中的内容

返回的Response

把返回的access_token复制出来,打开https://jwt.io,把access_token放进去查看

原文地址:https://www.cnblogs.com/MrZheng/p/10965128.html