簡體   English   中英

Azure AD Auth - 僅注銷特定應用程序/?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM