[英]identity server 4 + AspNetCore.Identity: how to lockout after X tries?
我正在將 identityServer4 與 AspNetCore.Identity 一起使用。 我的客戶正在使用 RequestClientCredentialsTokenAsync 函數登錄。 我如何保護自己免受過多的登錄嘗試?
MaxFailedAccessAttempts
屬性,但它不執行任何操作。
看來你在混淆事情。 讓我從 術語開始。
什么是客戶?
客戶端是一個從 IdentityServer 請求令牌的軟件。
什么是用戶?
用戶是使用已注冊的客戶端訪問的資源是人。
客戶端注冊允許某些授權類型:
機器對機器通信:
始終代表客戶端請求令牌,不存在交互式用戶。
當涉及用戶時:交互式客戶端。
這是最常見的客戶端場景類型:具有交互式用戶的Web 應用程序、SPA 或本機/移動應用程序。
當你談論RequestClientCredentialsTokenAsync
則表明您使用的是ClientCredentials流動。 客戶端注冊以允許客戶端憑據授予類型的流。
如本流程所述,不存在交互式用戶。
現在關於MaxFailedAccessAttempts
屬性。 這是鎖定選項的一部分:
獲取或設置在用戶被鎖定之前允許的失敗訪問嘗試次數(假設已啟用鎖定)。 默認為 5。
這是為什么此屬性不起作用的答案。 鎖定選項與客戶端憑據流無關,因為沒有用戶存在。
現在回答您的問題:我如何保護自己免受過多的登錄嘗試?
客戶端登錄與用戶登錄不同。 沒有鎖定客戶端的機制。 如果您想為客戶端提供此功能,則必須擴展 IdentityServer。
但是鑒於您的問題,提到AspNetCore.Identity ,您似乎更應該實現用戶可以登錄的正確流程。 看看樣品。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.