У меня есть много веб-приложений на одном и том же веб-сервере (II7): , скажем, mydomain/app1, mydomain/app2, ... и так далее. Я пытаюсь добавить аутентификацию ADFS через OWIN. Вот что я сделал:Как добавить несколько конечных точек для adfs
[assembly: OwinStartup(typeof(MyNamespace.Startup))]
namespace MyNamespace
{
public class Startup
{
private static string realm = ConfigurationManager.AppSettings["ida:Wtrealm"];
private static string adfsMetadata = ConfigurationManager.AppSettings["ida:ADFSMetadata"];
public void Configuration(IAppBuilder app)
{
ConfigureAuth(app);
app.Use((context, next) =>
{
SignIn(context);
return next.Invoke();
});
app.UseStageMarker(PipelineStage.Authenticate);
}
public void ConfigureAuth(IAppBuilder app)
{
app.SetDefaultSignInAsAuthenticationType(CookieAuthenticationDefaults.AuthenticationType);
app.UseCookieAuthentication(new CookieAuthenticationOptions());
app.UseWsFederationAuthentication(
new WsFederationAuthenticationOptions
{
Wtrealm = realm,
MetadataAddress = adfsMetadata
});
}
public void SignIn(IOwinContext context)
{
if (context.Authentication.User == null)
{
context.Authentication.Challenge(
WsFederationAuthenticationDefaults.AuthenticationType);
}
}
}
}
Когда доступ пользователя MYDOMAIN/app1, я хочу, чтобы пройти проверку подлинности через ADFS, а затем перенаправляется на MYDOMAIN/App1. И то же самое для пользователя, получающего доступ к mydomain/app2.
Но я хочу добавить только одну доверяющую сторону доверия в ADFS (потому что там много приложений, и все используют одни и те же правила требований).
Я пробовал разные конфигурации, но я не могу делать то, что я хочу:
если RP конечной точки MYDOMAIN/app1/аутентификация в порядке, но все запросы (даже от MYDOMAIN/app2 перенаправляются на app1), очевидно
, если конечная точка RP является только mydomain /, я получаю ошибку 405.0 http - метод не разрешен после перенаправления (я позабочусь о концевой косой чертой).
Для информации, я видел этот вопрос на StackOverflow: URL redirection from ADFS server
Но это не реально ответить моя проблема, потому что я не понимаю фразу «(...) WIF будет обрабатывать ответ в URL_1, а затем позаботьтесь о перенаправлении пользователя на URL_2 "в комментарии Эндрю Лавьера.
Как добавить несколько конечных точек в один доверенный RP? Или как я могу перенаправить пользователей на исходный URL? (учитывая, что все приложения находятся в одном домене).
Заранее благодарим за любую помощь.