By default, in case internal data model of iam-service is not populated, default data model is created automatically on iam-service startup. Default data model always contains one organization iam-admins and one project iam-admins with single admin user as described below. This single identity is the entry point to start using iam-service. Using this global admin identity, you can create your own organization(s) and project(s). Each project should have own local 'admin' user capable of managing just only own project.
Global admin users are very important, because such users are capable of:
- Create organizations, projects and project admin users.
- Delete organizations, projects recursively.
This is how default data model with single global admin user looks like:
- iam-admins - organization containing admin project
- iam-admins - project containing admin user(s)
- admin-client - client for admin user
- admin - user with global admin permissions
- iam-admins - project containing admin user(s)
At least one admin user must exist in order to use IAM Admin functions listed above. Each global admin user must have following minimal set of permissions:
iam-admin-service.organization.all
iam-admin-service.project.all
iam-admin-service.users.all
iam-admin-service.clients.all
Each organization and project requires it's own admin user. Organization and project structure below is created like described here using access_token obtained from iam-admin as described here.
At least one admin user must exist per organization to use Organization/Project Admin functions. Each Organization/Project Admin user must have following minimal set of permissions:
<organization-id>-<project-id>.organization.all
<organization-id>-<project-id>.iam-admin-service.project.all
<organization-id>-<project-id>.iam-admin-service.users.all
<organization-id>-<project-id>.iam-admin-service.clients.all
Each project hosts several users and clients. Those are common users and clients not suitable for organization and project admin tasks. Such users and client are intended to be used with resource servers. Set of roles and permissions assigned to those users is completely on project and required application.
- How to set secrets in default data model.
- Setup persistence Layer and Caching.