這篇文章主要介紹“如何使用Authing和AWS JWT Authorizer替換Cognito”的相關(guān)知識,小編通過實際案例向大家展示操作過程,操作方法簡單快捷,實用性強(qiáng),希望這篇“如何使用Authing和AWS JWT Authorizer替換Cognito”文章能幫助大家解決問題。
目前創(chuàng)新互聯(lián)已為近千家的企業(yè)提供了網(wǎng)站建設(shè)、域名、網(wǎng)站空間、網(wǎng)站運營、企業(yè)網(wǎng)站設(shè)計、海倫網(wǎng)站維護(hù)等服務(wù),公司將堅持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長,共同發(fā)展。
使用 Authing 的 OIDC Provider 作為 AWS API Gateway 的認(rèn)證器,用于保護(hù) Lambda 函數(shù)。無需編寫任何鑒權(quán)代碼,只需要在兩邊配置即可完成。同時還演示了 Authing 可以根據(jù)上下文不同情況來簽發(fā)自定義字段的 OIDC IdToken 能力。
注冊一個 Authing 賬號
訪問 https://console.authing.cn,注冊一個賬號
登錄進(jìn)入 Authing 控制臺
創(chuàng)建一個用戶池
創(chuàng)建一個應(yīng)用
在應(yīng)用列表找到剛剛創(chuàng)建的應(yīng)用,點擊配置。在下方簽名算法處選擇 RS256。
創(chuàng)建用戶
進(jìn)入用戶管理> 用戶列表,點擊右上角的新建按鈕,創(chuàng)建兩個用戶,最后點擊保存。
設(shè)置 Token 自定義字段
進(jìn)入擴(kuò)展能力> 流水線 Pipeline,在最右側(cè)「OIDC 簽發(fā) Token 前」位置,點擊下面的加號。
選擇添加自定義 IdToken。
在彈出的抽屜中,輸入以下自定義代碼來自定義 Token 字段。最后點擊上傳。
async function pipe(user, context, callback) { if(user.email === 'sample@sample.com') { user.addIdToken("companyCode", "sample") } if(user.email === 'sample2@sample.com') { user.addIdToken("companyCode", "sample2") } callback(null, user, context) }
創(chuàng)建 API Gateway
進(jìn)入 AWS API Gateway 控制臺,點擊「創(chuàng)建 API」。
選擇 HTTP API,然后點擊「構(gòu)建」。
填寫 API 名稱,點擊「下一步」。
點擊「下一步」。
點擊「下一步」
點擊「創(chuàng)建」。
創(chuàng)建 Lambda 函數(shù)
進(jìn)入 AWS Lambda 控制臺,點擊「創(chuàng)建函數(shù)」。
按下圖方式創(chuàng)建 Lambda 函數(shù),函數(shù)名稱可以任意填寫。
為 Lambda 函數(shù)添加觸發(fā)器
選擇 API Gateway。
選擇剛剛創(chuàng)建的 API Gateway,點擊「添加」。
點擊 Lambda 函數(shù),向下滾動瀏覽器窗口,進(jìn)入編輯界面。
輸入以下代碼,用于返回 Token 中的信息,包括 companyCode。
exports.handler = async (event) => { // TODO implement const token = event.headers.authorization.replace('Bearer ', ''); const claims = event.requestContext.authorizer.claims; const response = { statusCode: 200, body: JSON.stringify({ token, claims, companyCode: claims.companyCode }) }; return response; };
最后點擊「Deploy」。
設(shè)置 API Gateway 路由 Authorizer
進(jìn)入 AWS API Gateway 控制臺,找到剛創(chuàng)建的 API。
找到剛剛為 Lambda 函數(shù)設(shè)置的觸發(fā)器路由,點擊「附加授權(quán)」。
點擊「創(chuàng)建并附加授權(quán)方」。
選擇 JWT 授權(quán)方類型
授權(quán)方按照以下方式設(shè)置。
上面的信息可以在 Authing 控制臺找到:
在應(yīng)用> 應(yīng)用列表,找到你的應(yīng)用,點擊「配置」。
發(fā)布者 URL 填寫這里的 Issuer,受眾填寫應(yīng)用 ID。
最后點擊「創(chuàng)建并附加」。
到此所有配置完畢
登錄示例
安裝 NodeJS
http://nodejs.cn/download/
克隆項目
git clone https://git.authing.co/yezuwei/sample-poc
安裝依賴
cd sample-poc npm install
運行
node bin/www
然后在瀏覽器訪問 https://kone.authing.cn
在登錄頁面輸入賬號和密碼
收到來自 Lambda 的響應(yīng):
點擊登出,再使用賬號和密碼登錄
收到來自 Lambda 的響應(yīng):
注意 companyCode 已經(jīng)根據(jù)用戶的信息字段,進(jìn)行邏輯判斷然后返回了另外一個。
關(guān)于“如何使用Authing和AWS JWT Authorizer替換Cognito”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識,可以關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,小編每天都會為大家更新不同的知識點。