blob: a19ba73d143b6c8bea018bf9760922a0faf2c74f [file]
---
id: tutorials
title: Tutorials
description: Casbin Tutorials
keywords: [tutorials]
authors: [hsluoyz]
icon: FileText
---
Note that certain tutorials address Casbin's model architecture and apply universally across all language implementations, while others target specific programming languages.
### Our Papers
- [PML: An Interpreter-Based Access Control Policy Language for Web Services](https://arxiv.org/abs/1903.09756)
This paper provides an in-depth exploration of Casbin's design. If you reference Casbin/PML in academic work, please cite using the following BibTex:
```bibtex
@article{luo2019pml,
title={PML: An Interpreter-Based Access Control Policy Language for Web Services},
author={Luo, Yang and Shen, Qingni and Wu, Zhonghai},
journal={arXiv preprint arXiv:1903.09756},
year={2019}
}
```
### Videos
- [A Secure Vault - implementing authorization middleware with Casbin - JuniorDevSG](https://www.youtube.com/watch?v=OTT84oplR9o)
- [Nest.js - Casbin RESTful RBAC authorization middleware](https://www.youtube.com/watch?v=mWlPNrCgVdE)
### PERM Meta-Model (Policy, Effect, Request, Matchers)
- [Understanding Casbin with different Access Control Model Configurations](https://medium.com/wesionary-team/understanding-casbin-with-different-access-control-model-configurations-faebc60f6da5)
- [Modeling Authorization with PERM in Casbin](https://narendraj9.github.io/posts/generalized-authz.html)
- [Designing a Flexible Permissions System with Casbin](https://medium.com/silo-blog/designing-a-flexible-permissions-system-with-casbin-f5d97fef17b8)
- [Authorize with Access Control Lists](https://medium.com/pragmatic-programmers/authorize-with-access-control-lists-92fbec57a920)
<Tabs groupId="langs" items={['Go', 'Java', 'Node.js', 'PHP', '.NET', 'Rust', 'Lua']} persist>
<Tab value="Go">
### HTTP & RESTful
- [Basic Role-Based HTTP Authorization in Go with Casbin](https://zupzup.org/casbin-http-role-auth)
### Gin
- [Authorization in Golang Projects using Casbin](https://medium.com/wesionary-team/authorization-in-golang-projects-using-casbin-f8fad744dae5)
- [Tutorial: Integrate Gin with Casbin](https://dev.to/maxwellhertz/tutorial-integrate-gin-with-cabsin-56m0)
- [Policy enforcements on K8s with Pipeline](https://outshift.cisco.com/blog/policy-enforcement-k8s)
- [Authentication and authorization in Gin application with JWT and Casbin](https://medium.com/@tienbm90/authentication-and-authorization-in-gin-application-with-jwt-and-casbin-a56bbbdec90b)
### Echo
- [Web authorization with Casbin](http://klotzandrew.com/blog/authorization-with-casbin)
### Argo CD
- [Organizational RBAC in Argo CD with Casbin](https://argo-cd.readthedocs.io/en/stable/operator-manual/rbac/)
</Tab>
<Tab value="Java">
</Tab>
<Tab value="Node.js">
### Express
- [How to Add Role-Based-Access-Control to Your Serverless HTTP API on AWS](https://dev.to/matttyler/how-to-add-role-based-access-control-to-your-serverless-http-api-on-aws-17bk)
### Koa
- [Authorisation with Casbin and Koa Part 1](https://dev.to/gerybbg/authorisation-with-casbin-and-koa-part-1-2gh)
- [Authorisation with Casbin and Koa Part 2](https://dev.to/gerybbg/authorisation-with-casbin-and-koa-part-2-2io5)
### Nest
- [How to Create Role-based Authorization Middleware with Casbin and Nest.js](https://dev.to/dwipr/how-to-create-role-based-authorization-middleware-with-casbin-and-nest-js-52gm)
- [nest.js: Casbin RESTful RBAC authorization middleware (Video)](https://www.youtube.com/watch?v=mWlPNrCgVdE)
- [A Demo App of Attribute-based Access Control in Node.js Based on Casbin](https://github.com/Jarvie8176/casbin-example)
- [Multi tenant SaaS starter kit with cqrs graphql microservice architecture](https://github.com/juicycleff/ultimate-backend)
### Fastify
- [Access Control in Node.js with Fastify and Casbin](https://www.nearform.com/blog/access-control-node-js-fastify-and-casbin/)
</Tab>
<Tab value="PHP">
- [Casbin, Powerful and Efficient ACL for Your Projects](http://phpmagazine.net/2018/11/casbin-powerful-and-efficient-acl-for-your-projects.html)
</Tab>
<Tab value=".NET">
- [Using Casbin for authorization in dotnet](https://krishnamohan.dev/blog/using-casbin-for-authorization-in-dotnet)
</Tab>
<Tab value="Rust">
- [Basic Role-Based HTTP Authorization in Rust with Casbin](https://www.zupzup.org/rust-casbin-example/)
- [How to use casbin authorization in your rust web-app [Part - 1]](https://dev.to/smrpn/how-to-use-casbin-authorization-in-your-rust-web-app-part-1-4f8f)
- [How to use casbin authorization in your rust web-app [Part - 2]](https://dev.to/smrpn/how-to-use-casbin-authorization-in-your-rust-web-app-part-2-1bnm)
</Tab>
<Tab value="Lua">
### APISIX
- [Authorization in APISIX using Casbin](https://medium.com/@rushitote/authorization-in-apisix-using-casbin-59b693669d6d)
</Tab>
</Tabs>