快上网专注成都网站设计 成都网站制作 成都网站建设
成都网站建设公司服务热线:028-86922220

网站建设知识

十年网站开发经验 + 多家企业客户 + 靠谱的建站团队

量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决

IdentityServer4中OpenIDConnect如何添加用户认证

本篇文章为大家展示了IdentityServer4中OpenID Connect如何添加用户认证,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。

成都创新互联是一家专注网站建设、网络营销策划、微信小程序定制开发、电子商务建设、网络推广、移动互联开发、研究、服务为一体的技术型公司。公司成立十载以来,已经为上千余家纯水机各业的企业公司提供互联网服务。现在,服务的上千余家客户与我们一路同行,见证我们的成长;未来,我们一起分享成功的喜悦。

我们希望使用OpenID Connect这种方式来验证我们的MVC程序(需要有IdentityServer4),我们首先需要干什么呢?那就是搞一个UI,这样非常美观既可以看到我们的身份验证效果,那么IdentityServer官方已经给我们提供了一套UI了,我们从哪里可以获取呢?

可以通过这个地址就行克隆安装到本地并附加到你的MVC程序中,地址。当然我们可以根据PowerShell 进行远程拉取(以下命令在项目根目录进行Code)

在Windows中我们的命令如下:

iex((New-Object System.Net.WebClient).DownloadString('https://raw.githubusercontent.com/IdentityServer/IdentityServer4.Quickstart.UI/master/getmaster.ps1'))

或者在macOS或Linux上使用bash one-line:

\curl -L https://raw.githubusercontent.com/IdentityServer/IdentityServer4.Quickstart.UI/master/getmaster.sh | bash

 下图所示是我在Windows Powershell中进行远程拉取的。

IdentityServer4中OpenID Connect如何添加用户认证

安装完项目中会添加一个Quickstart的这么一个文件夹,其中有IdentityServer给我们写好的代码,有控制器,模型,视图,静态文件等等。

IdentityServer4中OpenID Connect如何添加用户认证

当然还需要在Startup类中配置好你的MVC,这需要在ConfigureService里面将MVC添加到DI中并在Configure方法中将MVC中间件添加到管道上。

IdentityServer4中OpenID Connect如何添加用户认证

首先我们通过 AddAuthentication 将身份验证服务添加到我们的DI中。其中参数有三个,第一个 DefaultScheme 它呢可以设置我们通过Cookies进行保存登录信息。那么后面是我们的 DefaultChallengeScheme ,它的参数是 oidc ,也就是因为当我们需要用户登录时,我们将使用OpenID Connect协议。然后 AddCookie ,我们使用添加可处理cookie的处理程序。最后, AddOpenIdConnect 用于配置执行OpenID Connect协议的处理程序。这 Authority 表明我们信任IdentityServer。然后我们通过 ClientId 。识别这个客户。  SaveTokens 用于在cookie中保留来自IdentityServer的令牌,同时我还关闭了JWT声明映射,这样会让我们的应用程序流畅地通过: JwtSecurityTokenHandler.DefaultInboundClaimTypeMap.Clear(); 。

最后,我们需要让我们的认证请求达到响应,应在管道中的MVC之前添加认证中间件。

IdentityServer4中OpenID Connect如何添加用户认证

为了触发验证,我们在 HomeController 中添加一个特性 [Authorize] 。还要修改该Action的View以显示用户的信息,例如:

IdentityServer4中OpenID Connect如何添加用户认证

如果你现在启动的话,会出现内部错误,因为MVC客户端在认证平台服务器中并没有注册。

现在我们回到我们的认证服务中心,在Config.cs中添加如下代码(范围代表您想要保护的内容以及客户想要访问的内容。与OAuth相比,OIDC中的范围不代表API,而是代表用户ID,名称或电子邮件地址等身份数据。)

IdentityServer4中OpenID Connect如何添加用户认证

然后,您需要将这些身份资源添加到Startup.cs中的IdentityServer配置中。使用 AddInMemoryIdentityResources 扩展方法调用 AddIdentityServer() 。

IdentityServer4中OpenID Connect如何添加用户认证

最后一步是将MVC客户端的配置添加到IdentityServer。基于OpenID Connect的客户端与我们目前添加的OAuth 2.0客户端非常相似。但由于OIDC中的流程始终是交互式的,因此我们需要在配置中添加一些重定向URL。将以下内容添加到您的客户端配置:

IdentityServer4中OpenID Connect如何添加用户认证

就这样我们启动项目,现在启动项目也就没有什么问题了。

IdentityServer4中OpenID Connect如何添加用户认证

 其中我们用到了IdentityServer的Quickstart,虽说已经写好了很多相关的控制器等等,这个Ui但是还是自己写个好,或者改造!

上述内容就是IdentityServer4中OpenID Connect如何添加用户认证,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注创新互联行业资讯频道。


分享标题:IdentityServer4中OpenIDConnect如何添加用户认证
分享地址:http://6mz.cn/article/pjcjco.html

其他资讯