Upgrade to Pro — share decks privately, control downloads, hide ads and more …

アクセス制御ライブラリ Casbinを使ってみた

アクセス制御ライブラリ Casbinを使ってみた

Laravel Meetup Tokyo Vol.13 にてLTした際の資料です。

Laravel製プロダクトの管理画面に
ロールベースのアクセス制御を導入するのにCasbinを使って便利だったので、
どんなものか紹介します。

keywords: PHP, Laravel, Casbin, laravel-authz, RBAC

https://casbin.org/
https://github.com/php-casbin/laravel-authz
https://corp.macloud.jp/

y-tsuzaki

March 09, 2021
Tweet

More Decks by y-tsuzaki

Other Decks in Programming

Transcript

  1. アクセス制御ライブラリ

    Casbinを使ってみた


    View Slide

  2. 自己紹介

    名前:つざき (Twitter @820zacky)   

    所属:


    PHPer・Laravel歴:1.5年

    マイブーム:公園で懸垂


    View Slide

  3. はじめに

    View Slide

  4. はじめに
    Laravel製プロダクトの管理画面に
    ロールベースのアクセス制御を導入するのに
    Casbinを使って便利だったので、
    どんなものか紹介します。

    View Slide

  5. Casbinとは?

    View Slide

  6. Casbinとは?
    さまざまなアクセス制御モデルをサポートする
    Authorization(認可)ライブラリ
    Go, Java, C/C++, Node.js, Javascript, PHP
    その他もろもろの言語をサポート
    https://casbin.org/

    View Slide

  7. Casbinとは?
    対応しているアクセス制御モデル
    - ACL: アクセス制御リスト
    - RBAC: ロールベースアクセス制御
    - ABAC:属性ベースアクセス制御
    など
    https://casbin.org/

    View Slide

  8. Casbinとは?
    https://casbin.org/

    View Slide

  9. モデル定義ファイルを編集することで
    さまざまなアクセス制御モデルに柔軟に対
    応できる
    Casbinとは?

    View Slide

  10. このように特殊な式を使ってモデルを定義する

    View Slide

  11. ロールベースはこちら
    基本的なものはテンプレあり

    View Slide

  12. Laravelでの使い方

    View Slide

  13. php-casbin/laravel-authz
    というパッケージを使う

    View Slide

  14. View Slide

  15. 設定ファイルをpublishして
    ルール保存テーブルをmigrateする

    View Slide

  16. ルールを追加する

    View Slide

  17. 権限があるか問い合わせる

    View Slide

  18. middlewareを使って
    ルートごとに制御 

    View Slide

  19. 便利なメソッドもいろいろ

    View Slide

  20. まとめ
    - Casbinは色々なアクセス制御モデルに対応している
    - Laravelでも便利に使える
    - Casbinいいぞ

    View Slide

  21. View Slide