gpt4 book ai didi

authentication - 如何从 Windows Azure Active Directory 身份验证的 oauth2.0 身份验证中注销

转载 作者:行者123 更新时间:2023-12-04 21:17:43 26 4
gpt4 key购买 nike

我们使用 auth2.0 进行 Windows Azure Active Directory 身份验证,其中身份验证在 https://login.microsoftonline.com/login.srf?wa=wsignin1.0&wtrealm= 上执行……身份验证成功后,我们将重定向到我们的网站。为了注销网站,我们删除了网站上生成的所有 cookie,并再次重定向到 login.microsoftonline.com/login.srf?wa=wsignin1.0&wtrealm=....... url,但此时我们没有收到任何登录凭据屏幕以及使用访问 token 重定向到我们的网站。注销需要什么流程。因为如果我们删除所有 cookie 或关闭浏览器并重新打开网站,就会将我们重定向到 login.microsoftonline.com/login.srf?wa=wsignin1.0&wtrealm=........ url。

我们使用以下代码进行注销过程

    [NoCacheAttribute]
public ActionResult LogOut()
{
UserCookieWrapper.delete_UserCookieWrapper();
//This function delete all the datamemeber of the UserCookieWrapper class

string[] theCookies =
System.IO.Directory.GetFiles(Environment.GetFolderPath(
Environment.SpecialFolder.Cookies));
foreach(string currentFile in theCookies)
{
try
{
System.IO.File.Delete(currentFile);
}
catch(Exception objEx) { }

}
Response.Clear();
return RedirectToAction("Index", "Login");
}

最佳答案

清除您创建的 cookie 不会有任何帮助,因为用户仍然使用 Azure AD 登录。这就是 Web-SSO(单点登录)的工作原理。无论使用哪种协议(protocol)对 Azure AD 进行身份验证,您仍然需要正确实现注销 - 联合注销!您在互联网上找到的任何网络单点登录提供商都属于这种情况 - Google、Facebook、LinkedIn、Twitter,凡是您能想到的。

您所做的只是将用户从您的应用程序中注销,而不是从身份提供商处注销。一旦您的应用程序将用户重定向到选定的身份提供商(在您的情况下为 AAD),如果用户与其有事件 session ,则将看不到登录屏幕!

为了正确实现联合注销,您必须仔细阅读 Implementing SSO with Azure Active Directory 。您可以快进到“实现注销 Controller ”步骤。这将显示如下代码:

public void SignOut()
{
WsFederationConfiguration fc =
FederatedAuthentication.FederationConfiguration.WsFederationConfiguration;

string request = System.Web.HttpContext.Current.Request.Url.ToString();
string wreply = request.Substring(0, request.Length - 7);

SignOutRequestMessage soMessage =
new SignOutRequestMessage(new Uri(fc.Issuer), wreply);
soMessage.SetParameter("wtrealm", fc.Realm);

FederatedAuthentication.SessionAuthenticationModule.SignOut();
Response.Redirect(soMessage.WriteQueryString());
}

请通读整个部分(最好是整篇文章)以了解代码的作用以及为什么必须这样做。

关于authentication - 如何从 Windows Azure Active Directory 身份验证的 oauth2.0 身份验证中注销,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18867504/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com