Djangoでのユーザー認証
Djangoにはユーザー認証システムが付属しています。 ユーザーアカウント、グループ、権限、およびCookieベースのユーザーセッションを処理します。 ドキュメントのこのセクションでは、デフォルトの実装が箱から出してどのように機能するか、およびプロジェクトのニーズに合わせて拡張およびカスタマイズする方法について説明します。
概要
Django認証システムは、認証と承認の両方を処理します。 簡単に言うと、認証はユーザーが本人であると主張していることを確認し、承認は認証されたユーザーに何を許可するかを決定します。 ここで、認証という用語は、両方のタスクを指すために使用されます。
認証システムは次のもので構成されます。
- ユーザー
- 権限:ユーザーが特定のタスクを実行できるかどうかを指定するバイナリ(yes / no)フラグ。
- グループ:複数のユーザーにラベルと権限を適用する一般的な方法。
- 構成可能なパスワードハッシュシステム
- ユーザーにログインしたり、コンテンツを制限したりするためのフォームと表示ツール
- プラグ可能なバックエンドシステム
Djangoの認証システムは非常に汎用的であることを目指しており、Web認証システムで一般的に見られるいくつかの機能を提供していません。 これらの一般的な問題のいくつかの解決策は、サードパーティのパッケージに実装されています。
- パスワード強度チェック
- ログイン試行の抑制
- サードパーティに対する認証(OAuthなど)
- オブジェクトレベルの権限
インストール
認証サポートは、django.contrib.auth
にDjangocontribモジュールとしてバンドルされています。 デフォルトでは、必要な構成はすでにsettings.py
によって生成されます :djadmin: `django-admin startproject ` 、これらはあなたにリストされている2つのアイテムで構成されています :setting: `INSTALLED_APPS` 設定:
'django.contrib.auth'
には、認証フレームワークのコアとそのデフォルトモデルが含まれています。'django.contrib.contenttypes'
はDjango コンテンツタイプシステムであり、作成したモデルに権限を関連付けることができます。
:setting: `MIDDLEWARE` 設定のこれらの項目:
- SessionMiddleware は、リクエスト間でセッションを管理します。
- AuthenticationMiddleware は、セッションを使用してユーザーをリクエストに関連付けます。
これらの設定を行った状態で、コマンドmanage.py migrate
を実行すると、認証関連モデルに必要なデータベーステーブルと、インストール済みアプリで定義されているモデルのアクセス許可が作成されます。