layout: docs-default
IdentityServerBearerTokenAuthenticationOptions有一系列的選項來調整令牌驗證過程。
通用說明
-
Authority設置IdentityServer的基礎地址。這個允許自動配置(JWT)和訪問令牌驗證endpoint(參考令牌) -
RequiredScopes設置一個 或者 多個scope聲明,期望在訪問令牌中存在。 -
ValidationMode可以設置為Local(僅JWTs ),ValidationEndpoint(JWTs 和參考令牌使用驗證endpoint - 以及Both用于 本地驗證JWTs 以及使用驗證endpoint驗證參考令牌(默認為Both). -
TokenProvider定義了如何從HTTP請求中取到令牌,默認從Authorization頭中獲取。自定義的令牌類型可能會從其它頭或者查詢字符串拿到令牌。 -
NameClaimType設置ClaimsIdentity的名字聲明類型 (默認是name). -
RoleClaimType設置ClaimsIdentity的角色聲明類型 (默認是role). -
PreserveAccessToken如果設置為true,會創(chuàng)建一個叫做token的聲明來保存?zhèn)魅氲脑L問令牌(默認是false).當想把令牌轉發(fā)給其它API,暫存令牌非常有用。比如調用用戶信息endpoint。 -
BackChannelHttpHandler允許為back-channel通信指定一個自定義處理程序
(比如:發(fā)現(xiàn) endpoint 或令牌驗證 endpoint). -
BackchannelCertificateValidator為back-channel通信制定一個自定義證書驗證 -
DelayLoadMetadata告訴中間件不要在程序啟動的時候裝載元數(shù)據(jù),應該在第一次請求的時候裝載 (默認是false). 當啟動的時候discovery endpoint還沒就緒--比如使用者和令牌服務托管在同一個進程中。
JWTs的靜態(tài)配置
除了從發(fā)現(xiàn)endpoint自動獲取配置信息外,我們也可以手動配置中間件。
-
IssuerName設置期望的IdentityServer的issuer名字 -
SigningCertificate設置X.509證書來驗證訪問令牌簽名
備注 當某種情況下,發(fā)現(xiàn)文檔不能用的時候,靜態(tài)配置非常有用,比如IdentityServer和客戶都或者API運行在同一個Web應用里
使用Introspection Endpoint ( v2.2新增)
IdentityServer2.2版本開始支持令牌的內(nèi)省。當使用參考令牌的時候,推薦使用這種方式 (請看 here).
這種情況下,需要讓ClientId和 ClientSecret的值和IdentityServer作用域配置中的name和secret 一樣。(請看scopes)
啟用緩存
當使用參考令牌,你不想每次請求都去IdentityServer驗證一下,這種情況下可以緩存驗證結果。
-
EnableValidationResultCache啟用或者禁用驗證結果緩存(默認是false). -
ValidationResultCacheDuration設置緩存時長 (默認 5 分鐘). -
ValidationResultCache設置緩存實現(xiàn)。默認采用內(nèi)存緩存但是可以通過實現(xiàn)IValidationResultCache接口來擴展.