我正在尝试使用 sed 将 nginx.conf 中的文本“localhost”替换为我的 docker 主机的 IP 地址(仅供参考。在本地使用 docker 机器,它在 192.168.99.100 上运行 docker)。
我的 nginx Dockerfile 如下所示:
FROM nginx:alpine
ARG DOCKER_HOST
COPY ./nginx.conf /etc/nginx/nginx.conf
RUN sed -i 's/localhost/${DOCKER_HOST}/g' /etc/nginx/nginx.conf
EXPOSE 80
我的 nginx.conf 文件看起来像这样(注意:为简单起见,删除了多数)
http {
   sendfile on;
   upstream epd {
      server localhost:8080;
   }
   # ...
}
我期待“localhost”被替换为“192.168.99.100”,但它实际上被替换为“${DOCKER_HOST}”。这会导致错误
在上游“${DOCKER_HOST}:8080”中找不到主机
我已经尝试了一些其他的东西,但我似乎无法让这个工作。我可以确认 DOCKER_HOST 构建参数正在通过我的 docker compose 脚本进入 Dockerfile,因为我可以回应这一点。
非常感谢您的任何答复...
我非常精通与OAuth 2.0 和 JWT 相关的大多数事情,但仍然有点令人困惑的一件事是是否/何时使用作用域与角色。
我认为一些混乱来自基于角色的授权在 ASP.NET Core(这是我工作场所的主要语言/框架)中的工作方式。例如; 如果我在 JWT 中有如下角色
{
  "aud": "test",
  "iss": "http://localhost:8080/auth/realms/test/",
  "iat": 1585192274,
  "nbf": 1585192274,
  "exp": 1585196174,
  "sub": "12345",
  "roles": ["Admin", "SuperUser"]
}
我可以很容易地保护路线,而无需做太多事情,例如:
[ApiController]
[Route("api/v{version:apiVersion}/template/test")]
public class TestController : Controller
{
    [HttpGet]
    [Authorize(Roles = "Admin")]
    public IActionResult Get()
    {
        return Ok("test");
    }
}
我可以使用具有 dotnet 授权策略的范围来实现与上述非常相似的内容,但我只想知道是否有关于是否/何时使用范围或角色的指导,或者这只是一个偏好问题......
我在任何与 OAuth/JWT 相关的 RFC 中都找不到对角色声明的太多参考,而在整个过程中都提到了作用域。
authorization scopes oauth-2.0 jwt role-based-access-control
在FluentValidation中是否有扩展或其他方式来推迟选择子验证器,具体取决于要验证的属性的类型/值?
我的情况是我有一个我要验证的Notification类.这个类有一个Payload属性,它可以是许多Payload类型之一,例如SmsPayload,EmailPayload等.这些Payload子类中的每一个都有自己的相关验证器,例如SmsPayloadValidator和EmailPayloadValidator.除上述内容外,核心库和个别通知提供者均未提及.从本质上讲,这意味着我可以根据需要添加提供程序,并使用IoC连接所有内容.
考虑以下类:
public class Notification
{
    public Payload Payload { get; set; }
    public IEnumerable<string> Details { get; set; }
}
public abstract class Payload
{
    public string Message { get; set; }
    public abstract string Type { get; }
}
public class SmsPayload : Payload
{
    public List<string> Numbers { get; set; }
    public string Region { get; set; }
    public string Provider { get; set; }
}
有一个Notification验证器和SmsPayloadValidator如下:
public class NotificationValidator : AbstractValidator<Notification>
{
    public NotificationValidator(IValidator<Payload> payloadValidator) ….net validation expression-trees fluentvalidation simple-injector
是否可以以某种方式模板化 oauth2 安全方案的基本路径authorizationUrl来tokenUrl处理多个环境(例如 dev、sit、uat)?
我工作的公司每个环境都有一个单独的 IDP 租户,每个环境中的服务将针对特定租户/发行者验证令牌。
理想情况下,我可以定义和选择租户基本 URL,类似于我为 API 路由创建服务器模板的方式 - 请参阅此处。

我的securitySchemes目前看起来像这样:
"securitySchemes": {
    "oauth": {
        "type": "oauth2",
        "flows": {
            "authorizationCode": {
                "authorizationUrl": "https://tenant-dev.au.auth0.com/authorize?audience=test",
                "tokenUrl": "https://tenant-dev.au.auth0.com/oauth/token"
            }
        }
    }
}
到目前为止,我能想到的唯一多环境方法是使用以下安全方案配置,它允许我指定任何 JWT。缺点是我仍然需要通过一些外部手段获取 JWT...
"securitySchemes": {
    "oauth": {
        "type": "http",
        "scheme": "bearer",
        "bearerFormat": "JWT"
    }
}
笔记;
我工作的公司正在使用 gitflow。
我们遵循每个功能分支的方法,其中实现、测试单个功能,然后 PR 进入开发阶段。当需要发布时,我们会在开发之外创建一个发布分支 - 我们在发布分支上触发构建并将其部署到 TEST 环境。由于合并到开发中的多个功能分支,可能存在一些集成缺陷。这些是直接针对发布分支解决的。一旦我们很高兴与发布分支,我们部署(确切的状态同样是签署过建立由QA),以督促。
在这个阶段,我们需要让我们的发布分支代码回到 develop 并进入 master,这两个分支都是受保护的分支。假设有一些针对 release 分支的提交,我们需要做 2 个 PR,即一个用于 release->develop,一个用于 release->master。
几个问题:
谢谢。
在 Azure DevOps 中,git repos 的分支安全将所有 Azure DevOps 组的“强制推送”属性默认为“未设置”。这实际上拒绝了此权限。
我们在我工作的地方关注 gitflow,并且通常会明确拒绝持久分支、Master 和 Develop 的此权限;但是,对于功能分支,我宁愿将其默认为“允许”,这样管理员就不必参与其中。有没有办法将所有分支的 Azure DevOps“贡献者”组的“强制推送”默认为“允许”,除非明确设置为“拒绝”?
干杯。
将 .NET Core通用主机用于处理异步消息的应用程序。
我们使用通用主机而不是 .NET Core WebHost 的原因是因为我的一位同事曾见过几次 MassTransit(我们正在使用的轻量级服务总线框架)作为 .NET Core 的一部分运行在 Linux 上,WebHost 并不总是在收到 SIGTERM 信号后正常关闭 - 我们必须使用 SIGKILL 来强行终止进程。
该应用程序将在 Kubernetes 上运行,我们希望使用 K8s 活性探针实现自我修复架构。在其他使用 WebHost 的 .NET Core 应用程序中,我们使用了.NET Core 2.2 中引入的运行状况检查,但我不知道如何在通用主机中使用这样的中间件。
在 WebHost 中,我可以按如下方式配置中间件:
app.UseHealthChecks(appSettings.HealthChecksPath ?? "/health");
如果使用 .NET Core 通用主机,我将如何去做呢...
亲切的问候。
.net-core asp.net-core asp.net-core-middleware asp.net-core-2.2 .net-core-2.2
我正在尝试使用客户端凭据通过 Swagger UI(由 Swashbuckle.AspNetCore 自动生成)向我的 Auth0 租户进行身份验证。
我收到以下错误:
Auth ErrorError,错误:access_denied,描述:不允许非全局客户端访问 APIv1
这是一个屏幕截图:
开放 API 规范如下所示:
"securitySchemes": {
   "auth0": {
      "type": "oauth2",
      "flows": {
         "clientCredentials": {
            "tokenUrl": "https://example.auth0.com/oauth/token"
         },
         "authorizationCode": {
            "authorizationUrl": "https://example.auth0.com/authorize?audience=test",
            "tokenUrl": "https://example.auth0.com/oauth/token",
            "scopes": { }
         }
      }
   }
}
audience我怀疑这与未指定有关。我在授权代码流方面遇到了类似的问题,但设法通过将受众作为查询字符串参数附加到authorizationUrl(如上所示)来实现此工作。不幸的是,同样的技巧不适用于客户端凭证流(即尝试将受众附加到tokenUrl)。我需要支持客户端凭证流,因为一条或多条路由需要仅锁定到 M2M 令牌。
有趣的是,如果我使用全局客户端 ID/秘密(在租户的高级设置下找到),它就可以工作,但我不确定我们是否应该使用它......
其他人也遇到过这个问题,如果是的话,找到解决方案是否运气好?
我正在尝试将TFS存储库迁移到git,但我遇到了一个问题.
查看TFS中此特定存储库的历史记录,看起来好像已将父级复制到新的TFS存储库中,然后稍后将父级无基础合并到其中(或类似的东西).
当我运行"git tfs clone"命令时,我收到错误:
git-tfs无法找到分支'$/x'与其父分支'$/y'之间的根变更集(即最后一次常见提交)...
是否可以使用git tfs clone限制历史记录?我知道我可以使用快速克隆,但这只能给我最后的提交.理想情况下,我想回到特定的更改集,或者排除没有共同父级的无基础合并变更集...
干杯!
dotnet core 2.2.3 和 Keycloak 4.5.0 基于角色的授权存在一些小问题。
在 Keycloak 中,我定义了一个“tester”角色和一个客户端角色“developer”,并为“admin”用户定义了适当的角色映射。在对 Keycloak 进行身份验证后;如果我查看 jwt.io 中的 JWT,我可以看到以下内容:
{
  "realm_access": {
    "roles": [
      "tester"
    ]
  },
  "resource_access": {
    "template": {
      "roles": [
        "developer"
      ]
    },
    ...
  },
  ...
}
在 .NET 核心中,我尝试了很多事情,例如添加[Authorize(Roles = "tester")]或[Authorize(Roles = "developer")]到我的控制器方法以及使用基于策略的授权,我context.User.IsInRole("tester")在其中检查我的AuthorizationHandler<TRequirement>实现。
如果我在身份验证处理程序中设置了一些断点。当它被击中时,我可以看到“tester”和“developer”角色列为context.user.ClaimsIEnumerable下的项目,如下所示。
{realm_access: {"roles":["tester"]}}
{resource_access: {"template":{"roles":["developer"]}}}
所以,我应该能够被用于验证值做成功的AUTH处理器的授权realm_access和resource_access中context.user.Claims集,但这需要我反序列化要求值,这只是似乎是JSON字符串。
我在想必须有更好的方法,或者我没有做对的事情。
git ×3
.net-core ×2
openapi ×2
.net ×1
asp.net-core ×1
auth0 ×1
azure-devops ×1
dockerfile ×1
git-flow ×1
git-tfs ×1
jwt ×1
keycloak ×1
oauth ×1
oauth-2.0 ×1
scopes ×1
sed ×1
swagger ×1
swagger-ui ×1
swashbuckle ×1
tfs ×1
validation ×1