千家信息网

如何使用IdentityServer4进行OAuth2.0服务

发表于:2026-10-31 作者:千家信息网编辑
千家信息网最后更新 2026年10月31日,本篇文章给大家分享的是有关如何使用IdentityServer4进行OAuth2.0服务,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。以
千家信息网最后更新 2026年10月31日如何使用IdentityServer4进行OAuth2.0服务

本篇文章给大家分享的是有关如何使用IdentityServer4进行OAuth2.0服务,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。

以下,称这个使用了IdentityServer4的OAuth3.0服务的项目称为Passport项目。

组件说明(Nuget)

Passport项目所需组件

  • 项目以Asp.net Core Identity项目模板初始化,集成IdentityServer4中间件;

  • 集成IdentityServer4.AspNetIdentity用于管理User体系;

  • 集成IdentityServer4.EntityFramework用于持久化OAuth3.0相关角色数据;

  • 集成NLog.Web.AspNetCore用于输出日志;

  • 集成System.Security.Cryptography.Csp使用RSA进行Token签名;

ApiResource(提供Api服务,注册到Passport中)所需组件

  • 如果是Asp.Net Core WebApi项目:集成IdentityServer4.AccessTokenValidation(使用Authorize Policy机制即可);

  • 如果是Asp.Net WebApi项目:集成IdentityServer3.AccessTokenValidation(中间件)+Thinktecture.IdentityModel.WebApi.ScopeAuthorization(提供ScopeAuthorize)

Client所需组件 IdentityModel(提供TokenClient)

注意事项:

  • 其一,ApiResource 无需配置ApiSecret(中间件会请求http://{passport-project-domain}/.well-known/openid-configuration/jwks获取RSA公钥验签);

  • 其二,Client端(调用方)必须设置密码(clientId,clientSecret,请求所需scopes)

  • 其三,配置RSA的时候,千万不能忘记设置KeyId,否则IdentityServer3.AccessTokenValidation获取jwks时kid为null将抛异常。建议KeyId和Rsa的Base64字符串一起存配置文件。参考issue

搭建路线

  1. IdentityServer4官方文档:using-asp-net-core-identity

  2. IdentityServer4官方文档:using-entityframework-core-for-configuration-data

  3. (可选)UI方面可临时用quickstart-ui

  4. (可选)如果是IdentityServer3,还有IdentityServer3.Admin和IdentityServer3.Admin.EntityFramework

  5. Token签名及验签机制选择:RSA。配置方法参考,再强调一遍千万不能忘记设置KeyId

  6. ApiResource及Client的配置参考IdentityServer3和4各组件兼容性测试项目

  7. Asp.Net WebApi(非.Net Core项目)对Scope进行细粒度验证(落实到一个具体Api),使用ScopeAuthorize,安装Nuget组件源码参考
    Install-Package Thinktecture.IdentityModel.WebApi.ScopeAuthorization

Asp.Net Core项目部署笔记

  1. 服务器安装DotNetCore.1.0.4_1.1.1-WindowsHosting.exe

  2. 服务器管理员cmd执行 net stop was /y && net start w3svc

  3. 新建站点

  4. 站点应用程序池设为无托管代码(IIS仅作为反向代理和方便站点发布)

  5. 启用web部署

  6. 手动vs发布,选iis,webdeploy,执行连接字符串,指定迁移连接字符串

  7. 如果遇到IIS Aspnet Core Module启动dotnet进程失败,web.config启用stdoutLogEnabled,并创建logs目录,查看错误信息

以上就是如何使用IdentityServer4进行OAuth2.0服务,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注行业资讯频道。

项目 服务 组件 配置 参考 中间件 字符 字符串 站点 官方 文档 更多 服务器 机制 知识 篇文章 管理 实用 事项 代码 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 咖啡 手冲咖啡和咖啡机区别 上海互联网科技有限公司 西安互联网科技 互联网汽车科技小镇 互联网系的金融科技公司 互联网时代科技改变生活 广州恒生互联网科技有限 互联网和黑科技的看法 互联网5g黑科技有哪些 新兴科技互联网创新大赛颁奖典礼 迪庆互联网科技招生 佛山市拉法互联网科技有限公司 长沙茂晟互联网科技有限公司 群盈汇互联网科技有限公司 沐思想互联网科技有限公司 元气玛特互联网科技公司是外包吗 东营紫格互联网科技 互联网科技职业技能培训学校 恒生科技互联网指数十大成分股 互联网金融科技 广州紫鲸互联网科技有限公司 互联网与科技发展 浩特互联网科技 上海电发互联网科技有限公司 安控科技rtu产品工业互联网 互联网方面的科技前沿 江苏互联网智能科技软件 全球科技与互联网公司市值变化 杭州融税互联网科技有限公司
0