oauth2.0理解

Oauth2的4種模式:

  • 受權碼(Authorization)模式(獲取code、code換取access_token)
  • 簡化(Impilict)模式(直接換取access_token,基本不用)
  • 密碼(Resource Owner Password)模式(客戶端向用戶索取帳號密碼,而後客戶端向服務端索取受權,基本不用)
  • 客戶端(Client)模式(客戶端以本身的名義要求"服務提供商"提供服務;場景:提供接口服務)

受權碼模式流程

  1. 註冊客戶端安全

    • clientId = 1
    • secret=secret
  2. 註冊用戶
  3. 請求受權碼ide

  4. 跳轉至受權登陸頁面
  5. 登陸後,回調到redirect_uri?code=xxxxx&scope=productservice%20agentservice
  6. POST http://localhost:8080/oauth2-server/token?client_id=client_id&client_secrets=client_secrets&grant_type=authorization_code&redirect_uri=redirect_uri&code=xxxx&scope=productservice%20agentservice 獲得accessToken

簡化模式流程

同受權碼模式
只是少了步驟5,6
第5步登陸後就返回accessToken

客戶端受權流程

客戶端和受權中心之間的對接,跟用戶無關

密碼模式

用戶將帳戶密碼告訴客戶端
客戶端用帳戶密碼得到受權

總結

  • 經常使用的仍是受權碼模式。
  • 相比受權碼模式,簡化模式雖然下降了安全性,但也下降了使用難度
  • 客戶端模式通常用於 API調用服務
  • 密碼模式由於直接泄露密碼,基本沒有使用的場景
相關文章
相關標籤/搜索