Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Identityserver4 是否可以在应用程序启动后连接外部身份验证?_Identityserver4_Openid Connect_Ws Federation_Federation - Fatal编程技术网

Identityserver4 是否可以在应用程序启动后连接外部身份验证?

Identityserver4 是否可以在应用程序启动后连接外部身份验证?,identityserver4,openid-connect,ws-federation,federation,Identityserver4,Openid Connect,Ws Federation,Federation,现在,我们在ConfigureServices中添加了外部身份验证,如下所示 services.AddAuthentication(options => { options.DefaultScheme = "Cookies"; options.DefaultChallengeScheme = "oidc"; }) .AddCookie("Cookies") .AddO

现在,我们在ConfigureServices中添加了外部身份验证,如下所示

services.AddAuthentication(options =>
    {
        options.DefaultScheme = "Cookies";
        options.DefaultChallengeScheme = "oidc";
    })
    .AddCookie("Cookies")
    .AddOpenIdConnect(...
在启动期间,我检索所有联合配置(Oidc和WsFed),并将它们连接到ConfigureServices中


但是,想象一下一个多tennant场景,在添加新客户机的同时添加新的联合配置。我知道的唯一解决方案是回收应用程序,以便ConfigureServices可以再次运行,检索所需集成的条目,并为每个条目添加一个调用。如果不需要重新启动,这将非常有用。欢迎任何想法。

您可以在一个应用程序中使用多个AddOpenIdConnect,您需要做的最重要的事情是确保每个URL都不同:

  CallbackPath = new PathString("/signin-oidc");
  SignedOutCallbackPath = new PathString("/signout-callback-oidc");
  RemoteSignOutPath = new PathString("/signout-oidc");

但是,我不知道您是否可以在运行时动态添加/删除处理程序。

是的,您可以动态添加模式,下面是一个示例
它的代码很旧,但仍然准确。请务必同时执行
postconfigure
步骤。这是另一个很好的答案。

是的,也许我不清楚-我完全知道可以有多个联合会,我们已经有了一批Oidc和Wsfed。这是我想了解的动态添加。