IdentityServer4实战 - 必须使用HTTPS问题解析

  关于必须使用HTTPS这个问题,很多朋友都在群里问到了,不过由于这个问题很简单,一直也没通过文章的方式记录下来,今日有时间,便说说它的前因后果吧,给需要的人解惑~。

  本文所使用代码为 IdentityServer4 的 QuickStart2 的源代码,文末会给出下载地址

  

 

  该项目默认监听 localhost ,我们需要改变,让我们通过局域网IP也能访问(后文解释)。打开launchSettings.json修改applicationUrl,如下图:

  

 

  然后启动 QuickstartIdentityServer,出现下图所示则表示修改正确 :

  

 

  打开浏览器,通过局域网ip(我的局域网ip是:192.168.0.102)访问,确保我们能成功访问。

  

 

  2.启动 API 项目

  

 

  首先将该项目访问 Ids4 的地址改为局域网地址:

  

 

  然后启动,可以看到报错了,提示必须使用 HTTPS。

  

 

  关于/.well-known/openid-configuration这个地址这里简单提一下,这个是 OpenIdConnect 协议中定义的一个 EndPoint 用于获取,其他 EndPoint 等信息。

  下面我们介绍如何来解决。

  我们修改一下 ResourceOwnerClient 项目的代码:

  

 

  主要是这句代码

  我们通过设置 RequireHttps 属性为 false 来关闭对 Ids4 地址HTTS的验证。

  必须使用HTTPS这个问题,很多人都是部署到生产环境才发生的,因为生产环境很多情况下不会用localhost作为 IdentityServer4(后文简称 Ids4) 的地址,这个问题并不是 Ids4 引起的,而是我们使用的IdentityModel这个组件引起的,它默认限制了当 Ids4 非localhost地址时,必须启用HTTPS。

  项目所用代码:https://github.com/stulzq/IdentityServer4.Samples/tree/master/Practice/04_HTTPS

  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值