oathkeeper的安裝與使用

2021-10-24 23:59:24 字數 3797 閱讀 1782

ory oathkeeper是乙個認證與訪問**,用於作為反向**或者訪問許可權決策點。

當作為反向**時,客戶端、oathkeeper以及內網服務之間的通訊流程如圖1所示。

圖1   作為反向**時的通訊流程

當作為許可權決策點時,客戶端、api閘道器、oathkeeper以及內網服務之間的通訊流程如下如下。

圖2   當作為訪問決策點時的通訊流程

當oathkeeper接收到http請求後,會首先對http請求進行認證以及鑑權,如果全都通過,才會將http請求**到服務端。

圖3  oathkeeper主要執行流程

由上圖可知,oathkeeper主要完成對http請求的認證、鑑權的任務。然而,在不與第三方認證、鑑權服務通訊的前提下, oathkeeper的只有有限的認證、鑑權能力,詳細如下:

oathkeeper不需要第三方時的認證、鑑權能力範圍

能力範圍

認證鑑權

更改1.noop(全部認證通過)

2.unauthorized(全部拒絕認證)

3.annymous(不帶authorization頭部的請求可以認證通過,如果資料的訪問者沒有定義,則被設定為「匿名」)

1.allow(許可權認證時全部通過)

2.deny(許可權認證時全部失敗)

尚不清楚應用場景

因此,如果想要提供更全面、更完善的安全機制,只能在系統中繼續搭建其他服務。在這個部落格中,oathkeeper會和go-oauth2相配合,搭建安全防護系統,保護內網的乙個nginx伺服器。

核心**如下:

/*

step1:建立admin,zhanglei兩個使用者,並儲存在記憶體資料庫中

*/clientstore := store.newclientstore()

root_id, root_secret := "admin", "admin_haha"

root_index := root_id

root_client_info := models.client

clientstore.set(root_index, &root_client_info)

user_id,user_secret := "zhanglei", "zhanglei_haha"

user_index := user_id

user_info := models.client

clientstore.set(user_index, &user_info)

manager.mapclientstorage(clientstore)

/*

搭建登入服務,用來給使用者生成short live token(2h內有效)

/*檢視該token是否被認證過,如果沒有,則返回錯誤

*/ti, err := srv.manager.loadaccesstoken(ctx, access_token)

if err != nil

response_map := make(map[string]inte***ce{})

/*active = true表示認證成功

active、username將會被放入鑑權資訊的頭部

/*如果有相應許可權,則需要返回給oathkeeper 200狀態碼

*/if clientid == "admin" && require_resource == "web_server" && require_action == "read" else

return

})

oathkeeper的配置如下:

這個配置的意思是,通過配置訪問authenticators.oauth2_introspection.config.introspection_url對使用者進行認證,然後通過訪問

authorizers.remote.config.remote來進行遠端鑑權。

pyenv virtualenv 的安裝與使用

1 安裝pyenv 建立安裝目錄 mkdir pyenvgit clone pyenv git clone pyenv plugins pyenv virtualenvecho export pyenv root home pyenv bash profile echo export path py...

Spotlight on Unix 的安裝與使用

1.本文背景 直接點選 next 按鈕,切換到選擇安裝路徑介面 選擇安裝路徑,點選 next 按鈕,切換到安裝許可協議介面 選擇同意,點選 next 按鈕,切換到安裝資訊檢查介面 確認無誤後點選 next 按鈕,開始安裝 spotlight 到電腦 安裝結束後提示安裝成功 點選 finish 按鈕結...

docker windows版本的安裝與使用

回到目錄 在面向服務的框架裡,docker扮演著十分重要的角色,他使你的部署更輕量,使運維更智慧型化,事實上微軟自己的專案也已經用上了docker了,下面介紹一下在windows環境上使用docker的一些注意點。由於docker是基於linux 的核心,在windows和mac上是不能直接使用do...