我已将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);
}
}
});
答案 0 :(得分:0)
有两种方法可以解决此问题,具体取决于您的情况。
如果要使用其现有的凭据对它们进行身份验证,则可以enable multi-tenant support进行应用程序的注册。这将允许外部用户使用他们自己的AAD凭据(而不是您的AAD租户中的一个)对您的应用程序进行身份验证。
如果您需要使用凭据强制他们进行重新认证,则可以将prompt=login
添加到您的初始授权URI(https://login.microsoft.com/{tenant}/oauth/authorize?...&prompt=login
)中。即使他们已经有一个活动的身份验证cookie,这也会迫使用户针对您的应用程序进行身份验证(在大多数情况下,“身份验证”在这里只是意味着用户将需要从列表中选择一个帐户,而不是重新输入ID和密码) )。