カテゴリ: Django 更新日: 2026/02/20

Django認証の基本設定をやさしく解説|AUTH_USER_MODELと認証バックエンドの仕組み

Django認証の基本設定|AUTH_USER_MODELと認証バックエンドの仕組み
Django認証の基本設定|AUTH_USER_MODELと認証バックエンドの仕組み

先生と生徒の会話形式で理解しよう

生徒

「Djangoでログイン機能を作るとき、認証ってよく聞くんですが、そもそも何をしているんですか?」

先生

「Djangoの認証は、誰がログインしているかを確認して、安全にサービスを使ってもらうための仕組みです。会員証を見せて入館するイメージに近いですね。」

生徒

「AUTH_USER_MODELって設定ファイルで見たんですが、何を書いているんですか?」

先生

「それは“ユーザー情報をどの設計図で管理するか”をDjangoに教える大事な設定です。順番に見ていきましょう。」

1. Django認証とは何かを超やさしく説明

1. Django認証とは何かを超やさしく説明
1. Django認証とは何かを超やさしく説明

Django認証とは、「この人は誰か」「ログインしてよい人か」を判断するための仕組みです。Webサイトでログインするとき、メールアドレスやパスワードを入力しますよね。Djangoはそれを受け取って、正しいかどうかを確認します。

パソコンを触ったことがない人向けに例えると、学校の名簿を思い浮かべてください。名簿に名前があって、番号が一致すれば教室に入れます。Django認証は、この名簿と確認作業を自動でやってくれる便利な先生のような存在です。

Djangoには最初から「認証機能」が用意されているので、自分でゼロから作る必要はありません。これがDjangoが初心者にやさしい理由の一つです。

2. ユーザーとは何か|Djangoにおける利用者の考え方

2. ユーザーとは何か|Djangoにおける利用者の考え方
2. ユーザーとは何か|Djangoにおける利用者の考え方

Djangoでいう「ユーザー」とは、ログインする人の情報をまとめたものです。名前、パスワード、メールアドレスなどがセットになっています。

専門用語で「モデル」と呼ばれますが、これは設計図のようなものです。「ユーザーには何の情報を持たせるか」を決めています。

Djangoには最初から標準ユーザーが用意されています。ですが、あとから「誕生日も保存したい」「ニックネームを追加したい」と思うことがあります。そのときに重要になるのがAUTH_USER_MODELです。

3. AUTH_USER_MODELとは何か|超重要な設定項目

3. AUTH_USER_MODELとは何か|超重要な設定項目
3. AUTH_USER_MODELとは何か|超重要な設定項目

AUTH_USER_MODELは、「どのユーザーモデルを使いますか?」とDjangoに伝えるための設定です。設定ファイルであるsettings.pyに書きます。

例えるなら、名簿の種類を指定するようなものです。Aクラスの名簿を使うのか、Bクラスの名簿を使うのかを決めます。


# settings.py
AUTH_USER_MODEL = 'auth.User'

これは「Djangoが最初から用意しているユーザーを使います」という意味です。初心者のうちは、この設定を理解するだけで十分です。

4. カスタムユーザーとAUTH_USER_MODELの関係

4. カスタムユーザーとAUTH_USER_MODELの関係
4. カスタムユーザーとAUTH_USER_MODELの関係

カスタムユーザーとは、自分で作ったユーザー設計図のことです。例えば「電話番号を必須にしたい」など、標準では足りないときに使います。

その場合、AUTH_USER_MODELを自分のアプリに変更します。


# settings.py
AUTH_USER_MODEL = 'accounts.CustomUser'

accountsはアプリ名、CustomUserはモデル名です。ここを間違えるとログインできなくなるため、Django認証の中でも特に大事なポイントです。

5. 認証バックエンドとは何かをイメージで理解

5. 認証バックエンドとは何かをイメージで理解
5. 認証バックエンドとは何かをイメージで理解

認証バックエンドとは、「どの方法で本人確認をするか」を決める仕組みです。難しく聞こえますが、やっていることは単純です。

例えば、学校の門で先生が名簿を見る方法、ICカードを使う方法がありますよね。どの方法で確認するかを決めるのが認証バックエンドです。


# settings.py
AUTHENTICATION_BACKENDS = [
    'django.contrib.auth.backends.ModelBackend',
]

これは「ユーザー名とパスワードで確認します」という一番基本の方法です。Django認証では、複数のバックエンドを指定することもできます。

6. Djangoはどうやってログインを判断しているのか

6. Djangoはどうやってログインを判断しているのか
6. Djangoはどうやってログインを判断しているのか

ログイン画面で入力された情報は、まず認証バックエンドに送られます。バックエンドはユーザー情報と照らし合わせて、正しいかどうかを確認します。

正しければ「この人はログインOK」と判断され、ユーザー情報が保存されます。これを「ログイン状態」と呼びます。


from django.contrib.auth import authenticate

user = authenticate(username='taro', password='password123')

このコードは、「この名前とパスワードの人はいますか?」とDjangoに聞いているイメージです。

7. Django認証を使うメリットと初心者向け注意点

7. Django認証を使うメリットと初心者向け注意点
7. Django認証を使うメリットと初心者向け注意点

Django認証の最大のメリットは、安全性と簡単さです。パスワードは自動で暗号化され、危険な保存方法を避けられます。

初心者が気をつける点は、AUTH_USER_MODELは途中で変更しにくいことです。後から変えるとデータベースに影響が出ます。

そのため、「最初にどんなユーザー情報が必要か」を考えることが、Django認証ではとても大切です。

カテゴリの一覧へ
新着記事
New1
Flask
Flaskで非同期フォーム送信(Ajax POST)を実装する方法を解説!初心者でもわかるステップ解説
New2
Python
Pythonで定数を定義する方法!変更されない変数の書き方と命名ルールを初心者向けに解説
New3
Python
PythonでMySQLに接続する方法!pymysqlの基本的な使い方
New4
Flask
FlaskのURLルールとは?ルーティングの基本と動的URLの作り方を解説
人気記事
No.1
Java&Spring記事人気No1
Python
Pythonとは何か?初心者向けにできること・特徴・インストール手順までやさしく解説
No.2
Java&Spring記事人気No2
Flask
Flaskでデータベースを使う基本!SQLAlchemyの導入方法をやさしく解説
No.3
Java&Spring記事人気No3
Python
Pythonでリストの要素を検索・取得する方法!index()やin演算子の活用法
No.4
Java&Spring記事人気No4
Python
Pythonプログラムの書き方を基礎から学ぼう!初心者が覚えるべき文法とは?
No.5
Java&Spring記事人気No5
Python
Pythonで仮想環境(venv)を作る方法!初心者向けに環境構築をステップ解説
No.6
Java&Spring記事人気No6
Python
Pythonのインストール方法まとめ!Windows・Mac・Linux別にステップ解説
No.7
Java&Spring記事人気No7
Flask
Flaskアプリの環境変数をクラウドで安全に設定する方法!初心者のための完全ガイド
No.8
Java&Spring記事人気No8
Flask
Flaskでクラウド上のメッセージキュー(SQS/PubSub)を扱う完全ガイド!初心者向け解説