Gatsbyを使用して静的生成サイトを作成したいと考えています。これはすべて問題ありませんが、内部のサイトであるため、認証と認可を取得したいと考えています。これは私の会社の人がアクセスする必要があります。私はこれについて考えていましたが、何らかのサーバーコンポーネントがなければ、何らかのバックエンドなしでユーザーを安全に認証することは不可能です(?)。私は、ASP.NETコアを使用して静的ファイルを提供し、これらの静的ファイルの前でGoogle(Work用)認証と承認を取得できると考えました。Google認証の背後にある静的ファイルを配信する
公然とアクセス可能な静的ファイルの提供にのみ責任があるため、StaticFileHandler
doesn't support authorization by designのように見えます。私はrootアクション( '/'を聞きます)のAuthorize
属性を使用してGoogle認証を働かせて、Challenge
を発行したログインアクションを持っており、ユーザーは認証のためにGoogleにリダイレクトされます。静的ファイルを処理するためのドキュメントの詳細は、次のとおりです。
静的ファイルモジュールは権限チェックを行いません。 wwwrootの下にあるファイルを含む、それによって提供されるファイルはすべて公開されています。承認に基づいてファイルを提供するには、次の
- ストアそれらwwwrootにし、静的ファイルミドルウェアにアクセス可能な任意のディレクトリと
- 、コントローラのアクションを介してそれらをサーブ許可が適用されFileResultを返すの外側
[Authorize]
public IActionResult Index()
{
// TODO: Return static files based on incoming requested path.
return View();
}
:
は、だから今、私はこのようになります私のHomeController
にIndex
作用を有します0
私はこの解決策に満足していません。 MVCを使用する代わりにミドルウェアですべてを動作させる必要がありますか?これは正しいことですか?これを行うためのより良い方法はありますか?