OpenID Connect執行終端用戶登錄或確定終端用戶已經登錄的驗證工作。OpenID Connect 使伺服器以一種安全的方式返回驗證結果。所以客戶可以依靠它。出於這個原因,在這種情況下客戶被稱為依賴方(RP)。 驗證結果在返回ID令牌中,ID令牌定義(第二節)。它聲明表達這些信息作為發行人, ...
OpenID Connect執行終端用戶登錄或確定終端用戶已經登錄的驗證工作。OpenID Connect 使伺服器以一種安全的方式返回驗證結果。所以客戶可以依靠它。出於這個原因,在這種情況下客戶被稱為依賴方(RP)。
驗證結果在返回ID令牌中,ID令牌定義(第二節)。它聲明表達這些信息作為發行人,標識符,認證到期時間等。
驗證可以按照三種方式:
1、授權碼流程( response_type=code );
2、隱式流程( response_type=id_token token 或 response_type=id_token );
3、混合流程 (使用其他響應類型值在 OAuth 2.0中定義的多個響應類型編碼實踐 [OAuth.Responses])。流程確定以何種方式以ID令牌和訪問令牌返回給客戶端。
接下來對三個流程的特點進行了總結,顯示在非規範化表中。該表的目的是提供一些指導在特定的上下文中選擇哪一個流程。
屬性 |
授權碼流程 |
隱式流程 |
混合流程 |
---|---|---|---|
從授權終結點返回所有令牌 |
否 |
是 |
否 |
從令牌終結點返回的所有令牌 |
是 |
否 |
否 |
令牌不顯示用戶代理 |
是 |
否 |
否 |
客戶端可以通過驗證 |
是 |
否 |
是 |
可刷新令牌 |
是 |
否 |
是 |
一次往返即溝通完成 |
否 |
是 |
否 |
多用於伺服器到伺服器通信 |
是 |
否 |
可變 |
使用哪種流程取決於授權請求中的response_type值。下列就是各種response_type 值選擇對應的流程:
response_type值 |
流程 |
---|---|
code |
Authorization Code Flow |
id_token |
Implicit Flow |
id_token token |
Implicit Flow |
code id_token |
Hybrid Flow |
code token |
Hybrid Flow |
code id_token token |
Hybrid Flow |
所有這些響應類型的值除了code均定義在OAuth 2.0 (RFC6749)中,OAuth 2.0中定義多個響應類型編碼實踐 (OAuth.Responses) 規範。註意:雖然OAuth 2.0還定義了令牌隱式流程響應類型值,但OpenID Connect不使用這種響應類型,因為沒有ID令牌返回。