![](/img/trans.png)
[英]Problem with Azure AD authentication - Bearer token returns only app information
[英]Azure AD Auth - log out of specific app/ only?
這是我的注銷代碼(使用 CakePHP)。
public function logout()
{
$this->clearTokens();
$this->Authentication->logout();
return $this->redirect('https://login.microsoftonline.com/' .
Configure::read('Azure.tenantId') . '/oauth2/logout?post_logout_redirect_uri='
. urlencode('https://example.com/'));
}
所以用戶在應用程序中點擊“注銷”; 它清除了一些 session 數據; 然后重定向到 Microsoft 以正確注銷並再次重定向回來。
這似乎工作正常,但它讓我退出一切 - 我希望只退出特定的應用程序 - 我已經用tenantId
替換了appId
,但似乎沒有任何區別。
這可能嗎?
您的注銷行為與官方文檔中的描述不符。
當您將用戶重定向到 end_session_endpoint 時,Microsoft 標識平台會從瀏覽器中清除用戶的 session。 但是,用戶可能仍會登錄到使用 Microsoft 帳戶進行身份驗證的其他應用程序。 為了使這些應用程序能夠同時注銷用戶,Microsoft 標識平台向用戶當前登錄的所有應用程序的已注冊 LogoutUrl 發送 HTTP GET 請求。
換句話說,僅調用/logout?post_logout_redirect_uri={0}
端點不足以讓您的用戶退出所有應用程序。 您仍然需要從應用注冊門戶設置LogoutUrl
並在應用程序代碼中實現這樣的LogoutUrl
以支持應用程序中的單點注銷。
確保您刪除了配置中的LogoutUrl
部分,它不會讓您從任何地方注銷。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.