Azure登录 - 为错误请求指定回调网址

Fox*_*Fox 8 c# openid azure-web-sites azure-active-directory

我已将Web应用程序配置为使用Azure Auth登录.一切正常,用户可以登录,如果他们尚未登录到Azure.

我的问题是,当用户已登录到Office 365的Azure并且他们浏览到我的网站时,他们会在下面收到此错误.我理解错误的含义,但我想知道如果出现此问题,是否有办法重定向到另一个URL(在我的网站上).这是错误: 在此输入图像描述

这是我配置OpenId Auth的启动代码:

app.UseOpenIdConnectAuthentication(new OpenIdConnectAuthenticationOptions {
    ClientId = Configuration.clientID,
        Authority = authenticationAuthority,
        PostLogoutRedirectUri = Configuration.logoutRedirectURL,
        Notifications = new OpenIdConnectAuthenticationNotifications {
            AuthenticationFailed = context => {
                context.HandleResponse();
                context.Response.Redirect("/Unauthorised.aspx?message=" + context.Exception.Message);
                return Task.FromResult(0);
            }
        }
});
Run Code Online (Sandbox Code Playgroud)

Mar*_*eur 0

有几种方法可以解决这个问题,具体取决于您的情况。

如果您想使用他们现有的凭据对他们进行身份验证,您可以在应用程序注册中启用多租户支持。这将允许外部用户使用他们自己的 AAD 凭据(而不是 AAD 租户中的凭据)对您的应用程序进行身份验证。

如果您需要强制他们使用您的凭据重新进行身份验证,您可以添加prompt=login到您的初始授权 URI ( https://login.microsoft.com/{tenant}/oauth/authorize?...&prompt=login)。这将强制用户对您的应用程序进行身份验证,即使他们已经有一个活动的身份验证 cookie(在大多数情况下,此处的“身份验证”仅意味着用户需要从列表中选择一个帐户,而不是重新输入 ID 和密码) )。