authentication_classesとpermission_classesの違い

池田

2024.03.08

152

DRFのログイン周りを実装中にふと思った。

authenticationclassesとpermissionclassesがあるけど違いは?どっちを使うべき?

認証と承認の違い

APIViewの継承時にauthenticationclassesを設定すると、その認証が必要になり、またpermissionclassesを設定するとその権限を持っているものしかAPIViewを起動することができなくなる。(認可)

認証と承認の違いだった。以下ものすごくわかりやすい例

ある家族が休暇で留守の間、その家のペットを世話するために訪れた人が、施錠されたドアの前に立っている状況を考えてみましょう。この人物には、以下が必要です。
認証:この場合は、家の鍵です。施錠されたドアは、正しい鍵を持つ人だけが開けることができます。これは、システムが正しい資格情報を持つユーザーにのみアクセス権を付与する認証と同じことです。
承認:この場合は、家に入る許可です。家の中では、キッチンに入り、ペットフードを保管している食器棚を開けることができます。しかし、昼寝のために寝室に入る許可(認可)は与えられないでしょう。


参考サイト↓

https://torajirousan.hatenadiary.jp/entry/2021/01/01/192820

https://www.okta.com/jp/identity-101/authentication-vs-authorization/

この記事をシェアする