リソース所有者フローを使用して、IdentityServer v4 を使用して ASP.NET アプリケーションの承認を処理しています。
と の 2 つのメソッドをIdentityServer4.Core.Services.IProfileService
持つインターフェイスを実装しました。GetProfileDataAsync
IsActiveAsync
トークン エンドポイントにリクエストを送信するGetProfileDataAsync
と、期待どおりに が呼び出されます。この方法を使用して請求を発行します。
ただし、IsActiveAsync
メソッドは呼び出されません。このメソッドを実装して、ユーザーがデータベースでアクティブかどうかを判断したいと思います。このメソッドはどの時点で呼び出されることになっていますか?
IdentityServer ソースのコメント (以下を参照) は、トークンの発行中に呼び出される必要があることを示唆していますが、トークンを要求するときにメソッドは呼び出されません。私は何かが欠けていると思います。どんな助けでも大歓迎です。
// Summary:
// This method gets called whenever identity server needs to determine
// if the user is valid or active (e.g. if the user's account has been
// deactivated since they logged in). (e.g. during token issuance or
// validation).
Task IsActiveAsync(IsActiveContext context);