簡體   English   中英

Azure Active Directory同意緩存嗎?

[英]Is Azure Active Directory Consent Cached?

我們正在構建一個使用Azure AD的本機應用程序。 該應用程序需要一些權限(如讀取用戶配置文件,執行Azure Service Management API等)。

當用戶首次使用我們的應用程序時,系統會要求他們登錄,一旦登錄,他們就會看到同意屏幕(他們同意我們的應用程序)。 用戶授予同意后,他們可以在其Azure AD中(在“應用程序”選項卡下)看到我們的應用程序。 到現在為止還挺好。

現在,該用戶要做的是從其Azure AD中手動刪除我們的應用程序(同樣,請轉到“應用程序”選項卡下)。 根據我們對同意模型的理解,這意味着用戶已刪除對我們應用程序的同意。

現在,當該用戶登錄到我們的應用程序時,我們期望的是再次向用戶顯示一個同意屏幕(如第一次)。 但是,實際的行為是不會向用戶顯示該屏幕,而只是將用戶登錄到我們的應用程序中。 此外,當用戶返回其Azure AD時,他們不會在允許的應用程序列表中看到我們的應用程序。

所以我的問題是:

  1. Azure AD是否以某種方式緩存同意?
  2. 如果同意書被緩存,該同意書將被緩存多長時間?
  3. 如果緩存了同意,是否有辦法讓我們以編程方式或其他方式清除此同意?

對於為什么會發生這種情況的任何見解都將受到高度贊賞。

在Azure Active Directory中,用戶同意被注冊為用戶對象和代表客戶端應用程序的服務主體對象之間的鏈接。

此鏈接在AAD Graph API中表示為OAuth2PermissionGrant

你這樣說:

現在,該用戶要做的是從其Azure AD中手動刪除我們的應用程序(同樣,請轉到“應用程序”選項卡下)。 根據我們對同意模型的理解,這意味着用戶已刪除對我們應用程序的同意。

我想澄清一下。 如您所知,在創建新的AAD應用程序時,需要記住Application Object和Service Principal之間的區別。

特別是,如果您刪除代表客戶端應用程序的服務主體,則與該服務主體相關的所有同意鏈接都將被銷毀,從而有效地刪除了同意。 如果僅刪除“應用程序對象”(可能是在您遇到問題的地方),則不能說相同的話。

在這里解釋撤銷對Azure Active Directory應用程序的同意所需的最簡單步驟。 讓我知道是否有幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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