У меня есть приложение с несколькими арендаторами, где каждый арендатор может определить свой собственный ClientID, Authority и т. Д. Для WsFed или OpenIdConnect. Все жильцы зарегистрированы в OwinStartup, как показано ниже:Добавить Owin Pipeline Middleware после OwinStartup для нового арендатора
public void Configuration(IAppBuilder app)
{
List<WsFederationAuthenticationOptions> WsFedTenantOptions = BuildWsFedTenantOptionsList();
List<OpenIdConnectAuthenticationOptions> OpenIdConnectTenantOptions = BuildOpenIdConnectTenantOptionsList();
app.SetDefaultSignInAsAuthenticationType(CookieAuthenticationDefaults.AuthenticationType);
app.UseCookieAuthentication(new CookieAuthenticationOptions() { CookieSecure = CookieSecureOption.Never });
foreach (var WsFedTenantOption in WsFedTenantOptions)
app.UseWsFederationAuthentication(WsFedTenantOption);
foreach (var OpenIdConnectTenantOption in OpenIdConnectTenantOptions)
app.UseOpenIdConnectAuthentication(OpenIdConnectTenantOption);
...
}
Включается, который STS использовать через context.Authentication.Challenge(AuthenticationType)
. Это работает очень хорошо.
Проблема заключается в том, что, когда новый арендатор подписывается, как мне получить доступ к IAppBuilder
и добавить новый AuthenticationOptions
без утилизации пула приложений?
Интересные настройки. Мне тоже нужно что-то подобное. Не могли бы вы предоставить больше кода о 'context.Authentication.Challenge (AuthenticationType)'? Как код знает, что использовать «OpenIdConnectTenantOption»? – Martijn