[英]IdentityServer3 Microsoft Graph scopes and flow
我的解決方案一直在通過IdentityServer3對Azure AD進行良好的身份驗證。 現在,我們正在嘗試集成一些Microsoft Graph功能。 可悲的是,它失敗了。
通過一個示例項目( https://graph.microsoft.io/en-us/docs/get-started/aspnetmvc )運行,該文檔詳細介紹了在Microsoft App Registration Portal( https:/)上新應用程序的注冊。 /apps.dev.microsoft.com ),並明確告知應用程序允許隱式流。
確保選中“ 允許隱式流”復選框,然后輸入http:// localhost:55065 /作為重定向URI。 允許隱式流選項啟用OpenID Connect混合流。 在身份驗證期間,這使應用程序可以接收應用程序用來獲取訪問令牌的登錄信息(id_token)和工件(在這種情況下為授權碼)。
當然,我們已經在Azure的生產門戶上注冊了進行身份驗證的應用程序,並且從IdentityServer3中的客戶端將流設置為Flow = Flows.Implicit
,這似乎表明我們現在僅允許隱式流,但期望隱式流。
當我添加其他范圍時offline_access User.Read Mail.Send
我不再能夠成功進行身份驗證,相反,我收到一條錯誤消息,指出Invalid Scope
。
我擔心的是,“ Microsoft應用程序注冊門戶”與現實生活完全不同,未正確設置某些內容。 生產Azure應用注冊上沒有特定的“允許隱式流程”設置,因此它真的接受Implicit Flow
嗎?
是否有人能將這兩個系統集成在一起並從使用IdentityServer3針對Azure AD的單個身份驗證中獲得Microsoft Graph的完全利用所期望的結果?
要在Azure AD注冊門戶中啟用隱式授予流,需要在應用清單中添加"oauth2AllowImplicitFlow":true
。 本文檔的“為單頁應用程序啟用OAuth 2.0隱式授予”部分詳細說明了如何執行此操作的分步說明:
https://docs.microsoft.com/zh-cn/azure/active-directory/active-directory-integrating-applications
另外,隱式授予流不會提供刷新令牌, offline_access
范圍專門要求刷新令牌。 我建議刪除該范圍。
這是一個很好的文檔,可以進一步閱讀有關AAD隱式授予的詳細信息:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.