---
title: "Modeling Guides"
description: "This section has guides, concepts and examples that help you define an authorization model."
canonical: "https://openfga.dev/docs/modeling"
content_type: "documentation"
last_updated: "2026-08-22T02:14:15.000Z"
---

This section has guides, concepts and examples that help you define an authorization model.

You can also check out the [Modeling Guide](https://www.youtube.com/watch?v=5Lwy9aHXXHE\&list=PLUR5l-oTFZqWaDdhEOVt_IfPOIbKo1Ypt) on YouTube or the [Samples Repository](https://github.com/openfga/sample-stores).

**When to use**

The content in this section is useful:

- If you are starting with OpenFGA and want to learn how to represent your organization's/system's authorization needs.
- If you are working on iterating on an authorization model you previously defined.



# Modeling Guides

**Getting Started**

How to create an authorization model for your system starting from the requirements.

- [Getting Started](https://openfga.dev/docs/modeling/getting-started.md)

**Direct Access**

Learn the basics of modeling authorization and granting access to users.

- [Direct Access](https://openfga.dev/docs/modeling/direct-access.md)

**User Groups**

Learn to model user group membership, and to grant access to all members of a group.

- [User Groups](https://openfga.dev/docs/modeling/user-groups.md)

**Roles and Permissions**

Learn to model roles for users at the object level and model permissions for those roles.

- [Roles and Permissions](https://openfga.dev/docs/modeling/roles-and-permissions.md)

**Parent-Child objects**

Learn to model access based on parent-child relationships, e.g.: folders and documents.

- [Parent-Child objects](https://openfga.dev/docs/modeling/parent-child.md)

**Block Lists**

Learn to model denying access if users are part of list of blocked users.

- [Block Lists](https://openfga.dev/docs/modeling/blocklists.md)

**Public Access**

Learn to model giving everyone specific access to an object, e.g.: everyone can read.

- [Public Access](https://openfga.dev/docs/modeling/public-access.md)

**Multiple Restrictions**

Learn to model requiring multiple privileges before granting access.

- [Multiple Restrictions](https://openfga.dev/docs/modeling/multiple-restrictions.md)

**Custom Roles**

Learn to model custom roles that are created by users.

- [Custom Roles](https://openfga.dev/docs/modeling/custom-roles.md)

**Conditions**

Learn to model requiring dynamic attributes.

- [Conditions](https://openfga.dev/docs/modeling/conditions.md)

**Contextual and Time-Based Authorization**

Learn to model and authorize when IP Address, time, and other dynamic and contextual restrictions are involved.

- [Contextual and Time-Based Authorization](https://openfga.dev/docs/modeling/contextual-time-based-authorization.md)

**Authorization Through Organization Context**

Learn to model and authorize when a user belongs to multiple organizations.

- [Authorization Through Organization Context](https://openfga.dev/docs/modeling/organization-context-authorization.md)

**Building Blocks**

Learn the underlying concepts/building blocks that can be used to build any model.

- [Building Blocks](https://openfga.dev/docs/modeling/building-blocks.md)

**Advanced Use-Cases**

Explore advanced use cases and patterns for authorization modeling with OpenFGA.

- [Advanced Use-Cases](https://openfga.dev/docs/modeling/advanced.md)

**Migrating**

Learn to migrate relations and models in a production environment.

- [Migrating](https://openfga.dev/docs/modeling/migrating.md)
