簡體   English   中英

ADFS 2016 是否支持 OIDC 的“配置文件”scope?

[英]ADFS 2016 support for OIDC's `profile` scope?

我正在嘗試使用 OIDC 和授權代碼流來實現 web 應用程序。 我使用OIDC Core 1.0 規范作為工作方式參考。 我正在嘗試針對 Microsoft ADFS 2016 服務器進行此操作,該服務器通常聲稱支持 OIDC。

我已經設法讓工作流程大部分工作,但有一個例外。 當我調用令牌端點以將我的授權代碼交換為access_tokenid_token時,我希望通過name聲明獲取用戶的可顯示名稱。 但我從 ADFS 收到的令牌中不存在該聲明。

當我重定向到 ADFS 服務器的授權端點時,我將scopeopenid profile值傳遞給它。 根據 OIDC 規范的第 5.4 節profile scope 應導致請求name聲明。 但我沒有收到這種說法。 我確實得到了一些我可以考慮使用的其他聲明(即upnunique_name ),但我正在努力盡可能地與標准保持一致。

這是否意味着 ADFS 2016 在該特定領域不符合 OIDC 規范? 還是我誤讀了我在這里引用的規范部分?

與名稱相關的標准聲明通常是第 18 節中介紹的given_namefamily_name ,我總是嘗試根據這些值對應用程序進行編碼,因此您的擔憂是正確的。

作為消費者,您還應該能夠選擇發出這些聲明的地點。 但是,提供者通常不完全符合標准,因此您可能需要稍微調整您的代碼。

這是一篇關於自定義 ADFS 聲明的MS 文章,盡管它可能無法讓您清楚地了解聲明應該如何工作。

更多信息

概括地說,OAuth 系統是如何發出聲明的:

  • 用戶進行身份驗證(也可以授予同意)
  • 授權服務器在其數據庫中記錄此“委托”以及相關的聲明和范圍
  • 應用程序可以控制聲明的公開方式和位置,例如哪些令牌或端點包含它們

有關更多信息,請參閱有關個人身份信息 (PII)的這篇文章 - 並了解聲明映射器如何在 Curity 系統中工作。

可能是您的 ADFS 提供程序沒有讓您完全控制,但值得了解設計模式,並盡可能減少令牌中的用戶信息。

雖然我看到的所有內容都指向支持標准 OIDC 范圍/聲明(如 email 和配置文件)的 Server 2016 上的 ADFS 4,但實際上我無法讓它工作。

我確實找到了解決方法:

  1. 確保您在應用程序中使用令牌端點(而不是 userinfo 端點)。 (如果您要從另一個平台設置聯合,請確保未設置 userinfo 端點)
  2. Open the Web API Properties for your app in ADFS by opening the ADFS Management tool > Select "Application Groups" from the navigation pane > Double-click the name of your app > double-click the name of the associated Web API.
  3. Select “客戶端權限”選項卡,然后選中“允許范圍:”部分中的“allatclaims”復選框。
  4. Select “發行轉換規則”選項卡,然后是“添加規則...”按鈕(如果您有現有規則,您可以修改或刪除它們)。
  5. Select 從下拉列表中“將 LDAP 屬性作為聲明發送”,然后單擊“下一步 >”按鈕。
  6. 給規則起任何名字。
  7. Select 從“屬性存儲:”下拉列表中選擇您的 Active Directory。
  8. 在“將 LDAP 屬性映射到傳出聲明類型:”部分中添加您希望與聲明一起發送的屬性...在左側框中輸入您要發送的 AD 屬性的名稱(您可以鍵入快速-查找),然后他將您希望發送的傳出聲明命名為右側框中的名稱。

例如:在左側框中鍵入“郵件”到 select 的“電子郵件地址”AD 屬性,然后在右側框中鍵入“電子郵件”以將該屬性作為“電子郵件”發送出去。

  1. 當您完成添加任何您想要添加的屬性時,單擊“完成”按鈕。
  2. 接下來單擊 Web API 屬性 window 上的“確定”按鈕,以保存更改。
  3. 最后,單擊應用程序組屬性上的“確定”按鈕。

我仍然不確定為什么這對我來說不起作用,我的所有設置似乎都是正確的。 不過,我看到很多人問這個問題,所以我希望這對其他人有所幫助。

如果有人知道為什么 Server 2016 上的 ADFS 4.0 沒有按預期工作,請在評論中告訴我!

暫無
暫無

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

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