基于IdentityServer4的统一验证授权中心

随着企业信息化的深入,一个企业往往会由很多应用系统。以往是每个应用系统分配一个账号给用户,然后用户通过分配的账号登陆系统操作。那么问题就来了,一个用户在A系统可能由一个账号,在B系统也有一个账号,有n个系统就有n个账号。

同一个体制下,同一个人为什么需要如此多的账号。为什么不可以一个账号,可以同时登陆多个应用。

这样做有以下好处:

1、用户不用记住太多乱七八糟的账号密码,只记住一个,可以登陆所有系统。

2、可以对每个账号进行统一的授权

3、对离职人员不用每个系统进行注销账号,统一注销。

可能还有很多其它的好处,此处省略三百字。

其实到这里很多人已经明白了,就算SSO。那么如何去实现SSO呢,有很多中方式,但是百变不离其中,原理都是一样的。今天我主要讲的是基于IdentityServer4去实现。那IdentityServer4到底是什么东东,有那些模式,问百度。

有人说这个复杂,适合中大型项目,其实这个很主观的。主要是看用的人的水平。任何技术,满足业务就好。其罗马的路千万条,走你最熟悉的就好。

IdentityServer4就是这样一个框架,IdentityServer4是为ASP.NET CORE量身定制的实现了OpenId Connect和OAuth2.0协议的认证授权中间件。

为了实现这个,首先要有一个IdentityServer4服务中心,任何需要登陆系统的人判断未登录,就直接飞到此处报个到。然后就可以飞到任何一个你有权限的系统,记住是有权限的。为什么这么说呢?因为每个人在组织的地位不同,可以看到的东西也不同。我的设想是不单单要在SSO端实现身份的验证,还要实现权限的控制。当然这个是一整套架构体系了,因为我这里设置了A员工对B系统只有读的权限,可是B系统就算不认账,偏偏给A员工写的权限。so,对于企业信息化要有大规划,而不是今天找a公司搞个xx系统,明天上个yy系统,最后一个个系统就像一个个数据孤岛,各种为证。最后只会越来越乱。

一时压不住内心的想法,继续主题。为了实现登陆、权限控制就需要定制很多接口。这些接口会和各个系统说,这小子已经登陆了,它是谁,它可以干嘛。你们就按照我给你们说的给他操作你的系统。好了,规矩定好了,大家按规矩做。世界多美好啊。

对于程序员的你可能会说,他妈的这么多废话,快点上代码啊,我还真不打算上代码,客官,给个图可否:


工欲善其事必先做个美美的页面。

今天到此为止,欲知后续如何,请多多关注!

你可能感兴趣的:(基于IdentityServer4的统一验证授权中心)