Для этого я реализовал собственное промежуточное ПО OIDC, которое могло принимать дополнительные параметры времени выполнения, а не использовать статические параметры, определенные при запуске приложения.
Он по-прежнему использует обычный OIDC и, таким образом, это операция по переднему каналу, поэтому стороннему провайдеру придется иметь доступ к Интернету, а вашему провайдеру также потребуется прямая видимость.
Комусделать это я унаследовал от OpenIdConnectHandler
из пакета Microsoft.AspNetCore.Authentication.OpenIdConnect
и переопределил следующие виртуальные методы, заменив ссылки на статическую конфигурацию на мои, предоставленные при необходимости, где это необходимо:
- HandleUnauthorizedAsync
- HandleRemoteAuthenticateAsync
- HandleSignOutAsync
- HandleSignOutCallbackAsync