Использование нескольких AddWsFederation () в мультитенантной среде - PullRequest
0 голосов
/ 02 мая 2019

Я искал, но не смог найти никакой документации, касающейся использования нескольких .AddWsFederation расширений.

В настоящее время у меня нет двух экземпляров AD, настроенных для тестирования, поэтому мне просто интересно, знаком ли кто-нибудь с концепцией добавления более чем одного .AddWsFederation расширения в одном приложении.

Идея состоит в том, чтобы пользователи моего мультитенантного приложения могли входить через свои собственные экземпляры Azure Active Directory. Пользователь A , принадлежащий Арендатор A будет входить через свой собственный экземпляр Azure AD, в то время как пользователь B , который принадлежит Арендатор B , будет входить через свой собственный экземпляр Azure AD.

Кто-нибудь знает, возможно ли это или есть какая-либо документация по этому поводу?

    services.AddAuthentication()
    .AddWsFederation(options =>
    {
        // MetadataAddress represents the Active Directory instance used to authenticate users.
        options.MetadataAddress = "https://login.microsoftonline.com/.../federationmetadata.xml";

        // Wtrealm is the app's identifier in the Active Directory instance.
        // For ADFS, use the relying party's identifier, its WS-Federation Passive protocol URL.
        // For AAD, use the App ID URI from the app registration's Properties blade.
        // Read more: https://docs.microsoft.com/en-us/aspnet/core/security/authentication/ws-federation
        options.Wtrealm = Configuration["WtRealm"];
    });

Редактировать: В настоящее время приложение использует сочетание аутентификации ASPNET Core Identity, а также обеспечивает вход в систему через один экземпляр WsFederation (как показано выше):

services.AddIdentity<ApplicationUser, IdentityRole>(options =>
    {
        options.Password.RequireNonAlphanumeric = false;
        options.Password.RequiredLength = 10;
        options.Password.RequireDigit = false;
        options.Password.RequireLowercase = false;
        options.Password.RequireUppercase = false;
        options.User.RequireUniqueEmail = true;
    })
    .AddEntityFrameworkStores<ApplicationDbContext>()
    .AddDefaultTokenProviders();
...