2017-11-09 2 views
2

SAML 2/Kentor/Owin을 사용하여 Azure AD에 대해 인증하려고하는 웹 양식 앱이 있습니다. I 생각하다. 문제가 없지만 로그인 페이지에서 다음 명령을 실행하면 로그인 페이지로 리디렉션되지 않습니다.Kentor/Owin/Azure AD 인증

    HttpContext.Current.GetOwinContext().Authentication.Challenge(new AuthenticationProperties { RedirectUri = "/Login.aspx" }); 

은 여기 내 startup.cs 지금까지 내가 크롬의 네트워크 도구에서보고 말할 수없는 인증 요청이 전혀 전송되고 있지

private void ConfigureSAML2Authentication(IAppBuilder app) { 
     var authServicesOptions = new KentorAuthServicesAuthenticationOptions(false) 
     { 
      SPOptions = new SPOptions 
      { 
       EntityId = new EntityId("https://login.microsoftonline.com/<tenant guid>/saml2") 
      } 
      }, 
      AuthenticationType = "KentorAuthServices", 
      Caption = "ADFS - SAML2p", 
     }; 

     authServicesOptions.IdentityProviders.Add(new IdentityProvider(
      new EntityId("https://sts.windows.net/<tenant guid>/"), 
      authServicesOptions.SPOptions) 
     { 
      MetadataLocation = "https://login.microsoftonline.com/<tenant guid>/federationmetadata/2007-06/federationmetadata.xml", 
      LoadMetadata = true, 
     }); 

     app.UseKentorAuthServicesAuthentication(authServicesOptions); 
    } 

입니다. 아무도 왜 저에게 말할 수 있습니까?

답변

2

AuthServices 미들웨어는 기본적으로 패시브로 구성되어 있으므로 공급자를 지정하지 않으면 자동으로 인증 요청에 응답하지 않습니다.

챌린지를 발행 할 때 미들웨어를 설정할 때 사용한 것과 동일한 인증 유형을 지정해야합니다. 기본적으로 "KentorAuthServices"이지만 변경할 수 있습니다.

당신이 유형을 포함하도록 도전을 변경하면 리디렉션 트리거해야이 실제로 작동합니까

HttpContext.Current.GetOwinContext().Authentication.Challenge(new AuthenticationProperties { RedirectUri = "/Login.aspx" }, "KentorAuthServices");

+0

합니다. 당신은 기본적으로 수동적이라고 말했습니다 - 이름을 지정하지 않고 도전을 시작할 수 있도록 구성을 변경하는 방법이 있습니까? 몇 가지 인증 구성이 가능합니다 (단 하나의 인스턴스 만 구성되었지만). 추가 처리를 추가하지 않으면 런타임에 구성되어있는 인스턴스를 구체적으로 알 수 없습니다. –

+2

자신에게 대답하기 위해 AuthenticationMode = AuthenticationMode.Active를 찾았습니다! 도와 주셔서 감사합니다. –