日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

序言

安全性是暴露由許多微服務組成的公共訪問API時要考慮的最重要的一個方面。Spring有一些有趣的功能和框架,使我們的微服務安全配置更容易。在本文中,我將向您展示如何使用Spring Cloud和Oauth2在API網關后面提供令牌訪問安全性。

理論知識

OAuth2標準目前被所有主要網站使用并且允許通過共享API訪問其資源。它是一種開放式授權標準,允許用戶將存儲在一個頁面中的私有資源共享到另一個頁面,而無需進入其憑據服務。這些是與oauth2相關的基本術語。

  • Resource Owner – 處理對資源的訪問
  • Resource Server – 存儲可以使用特殊令牌共享的所有者資源的服務器
  • Authorization Server – 管理密鑰,令牌和其他臨時資源訪問代碼的分配。它還必須確保授予相關人員訪問權限
  • Access Token – 允許訪問資源的密鑰
  • Authorization Grant – 授予訪問權限。有多種方法可以確認訪問權限:授權代碼,隱式,資源所有者密碼憑據和客戶端憑據

您可以在此處以及在digitalocean文章中閱讀有關此標準的更多信息。該協議的流程主要有三個步驟。首先,我們將授權請求發送給資源所有者。在資源所有者響應后,我們向授權服務器發送授權請求并接收訪問令牌。最后,我們將此訪問令牌發送到資源服務器,如果它有效,則API將資源提供給應用程序。

方案

下圖顯示了我們案例的架構。我們用API網關(Zuul)代理我們對授權服務器的請求和兩個帳戶微服務實例。授權服務器是某種提供outh2安全機制的基礎結構服務。我們還有發現服務(Eureka),我們所有的微服務都已注冊。

使用Oauth2實現微服務的安全保護

 

網關

對于我們的示例,我們不會在API網關上提供任何安全性。它只需要將客戶端的請求代理到授權服務器和帳戶微服務。在下面可見的Zuul的網關配置中,我們將sensitiveHeaders屬性設為空值以啟用授權HTTP頭轉發。默認情況下,Zuul在將我們的請求轉發到目標API時切斷了該頭,這是不正確的,因為網關后面的服務需要基本授權。

使用Oauth2實現微服務的安全保護

 

網關源代碼中的主類非常簡單。它只需要啟用Zuul代理功能和發現客戶端來收集Eureka注冊表中的服務。

使用Oauth2實現微服務的安全保護

 

授權服務器

gaOur授權服務器內的主類也很簡單。它基于默認的Spring安全配置。客戶端授權詳細信息存儲在內存存儲庫中。當然在生產模式中,您也可以使用其他實現而不是內存存儲庫,如JDBC數據源和令牌存儲。您可以在Spring Security Reference和Spring Boot Security中閱讀有關Spring授權機制的更多信息。這是Application.yml的配置片段。我們為/ token端點提供了用戶基本身份驗證數據和基本安全憑證:client-id和client-secret。用戶憑據是普通的Spring Security用戶詳細信息。

使用Oauth2實現微服務的安全保護

 

這是用@EnableAuthorizationServer實現身份驗證服務器的主要類。我們公開一個REST端點驗證帳戶服務的用戶身份詳情,并為客戶端啟用了Eureka注冊和發現。

使用Oauth2實現微服務的安全保護

 

Application-賬戶微服務

我們的示例微服務只有一個@GET請求的端點,它始終返回相同的帳戶。在主類中,資源服務和Eureka發現都已啟用。服務配置很簡單。 GitHub上提供了示例應用程序源代碼。

使用Oauth2實現微服務的安全保護

 

測試

我們只需要Web瀏覽器和REST客戶端(例如Chrome Advanced REST客戶端)來測試我們的解決方案。從向資源所有者發送授權請求開始測試。我們可以通過Web瀏覽器中的Zuul網關調用oauth2授權端點。

http://localhost:8765/uaa/oauth/authorize?response_type=token&client_id=acme&redirect_uri=http://example.com&scope=openid&state=48532

發送請求后,我們應該看到下面的頁面。選擇“Approve”,然后單擊“Authorize”,從授權服務器請求訪問令牌。如果應用程序標識已通過身份驗證且授權授予有效,則應在HTTP響應中返回應用程序的訪問標記。

使用Oauth2實現微服務的安全保護

 

http://example.com/#access_token=b1acaa35-1ebd-4995-987d-56ee1c0619e5&token_type=bearer&state=48532&expires_in=43199

最后一步是使用訪問令牌調用帳戶端點。我們不得不將其作為承載令牌放入Authorization標頭中。在示例應用程序中,安全操作的日志記錄級別設置為TRACE,因此您可以輕松找出問題發生時的情況。

使用Oauth2實現微服務的安全保護

 

結束語

說實話,我不太熟悉應用程序中的安全問題。所以對我來說一個非常重要的是使用的安全解決方案的簡單性。在Spring Security中,我們幾乎所有需要的機制都是開箱即用的。它還提供可輕松擴展的組件,以滿足更高級的要求。您應該將本文視為使用Spring Cloud和Spring Security項目的更高級解決方案的簡要介紹。

原文鏈接:https://piotrminkowski.wordPress/ target=_blank class=infotextkey>WordPress.com/2017/02/22/microservices-security-with-oauth2/

作者:Piotr Mińkowski

譯者:Emma

分享到:
標簽:Oauth2
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定