2017-07-28 66 views
0

我目前正在開展與OpenID Connect Back-channel註銷相關的項目。如specification中所述,我需要在註銷令牌中包含sid作爲聲明。什麼是OpenID Connect Back-channel註銷中的註銷令牌中的sid聲明?

sid- 可選。會話ID - 會話的字符串標識符。這表示在RP處登錄的最終用戶的用戶代理或設備的會話。不同的sid值用於在OP中識別不同的會話。 sid值只需在特定發行人的情況下是唯一的。其內容對RP不透明。其語法與OAuth 2.0客戶端標識符相同。

從sid的解釋來看,我對於是否講述了RP上終端用戶的session-id或OP上RP的session-id有些混淆。

在此先感謝。

回答

1

SID =終端用戶在特定設備/用戶代理上的會話的唯一標識符等。 假設我從遊戲應用中的Android手機登錄並且遊戲應用使用openID並通過Facebook或Google進行身份驗證。遊戲應用程序啓動用戶代理並連接到OpenID提供程序。這裏進行身份驗證,應用程序獲取ID令牌(其中包含SID)。遊戲應用程序請求來自OpenID提供商的用戶聲明,然後在設備上創建會話,但發送用戶信息以在遊戲應用程序服務器(此處爲RP)上創建會話。

現在假設我在同一部手機或不同手機上登錄了另一個應用程序,並做了完全相同的事情。我現在登錄了兩個不同的應用程序,它們有自己的會話,但我將在OP中進行兩個會話。 OP將如何區分哪個會話被殺死。如果沒有SID,它將殺死所有會話並且SID在那裏,只有那個會話可以被殺死。

這是我能給出的最簡單的解釋。其他一切都是如何實現的。

+0

OP是否創建SID並將其發送到ID令牌中? – Piraveena

+0

OP發起的註銷(在SAML術語中稱爲IDP發起的註銷):在OpenID反向信道註銷的情況下,SID由OP產生並存儲在OP側。在這種情況下,當RP從OP獲得ID令牌時,必須從OP獲取該令牌中的SID。現在,當RP收到從OP註銷的請求時(因爲OP知道這個令牌會話何時到期),它使用該SID使其會話失效。在這裏,會話的完整會話生命週期在OP端,也有一個RP啓動了,在http://openid.net/specs/openid-connect-session-1_0.html#RPLogout – dvsakgec

+0

中涵蓋了感謝您的解釋! – Piraveena