- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
出于安全原因,我的客户坚持认为 IdentityServer4 不应完全托管在 DMZ 中,尤其是考虑到它可以直接访问数据库服务器。
从 IdentityServer4 文档和其他一些帖子来看,似乎应该可以在 DMZ 中托管 MVC 登录页面并将 IdentityServer4 API 留在防火墙后面。如果我理解正确,我可以使用 LoginUrl、LogoutUrl、ConsentUrl、ErrorUrl、DeviceVerificationUrl 设置来实现这一点。
但是,我不确定 OpenID API。我的 SPA 应用程序不仅需要登录页面,还需要访问 OpenID 端点(connect/authorize、connect/userinfo、connect/checksession .well-known/openid-configuration)。
我如何安全地公开 DMZ 中的那些 IdentityServer4 端点?
目前我不知道这些 OpenID 端点是如何由 IdentityServer4 创建的。在我的应用程序启动代码中,我只调用了 AddIdentityServer
和 UseIdentityServer
,这很神奇,用我的 MVC 应用程序注册端点,然后在内部某个深处处理所有身份验证逻辑IdentityServer4.
显然,如果我想分离 IdentityServer4 后端,我应该在我的后端 API Web 服务代码中调用 AddIdentityServer
和 UseIdentityServer
,对吗?我无法在 DMZ 中的前端网站中使用这些方法调用,因为 IdentityServer4 将尝试连接到数据库以获取 OpenID 数据,但数据库位于防火墙后面,无法直接从 DMZ 访问。
我有以下典型的 IdentityServer4 初始化代码:
services.AddIdentityServer(
options =>
{
...
})
.AddConfigurationStore(options =>
{
options.ConfigureDbContext = b => b.UseSqlServer(Configuration.GetConnectionString("IdsvConnection"));
...
})
// this adds the operational data from DB (codes, tokens, consents)
.AddOperationalStore(options =>
{
options.ConfigureDbContext = b => b.UseSqlServer(Configuration.GetConnectionString("IdsvConnection"));
...
})
.AddAspNetIdentity<ApplicationUser>();
但是如果我把这段代码留在前端,IdentityServer4 将无法工作。有没有办法通过后端 API 配置其他类型的操作和配置存储数据库访问?
我当前的 IdentityServer4 基础架构如下所示:
SPA APP,
mobile apps
|
|
MVC app
with login pages
and IdentityServer4 OpenID endpoint
|
|
SQL server
with IdentityServer4 config
and operational stores
但我需要这样:
SPA APP,
mobile apps
|
|
--- DMZ ---
MVC app
with login pages
and IdentityServer4 OpenID endpoint
|
|
--- firewall ---
API web service
|
|
SQL server
with IdentityServer4 config
and operational stores
最佳答案
实际上是一个常见的要求,而不是关于编码。它是关于确保如果 DMZ 受到损害,则其他层不会受到损害。标准解决方案是在授权服务器(您的情况下为 IdentityServer)之前使用反向代理。它确保 UI 仍然可以到达 OAuth 端点 - 但如果 DMZ 基础设施遭到破坏,攻击者将无法获得实际的授权服务器及其数据库连接。
关于identityserver4 - 如何将 IdentityServer4 MVC 应用程序拆分为前端 UI/API 和后端 API,以便在 DMZ 中安全托管?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56803476/
我有一个数组列表: ArrayList allText = new ArrayList(); 其内容是这样的: [Alabama - Montgomery, Alaska - Juneau, Ariz
我有一个 timestamp 格式的开始和结束时间。我想将它们分成多个时间段,例如 1 小时。 $t1 = strtotime('2010-05-06 12:00:00'); $t2 = strtot
我需要将 span10 分成 3 列,但我无法将它们排列起来。我应该在 span10 中添加一个 span12 还是使用 offset 还是??
我有一个时间序列。我想从早上 8 点到第二天早上 7:59 分成 24 小时的区 block 。我知道如何按日期分组,但我尝试过使用 TimeGroupers 和 DateOffsets 处理这个 8
我收到“街道号码邮政编码城市”形式的地址(作为字符串)。我想要做的是将街道和号码与邮政编码和城市分开。通常你可以按空格分割。但有些街道名称中也有空格,例如:“Emile Van Ermengemlaa
我有一个用户列表。其中一些用户处于第一状态,而其他用户处于第二状态。所以我想要的是将这个列表显示为首先,它按排序顺序显示存在 = 1 的用户,然后按排序顺序显示存在 = 2 的用户。这里的排序是根据用
我感觉我搜索了整个网络,但找不到一种方法将不同高度的 div 很好地划分为 3 列,就像 http://www.ing.nl 上那样 headertekst headerteksttesth
Bootstrap 3 按钮下拉菜单出现问题。你可以在这里看到我的两个例子: http://www.bootply.com/W1dLusilMk http://www.bootply.com/GGBv
我在 php 中执行以下操作 foreach($QuestionAsekd as $k => $v){ $grp_name = $v['NAME']; $groupValues[$gr
我找到了一种用pandas解析html的绝妙方法。我的数据格式有点奇怪(见下文)。我想将这些数据拆分为 2 个单独的数据帧。 注意每个单元格如何由,分隔...是否有任何真正有效的方法来分割所有这些单元
HTML 看起来像这样,但我不允许对其进行更改。我只能编写 CSS 将其变成 2 列。 Povezave www.behance.net www.kiberpipa.org www.o
假设我有以下数据框“A” utilization utilization_billable service 1
我需要将 2 个文本框拉伸(stretch)到 100% 的浏览器宽度,以及一个提交按钮。所有三个都应该在一行中,我试图拉伸(stretch)它但它没有发生......有什么想法吗? 代码: .sea
我是一名优秀的程序员,十分优秀!