本文へスキップ
BecomeCoder

Blazorコース · 第7章 レンダリングモードと公開 · レッスン25

認証と認可 ― AuthorizeView で守る

ローカル実施

導入

「ログインした人だけ見られるページ」「管理者だけ押せるボタン」——公開アプリには認証(誰か)と認可(何を許すか)が欠かせません。Blazorには、それを宣言的に扱うAuthorizeView[Authorize]が用意されています。

説明

<AuthorizeView>は、ログイン状態によって表示を切り替えます。

<AuthorizeView>
    <Authorized>
        <p>ようこそ、@context.User.Identity?.Name さん</p>
        <button @onclick="Logout">ログアウト</button>
    </Authorized>
    <NotAuthorized>
        <p>ログインしてください。</p>
    </NotAuthorized>
</AuthorizeView>

ページ全体を保護するには@attribute [Authorize]、役割(ロール)で絞るなら条件を付けます。

@page "/admin"
@attribute [Authorize(Roles = "Admin")]

<h1>管理者ページ</h1>
  • <AuthorizeView><Authorized> / <NotAuthorized>で、ログイン状態により表示を出し分ける
  • ページ丸ごと守るなら@attribute [Authorize]。ロールやポリシーで細かく制御できる
  • 認証の実体(ログインの仕組み)はAuthenticationStateProviderが担い、ASP.NET Core Identity や OpenID Connect と組み合わせる
  • サーバー側でも必ず検証すること。UIの出し分けだけでは「守った」ことにならない

まとめ

  • 表示の出し分けはAuthorizeView、ページ保護は[Authorize]
  • ロール/ポリシーでアクセスを細かく制御できる
  • UIだけでなくサーバー側の検証も必須

次回: 最終回。ビルドして公開し、次の一歩へ。