2017-06-09 29 views
2

我正在使用帶OIDCStrategy的節點js passport-azure-ad。AD認證組更改不反應

當我刪除了其中不通貨再膨脹的一組用戶在我的代碼

req.user._json.groups[0] 

返回所有的組,包括刪除組。

但是,當我嘗試並重新啓動我的節點js服務器組刪除。

如何強制更新組而無需重新啓動節點js服務器?這是由於令牌緩存?我如何刷新Passport-azure-ad中的令牌。

我試圖搜索如何刷新passport-azure-ad中的令牌,但沒有發現與此相關的內容。

+1

不知道如何刷新令牌,但它絕對與它有關:)由於組id位於訪問令牌中(假設您在應用清單中設置了「groupMembershipClaims」),它們將位於令牌緩存直到令牌刷新。通常訪問令牌只能持續1個小時。如果護照(或其他組件)使用刷新令牌獲取新的令牌,那麼這些組不應該在那裏。如果這些組保持在那裏直到令牌過期,這是一個巨大的問題嗎? – juunas

+0

是的,這是一個巨大的問題。我的整個儀表板取決於組訪問權限和廣告授權。如果我從組用戶中刪除用戶無法訪問該組的儀表板。 –

+1

這是JSON Web令牌的一般問題。由於令牌將是「有效的」,即使用戶被完全刪除直到令牌過期。我能想到的一個解決方案是將令牌的到期時間設置爲較短的持續時間。你可以在這裏找到信息:https://docs.microsoft.com/en-us/azure/active-directory/active-directory-configurable-token-lifetimes。 – juunas

回答

0

檢查訪問令牌中的聲明在您的方案中不可靠。相反,您可以調用圖形api來檢查用戶是否在組內。你可以使用微軟的圖形API來獲取組用戶是直接成員:

POST https://graph.microsoft.com/beta/me/getMemberGroups 
Content-type: application/json 
Content-length: 33 

{ 
    "securityEnabledOnly": true 
} 

或者你可以使用蔚藍廣告圖形API:調用isMemberOf function上的目錄服務,以檢查是否指定的用戶,組,聯繫人或服務負責人是指定組的成員。