我已經編寫了幾個服務於RESTful API的Spring 4後端Web應用程序。我甚至設法通過Spring Web Security來保證這些安全。使用AWS IAM或Cognito的Spring Security
在一個案例中,我們已經安裝了自己的OpenAm實例。轉到客戶端用戶界面的用戶可以登錄OpenAM,並且客戶端Web應用程序在cookie中獲取令牌。我們將該令牌傳遞給頭中的後端,然後Spring Security使用CustomeUserDetailsService來檢查該令牌是否對OpenAM有效。如果是這樣,我們在Spring安全上下文中創建一個用戶,分配角色,然後我們看看這些角色是否對API有效。如果是這樣,則API執行,否則用戶將獲得401安全錯誤。我相信這是OAuth2。
我們還設法與Okta完全相同的事情。我們有我們自己的客戶端Web用戶界面和我們自己的登錄頁面UI向Okta發出呼叫並獲取兩(2)個令牌。我們連接這些令牌並將其傳遞給後面的程序,這個程序與我們上面描述的程序相同。我也認爲這是Oauth2。
我現在正在開發一個新項目,這次我想使用AWS IAM來保護我的Web應用程序,因爲前端和後端將託管在AWS EC2實例上。
我一直在網上尋找如何做到這一點。有一個AWS IAM SDK,並且有AWS Cognito。我最初對IAM的看法並沒有顯示Oauth2,我看到了OpenID和SAML。我知道我對OpenID vs. Oauth2與SAML缺乏認識。
所以,我要尋找的任何環節的任何代碼庫,或示例代碼,或文件,這將幫助我安全使用AWS IAM和/或Cognito我的後端API的使用Spring Security。順便說一下,我不想使用Spring API Gateway,因爲Spring Web Security已經爲我做了這些。
在此先感謝您的幫助!
你可能想看看https://github.com/kdgregory/example-cognito-java和http://blog.kdgregory。 COM/2016/12 /服務器端認證與 - amazon.html。作者已經對Cognito進行了分析,以瞭解用Java編寫的基本服務器端應用程序。 – sdbol
太棒了!我會看看這個文檔。謝謝! – tjholmes66