IdentityServer4实战 - 与API单项目整合

原文:IdentityServer4实战 - 与API单项目整合

一.前言

我们在实际使用 IdentityServer4 的时候,可能会在使用 IdentityServer4 项目添加一些API,比如 找回密码、用户注册、修改用户资料等,这些API与IdentityServer4怎么共存在一个项目呢?

二.整合

1.首先在 Startup.cs 中添加 IdentityServer4

services.AddIdentityServer(options=>options.Authentication.CookieAuthenticationScheme= "Cookies")
                .AddDeveloperSigningCredential()
                .AddInMemoryIdentityResources(Config.GetIdentityResources())
                .AddInMemoryApiResources(Config.GetApis())
                .AddInMemoryClients(Config.GetClients())
                .AddTestUsers(Config.GetUsers());

2.然后在添加 IdentityServer4 下添加认证

services.AddAuthentication("Bearer")
                .AddCookie("Cookies")
                .AddJwtBearer("Bearer", options =>
                {
                    //identityserver4 地址 也就是本项目地址
                    options.Authority = "http://localhost:5000";
                    options.RequireHttpsMetadata = false;
                    options.Audience = "api1";
                });

注意事项

  • Cookie Scheme 是非必须的,但是如果不设置会报错,但是也不会影响正常使用
  • AddAuthentication 必须必须必须 放在 AddIdentityServer 之后

3.中间件配置

app.UseIdentityServer();

这里只需 UseIdentityServer 即可

三.测试

在 IdentityServer4 项目添加一个 Controller

[Route("identity")]
[Authorize]
public class IdentityController : ControllerBase
{
    public IActionResult Get()
    {
        return new JsonResult(from c in User.Claims select new { c.Type, c.Value });
    }
}

将 IdentityServer4 项目的端口设置为5000,使用密码模式,下面进行测试:

1.请求Token

2.请求API

四.资料

本文Demo:

https://github.com/stulzq/IdentityServer4.Samples/tree/master/Practice/05_Integration

原文地址:https://www.cnblogs.com/lonelyxmas/p/10346380.html

时间: 2024-10-17 23:35:28

IdentityServer4实战 - 与API单项目整合的相关文章

实战突击: Java Web项目整合开发(PDF)

实战突击:  Java  Web项目整合开发(PDF)

Unity3D-RPG项目实战(3):整合Visual Studio 2013开发环境

古人云:工欲善其事必先利其器,IDE虽然属于一个非常上层的工具,但是一个好的IDE对工作效率提高还是很大的. 其实我还是满想用一下官方推荐的Mono,毕竟跨平台现在还是很重要的一个特性.尝试了这1周,作为一个从VC5就开始抱MS大腿的老屌丝程序员,实在怀念Visual Studio.话说还是Visual Studio的代码编辑器好用啊. 另外,今天看到消息称,开发Unity的VS整合工具的SyntaxTree已经被微软收购了,UnityVS以后都免费啦,哈哈.今天试了一把,还是满好的.:) 详见

.NET Core IdentityServer4实战 第二章-OpenID Connect添加用户认证

原文:.NET Core IdentityServer4实战 第二章-OpenID Connect添加用户认证 内容:本文带大家使用IdentityServer4进行使用OpenID Connect添加用户认证 作者:zara(张子浩) 欢迎分享,但需在文章鲜明处留下原文地址. 在这一篇文章中我们希望使用OpenID Connect这种方式来验证我们的MVC程序(需要有IdentityServer4),我们首先需要干什么呢?那就是搞一个UI,这样非常美观既可以看到我们的身份验证效果,那么Iden

Asp.Net Core 中IdentityServer4 实战之角色授权详解

一.前言 前几篇文章分享了IdentityServer4密码模式的基本授权及自定义授权等方式,最近由于改造一个网关服务,用到了IdentityServer4的授权,改造过程中发现比较适合基于Role角色的授权,通过不同的角色来限制用户访问不同的Api资源,这里我就来分享IdentityServer4基于角色的授权详解. IdentityServer4 历史文章目录 Asp.Net Core IdentityServer4 中的基本概念 Asp.Net Core 中IdentityServer4

Swagger与SpringMVC项目整合

Swagger与SpringMVC项目整合 为了方便的管理项目中API接口,在网上找了好多关于API接口管理的资料,感觉目前最流行的莫过于Swagger了,功能强大,UI界面漂亮,并且支持在线测试等等,所以本人仔细研究了下Swagger的使用,下面就如何将Swagger与个人的SpringMVC项目进行整合做详细说明: Step1:项目中引入相关jar包: <properties> <project.build.sourceEncoding>UTF-8</project.bu

(转)shiro权限框架详解06-shiro与web项目整合(下)

http://blog.csdn.net/facekbook/article/details/54962975 shiro和web项目整合,实现类似真实项目的应用 web项目中认证 web项目中授权 shiro缓存 sessionManager使用 验证码功能实现 记住我功能实现 web项目中认证 实现方式 修改CustomRealm 的 doGetAuthenticationInfo 方法,从数据库中获取用户信息,CustomRealm 返回查询到的用户信息,包括(加密后的密码字符串和salt

(转) shiro权限框架详解06-shiro与web项目整合(上)

http://blog.csdn.net/facekbook/article/details/54947730 shiro和web项目整合,实现类似真实项目的应用 本文中使用的项目架构是springMVC+mybatis,所以我们是基于搭建好的项目进行改造的. 将shiro整合到web应用中 登录 退出 认证信息在页面展现,也就是显示菜单 shiro的过滤器 将shiro整合到web应用中 数据库脚步 sql脚步放到项目中,项目上传到共享的资源中,文章最后给出共享url. 去除项目中不使用shi

项目整合Discuz UCenter

虽然个人非常不喜欢discuz,但没办法,市场就是力量,特别是对于整合discuz论坛的朋友,你如果不想用两套系统的话,整合UCenter是必然的事,虽然无趣,但不得不这么做. 一.准备工作 1.uc api说明书,通读全文.参考http://faq.comsenz.com/library/UCenter/introduction/introduction_list.htm 2.uc 后台添加应用说明.参考http://faq.comsenz.com/viewnews-506(官方) http:

PMP:4.项目整合管理

====================项目整合管理======================== 项目整合管理包括对隶属于项目管理过程组的各种过程和项目管理活动进行识别.定义.组合. 统一和协调的各个过程. { 4.1 制定项目章程 - 编写一份正式批准项目并授权项目经理在项目活动中使用组织资源的文 件的过程. 4.2 制定项目管理计划 - 定义.准备和协调项目计划的所有组成部分,并把它们整合为一份综合项目管理计划的过程. 4.3 指导与管理项目工作 - 为实现项目目标而领导和执行项目管理计