Skip to content

Commit b097c09

Browse files
authored
chore: add es content (#38)
1 parent f314b69 commit b097c09

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

71 files changed

+6126
-5
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -130,3 +130,4 @@ build
130130
.strapi-cloud.json
131131
# generated types
132132
.astro
133+
astro_tmp_pages_*

astro.config.mjs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ import { i18n, filterSitemapByDefaultLocale } from "astro-i18n-aut/integration";
1010
export const defaultLocale = 'en';
1111
export const locales = Object.freeze({
1212
en: 'en',
13+
es: 'es',
1314
zh: 'zh-Hans',
1415
ko: 'ko',
1516
ar: 'ar',

src/content/terms/ar/implicit-flow.mdx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -80,4 +80,4 @@ curl -X GET "https://authorization-server.com/auth" \
8080
},
8181
"https://openid.net/specs/openid-connect-core-1_0.html",
8282
]}
83-
/>
83+
/>

src/content/terms/ar/pkce.mdx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
---
2-
title: مفتاح إثبات تبادل الكود (Proof key for code exchange, PKCE)
2+
title: مفتاح إثبات تبادل الكود (Proof Key for Code Exchange, PKCE)
33
tags: [oauth 2.0, oidc]
44
description: مفتاح إثبات تبادل الكود (PKCE) هو امتداد أمني لـ OAuth 2.0 يحمي رموز التفويض من الاعتراض وسوء الاستخدام. يتم تطبيقه لجميع أنواع العملاء في OAuth 2.1.
55
---

src/content/terms/es/abac.mdx

Lines changed: 113 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,113 @@
1+
---
2+
title: Control de acceso basado en atributos (Attribute-based access control, ABAC)
3+
tags: [authorization]
4+
description: El control de acceso basado en atributos (ABAC) es un modelo de control de acceso que utiliza atributos (como roles de usuario, propiedades de recursos y condiciones ambientales) para tomar decisiones de control de acceso. Es una forma flexible y dinámica de gestionar el acceso a recursos protegidos.
5+
---
6+
7+
## ¿Qué es el control de acceso basado en atributos (ABAC)?
8+
9+
ABAC es un modelo de <Ref slug="access-control" /> que utiliza atributos para tomar decisiones de control de acceso. Estos atributos pueden incluir varios factores, como:
10+
11+
- Atributos de usuario: por ejemplo, roles, departamento, ubicación, etc.
12+
- Atributos de recursos: por ejemplo, nivel de sensibilidad, propietario, tipo, etc.
13+
- Atributos ambientales: por ejemplo, hora de acceso, ubicación, dispositivo, etc.
14+
15+
Al evaluar estos atributos y ejecutarlos a través de un conjunto de reglas, ABAC puede determinar si un sujeto (por ejemplo, usuario, servicio) debe tener acceso a un recurso. Este enfoque permite un control de acceso detallado y una aplicación dinámica de políticas basadas en el contexto.
16+
17+
## ¿Cómo funciona el ABAC?
18+
19+
ABAC utiliza un enfoque basado en políticas para el control de acceso. Una política ABAC típica consta de:
20+
21+
- **Subject**: La entidad que solicita acceso (por ejemplo, usuario, servicio, dispositivo).
22+
- **Action**: La operación que se realiza en el recurso (por ejemplo, leer, escribir, eliminar).
23+
- **Resource**: La entidad a la que se accede (por ejemplo, archivo, base de datos, API).
24+
- **Environment**: El contexto en el que se solicita el acceso (por ejemplo, hora, ubicación, dispositivo).
25+
- **Attributes**: Las propiedades del sujeto, recurso y entorno que se evalúan para tomar decisiones de acceso.
26+
- **Policies**: Un conjunto de reglas que definen las condiciones bajo las cuales se concede o se niega el acceso.
27+
28+
Las políticas ABAC son más complejas que los modelos de control de acceso tradicionales como <Ref slug="rbac" />. Por otro lado, ABAC proporciona más flexibilidad y granularidad en las decisiones de control de acceso.
29+
30+
### Ejemplo de políticas ABAC
31+
32+
Por ejemplo, un sistema tiene varias políticas ABAC:
33+
34+
1. **Política 1**: Permitir el acceso si:
35+
36+
- (Subject) El rol del sujeto es `manager`.
37+
- (Attribute) El nivel de sensibilidad del recurso es `high`.
38+
- (Environment) La ubicación es `internal`.
39+
- (Action) Cualquier acción.
40+
- (Environment) El tiempo es entre las 9 AM y las 5 PM (horas de oficina).
41+
42+
2. **Política 2**: Denegar el acceso si:
43+
44+
- (Subject) El rol del sujeto no es `manager`.
45+
- (Attribute) El nivel de sensibilidad del recurso es `high`.
46+
- (Environment) Cualquier ubicación.
47+
- (Action) Cualquier acción.
48+
- (Environment) Cualquier momento.
49+
50+
3. **Política 3**: Permitir el acceso si:
51+
52+
- (Subject) El rol del sujeto es `employee` o `manager`.
53+
- (Attribute) El nivel de sensibilidad del recurso es `low`.
54+
- (Environment) Cualquier ubicación.
55+
- (Action) Acción `read`.
56+
- (Environment) Cualquier momento.
57+
58+
El motor de evaluación de políticas verificará estas políticas en orden, y la primera política que coincida con las condiciones determinará la decisión de acceso. Mientras tanto, se aplica una política de denegación predeterminada si ninguna otra política coincide.
59+
60+
Veamos algunos escenarios para entender cómo funciona el ABAC:
61+
62+
> **Escenario 1**. Un usuario quiere acceder (realizar la acción `read`) a un documento de alto nivel de sensibilidad (recurso) fuera de la oficina (entorno). El usuario tiene el rol de `manager` almacenado en el sistema.
63+
64+
**Decisión**: El acceso se niega porque el usuario está fuera de la oficina (la ubicación no es `internal`).
65+
66+
> **Escenario 2**. Un usuario quiere acceder (realizar la acción `read`) a un documento de alto nivel de sensibilidad (recurso) durante las horas de oficina (entorno) en la red de la oficina (ubicación=`internal`). El usuario tiene el rol de `manager`.
67+
68+
**Decisión**: El acceso se concede porque se cumplen todas las condiciones de la Política 1.
69+
70+
> **Escenario 3**. Todas las condiciones en el escenario 2 son las mismas, pero el usuario tiene el rol de `employee` en lugar de `manager`.
71+
72+
**Decisión**: El acceso se niega porque el rol del usuario no coincide con las condiciones de la Política 1.
73+
74+
> **Escenario 4**. Un usuario quiere acceder (realizar la acción `read`) a un documento de bajo nivel de sensibilidad (recurso). El usuario tiene el rol de `employee`.
75+
76+
**Decisión**: El acceso se concede porque se cumplen todas las condiciones de la Política 3.
77+
78+
> **Escenario 5**. Un usuario quiere eliminar (realizar la acción `delete`) un documento de bajo nivel de sensibilidad (recurso). El usuario tiene el rol de `employee`.
79+
80+
**Decisión**: El acceso se niega porque no hay ninguna política que permita la acción `delete` en documentos de bajo nivel de sensibilidad.
81+
82+
Podrás notar que no se requieren todos los atributos en cada política. Esta flexibilidad permite un mecanismo de control de acceso más dinámico y consciente del contexto.
83+
84+
## Consideraciones de implementación
85+
86+
Si bien el ABAC ofrece una forma poderosa de gestionar el control de acceso, también presenta algunas consideraciones de implementación:
87+
88+
- Complejidad del sistema: Las políticas ABAC pueden volverse complejas a medida que aumenta el número de atributos y reglas. La gestión y prueba adecuada de políticas son más laboriosas que los modelos de control de acceso más simples.
89+
- Rendimiento: Evaluar políticas ABAC complejas puede afectar el rendimiento del sistema. Las técnicas de almacenamiento en caché y optimización pueden ayudar a mitigar este problema.
90+
- Conflictos de políticas: Las políticas en conflicto pueden llevar a decisiones de acceso impredecibles. La revisión periódica de políticas y la resolución de conflictos deben ser parte del proceso de gestión de políticas.
91+
92+
## ABAC vs. RBAC
93+
94+
Comparar ABAC con <Ref slug="rbac" /> puede ayudarte a comprender las diferencias entre los dos modelos:
95+
96+
| | RBAC | ABAC |
97+
|-----------------------|------------------------------------|------------------------------------------|
98+
| Política de control de acceso | Basada en roles | Basada en atributos |
99+
| Granularidad | Gruesa | Fina |
100+
| Flexibilidad | Limitada | Muy flexible |
101+
| Complejidad | Más simple | Más compleja |
102+
| Impacto en el rendimiento | Mínimo | Puede ser significativo |
103+
| Gestión de acceso | Gestión de roles | Gestión de políticas |
104+
| Mejor para | Estructuras de permisos bien definidas | Control de acceso dinámico y consciente del contexto |
105+
106+
<SeeAlso slugs={["access-control", "rbac", "authorization"]} />
107+
108+
<Resources
109+
urls={[
110+
"https://blog.logto.io/rbac-and-abac",
111+
"https://csrc.nist.gov/publications/detail/sp/800-162/final",
112+
]}
113+
/>
Lines changed: 88 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,88 @@
1+
---
2+
title: Control de acceso (Access control)
3+
tags: [authorization]
4+
description: El control de acceso es la restricción de quién puede realizar qué acciones sobre ciertos recursos en un sistema. Es un mecanismo de seguridad fundamental para definir y hacer cumplir políticas de acceso.
5+
---
6+
7+
## ¿Qué es el control de acceso (Access control)?
8+
9+
El control de acceso (Access control) involucra tres componentes principales:
10+
11+
- **Sujeto**: Una entidad que realiza acciones sobre recursos. Los sujetos pueden ser usuarios, servicios o dispositivos.
12+
- **Recurso**: Una entidad que está protegida por el control de acceso. Los recursos pueden ser archivos, bases de datos, APIs u otros activos digitales.
13+
- **Acción**: Una operación que un sujeto puede realizar sobre un recurso. Las acciones pueden ser leer, escribir, ejecutar u cualquier otra operación.
14+
15+
```mermaid
16+
graph LR
17+
A(Sujeto) -->|Realiza acciones sobre| B(Recurso)
18+
```
19+
20+
> El control de acceso (Access control) define la restricción selectiva de acceso a **recursos** basada en el **sujeto** y la **acción**.
21+
22+
Aquí hay algunos ejemplos del mundo real de control de acceso (Access control):
23+
24+
- Un usuario (sujeto) **puede** leer (acción) sus pedidos (recurso) en un sistema de comercio electrónico.
25+
- Un usuario (sujeto) **no puede** eliminar (acción) el perfil de otro usuario (recurso) en una red social.
26+
- Un servicio (sujeto) **puede** escribir (acción) datos en una base de datos (recurso) en una arquitectura de microservicios.
27+
28+
A veces, el recurso se ignora en implementaciones técnicas y el control de acceso (Access control) se define como la restricción de quién (sujeto) puede realizar qué acciones. Por ejemplo, el marco básico de OAuth 2.0 solo especifica acciones utilizando scopes (permisos) y no define recursos.
29+
30+
El soporte para el control de acceso (Access control) puede variar dependiendo del <Ref slug="authorization-server" /> o el <Ref slug="identity-provider" />. Algunos sistemas pueden soportar [Resource Indicators for OAuth 2.0](https://datatracker.ietf.org/doc/html/rfc8707), una extensión de OAuth 2.0 que permite a los clientes especificar los recursos a los que desean acceder.
31+
32+
## Modelos de control de acceso (Access control) ||access-control-models||
33+
34+
Decidir restricciones entre unos pocos sujetos y recursos es simple, pero no escalable. Por lo tanto, la industria ha desarrollado muchos modelos de control de acceso (Access control) para gestionarlo de manera efectiva. En el contexto de <Ref slug="iam" />, los siguientes son algunos modelos comunes de control de acceso (Access control):
35+
36+
- <Ref slug="rbac" />: Un modelo que asigna permisos a roles y luego asigna roles a sujetos. Por ejemplo, un rol de administrador podría tener acceso a todos los recursos, mientras que un rol de usuario podría tener acceso a recursos limitados.
37+
- <Ref slug="abac" />: Un modelo que utiliza atributos (propiedades) del sujeto, recurso y entorno para tomar decisiones de control de acceso (Access control). Por ejemplo, un usuario con el atributo "departamento=ingeniería" podría tener acceso a recursos de ingeniería.
38+
39+
También existen otros modelos de control de acceso (Access control) como [control de acceso basado en políticas (PBAC)](https://csrc.nist.gov/glossary/term/policy_based_access_control). Cada modelo tiene sus propias fortalezas y debilidades, y la elección del modelo depende de tu caso de uso y requisitos.
40+
41+
## Control de acceso (Access control) en OAuth 2.0
42+
43+
En el contexto de OAuth 2.0, el control de acceso (Access control) se implementa típicamente usando <Ref slug="scope">scopes</Ref>. Normalmente, el valor de un scope es una cadena que combina el recurso y la acción. Por ejemplo, `read:orders` o `write:profile`.
44+
45+
> [!Note]
46+
> El término "scopes" es intercambiable con "permissions" en la mayoría de los casos.
47+
48+
Vale la pena destacar que OAuth 2.0 no define la estructura y el significado de los scopes. La interpretación de los scopes se deja al <Ref slug="resource-server" />, y la emisión de scopes se deja al <Ref slug="authorization-server" />.
49+
50+
Por ejemplo, un usuario (sujeto) necesita acceder a sus pedidos (recurso) en un sistema de comercio electrónico. Al aprovechar OAuth 2.0, puedes definir un scope `read:orders` y una aplicación web (cliente) solicitará este scope desde el servidor de autorización. Aquí hay un flujo simplificado:
51+
52+
```mermaid
53+
sequenceDiagram
54+
participant Usuario
55+
participant Cliente
56+
participant Authorization Server
57+
participant Resource Server
58+
59+
Usuario->>Cliente: Acceder a la página "Mis Pedidos"
60+
Cliente->>Authorization Server: Solicitar access token con scope `read:orders`
61+
Authorization Server->>Cliente: Emitir access token
62+
Cliente->>Resource Server: Acceder a pedidos con access token
63+
Resource Server->>Cliente: Enviar pedidos
64+
Cliente->>Usuario: Mostrar pedidos
65+
```
66+
67+
En este flujo, dependiendo de la arquitectura técnica, el servidor de recursos puede ser un servicio API o puede ser el cliente (aplicación web) en sí, siempre y cuando tenga la capacidad de acceder al recurso (pedidos).
68+
69+
### El parámetro de indicador de recurso (resource indicator)
70+
71+
Aunque las personas a menudo definen scopes con recurso y acción (por ejemplo, `read:orders`, donde `orders` es el recurso y `read` es la acción), la escalabilidad de este enfoque es limitada cuando la cantidad de recursos y acciones crece. RFC 8707 introduce el parámetro `resource` (es decir, <Ref slug="resource-indicator">indicadores de recurso</Ref>) a OAuth 2.0, lo que permite a los clientes especificar los recursos a los que desean acceder.
72+
73+
El RFC especifica que el parámetro `resource` debe ser un URI que represente el recurso. Por ejemplo, en lugar de simplemente usar `orders`, podrías usar `https://api.example.com/orders`. Este método ayuda a evitar conflictos de nombres y mejora la precisión de la coincidencia de recursos al permitir el uso de la URL real del recurso.
74+
75+
### Soporte del servidor de autorización (authorization server)
76+
77+
OAuth 2.0 no define cómo debe llevar a cabo el control de acceso (Access control) el servidor de autorización (authorization server). Deja los detalles de implementación a discreción del servidor de autorización (authorization server). Por lo tanto, la elección del servidor de autorización puede afectar en gran medida el mecanismo de control de acceso (Access control). Por ejemplo, algunos servidores de autorización pueden soportar indicadores de recurso, mientras que otros no. Es importante decidir qué modelo de control de acceso (Access control) utilizar en función de tus requisitos empresariales y luego elegir un servidor de autorización que soporte ese modelo. Si no estás seguro sobre el modelo de control de acceso (Access control), <Ref slug="rbac" /> es suficiente para la mayoría de los casos.
78+
79+
<SeeAlso slugs={["rbac", "abac", "resource-indicator", "authorization"]} />
80+
81+
<Resources
82+
urls={[
83+
"https://blog.logto.io/mastering-rbac",
84+
"https://blog.logto.io/rbac-and-abac",
85+
"https://datatracker.ietf.org/doc/html/rfc8707",
86+
"https://blog.logto.io/organization-and-role-based-access-control",
87+
]}
88+
/>

0 commit comments

Comments
 (0)