09.客户端集成IdentityServer
<div id="post_detail">
09.客户端集成IdentityServer
09.客户端集成IdentityServer
新建API的项目
dotnet new webapi --name ClientCredentialApi
在我们上一节课的代码IdentityServerSample中加入授权的认证
引入命名空间:
using Microsoft.AspNetCore.Authorization;
然后给Controller加上authrize的属性。这样API就访问不了。
ClientCredentialApi
给我们刚创建的项目:ClientCredentialApi
加上Authrize属性,这样这个API我们就访问不了。
nuget包添加引用
IdentityServer4.AccessTokenValidation
在Startup.cs里面把认证授权加进来
services.AddAuthentication("Bearer") .AddIdentityServerAuthentication(options => { options.Authority = "http://localhost:5000";//需要授权的时候找谁 options.RequireHttpsMetadata = false;options.ApiName </span>= <span style="color: #800000;">"</span><span style="color: #800000;">api</span><span style="color: #800000;">"</span><span style="color: #000000;">; });</span></pre>
使用Authentication
这样就完成了。有了IdentityServer在APi端加授权就非常的简单
换成501的端口
然后不用Https:
运行程序ClientCredentialApi
http://localhost:5001/api/values
返回的状体是401,未授权
运行程序IdentityServerCenter
那我们去哪里拿Token呢?
运行起来Server端 的地址。
打开地址:
http://localhost:5000/.well-known/openid-configuration
这里告诉我们取token的地址
"token_endpoint": "http://localhost:5000/connect/token",
postman内请求这个地址:
http://localhost:5000/connect/token
body内三个参数:
client_id:client
client_secret:secret
grant_type:client_credentials
返回的数据。这样就拿到了我们的token
{ "access_token": "eyJhbGciOiJSUzI1NiIsImtpZCI6ImE3MGZkOGQyYjVjMmVlNDUzMWU1ZGUyNWJmYTViNmE4IiwidHlwIjoiSldUIn0.eyJuYmYiOjE1NTIyMzY5ODEsImV4cCI6MTU1MjI0MDU4MSwiaXNzIjoiaHR0cDovL2xvY2FsaG9zdDo1MDAwIiwiYXVkIjpbImh0dHA6Ly9sb2NhbGhvc3Q6NTAwMC9yZXNvdXJjZXMiLCJhcGkiXSwiY2xpZW50X2lkIjoiY2xpZW50Iiwic2NvcGUiOlsiYXBpIl19.GNX-gMxDDTzniaamYw9mOC159XfnP9AlkynOpYqvjSZJCduM6aqRIiwVbvMsak8GZhShPZpGggj8_ng5S-81M-VNbSlce5SImHckMXkBGXJ4A9OgsYemja7d3Mv-Lz43DkgWvTnoX1CfZl8PxBDueYlZOSLlqwlmYkN3S0TYuQwgXD0nKLyEnRTWy8meOAOkpuGzSabIcXBGwetMRrNZeooRtvYDuEe6d_Jfxi0o2-KD-TehB7n70D7ZFGnjTG2Ka5oJQrBKdaqY-Mqt42unJeV-faMhvjYkCxHqxRGtnue2zaCWWJdxP1wDu5VSRZjdfD4LoB29wfOwYeJxAalgvw", "expires_in": 3600, "token_type": "Bearer" }
复制从服务端拿到的token的值。
启动ClientCredentialApi的程序
访问地址:
http://localhost:5001/api/values
Authorization:Bearer+空格+复制过来的Token
这个token就是从是服务端 5000端口的地址拿过来的token
这是postman去实现的。接下来我们要写一个api的方式去实现
如果您觉得阅读本文对您有帮助,请点一下“推荐”按钮,您的“推荐”将是我最大的写作动力!欢迎各位转载,但是未经作者本人同意,转载文章之后必须在文章页面明显位置给出作者和原文连接,否则保留追究法律责任的权利。
</div>
<div class="postDesc">posted @ <span id="post-date">2019-03-11 01:04</span> <a href="https://www.cnblogs.com/wangjunwei/">GASA</a> 阅读(<span id="post_view_count">13</span>) 评论(<span id="post_comment_count">0</span>) <a href="https://i.cnblogs.com/EditPosts.aspx?postid=10508277" rel="nofollow">编辑</a> <a href="#" onclick="AddToWz(10508277);return false;">收藏</a></div>
</div>
<script type="text/javascript">var allowComments=true,cb_blogId=60752,cb_entryId=10508277,cb_blogApp=currentBlogApp,cb_blogUserGuid='29a68de3-869e-de11-ba8f-001cf0cd104b',cb_entryCreatedDate='2019/3/11 1:04:00';loadViewCount(cb_entryId);var cb_postType=1;var isMarkdown=false;</script>
</div>
昵称:
不改了 退出 订阅评论
[Ctrl+Enter快捷键提交]
【活动】戴尔助力小企业,商务爆品5折秒,最低低至¥2399
【推荐】程序员问答平台,解决您开发中遇到的技术难题
· 9-客户端集成IdentityServer
· .NetCore身份认证:IdentityServer4实现OAuth2.0客户端模式
· .NetCore身份认证:IdentityServer4实现OAuth2.0客户端模式-简书
· 客户端集成IdentityServer4
· ASP.NET Core分布式项目-1.IdentityServer4登录中心
· 西数宣布闪存工厂断电事故生产已经恢复 损失3.4亿美元
· AMD CEO Lisa Su 更高端的Navi显卡已经在路上了
· 波兰科研团队称银河系是弯的,网友:呵呵,中国早就发现了!
· 日本公司开发手机气味传感器:性能媲美犬类
· 85%的比特币已被开采 目前仅剩300多万枚比特币
» 更多新闻...
2014-03-11 8 个很有用的 jQuery 技巧(转)