Skip to main content

ZITADEL Managers

Managers are human users or service users who have permission to manage resources within ZITADEL.

Manager permissions can be assigned to different levels in ZITADEL:

  • IAM Managers: This is the highest level. Users with IAM Manager roles are able to manage the whole Instance.
  • Org Managers: Managers in the Organization Level are able to view or manage everything, according to their permissions, within the granted Organization.
  • Project Mangers: In this level the user is able to manage a project.
  • Project Grant Manager: The project grant manager is for granted projects by another organization.

Scope of the managers is restricted based on their level. That means a Manager, assigned to one organization, will only get access to resources and configurations of that organization. Only Managers on the instance level can view resources, such as users, across all organizations.

To configure managers in ZITADEL go to the resource where you like to add it (e.g Instance, Organization, Project, GrantedProject). In the right part of the console you can finde MANAGERS in the details part. Here you have a list of the current managers and can add a new one.

Managers

When adding a new manager, you can select multiple roles some of which are only allowed to read data. This can be especially useful if you add service users for one of your projects where you only need read access.

Per default you will only search for users within the selected organization. If you like to give a role to a user outside the organization you need to switch to the global search and type the exact loginname of the users. This will prevent users from guessing users from other organizations.

Managers

Roles​

NameRoleDescription
IAM OwnerIAM_OWNERManage the IAM, manage all organizations with their content
IAM Owner ViewerIAM_OWNER_VIEWERView the IAM and view all organizations with their content
IAM Org ManagerIAM_ORG_MANAGERManage all organizations including their policies, projects and users
IAM User ManagerIAM_USER_MANAGERManage all users and their authorizations over all organizations
IAM Admin ImpersonatorIAM_ADMIN_IMPERSONATORAllow impersonation of admin and end users from all organizations
IAM ImpersonatorIAM_END_USER_IMPERSONATORAllow impersonation of end users from all organizations
IAM Login ClientIAM_LOGIN_CLIENTGet all permissions needed to implement your own Login UI.
Org OwnerORG_OWNERManage everything within an organization
Org Owner ViewerORG_OWNER_VIEWERView everything within an organization
Org User ManagerORG_USER_MANAGERManage users and their authorizations within an organization
Org User Permission EditorORG_USER_PERMISSION_EDITORManage user grants and view everything needed for this
Org Project Permission EditorORG_PROJECT_PERMISSION_EDITORGrant Projects to other organizations and view everything needed for this
Org Project CreatorORG_PROJECT_CREATORThis role is used for users in the global organization. They are allowed to create projects and manage them.
Org Admin ImpersonatorORG_ADMIN_IMPERSONATORAllow impersonation of admin and end users from the organization
Org ImpersonatorORG_END_USER_IMPERSONATORAllow impersonation of end users from the organization
Project OwnerPROJECT_OWNERManage everything within a project. This includes to grant users for the project.
Project Owner ViewerPROJECT_OWNER_VIEWERView everything within a project.
Project Owner GlobalPROJECT_OWNER_GLOBALSame as PROJECT_OWNER, but in the global organization.
Project Owner Viewer GlobalPROJECT_OWNER_VIEWER_GLOBALSame as PROJECT_OWNER_VIEWER, but in the global organization.
Project Grant OwnerPROJECT_GRANT_OWNERSame as PROJECT_OWNER but for a granted proejct.

Configure roles​

If you run a self hosted ZITADEL instance you can define your custom roles by overwriting the defaults.yaml In the InternalAuthZ section you will find all the roles and which permissions they have.

Example:

InternalAuthZ:
RolePermissionMappings:
- Role: "IAM_OWNER"
Permissions:
- "iam.read"
- "iam.write"

Manager Permission Matrix

This table is generated dynamically from our configuration file.

PermissionIAM_ADMIN_IMPERSONATORIAM_END_USER_IMPERSONATORIAM_LOGIN_CLIENTIAM_ORG_MANAGERIAM_OWNERIAM_OWNER_VIEWERIAM_USER_MANAGERORG_ADMIN_IMPERSONATORORG_END_USER_IMPERSONATORORG_OWNERORG_OWNER_VIEWERORG_PROJECT_CREATORORG_PROJECT_PERMISSION_EDITORORG_SETTINGS_MANAGERORG_USER_MANAGERORG_USER_PERMISSION_EDITORORG_USER_SELF_MANAGERPROJECT_GRANT_OWNERPROJECT_GRANT_OWNER_VIEWERPROJECT_OWNERPROJECT_OWNER_GLOBALPROJECT_OWNER_VIEWERPROJECT_OWNER_VIEWER_GLOBALSELF_MANAGEMENT_GLOBALSYSTEM_OWNERSYSTEM_OWNER_VIEWER
action.execution.readnonononoyesyesnononononononononononononononononononono
action.execution.writenonononoyesnonononononononononononononononononononono
action.target.deletenonononoyesnonononononononononononononononononononono
action.target.readnonononoyesyesnononononononononononononononononononono
action.target.writenonononoyesnonononononononononononononononononononono
admin.impersonationyesnonononononoyesnononononononononononononononononono
events.readnonononoyesyesnononononononononononononononononononono
group.createnononoyesyesnonononoyesnononononononononononononononono
group.deletenononoyesyesnonononoyesnononononononononononononononono
group.readnonoyesyesyesyesyesnonoyesyesnononoyesyesnononononononononono
group.user.deletenononoyesyesnonononoyesnononononononononononononononono
group.user.readnonoyesyesyesyesyesnonoyesyesnononoyesyesnononononononononono
group.user.writenononoyesyesnonononoyesnononononononononononononononono
group.writenononoyesyesnonononoyesnononononononononononononononono
iam.action.deletenonononoyesnonononononononononononononononononononono
iam.action.readnonononoyesyesnononononononononononononononononononono
iam.action.writenonononoyesnonononononononononononononononononononono
iam.debug.readnonononoyesyesnononononononononononononononononononono
iam.debug.writenonononoyesnonononononononononononononononononononono
iam.feature.deletenonononoyesnonononononononononononononononononononono
iam.feature.readnonoyesnoyesyesnononononononononononononononononononono
iam.feature.writenonononoyesnonononononononononononononononononononono
iam.flow.deletenonononoyesnonononononononononononononononononononono
iam.flow.readnonononoyesyesnononononononononononononononononononono
iam.flow.writenonononoyesnonononononononononononononononononononono
iam.idp.deletenonononoyesnonononononononononononononononononononono
iam.idp.readnonoyesnoyesyesnononononononononononononononononononono
iam.idp.writenonononoyesnonononononononononononononononononononono
iam.member.deletenonononoyesnonononononononononononononononononononono
iam.member.readnonoyesnoyesyesnononononononononononononononononononono
iam.member.writenonoyesnoyesnonononononononononononononononononononono
iam.policy.deletenonononoyesnonononononononononononononononononononono
iam.policy.readnonoyesnoyesyesnononononononononononononononononononono
iam.policy.writenonononoyesnonononononononononononononononononononono
iam.readnonoyesnoyesyesnononononononononononononononononononono
iam.restrictions.readnonoyesnoyesyesnononononononononononononononononononono
iam.restrictions.writenonononoyesnonononononononononononononononononononono
iam.web_key.deletenonononoyesnonononononononononononononononononononono
iam.web_key.readnonononoyesyesnononononononononononononononononononono
iam.web_key.writenonononoyesnonononononononononononononononononononono
iam.writenonononoyesnonononononononononononononononononononono
impersonationyesyesnononononoyesyesnonononononononononononononononono
milestones.readnonononoyesyesnononononononononononononononononononono
org.action.deletenononoyesyesnonononoyesnononononononononononononononono
org.action.readnononoyesyesyesnononoyesyesnonononononononononononononono
org.action.writenononoyesyesnonononoyesnononononononononononononononono
org.createnononoyesyesnonononononononononononononononononoyesnono
org.deletenononoyesyesnonononoyesnononononononononononononononono
org.feature.deletenononoyesyesnonononoyesnononoyesnononononononononononono
org.feature.readnonoyesyesyesyesnononoyesyesnonoyesnononononononononononono
org.feature.writenononoyesyesnonononoyesnononoyesnononononononononononono
org.flow.deletenononoyesyesnonononoyesnononononononononononononononono
org.flow.readnononoyesyesyesnononoyesyesnonononononononononononononono
org.flow.writenononoyesyesnonononoyesnononononononononononononononono
org.global.readnononoyesyesnoyesnonoyesnononononononoyesnoyesyesnonononono
org.idp.deletenononoyesyesnonononoyesnononoyesnononononononononononono
org.idp.readnonoyesyesyesyesnononoyesyesnonoyesnononononononononononono
org.idp.writenononoyesyesnonononoyesnononoyesnononononononononononono
org.member.deletenononoyesyesnoyesnonoyesnononononononononononononononono
org.member.readnonoyesyesyesyesyesnonoyesyesnoyesyesnoyesnononononononononono
org.member.writenonoyesyesyesnonononoyesnononononononononononononononono
org.readnonoyesyesyesyesyesnonoyesyesnoyesyesyesyesnononononononononono
org.writenononoyesyesnonononoyesnononoyesnononononononononononono
policy.deletenononoyesyesnonononoyesnononoyesnononononononononononono
policy.readnonoyesyesyesyesnononoyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesnono
policy.writenononoyesyesnonononoyesnononoyesnononononononononononono
project.app.deletenononoyesyesnonononononononononononononoyesyesnonononono
project.app.readnonoyesyesyesyesyesnonoyesyesnoyesnonoyesnononoyesyesyesyesnonono
project.app.writenononoyesyesnonononoyesnononononononononoyesyesnonononono
project.createnononoyesyesnonononoyesnoyesnononononononononononononono
project.deletenononoyesyesnonononoyesnononononononononoyesyesnonononono
project.grant.deletenononoyesyesnoyesnonoyesnonoyesnonononononoyesnononononono
project.grant.member.deletenononoyesyesnonononoyesnononononononoyesnoyesnononononono
project.grant.member.readnonoyesyesyesyesyesnonoyesyesnoyesnonoyesnoyesyesyesnoyesyesnonono
project.grant.member.writenonoyesyesyesnonononoyesnononononononoyesnoyesnononononono
project.grant.readnonoyesyesyesyesyesnonoyesyesnoyesnonoyesnoyesyesyesnoyesyesnonono
project.grant.user.grant.readnonononononononononoyesnonononononononononononononono
project.grant.writenononoyesyesnoyesnonoyesnonoyesnonononononoyesnononononono
project.member.deletenononoyesyesnonononoyesnononononononononoyesyesnonononono
project.member.readnonoyesyesyesyesyesnonoyesyesnoyesnonoyesnononoyesyesyesyesnonono
project.member.writenonoyesyesyesnonononoyesnononononononononoyesyesnonononono
project.readnonoyesyesyesyesyesnonoyesyesnoyesnoyesyesnoyesyesyesyesyesyesnonono
project.read:selfnononononononononononoyesnononononononononononononono
project.role.deletenononoyesyesnonononoyesnononononononononoyesyesnonononono
project.role.readnonoyesyesyesyesyesnonoyesyesnoyesnoyesyesnononoyesyesyesyesnonono
project.role.writenononoyesyesnonononoyesnononononononononoyesyesnonononono
project.writenononoyesyesnonononoyesnononononononononoyesyesnonononono
session.deletenonoyesyesyesnoyesnonoyesnonononoyesnonononononononononono
session.linknonoyesnonononononononononononononononononononononono
session.readnonoyesyesyesyesyesnonoyesnonononoyesnonononononononononono
session.writenonoyesnoyesnonononononononononononononononononononono
system.debug.deletenonononononononononononononononononononononononoyesno
system.debug.readnonononononononononononononononononononononononoyesyes
system.debug.writenonononononononononononononononononononononononoyesno
system.domain.deletenonononononononononononononononononononononononoyesno
system.domain.readnonononononononononononononononononononononononoyesyes
system.domain.writenonononononononononononononononononononononononoyesno
system.feature.deletenonononononononononononononononononononononononoyesno
system.feature.readnonononononononononononononononononononononononoyesyes
system.feature.writenonononononononononononononononononononononononoyesno
system.iam.member.readnonononononononononononononononononononononononoyesyes
system.instance.deletenonononononononononononononononononononononononoyesno
system.instance.readnonononononononononononononononononononononononoyesyes
system.instance.writenonononononononononononononononononononononononoyesno
system.limits.deletenonononononononononononononononononononononononoyesno
system.limits.writenonononononononononononononononononononononononoyesno
system.quota.deletenonononononononononononononononononononononononoyesno
system.quota.writenonononononononononononononononononononononononoyesno
user.credential.writenonoyesyesyesnonononoyesnononononononononononononononono
user.deletenononoyesyesnoyesnonoyesnonononoyesnonononononononononono
user.feature.deletenononoyesyesnoyesnonoyesnonononoyesnonononononononononono
user.feature.readnonoyesyesyesyesyesnonoyesyesnononoyesnonononononononononono
user.feature.writenononoyesyesnoyesnonoyesnonononoyesnonononononononononono
user.global.readnononoyesyesyesyesnonoyesyesyesyesnoyesyesnoyesyesyesyesyesyesnonono
user.grant.deletenononoyesyesnoyesnonoyesnonoyesnoyesyesnoyesnoyesyesnonononono
user.grant.readnonoyesyesyesyesyesnonoyesyesnoyesnoyesyesnoyesyesyesyesyesyesnonono
user.grant.writenonoyesyesyesnoyesnonoyesnonoyesnoyesyesnoyesnoyesyesnonononono
user.membership.readnonoyesyesyesyesyesnonoyesyesnononoyesnonoyesyesyesyesyesyesnonono
user.passkey.writenonoyesyesyesnoyesnonoyesnononononononononononononononono
user.readnonoyesyesyesyesyesnonoyesyesnoyesnoyesyesnoyesyesyesnoyesnononono
user.self.deletenonononononononononononononononoyesnonononononoyesnono
user.writenonoyesyesyesnoyesnonoyesnonononoyesnonononononononononono
userschema.deletenonononoyesnonononononononononononononononononononono
userschema.readnonoyesnoyesyesnononononononononononononononononononono
userschema.writenonononoyesnonononononononononononononononononononono

Was this page useful?