Results 11 comments of lnh

> @allenz92 > > 而现代密码学不依靠机密性,加解密算法都是完全公开的 > > 为什么大家都选用公开的加解密算法,自定义加解密算法不是更安全吗? 因为安全本身是相对的,没有绝对的安全。加密的安全指的是解密的计算量,而不是解密算法本身。打个比方,就是说我把密文和解密算法都给你,你用全世界的计算机去算,也需要100年。而不是你把算法藏起来不告诉我,计算量低的话,分分钟给你暴力破解出来。自己实现的算法就像是阴谋,而公开的算法则是阳谋,阴谋一旦被公开就破产了,而阳谋是无解的。

> REST 与 HTTP 完全绑定,不适合应用于要求高性能传输的场景中。 其实REST和HTTP并无完全绑定的关系,正如您文中所说的REST是架构风格,HTTP是应用层的协议。只因REST是伴随设计HTTP和URI协议过程中的产生的理论指导思想。比如在2014年一个基于UDP的CoAP()就是符合REST的架构风格的另外一个协议。 关于性能的问题,Fielding在他的那篇博士论文中把性能拆分为用户感知的性能、网络性能和网络效率三部分来衡量。通常来讲RPC关注的点大都在于提升网络性能(选择基于TCP而不是HTTP)、网络效率(采用protobuf而不是json),而很少去关注用户感知的性能这个指标。但是这个指标其实才是我们最终追求的最重要的衡量指标,所以REST中定义了缓存+分层系统这2个架构约束,然后HTTP支持了这两个约束,由此才催生出了CDN,这也对应了REST论文中的一个观点(An interesting observation about network-based applications is that the best application performance is obtained by not using the network)。同时HTTP/2也在改善了HTTP协议本身的性能,HTTP/3在尝试解决传输层TCP的性能问题,这些协议层面的优化在应用层是完全无感知就可以享受到的,这一点相比RPC的私有协议是要更通用方便一些的。不过也正是其通用的request/response模型,导致其无法适用于需要双向实时通信这种场景。 REST的目标在于如何有效的利用网络;RPC的目标大都在于如何屏蔽网络差异,让消费方尽可能的当作一个本地function来使用用。

贴一下更具体的错误我看看。

还没验证,理论上是有影响的。影响主要分为两部分: ## 1. 默认值从None改为Lax造成的影响 1.1 form_post方式提交idtoken给RP时,浏览器无法发送认证开始时RP记录下来的cookie,比如nonce。 1.2 前端使用iframe做checksession,无法发送OP自己维持登录所需的cookie,导致check失败。 1.3 front channel logout时使用iframe来调用其他的RP退出时无法发送RP自身所需的cookie。 这三个都是OIDC协议中规定使用的form_post和iframe。其中1.1影响最大,这个是在认证阶段用[form_post](http://openid.net/specs/oauth-v2-form-post-response-mode-1_0.html)给RP返回信息时,理论上可以通过换成querystring的方式为绕过去。1.2是当你使用[session management](http://openid.net/specs/openid-connect-session-1_0.html)时。1.3的影响最小,发生在[front channel logout](http://openid.net/specs/openid-connect-frontchannel-1_0.html)阶段。 最简单的解决办法那就是设置成None,同时启用HTTPS。但是也会但来下面一个问题。 ## 2. 旧的一些浏览器不支持None,当成Strict来处理造成的影响。 这个影响就和我们的应用无关了,但是这个影响却是最恶心人的,没太好的处理办法,只能探测user agent来动态调整set-cookie时要不要设置Samesite=None。 以上纯粹是理论上的影响,我这边也没实际去验证。

你用vs2017 打开一下`oidc.example.sln`试试能不能编译.

安装vs的时候: 其他部分的组件可以不要; .net core和 aspnet 那部分装上去.

1. 管理员运行命令. 2. 开启本机的iis.

你试试docker的吧, 我更新了下docker的构建方式. 现在只需运行docker-compose up -d 即可. 无需安装net环境了.

iis上运行的化还需要一个asp net core module的组件(被包含在这个安装包里面 https://www.microsoft.com/net/download/thank-you/dotnet-runtime-2.1.2-windows-hosting-bundle-installer)

是的, build.ps1会自动修改hosts文件的, 前提是hosts允许被修改(建议修改为当前用户可以读写即可).