Azure AD를 사용하여 인증하기 위해 웹 서비스를 통합하려고합니다. Azure AD의 응답은 매번 다릅니다. 파이어 폭스 일반 브라우저에서 내 사이트를 열 때 IsAuthenticated가 true로 설정됩니다. 개인 브라우저에서Azure AD API는 System.Security.Principal.GenericIdentity.IsAuthenticated를 항상 false로 반환합니다.
열기는 IsAuthenticated는 false입니다. 제가
볼 수유일한 차이점은 IsAuthenticated는 사실이 ClaimsIdentity 내지 거짓이 GenericIdentity IsAuthenticated는 내지이다.
다음은 내 startup.auth 코드입니다.
public partial class Startup
{
private static string clientId = ConfigurationManager.AppSettings["ClientId"];
private static string aadInstance = ConfigurationManager.AppSettings["AADInstance"];
private static string tenantId = ConfigurationManager.AppSettings["TenantId"];
private static string postLogoutRedirectUri = ConfigurationManager.AppSettings["PostLogoutRedirectUri"];
private static string authority = aadInstance + tenantId;
public void ConfigureAuth(IAppBuilder app)
{
app.SetDefaultSignInAsAuthenticationType(CookieAuthenticationDefaults.AuthenticationType);
app.UseCookieAuthentication(new CookieAuthenticationOptions());
app.UseOpenIdConnectAuthentication(
new OpenIdConnectAuthenticationOptions
{
ClientId = clientId,
Authority = authority,
PostLogoutRedirectUri = postLogoutRedirectUri
});
}
}
다음
내가이 문제가 그러나 실패 재현하기 위해 노력하고 AzureADpublic void LoginUsingAzure()
{
HttpContext.GetOwinContext().Authentication.Challenge(new AuthenticationProperties { RedirectUri = "/" },
OpenIdConnectAuthenticationDefaults.AuthenticationType);
}
개인 창을 연 다음 로그인하지 않았습니까? 개인 창은 다른 창과 세션을 공유하지 않기 때문입니다. – juunas
이 문제는 일반 창에서도 재현됩니다. 일반 브라우저에서 내 사이트에 로그인 한 다음 브라우저에서 캐시와 쿠키를 지우고 다시 로그인하려고하면이 문제가 발생합니다. 이 문제는 모든 브라우저에서 재현됩니다. Azure AD 포털에서 구성해야 할 것이 있습니까? –
쿠키를 삭제하면 ASP.NET 인증 쿠키도 지워지지 않습니까? 그렇다면 당신이 인증받지 못했다고 말하는 것이 조금 예상되지 않습니까? GenericIdentity가 있다는 것은 아직 인증하지 않았다는 것을 의미합니다. – juunas