2017-01-01 3 views
0

Azure Active Directory 웹 사이트 구성 응답 URL에 두 개의 URL을 지정했습니다. 로컬 코드를 실행할 때 내 localhost 환경으로 리디렉션하는 사이트와 웹 사이트를 실행할 때 내 Azure 호스팅 웹 사이트로 리디렉션하는 사이트 그러나 Azure 액티브 디렉터리는 설정을 무시하는 것 같습니다. 그것은 단지 하나 또는 다른 URL하지만이 내 startup.Auth.cs 예기치 않은 Active Directory 웹 사이트 리다이렉션 예기치

public partial class Startup 
{ 
    private static string clientId = ConfigurationManager.AppSettings["ida:ClientId"]; 
    private static string aadInstance = ConfigurationManager.AppSettings["ida:AADInstance"]; 
    private static string tenantId = ConfigurationManager.AppSettings["ida:TenantId"]; 
    private static string postLogoutRedirectUri = ConfigurationManager.AppSettings["ida:PostLogoutRedirectUri"]; 

    private static string authority = aadInstance + tenantId;  

    public void ConfigureAuth(IAppBuilder app) 
    { 
     app.SetDefaultSignInAsAuthenticationType(CookieAuthenticationDefaults.AuthenticationType); 

     app.UseCookieAuthentication(new CookieAuthenticationOptions()); 

     AntiForgeryConfig.UniqueClaimTypeIdentifier = ClaimTypes.GivenName; 

     app.UseOpenIdConnectAuthentication(
      new OpenIdConnectAuthenticationOptions 
      { 
       ClientId = clientId, 
       Authority = authority, 
       PostLogoutRedirectUri = postLogoutRedirectUri,      

       TokenValidationParameters = new TokenValidationParameters 
       {             
        RoleClaimType = "roles" 
       }, 

      });    
    } 
} 

모두 이 내 startup.cs을 사용

public void Configuration(IAppBuilder app) 
    { 
     ConfigureAuth(app);  
    } 

마지막이 내 Web.config의는

을 설정하는 것입니다
<appSettings> 
<add key="ida:ClientId" value="*************************" /> 
<add key="ida:AADInstance" value="https://login.microsoftonline.com/" /> 
<add key="ida:AppKey" value="******************************" /> 
<add key="ida:TenantId" value="****************************" /> 
<add key="ida:PostLogoutRedirectUri" value="url of production website" /> 
<add key="ida:Domain" value="company domain" /> 
</appSettings> 

내가이 리디렉션 내가 해결책을 발견

답변

1

발생하는 이유를 잘 모릅니다 내 문제

에 당신은 URI를 동적으로 당신이 도움이 될 것이

희망 실행하는 컴퓨터를 기반으로 리디렉션이 방법 Startup.Auth

   Notifications = new OpenIdConnectAuthenticationNotifications() 
       { 
        RedirectToIdentityProvider = (context) => 
        { 
         context.ProtocolMessage.RedirectUri = HttpContext.Current.Request.Url.GetLeftPart(System.UriPartial.Path); 
         context.ProtocolMessage.PostLogoutRedirectUri = new UrlHelper(HttpContext.Current.Request.RequestContext).Action("Index", "Home", null, HttpContext.Current.Request.Url.Scheme); 
         context.ProtocolMessage.Resource = GraphAPIIdentifier;        
         return Task.FromResult(0); 
        }} 

에 OpenIdConnectAuthenticationOptions에 다음 코드를 추가해야합니다.