Можно ли использовать один URI перенаправления для нескольких клиентов и нескольких веб-приложений с помощью одной регистрации приложения Azure AD?
Я достиг предела в 256 URI в моей многопользовательской регистрации приложения Azure, где каждый зарегистрированный клиент имеет свой собственный набор URI перенаправления.
URI перенаправления следуют этому шаблону
- http://example.com/consumer1/webapp1/signin-oidc
- http://example.com/consumer1/webapp2/signin-oidc
- http://example.com/consumer2/webapp1/signin-oidc
- http://example.com/consumer2/webapp2/signin-oidc
После прочтения Используйте параметр состояния. У меня возникла идея создать новое веб-приложение, которое только аутентифицирует, а затем перенаправляет пользователя на первоначально запрошенный URI. Но невозможно настроить OpenId CallbackPath для нового приложения аутентификации / авторизации / перенаправления.
Как мне решить эту проблему?
ASP.NET Core
authenticationBuilder.Services.AddSingleton<IConfigureOptions<OpenIdConnectOptions>, ConfigureAzureOptions>();
authenticationBuilder.AddOpenIdConnect();
private class ConfigureAzureOptions : IConfigureNamedOptions<OpenIdConnectOptions>
{
public void Configure( string name, OpenIdConnectOptions options )
{
options.ClientId = "555-xxx";
options.Authority = "https://login.microsoftonline.com/common";
options.CallbackPath = "https://mydomain/myauth-redir-app/signin-iodc" // this is not allowed
options.Events = new OpenIdConnectEvents
{
OnRedirectToIdentityProvider = ctx =>
{
// remember the URL the user requested, to be picked upp later after AAD auth
ctx.ProtocolMessage.SetParameter("state", "set_org_url");
}
OnTokenValidated = ctx =>
{
// this code should run in myauth-redir-app and pick up the state
// and redirect the user to the originally requested URL
var stateValue = ctx.ProtocolMessage.GetParameter("state");
}
}
}
}
Отклоненные решения
- Использование подстановочных знаков в URI больше не поддерживается
- Создание регистрации приложения для каждого веб-приложения по-прежнему ограничивает меня 256 клиентами, что слишком мало.
- Создание новых регистраций приложений для каждого клиента слишком сложно поддерживать и настраивать.
- Я не хочу регистрировать URI перенаправления в субъекте службы клиентов, я должен иметь возможность добавлять и удалять URI без необходимости предпринимать какие-либо действия со стороны клиента.