IdentityServer4 でいろいろ試したときのメモ。当時のバージョンは 4.1.1。
- IdentityServer4 の「Interactive Applications with ASP.NET Core」で ProfileService が呼ばれるタイミング
- 以下の順番で呼ばれていた
- Account/Login
- ProfileService.IsActivateAsync
- ProfileService.IsActivateAsync
- ProfileService.GetProfileDataAsync
- IResourceOwnerPasswordValidator は呼ばれなかった。
- GrantTypes が Code だったから。
- ResourceOwnerPassword だったら呼ばれるはず。
- 以下の順番で呼ばれていた
- ProfileService の IsActivateAsync と GetProfileDataAsync に任意のデータを渡せるか
- IdentityServerUser.AdditionalClaims に追加したら渡せた。
- ProfileService.GetProfileDataAsync で context.IssueClaims に、JWT に含めたいクレームを追加する。
- IsActivateAsync は常に true を返せばいい。
- AspNetCore.Identity の ProfileService はそうしている。
- GetProfileDataAsync の context から、IdentityServerUser.AdditionalClaims に追加したクレームが取り出せる。