IdentityServer4 でトークンエンドポイントの変更
IdentityServer4 でトークンの発行を「connect/token」ではなく「api/token」にしたかったのですが、設定では変更できないようなので Url Rewrite で対応。と合わせて Discovery のエンドポイントも新しいパスに変更です。
Endpoints
URL Rewriting Middleware の設定を追加し、api/ を connect/ にRewrite 。
IISUrlRewrite.xml
<rewrite> <rules> <rule name="Rewrite1" stopProcessing="true"> <match url="^api/(.*)" /> <action type="Rewrite" url="connect/{R:1}" appendQueryString="true"/> </rule> </rules> </rewrite>
Startup.cs / Configure
using StreamReader iisUrlRewriteStreamReader = File.OpenText("IISUrlRewrite.xml"); var options = new RewriteOptions() .AddIISUrlRewrite(iisUrlRewriteStreamReader);
Discovery
Discovery のオプション設定でデフォルトのエンドポイントを非表示にして、新しいエンドポイントを追加。
Startup.cs / ConfigureServices
var builder = services.AddIdentityServer( options => { options.Discovery.ShowEndpoints = false; options.Discovery.CustomEntries.Add("token_endpoint", "~/api/token"); // 他にも必要なら追記 })