簡體   English   中英

我們應該比較 Access Token 和 ID Token 中的“sub”聲明嗎?

[英]Should we compare 'sub' claim in Access Token and ID Token?

如果我們在 OIDC 流程中獲得如下所示的 Id 令牌和訪問令牌:

標識令牌:

{
 "iss": "https://server.example.com",
 "sub": "24400320",
 "aud": "s6BhdRkqt3",
 "nonce": "n-0S6_WzA2Mj",
 "exp": 1311281970,
 "iat": 1311280970,
 "auth_time": 1311280969,
 "acr": "urn:mace:incommon:iap:silver"
 "amr": ["mfa", "pwd","otp"]
}

訪問令牌:

{
    "iss": "https://cas.nhs.uk",
    "sub": "https://fhir.nhs.uk/Id/sds-role-profile-id"|[SDSRoleProfileID]",
    "aud": "https://provider.thirdparty.nhs.uk/GP0001/STU3/1",
    "exp": 1469436987,
    "iat": 1469436687,
    "reason_for_request": "directcare",
    "requested_scope": "patient/*.read",
    "requesting_system": "https://fhir.nhs.uk/Id/accredited-system|[ASID]",
    "requesting_organization": "https://fhir.nhs.uk/Id/ods-organization-code|[ODSCode]",
    "requesting_user": "https://fhir.nhs.uk/Id/sds-role-profile-id"|[SDSRoleProfileID]"
}

來自 Id 令牌的“sub”聲明應該與訪問令牌中的“sub”聲明匹配是否有效? 或者它們都是單獨的表示?

我們是否甚至在資源服務器上執行此類驗證以確保它們形成一對並針對同一用戶會話發出?

根據 Okta 的文檔,默認情況下, 訪問令牌中的“sub”聲明是Okta 中的用戶 ID(如果使用具有可用用戶范圍的 OAuth 流,例如授權代碼流)或應用程序的客戶端 ID(如果使用 Client憑證流)在 Okta 中。 但是,如果您使用自定義授權服務器, 則可以配置 'sub' 的值

同樣, ID 令牌中的“sub”聲明將是 Okta 中的用戶 ID。 與訪問令牌不同,此值不能修改,因為OIDC 標准要求此值在發行者中是本地唯一的。

為什么您的資源服務器會與 ID 令牌交互? ID 令牌用於身份驗證用例,而訪問令牌用於授權用例,如下所述: https : //developer.okta.com/docs/guides/validate-access-tokens/go/overview/#access-令牌與 ID 令牌 如果您希望使用 OAuth 令牌保護資源服務器,您將需要依賴訪問令牌。

暫無
暫無

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

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