根據 scope 策略設定受保護api訪問許可權

2022-09-19 10:33:09 字數 4166 閱讀 8106

1 新增 apiscope

2 新增 apiresource

新增api名為「client_credentials_apis」的apiresource,並把作用域「client_credentials_apis.identityusercontroller.scope」和「client_credentials_apis.weatherforecastcontroller.scope」新增到該apiresource中

3 在 ids 新增客戶端

新增客戶端,新增客戶端金鑰,設定授權型別(比如 客戶端憑證方式),並至少設定乙個 自定義的 apiscope(如新增 client_credentials_apis.weatherforecastcontroller.scope);token型別預設為 jwt。

4 客戶端獲取 token並使用 該token訪問api資源

接下來給客戶端新增  client_credentials_apis.identityusercontroller.scope ,重新訪問結果如下:

再給客戶端新增 client_credentials_apis.weatherforecastcontroller.scope,重新訪問結果如下

客戶端新增作用域如下圖:

5 相關**

5.1 api資源端**如下:

配置如下:

}startup.cs **如下:

//策略授權

}5.2 客戶端**

配置**:

public

class

config

獲取token和訪問資源**:

///

///使用 httpclient 通過客戶端憑證方式獲取token與資源

///適用場景:一般用於服務端應用與服務端應用互動

///請求token鏈結格式:/connect/token?client_id={}&client_secret={}&grant_type=client_credentials

//使用 token 訪問資源

if (!string

.isnullorempty(token_res))/test/ping

").result;

//有token就能訪問且 client allowedscope 包含 client_credentials_apis.identityusercontroller.scope 才能訪問

var apires2 = getclient.getstringasync($"

/identityuser/ping

").result;

//有token就能訪問且 client allowedscope 包含 client_credentials_apis.weatherforecastcontroller.scope 才能訪問

var res_res3 = getclient.getstringasync($"

/weatherforecast/ping

").result;}}

}}

參考資源

route map策略路由設定

公司總部剛搬到新辦公樓,新機房與老機房通過光纜相連。網際網路出口在老機房那邊,新辦公上網須通過老機房出去,兩個機房的中心交換機之間是用ip route做的連線。預設指向聯通出口那個閘道器。老機房有電信和聯通兩個出口,其中聯通是作為普通使用者上網用,電信做sap 專線 等應用出口。由於新辦公樓上網人數...

mysql密碼策略設定

設定密碼過期策略 mysql資料庫使用者同系統使用者一樣,可以設定密碼過期策略,密碼的過期天數可以在配置檔案裡面設定,也可以通過命令設定,通過命令為每個使用者設定密碼的過期天數則會覆蓋系統配置檔案中的設定。1 配置檔案中設定 選項 default password lifetime 過期天數 如果設...

redis過期策略設定

中6中過期策略的具體方式。redis 中的預設的過期策略是volatile lru 設定方式 可以通過命令直接設定 config set maxmemory policy volatile lru maxmemory policy 六種方式 volatile lru 只對設定了過期時間的key進行l...