Azure ADを使用して認証するためにWebサービスを統合しようとしています。 Azure ADの応答は毎回変わります。 Firefoxの通常のブラウザで自分のサイトを開くと、IsAuthenticatedがtrueになります。Azure AD APIは、System.Security.Principal.GenericIdentity.IsAuthenticatedを常にfalseに戻します。
プライベートブラウザーで開く、にisAuthenticatedはfalseです。
私が見ることができる唯一の違いは、ClaimsIdentityから真さにisAuthenticatedとfalseにisAuthenticatedがGenericIdentityからである、です。
以下は私の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
});
}
}
次は私がこの問題を再現しようとしていますAzureAD
にpublic void LoginUsingAzure()
{
HttpContext.GetOwinContext().Authentication.Challenge(new AuthenticationProperties { RedirectUri = "/" },
OpenIdConnectAuthenticationDefaults.AuthenticationType);
}
あなたはプライベートウィンドウを開いてサインインしていないと言っていますか?プライベートウィンドウは他のウィンドウとセッションを共有しないためです。 – juunas
この問題も通常のウィンドウで再現されます。通常のブラウザで自分のサイトにログインした後、ブラウザでキャッシュとクッキーを消去し、再度ログインしようとするとこの問題に直面します。この問題はすべてのブラウザで再現されます。 Azure ADのポータルで設定する必要があるものはありますか? –
クッキーを消去すると、ASP.NET認証Cookieも消去されますか?あなたが認証されていないと言うことが少し期待されますか? GenericIdentityはあなたがまだ認証されていないことを意味します。 – juunas