IdentityServer 客户端重定向 Urls 中是否允许使用通配符

Are wildcards allowed in IdentityServer Client Redirect Urls

我正在 运行 编写自己的测试 IdentityServer,但遇到了障碍。必须为每个基于浏览器的客户端指定 ClientUri 和 RedirectUris。我知道这些可以存储在数据库中,但是有没有办法在这里插入通配符?

我们的每个客户都有自己的子域,我想通过允许所有尝试访问我们在 *.ourcompany.com 的任何应用程序的浏览器在身份上被视为同一客户端来简化用户管理服务器。这可能吗

您可以实现自己的重定向 URI 验证器。但出于安全原因,不建议这样做,因为它会扩大攻击面。

  1. Redirect Uri Validator Interface
  2. How to register your custom validator
  3. Discussion about redirect uri


身份服务器 4

我想你可以在启动时加上AddCustomAuthorizeRequestValidator。不过,不建议修改重定向 URI 验证。

  1. Add Custom services
  2. Related Discussion

对于IdentityServer4,您可以实现自己的IRedirectUriValidator并使用Startup.cs.[=16中的AddRedirectUriValidator扩展方法注册它=]

services.AddIdentityServer(options =>
    {
        // ...
    })
    .AddRedirectUriValidator<CustomRedirectUriValidator>();

默认情况下,StrictRedirectUriValidator 已注册,但可以通过调用 .AddRedirectUriValidator 来覆盖,如上所示。