2016-02-12 61 views
0

我有令牌使用和過期失效的兩個問題:關於申請O365 MS圖形統一的API令牌生存

用戶的密碼

1)我需要密碼進行身份驗證。在應用程序中創建密碼時,可以使用一到兩年過期來定義密碼。我的目標是用戶安裝,設置的應用程序,它可以被「忘記」。但是這個過期可能意味着應用程序將在一年後開始失敗,這是否正確?用戶將開始獲取令牌錯誤,他將不得不重新設置應用程序(生成新的密鑰並使用它進行身份驗證)。我能否從密鑰中找出到期日期,以便我可以在用戶過期之前爲用戶設置通知?我想這樣做,以避免應用程序突然停止工作。

2)客戶機驗證在兩個步驟中進行:

  • 之一:應用程序客戶端ID +客戶端祕密密鑰+源+用戶認證=代碼
  • 2:應用程序客戶端ID +客戶端祕密密鑰+代碼=令牌+刷新令牌

我發現如果我執行第一步並且稍後要執行第二步,則第一步中的「代碼」可能會過期。我認爲'代碼'不會過期,但我找不到任何相關文檔。 這是否正確,第二步應該在第一步之後完成?

+0

這是否會在用戶設備(計算機,電話等)上運行的應用程序? –

+0

不,它應該是以服務/天藍色運行的應用程序。也許我應該使用這種方法:「服務使用客戶端憑據服務調用」https://msdn.microsoft.com/en-us/library/azure/dn645543.aspx – MiroJanosik

回答

0

1)如果這是一項Web服務,您可以使用OAuth 2.0客戶端證書授予流程。考慮到安全性,我建議你可以定期維護/更新密鑰,密鑰的持續時間可以是一年或兩年。如果祕密密鑰被泄露,必須生成一個新密鑰,並且所有授權的應用都必須用新的客戶機祕密進行更新。

2)您可以點擊here瞭解有關如何使用OAuth 2.0進行身份驗證的詳細信息。在Service-to-Service訪問令牌響應中,您將獲得expires_in(訪問令牌有效的時間)和expires_on(訪問令牌到期的時間)信息。您應該編寫代碼以預測授予的令牌可能不再工作並請求新令牌的可能性。