これはなに?
ASP.NET Coreでは、認証のいろいろな段階で、使用する認証スキームを選ぶことができます。
認証のいろいろな段階 というのは、具体的には IAuthenticationService 実装クラスのメソッドです。
各メソッドがそれぞれ何をするのかわからなかったので、まとめてみようと思いました。
参考リンク
以下を参考にしました。
- スタックオーバーフロー
- ASP.NET Core 2.0 Authentication
- AuthenticationOptions クラス
- IAuthenticationService インターフェース
認証のいろいろな段階一覧
IAuthenticationService インターフェースから拾った認証段階は、以下のとおりです。
- Authenticate
- Challenge
- Forbid
- SignIn
- SignOut
それぞれ見てみます。
Authenticate
認証するといいますか、指定されたスキーマから認証情報を取り出します。
例えば、CookieスキーマならCookieから、JwtBearerスキーマならAuthorization HTTPヘッダから取り出します。
Challenge
未認証ユーザーが、認証が必要なエンドポイントへリクエストしたとき、ユーザに対して認証を要求します。
例えば、ログイン画面へリダイレクトします。
Forbid
認証済みユーザが、アクセス許可されていないリソースへアクセスしようとしたときに実行されます。
SignIn
認証情報を保管します。
例えば、Cookieにトークンを保管します。
SignOut
認証情報を破棄するようにします。
例えば、Cookieをexpireします。