|
| 1 | +--- |
| 2 | +title: Identity and Access Management |
| 3 | +sidebarTitle: IAM |
| 4 | +--- |
| 5 | + |
| 6 | +## Overview |
| 7 | + |
| 8 | +ngrok includes a robust identity and access management (IAM) system. ngrok's |
| 9 | +IAM functionality enables you to: |
| 10 | + |
| 11 | +- Issue, rotate and revoke unique credentials for each principal in your account (either a human user or an automated process). |
| 12 | +- Enforce least-privilege access for each principal acting within your ngrok account |
| 13 | +- Attribute all mutations to distinct principals in your ngrok account recorded in audit logs |
| 14 | +- Configure single sign-on (SSO) to federate identity and SCIM to enable provisioning from your own IdP |
| 15 | +- Administrate multiple ngrok accounts with a single user |
| 16 | + |
| 17 | +## Concepts |
| 18 | + |
| 19 | +Before diving into ngrok's IAM system, it's helpful to be acquainted with the |
| 20 | +terminology and concepts ngrok uses to describe its IAM primitives. |
| 21 | + |
| 22 | +- **Accounts**: ngrok Accounts are the containers in which you create and consume ngrok services. |
| 23 | +- [**Users**](/iam/users/): An Account contains one or more **Users**. Users are members of |
| 24 | + the Account who can take actions within it, like creating objects, start agents |
| 25 | + or making API requests. Users may be members of multiple accounts and are not owned by any single account. |
| 26 | +- [**Service Users**](/iam/service-users): Accounts also contain **Service Users** which are like Users but |
| 27 | + meant to be used for automated processes. Other systems may call these 'Service |
| 28 | + Accounts'. |
| 29 | +- [**Principals**](/obs/events/#principal-object): A principal is either a User or Service User. Principals are |
| 30 | + members of an Account that may take actions inside of it. |
| 31 | +- [**Credentials**](/iam/users/#credentials): These are the keys and tokens that Principals use to |
| 32 | + authenticate with the ngrok service. Types of Credential include Authtokens, |
| 33 | + API Keys, and SSH Public Keys. |
| 34 | +- [**Authtokens**](/agent/#authtokens): Principals begin Agent sessions and create Endpoints by |
| 35 | + authenticating with Authtoken. |
| 36 | +- [**API Keys**](/api/#authentication): Principals make API Requests by authenticating with an API Key. |
| 37 | +- [**SSH Public Keys**](/agent/ssh-reverse-tunnel-agent/#authentication): Principals create Endpoints via the SSH Reverse Tunnel |
| 38 | + Agent with an SSH Public Key. |
| 39 | +- [**Invitations**](/iam/users/#invitations): Invitations are a mechanism to add a new User with a given |
| 40 | + email address to an Account. |
| 41 | +- [**RBAC**](/iam/rbac/): Role Base Access Control is used to limit the permissions of what |
| 42 | + actions a User may take within your account. |
| 43 | +- [**Account Domain Controls**](/iam/domain-controls/): Account Domain Controls are used to create |
| 44 | + policy on Users who log in or sign up with a given email domain. |
0 commit comments