园子中关于IDSV的文章有很多,但是作为一个小白的我,始终不能跟随众大佬的步伐,遂写下这篇IDS的这篇最佳实践。
阅读本文前,你需要了解以下知识:
1) 了解什么是OAuth2?
参考文献:
http://www.ruanyifeng.com/blog/2014/05/oauth_2_0.html
2) 什么是OIDC?
3)什么是IDS4?
https://identityserver4.readthedocs.io/en/release/
以及晓晨master的中文参考文档 https://www.cnblogs.com/stulzq/p/8119928.html
雨夜朦胧的源码分析文档 http://www.cnblogs.com/RainingNight/p/introduce-basic-authentication-in-asp-net-core.html
BlackHeart的OIDC实战SSO http://www.cnblogs.com/linianhui/p/oidc-in-action-sso.html#auto_id_1
本文依赖的环境如下:
1)netcore2.1环境下的IDSV服务器
2)netcore2.1/netfx环境下对应的客户端接入服务器
3)netcore2.1/netfx环境下对应的验证服务器为1)
一)服务器接入MYSQL脚本设置以及对应表字段含义注解【非官方】
新建一个空白的.netcore应用网站,Nuget拉取以下dll包,IdentityServer4;IdentityServer4.EntityFramework;Microsoft.AspNetCore.All;
参考官方示例 https://github.com/IdentityServer/IdentityServer4.Samples,将其中的Quickstart5_HybridAndApi对应服务端代码拷贝到自己的server中,解决方案截图如下
接下来,我们要做的第一步就是关于示例中api资源,标识资源以及token相关信息存储的数据库建表入库。
我这是使用EF的导入功能完成的。主要步骤包含以下:
1)首先添加如下这句话到对应的项目工程文件中
-
- 注入DI链接
- 修改关于IClientStore, IResourceStore, and ICorsPolicyService,IPersistedGrantStore的实现为EF implementation。
dotnet ef migrations add InitialIdentityServerPersistedGrantDbMigration -c PersistedGrantDbContext -o Data/Migrations/IdentityServer/PersistedGrantDb dotnet ef migrations add InitialIdentityServerConfigurationDbMigration -c ConfigurationDbContext -o Data/Migrations/IdentityServer/ConfigurationDb
此时将在解决方案中生成两个文件夹。
5)执行code first常规操作,将dll中数据库迁移到localdb,本文是使用mssql,其余的也是类似。
-
- 建立一个服务service文件,负责迁移数据。
- 在全局服务中注册执行即可。