所有OpenID Connect

OpenID Connect 通常簡稱 OIDC。它有幾份規格(specifications)需要先讀如下:

全名用途
OpenID Connect Core定義 OIDC 的核心功能
OpenID Connect Discovery定義 Client 如何動態的發現 OP 的資訊
OpenID Connect Dynamic Registration定義 Client 如何動態跟 OP 註冊
OAuth 2.0 Multiple Response Types為 OAuth2 定義幾個新的 response types
OAuth 2.0 Form Post Response Mode定義如何使用 HTTP Post 自動提交 HTML Form,並拿到 OAuth2 授權的 response parameters
OpenID 2.0 to OpenID Connect Migration 1.0如何從 OpenID 2.0 遷移成 OpenID Connect

OpenID Connect 會執行身分驗證以讓使用者登入,或是確認使用者是否已登入。它會以安全的方法把身分驗證的結果傳給 Client,而 Client 因為會依賴 OpenID Connect 的驗證結果,所以稱之為 Relying Party(RP)。

驗證結果會以 ID Token 的形式傳給 Client,裡面的內容可以參考定義。

而身分驗證有三種流程可以選擇:

不同的流程會使用不同的方法把 ID Token 與 Token 傳給 Client。

三個流程的特徵如下表:

PropertyAuthorization Code FlowImplicit FlowHybrid Flow
Authorization Endpoint 可以回傳所有 Token?noyesno
Token Endpoint 可以回傳所有 Token?yesnono
Tokens not revealed to User Agentyesnono
Client can be authenticatedyesnoyes
Refresh Token possibleyesnoyes
Communication in one round tripnoyesno
Most communication server-to-serveryesnovaries

不同的流程,Authorization Request 的 response_type 就會有所不同。response_type 與流程的對應如下表:

“response_type”Flow
codeAuthorization Code Flow
id_tokenImplicit Flow
id_token tokenImplicit Flow
code id_tokenHybrid Flow
code tokenHybrid Flow
code id_token tokenHybrid Flow

參數序列化(Serializations)