기존의 기존 웹 폼 사이트를 다중 사용자 환경으로 구성하고 있습니다. 하나의 요구 사항은 여러 클라이언트 ADFS와 통합 할 수 있어야한다는 것입니다. 나는 this post을 따라 갔으며 여러 ADFS를 지원하는 MVC 응용 프로그램을 성공적으로 구현했습니다. 그러나 여전히 MVC 애플 리케이션과 함께 재현 할 수없는 문제가 발생합니다. 내 웹 양식 사이트에서는 등록 된 첫 번째 ADFS 공급자 만 성공합니다. 두 번째 것은 항상 이 인증 후 내 사이트로 돌아온 후 SignatureVerificationFailedException을 throw합니다. 예외는 내 측면에서 발생합니다. OWIN 시작 구성에서 app.Map (...) 또는 app.Use (...)를 사용하든 관계 없습니다.
내 웹 사이트를 웹 응용 프로그램으로 변환하려고했지만 동일한 결과가 나타납니다. MVC와는 다른 WEB FORMS에서 요청이 처리되는 방식과 관련이 있다고 생각합니다.
미들웨어 매핑을 다른 방식으로 처리해야합니까?
내가 무엇이 누락 되었습니까?
또는이 전혀 불가능합니다 ... 여기 ASP.NET 웹 양식 사이트 - OWIN KATANA를 사용하여 여러 ADFS와 통합
app.Properties["Microsoft.Owin.Security.Constants.DefaultSignInAsAuthenticationType"] = Config.ExternalAuthentication.Cookie;
app.UseCookieAuthentication(new CookieAuthenticationOptions
{
AuthenticationType = Config.ExternalAuthentication.Cookie,
AuthenticationMode = Microsoft.Owin.Security.AuthenticationMode.Passive
});
string wreply = Config.ExternalAuthentication.Wreply;
string wtrealm = Config.ExternalAuthentication.Wtrealm;
List<Company> adfsCompanies = BL.GetCompaniesWithADFS();
app.Map("/Public/Login.aspx", configuration =>
{
foreach (Company company in adfsCompanies)
{
//configure middleware
var middleware = new WsFederationAuthenticationOptions()
{
MetadataAddress = company.ADFSMetadataUrl,
AuthenticationType = company.TenantName,
Caption = company.Name,
Wreply = wreply,
Wtrealm = wtrealm,
BackchannelCertificateValidator = null
};
//add to pipeline
configuration.UseWsFederationAuthentication(middleware);
}
});
내 도전 요청하지 : 아무리 내가 뭘
context.GetOwinContext().Authentication.Challenge(
new AuthenticationProperties { RedirectUri = callbackUrl },
provider);
response.StatusCode = 401;
response.End();
만 어느 것이 든 상관없이 처음 등록 된 ADFS 미들웨어가 성공합니다. 나는 또한 성공하지 못한 다른 파이프 라인 단계에 미들웨어를 연결하려고 시도했다.
미리 도움을 청하십시오!
감사합니다. @Tratcher. 귀하의 대답은 완전한 해결책을 제시하지 못하지만 올바른 방향으로 이끌어줍니다. 질문을 깨끗하고 단순하게 유지하기 위해 한 가지 더 자세한 답변을 제공 할 것입니다. – Vladislav