我使用以下方法为Azure Web App实现注销功能。
我正在使用网址https://login.microsoftonline.com/ {0} / oauth2 / logout?post_logout_redirect_uri = {1}其中{0}是Azure AD网址,{1}是网络应用网址。
这给我输出陈述
您已退出帐户
关闭所有浏览器窗口是一个好主意。"
但是当我将网站网址放在浏览器上时,用户无需经过身份验证即可完成。我还添加了过期cookie的代码,但它没有帮助。注销后,我希望将用户重定向到登录页面,用户也必须通过身份验证才能登录。
答案 0 :(得分:1)
根据您的描述,我创建了一个新的ASP.NET Web应用程序,它不需要任何用户身份验证,然后我按照tutorial配置我的Web应用程序以使用AAD登录。
要将您的网站访问限制为仅限Azure Azure目录进行身份验证的用户,请将请求未经过身份验证时采取的操作设置为使用Azure Active Directory登录。< / p>
当用户登录后,您可以找到名为AppServiceAuthSession
的Cookie,如下所示:
对于一种简单的注销方式,您只需调用https://{your-webapp-name}.azurewebsites.net/.auth/logout
,此内置端点将首先清除您的浏览器cookie,然后重定向您在Azure AD端处理注销,如下所示:
在Azure AD端完成注销操作后,浏览器会将您重定向到post_logout_redirect_uri
(默认情况下为/.auth/logout/complete
),如下所示:
总之,请在您的网络应用中执行注销时利用fiddler来捕获请求,并在您注销后尝试查看Cookie AppServiceAuthSession
是否已被删除。
答案 1 :(得分:0)
@Bruce。不,我没有使用任何URL身份验证规则。让我告诉你一步一步发生的事情。 1)我使用了相同的网址,你提供了注销网址。 2)页面重定向到https://login.microsoftonline.com/myazuread.onmicrosoft.com/oauth2/logout?post_logout_redirect_uri=https://mywebapp.azurewebsites.net/.auth/login/aad/callback。它没有被重定向到默认的注销页面。
Image of cookies on the page after redirecting to logout url 3)如果我导航到默认注销页面(/.auth/logout/complete)并短暂点击“返回网站”,它会重定向到azure广告登录页面// login.microsoftonline.com/dcc17943-54b6 -4bc7-b284-71d39f03aeb0 /的oauth2 /授权RESPONSE_TYPE = id_token&安培; REDIRECT_URI = HTTPS%3A%2F%2Fmywebapp.azurewebsites.net%2F.auth%2Flogin%2Faad%2Fcallback&安培; CLIENT_ID = 1ab2f820-2ca0-4a78-bfea-c849b91d339d&安培; scope = openid + profile + email&amp; response_mode = form_post&amp; state = redir%3D%252F%26b2cPolicy%3D&amp; nonce = d74940629d5e434eb6454648d33f371d_20170215104002。好像它会自动在那里进行身份验证。然后重定向到主页。我也手动删除了cookie。结果仍然相同。
答案 2 :(得分:0)
@Bruce我发现了一些东西。如果我手动删除chrome:// settings / cookies中的所有cookie,然后重定向页面,那么它可以正常工作。我能以编程方式完成吗?使用javascript或C#