如何从Azure应用程序注销?

时间:2016-09-08 08:56:56

标签: azure authentication azure-web-sites

我创建了一个Azure AD应用程序和一个Web App。 Azure AD应用程序使用AAD身份验证。这很好用。当我转到我的URL而我未经过身份验证时,我必须输入我的凭据。当我输入凭据时,我会转发到我的申请表。

然后问题就出现了。我如何退出。我找到this question并且我想实现选项2:不使用代码注销,而是使用Azure AD提供的链接。关键是,我不知道在哪里配置它。他说

  

添加一些用于登录和注销的特定链接

但是在哪里?在Azure中的哪个位置以及在哪个门户(新旧)中可以配置它?他还提供了一个示例链接,但我不明白这个示例(我是Azure的新手)。

3 个答案:

答案 0 :(得分:7)

您可以做的是在应用程序中构建一个注销URI,当用户点击Logout链接或按钮时,您将用户重定向到该URI。

注销URI的格式为:

https://login.microsoftonline.com/{0}/oauth2/logout?post_logout_redirect_uri={1}

其中{0}是租户ID或Azure AD名称(something.onmicrosoft.com),{1}是指向您的应用程序的链接,用户将在退出流程后重定向回来在Azure AD结束时完成。

答案 1 :(得分:6)

我终于找到了为什么我无法提供我在开始帖子中提到的提供的示例:设置/.auth/logout已弃用,您现在可以调用 TableRow trStatusB = fvAddOn.FindControl("EditProductNameRow") as TableRow; 注销。

this page

上找到它

答案 2 :(得分:1)

您可以使用URI

https://login.microsoftonline.com/{0}/oauth2/logout?post_logout_redirect_uri={1}

正如@Gaurav建议的那样。但这并不能清除浏览器cookie。您可能必须从请求对象中明确删除cookie:

foreach (string cookie in HttpContext.Current.Request.Cookies.AllKeys) { HttpContext.Current.Response.Cookies[cookie].Expires=DateTime.Now.AddDays(-1);}

但是,还有一个问题是Azure AD将cookie缓存一段时间间隔,因此Azure AD可以成功验证使用来自任何其他源的相同cookie发送的任何请求。我还在试图弄清楚如何解决这个问题。

希望这会有所帮助。感谢