feat(auth): Core and Enterprise: add ABAC auth reference

pull/6005/head
Jason Stirnaman 2025-04-21 12:54:13 -05:00
parent 1dbe6c263f
commit ac79824ade
3 changed files with 78 additions and 0 deletions

View File

@ -0,0 +1,18 @@
---
title: InfluxDB 3 Core authentication and authorization
description: >
{{% product-name %}} uses an Attribute-Based Access Control (ABAC) model to manage permissions
for authentication (authn) and authorization (authz).
menu:
influxdb3_core:
name: Authentication and authorization
parent: Core internals
weight: 107
related:
- /influxdb3/core/admin/tokens/
source: /shared/influxdb3-internals-reference/authentication.md
---
<!-- The content for this page is at
// SOURCE /content/shared/influxdb3-internals-reference/authentication.md
// -->

View File

@ -0,0 +1,18 @@
---
title: InfluxDB 3 Enterprise authentication and authorization
description: >
{{% product-name %}} uses an Attribute-Based Access Control (ABAC) model to manage permissions
for authentication (authn) and authorization (authz).
menu:
influxdb3_enterprise:
name: Authentication and authorization
parent: Enterprise internals
weight: 107
related:
- /influxdb3/enterprise/admin/tokens/
source: /shared/influxdb3-internals-reference/authentication.md
---
<!-- The content for this page is at
// SOURCE /content/shared/influxdb3-internals-reference/authentication.md
// -->

View File

@ -0,0 +1,42 @@
<!-->
{{% product-name %}} uses an Attribute-Based Access Control (ABAC) model to
manage permissions.
{{% show-in "enterprise" %}}
This model allows for fine-grained control over access to resources and actions
within an {{% product-name %}} instance.
{{% /show-in %}}
The ABAC model includes the following components:
- **Authentication (authn)**: The process through which a user verifies their identity.
In {{% product-name %}}, this occurs when a token is validated.
Users may be human or machine (for example, through automation).
{{% product-name %}} tokens represent previously verified authenticated users that facilitate automation.
- **Authorization (authz)**: The process that determines if an authenticated user can perform a requested action.
In {{% product-name %}}, authorization evaluates whether a token has permissions to perform actions on specific resources.
- **Context**: The system may use contextual information, such as location or time,
when evaluating permissions.
- **Subject**: The identity requesting access to the system.
In {{% product-name %}}, the subject is a _token_ (similar to an "API key" in other systems).
Tokens include attributes such as identifier, name, description, and expiration date.
- **Action**: The operations (for example, CRUD) that subjects may perform on resources.
- **Permissions**: The set of actions that a specific subject can perform on a specific resource.
Authorization compares the incoming request against the permissions set to decide if the request is allowed or not.
{{% show-in "core" %}}
In {{% product-name %}}, _admin_ tokens have all permissions.
{{% /show-in %}}
{{% show-in "enterprise" %}}
In {{% product-name %}}, _admin_ tokens have all permissions, while _resource_ tokens have specific permissions.
Resource tokens have fine-grained permissions for specific resources of a specific type.
For example, a database token can have permissions to read from a specific database but not write to it.
{{% /show-in %}}
- **Resource**: The objects that can be accessed or manipulated.
In {{% product-name %}}, resources include databases and system information endpoints.
Resources have attributes such as identifier and name.