2016-12-19 33 views
3

OpenID Connect spec azp(授權方)聲稱似乎有矛盾。OpenID連接標準:授權方azp矛盾

在ID令牌定義部分2它說:

AZP

可選。授權方 - 身份證代幣簽發方。如果存在,它必須包含該方的OAuth 2.0客戶端ID。 只有當ID令牌具有單個觀衆值並且觀衆不同於授權方時,才需要此索賠。這可能是包括即使被授權人是一樣作爲唯一的聽衆......

但令牌驗證部分3.1.3.7,步驟之一似乎是說正好相反:

  • 如果ID令牌包含多個受衆,則客戶端應確認存在azp聲明。
  • 任何人都可以看到這種明顯的差異?只有第二個實例使用聲明性語言,所以我傾向於在我的實現中傾向於這一點。

    回答

    2

    你是對的,OIDC中的整個azp情況令人困惑。對於什麼是值得的,他們有一個與之相關的公開問題;見OIDC - Issue 973 (azp claim underspecified and overreaching)

    從智威湯遜「AUD」及其連接的ID令牌(相關規範文本如下複製)使用的定義,似乎是該做出的認證請求的客戶端/ RP的客戶端ID必須成爲ID令牌中「aud」聲明的價值之一或唯一價值。這是合乎邏輯和一致的,爲實施者提供有關生成和使用ID令牌的可靠且可互操作的指導。我認爲發出認證請求的RP /客戶端的客戶端ID應始終在返回的ID令牌的審計中表示。

    然而,ID令牌部分和ID令牌驗證部分中的「azp」周圍的文本似乎可能暗示着不同的東西。就像也許認證請求的RP /客戶端的客戶端ID在某些完全未指定的情況下可能是azp聲明的價值,並且aud不會將該客戶端標識爲預期的接收者。我誤解了事情嗎?

    就個人而言,從客戶端應用程序開發人員的角度來看,最好的行動過程似乎是紀念ID令牌驗證規則,它總是暗示內azp值也將是本作爲aud。然而,根據網上可用的內容,谷歌似乎有點不同,所以你可以在aud之外的azp中有一個值,所以可能會出現你用Google規則玩的情況,而不是(僅)OIDC。

    如果您正在實施的OP一個可能不錯的選擇也完全從包括您發佈的令牌,如果可能的azp遠離或只使用其中一人是價值也在azp多個觀衆時,包括它。

    +0

    謝謝!特別是OIDC問題跟蹤器。不知道。 – joshperry