ASP0001: 認可ミドルウェアが正しく構成されていない

Value
ルール ID ASP0001
[カテゴリ] 使用法
修正が中断ありか中断なしか なし

原因

アプリケーションの起動コードで、UseAuthorization への順序の異なる呼び出しが検出されました。

規則の説明

エンドポイント ルートに対して認可を有効にするには、UseAuthorization への呼び出しが UseRoutingUseEndpoints への呼び出しの間に現れる必要があります。 これがない場合、フォールバック ポリシーが構成されている場合は、すべての要求を承認するために使用されます。

次のコードがあるとします。

app.UseStaticFiles();
app.UseAuthorization();

app.UseRouting();
app.UseEndpoints(endpoints =>
{
    endpoints.MapDefaultControllerRoute();
});

UseAuthorization への呼び出しは UseRouting の前に現れるため、エンドポイントは認識されません。

違反の修正方法

UseAuthorizationUseRouting の呼び出しが実行される順序を変更します。

app.UseStaticFiles();

app.UseRouting();

app.UseAuthorization();

app.UseEndpoints(endpoints =>
{
    endpoints.MapDefaultControllerRoute();
});

どのようなときに警告を抑制するか

UseAuthorization への呼び出しがすべての発信要求に対するフォールバック ポリシーを承認することを目的としている場合、またはエンドポイント ルーティングを使用してルーティングされないリソースを承認することを目的としている場合は、このルールを抑制しても安全です。