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

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

y-tsuzaki
March 09, 2021

アクセス制御ライブラリ 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 full-size slide

  2. 自己紹介

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

    所属:


    PHPer・Laravel歴:1.5年

    マイブーム:公園で懸垂


    View full-size slide

  3. はじめに

    View full-size slide

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

    View full-size slide

  5. Casbinとは?

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

  12. Laravelでの使い方

    View full-size slide

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

    View full-size slide

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

    View full-size slide

  15. ルールを追加する

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide