0
我有一個以連續運行模式運行的Azure WebJob。主WebJob的過程可以運行很長一段時間,可能有幾個月,因爲它運行在連續模式。在WebJobs長時間運行的進程中正確運行ADAL的AuthenticationContext生命週期管理
我喜歡在過程中確認實例化AuthenticationContext的正確方法。
選項1:實例化AuthenticationContext的一個實例在Main()方法和使用它的WebJob過程的持續時間 - 可以是幾個月
選項2:在任何需要一種OAUTH無記名標記實例化AuthenticationContext的一個實例並獲取該標記。
我想使用選項1.但我想確認我的方法在這裏。 此問題也適用於Windows服務場景。
每次實例化一個AuthenticationContext時,Option2都會通過REST調用產生一個通過REST調用獲取Berear令牌的高額費用。通過選項1,AuthenticationContext緩存了Berear令牌並相當有效地處理了刷新令牌場景。我對麼? –
是的,option2每次都會通過HTTP請求獲取訪問令牌,因爲每次都會創建一個'AuthenticationContext'實例。 –
基於我的理解,如果您使用**客戶端憑據流**,庫將無法幫助我們刷新訪問令牌,因爲在此場景中沒有刷新令牌。它會緩存訪問令牌,但在這種情況下,您可以在調用AcquireTokenAsync(字符串資源,ClientCredential clientCredential)後獲取訪問令牌,然後我們可以直接使用此訪問令牌。訪問令牌過期後,我們可以調用該方法來檢索新的訪問令牌。 –