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

Django認可の基本|ユーザー・グループ・パーミッションの仕組みを初心者向けに徹底解説

Django認可の基本|ユーザー・グループ・パーミッションの仕組みを理解する
Django認可の基本|ユーザー・グループ・パーミッションの仕組みを理解する

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

生徒

「Djangoでログインはできたんですが、誰がどのページを使っていいのかは、どうやって決めるんですか?」

先生

「Djangoには“認可”という仕組みがあって、ユーザーごとにできることを細かく決められます。」

生徒

「認可って、認証とは違うんですか?」

先生

「ええ。認証は本人確認、認可は権限の管理です。まずはそこから順番に見ていきましょう。」

1. Django認可とは?認証との違いを超やさしく理解

1. Django認可とは?認証との違いを超やさしく理解
1. Django認可とは?認証との違いを超やさしく理解

Django認可とは、「その人が何をしてよいか」を決める仕組みです。よく似た言葉に認証がありますが、役割はまったく違います。

認証は「あなたは誰ですか?」を確認することです。ログイン画面でユーザー名やパスワードを入力する場面を想像してください。一方、認可は「あなたは何をしていいですか?」を決めます。

たとえば、建物に入るときに身分証を見せるのが認証、入ったあとに「この部屋は関係者だけ入室可」と制限するのが認可です。Djangoでは、この認可をとても分かりやすく管理できます。

2. Djangoのユーザーとは?まずは人を登録する考え方

2. Djangoのユーザーとは?まずは人を登録する考え方
2. Djangoのユーザーとは?まずは人を登録する考え方

Djangoの認可は、まずユーザーから始まります。ユーザーとは、システムを使う一人ひとりの人のことです。管理画面で登録でき、名前やパスワードを持っています。

パソコンを触ったことがなくても、「会員登録した人」と考えれば大丈夫です。Djangoでは最初からユーザー管理の仕組みが用意されており、自分で一から作る必要はありません。


from django.contrib.auth.models import User

user = User.objects.create_user(
    username="taro",
    password="password123"
)

このコードは、「taro」という名前のユーザーを作っています。難しそうに見えますが、「新しい会員を一人追加した」と考えてください。

3. グループとは?まとめて管理するための便利機能

3. グループとは?まとめて管理するための便利機能
3. グループとは?まとめて管理するための便利機能

グループは、ユーザーをまとめる箱のようなものです。たとえば「管理者」「一般ユーザー」「スタッフ」といったグループを作り、そこに人を入れます。

一人ひとりに細かく設定するのは大変ですが、グループを使えば一気に管理できます。会社で部署ごとに役割が決まっているのと同じ考え方です。


from django.contrib.auth.models import Group

group = Group.objects.create(name="staff")
group.user_set.add(user)

この例では、「staff」というグループを作り、先ほどのユーザーを入れています。これで、この人はスタッフ扱いになります。

4. パーミッションとは?できることを細かく決める鍵

4. パーミッションとは?できることを細かく決める鍵
4. パーミッションとは?できることを細かく決める鍵

パーミッションとは、「この操作をしていい」という許可のことです。日本語では権限と呼ばれます。

たとえば「記事を追加してよい」「削除してよい」といった許可がパーミッションです。Djangoでは、モデルを作ると自動で基本的なパーミッションが用意されます。


user.has_perm("blog.add_post")

このコードは、「このユーザーは記事を追加できるか?」を確認しています。結果が真ならできる、偽ならできない、という意味です。

5. グループとパーミッションの関係を図で考える

5. グループとパーミッションの関係を図で考える
5. グループとパーミッションの関係を図で考える

ユーザー、グループ、パーミッションは、次のような関係です。

ユーザーはグループに入ります。グループにはパーミッションが設定されます。つまり、ユーザーはグループ経由で権限を持つのです。

鍵付きのロッカーを想像してください。グループは鍵の束、パーミッションは一本一本の鍵、ユーザーはそれを持つ人です。


group.permissions.add(permission)

このようにして、グループに権限を追加すると、その中の全員が同じことをできるようになります。

6. ビューで認可を使う基本的な考え方

6. ビューで認可を使う基本的な考え方
6. ビューで認可を使う基本的な考え方

Djangoでは、ページ表示の処理をビューと呼びます。認可は、このビューでよく使われます。

「このページはログインしていて、なおかつ権限を持つ人だけ見られる」といった制御ができます。


from django.contrib.auth.decorators import permission_required

@permission_required("blog.view_post")
def post_list(request):
    return render(request, "post_list.html")

この例では、記事を見る権限がある人だけがページを開けます。ない場合は自動的に止められます。

7. Django認可を使うメリットと安心ポイント

7. Django認可を使うメリットと安心ポイント
7. Django認可を使うメリットと安心ポイント

Djangoの認可は、最初から用意されているため安全性が高く、初心者でも安心して使えます。自分で難しい仕組みを作る必要がありません。

また、管理画面から操作できるため、コードを書かなくてもユーザーやグループ、パーミッションを変更できます。

Django認可を理解すると、「誰が」「何を」「どこまでできるか」をはっきり分けられるようになり、Webアプリの安全性と使いやすさが大きく向上します。

カテゴリの一覧へ
新着記事
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
Flask
Flaskアプリの環境変数をクラウドで安全に設定する方法!初心者のための完全ガイド
No.6
Java&Spring記事人気No6
Python
Pythonのインストール方法まとめ!Windows・Mac・Linux別にステップ解説
No.7
Java&Spring記事人気No7
Python
Pythonで仮想環境(venv)を作る方法!初心者向けに環境構築をステップ解説
No.8
Java&Spring記事人気No8
Flask
Flaskでクラウド上のメッセージキュー(SQS/PubSub)を扱う完全ガイド!初心者向け解説