Proof Key for Code Exchange
OAuth2 定義兩種 Client 類型:confidential 與 public 兩種。之前不管 OAuth2 或是 OpenID Connect,在說明流程的時候,都是以 confidential client,搭配較安全的 Authorization Code Grant / Authorization Code Flow 作為範例,但終究還是會面對相較不安全的 public client。
OAuth2 定義兩種 Client 類型:confidential 與 public 兩種。之前不管 OAuth2 或是 OpenID Connect,在說明流程的時候,都是以 confidential client,搭配較安全的 Authorization Code Grant / Authorization Code Flow 作為範例,但終究還是會面對相較不安全的 public client。
OpenID Connect Core 定義了很完整的身分驗證流程,但一個良好可擴展的協定會是抽象化的,會保留一些細節在未來由其他協定來補充,或是留給實作者定義。
以目前而言,OAuth 2.0 授權框架(下簡稱 OAuth2)定義了一個相較安全的授權流程。但身分驗證並不在 OAuth2 的範疇內,而今天簡介的 OpenID Connect 正是基於 OAuth2 的基礎上,再另外定義了身分驗證的流程。
Authorization Code Grant 是相較其他三種授權類型而言,最複雜的一種。但就讓使用者授護的目的而言,這個授權類型相較設計的比較合理也安全。
JWS 能保護資料的完整性,但資料傳輸過程是明碼傳輸,因此有心人士還是有辦法截取 JWS Payload 裡的內容做其他利用。如果內容也不希望被其他人看到的話,那還有另一個選擇就是 JWE--RFC 7516 - JSON Web Encryption。