> ## Documentation Index
> Fetch the complete documentation index at: https://translations.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Políticas de acceso a la API para aplicaciones

> Aprenda a configurar las políticas de acceso a la API para aplicaciones.

Las políticas de acceso a la API para aplicaciones le permiten controlar cómo las aplicaciones acceden a las API registradas en Auth0. Estas políticas definen cómo interactúan las aplicaciones con una API; por ejemplo, si pueden obtener correctamente un token de acceso para acceder a los recursos de la API.

Puede configurar la política de acceso a la API de la aplicación para cada API registrada en el Auth0 Dashboard. Para obtener más información, consulte [Configurar la política de acceso de la aplicación a la API](#configure-api-application-access-policy).

<div id="user-delegated-access-vs-client-access">
  ## Acceso delegado por el usuario vs. acceso del cliente
</div>

Puede configurar políticas de acceso a la API de la aplicación independientes para el acceso delegado por el usuario y el acceso del cliente (máquina a máquina):

* **Acceso del cliente**: se usa para el acceso de máquina a máquina, que corresponde al [flujo de credenciales del cliente](/es/docs/get-started/authentication-and-authorization-flow/client-credentials-flow).
* **Acceso delegado por el usuario**: se usa para todos los flujos de acceso que generan un token de acceso asociado a un usuario final, lo que permite que la aplicación acceda a una API en nombre del usuario. Los flujos de acceso delegado por el usuario no incluyen el flujo de credenciales del cliente. Para obtener más información sobre los flujos de acceso delegado por el usuario, consulte [Flujos de autenticación y autorización](/es/docs/get-started/authentication-and-authorization-flow).

<div id="application-api-access-policies">
  ## Políticas de acceso de aplicaciones a la API
</div>

Las políticas de acceso de aplicaciones a la API son:

| Política                | Descripción                                                                                                                                                                                                                                                                                                                                                                                                                                         | Flujo de acceso                                                                                                                                                    |
| ----------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `All apps allowed`      | Cuando se configura para una API, cualquier aplicación de tu inquilino puede obtener un token de acceso para la API. No se requiere ningún grant específico.                                                                                                                                                                                                                                                                                        | Es el valor predeterminado para el acceso delegado por el usuario cuando creas una API. Solo puedes configurar `allow_all` para el acceso delegado por el usuario. |
| `Per-app authorization` | Cuando se configura para una API, solo las aplicaciones que tienen un client grant definido pueden obtener un token de acceso para la API. El client grant establece los permisos máximos que una aplicación puede solicitar a la API. Para obtener más información sobre cómo crear y administrar client grants, consulta [Application Access to APIs: Client Grants](/es/docs/get-started/applications/application-access-to-apis-client-grants). | Es el valor predeterminado para el flujo de credenciales del cliente cuando creas una API.                                                                         |
| `No apps allowed`       | Cuando se configura para una API, ninguna aplicación puede obtener un token de acceso para la API, independientemente de cualquier otra configuración o grant. El acceso queda completamente restringido.                                                                                                                                                                                                                                           | Puedes configurar `deny_all` tanto para el acceso de usuario como para el acceso de cliente.                                                                       |

Al configurar la política de acceso de aplicaciones de una API, Auth0 recomienda usar `Per-app authorization`, ya que sigue el principio de privilegio mínimo. Para obtener más información, consulta [Application Access to APIs: Client Grants](/es/docs/get-started/applications/application-access-to-apis-client-grants).

Cuando estableces la política de acceso de aplicaciones de una API en `Per-app authorization`, debes proporcionar explícitamente los alcances requeridos como parte de la solicitud de token. Esto no se aplica a las solicitudes de token de actualización, donde, si omites los alcances, el servidor de autorización asume que la aplicación quiere todos los alcances que se le otorgaron en el token de acceso original. Como resultado, el servidor de autorización devuelve un token de acceso con los mismos alcances otorgados originalmente por el propietario del recurso.

<div id="configure-api-application-access-policy">
  ## Configurar la política de acceso de aplicaciones de una API
</div>

Puede configurar la política de acceso de aplicaciones de una API mediante Auth0 Dashboard o la Management API.

<Tabs>
  <Tab title="Auth0 Dashboard">
    Para configurar la política de acceso de aplicaciones de una API:

    1. Vaya a [Dashboard >  Applications > APIs](https://manage.auth0.com/#/apis) y seleccione su API.
    2. Seleccione la pestaña **Settings** y desplácese hacia abajo hasta **Application Access Policy** para configurar las políticas de **User-Delegated Access** y **Client Access**.
       * Configure la política de **User-Delegated Access** como **All apps allowed**, **Per-app authorization** o **No apps allowed**.
         * **All apps allowed**: Las aplicaciones pueden acceder a la API en nombre del usuario.
         * **Per-app authorization**: Las aplicaciones deben tener un client grant para acceder a la API en nombre del usuario.
         * **No apps allowed**: Se deniega a las aplicaciones el acceso a la API en nombre del usuario.
       * Configure la política de **Client Access** como **Per-app authorization** o **No apps allowed**.
         * **Per-app authorization**: Las aplicaciones máquina a máquina pueden acceder a esta API siempre que tengan el client grant correspondiente.
         * **No apps allowed**: Restringe el acceso máquina a máquina a esta API.
    3. Seleccione **Save** para guardar la **Application Access Policy**.

    Cuando **Per-app authorization** sea la política configurada para la API, seleccione la pestaña **Application Access** y, a continuación, **Edit** para autorizar **User-Delegated Access**, **Client Access** o ambos para cada aplicación individual.

    * Para **User-Delegated Access**, seleccione **Grant Access** y luego los permisos deseados. También puede seleccionar **Always grant all permissions**.
    * Para **Client Access**, seleccione **Grant Access** y luego los permisos deseados. También puede seleccionar **Always grant all permissions**. En **Organization Support**, seleccione:
      * **None**: El acceso máquina a máquina no puede delimitarse a una organización.
      * **Optional**: El acceso máquina a máquina puede delimitarse a una organización.
      * **Required**: El acceso máquina a máquina debe delimitarse a una organización.
  </Tab>

  <Tab title="Management API">
    Puede configurar la política de acceso de aplicaciones de una API actualizando su propiedad `subject_type_authorization` en la colección `resource-servers` de la [Management API](/es/docs/api/management/v2/resource-servers/patch-resource-servers-by-id).

    El objeto `subject_type_authorization` contiene dos objetos anidados, `user` y `client`, cada uno con un atributo `policy` que puede establecer en una de las tres políticas de acceso definidas en [Application API access policies](#application-api-access-policies).

    **API existente**

    Para configurar la política de acceso de aplicaciones de una API existente, realice una solicitud `PATCH` al endpoint `/resource-servers/{id}`:

    ```bash lines theme={null}
    curl --location --request PATCH 'https://{yourDomain}/api/v2/resource-servers/{RESOURCE_SERVER_ID}' \
    --header 'Content-Type: application/json' \
    --header 'Authorization: Bearer {YOUR_MANAGEMENT_API_TOKEN}' \
    --data '{
        "subject_type_authorization": {
            "user": {
                "policy": "require_client_grant"
            },
            "client": {
                "policy": "deny_all"
            }
        }
    }'
    ```

    **API nueva**

    Para configurar la política de acceso de aplicaciones de una API al crear una API nueva, realice una solicitud `POST` al endpoint `/resource-servers`:

    ```bash lines theme={null}
    curl --location 'https://{yourDomain}/api/v2/resource-servers' \
    --header 'Content-Type: application/json' \
    --header 'Authorization: Bearer {YOUR_MANAGEMENT_API_TOKEN}' \
    --data '{
      "name": "{YOUR_NEW_API_NAME}",
      "identifier": "{YOUR_NEW_API_IDENTIFIER}",
      "scopes": [
        {
          "value": "{SCOPE_VALUE}",
          "description": "{SCOPE_DESCRIPTION}"
        }
      ],
      "subject_type_authorization": {
        "user": {
          "policy": "require_client_grant"
        },
        "client": {
          "policy": "deny_all"
        }
      }
    }'
    ```
  </Tab>
</Tabs>

<div id="api-access-policies-and-third-party-applications">
  ## Políticas de acceso a la API y aplicaciones de terceros
</div>

Las [aplicaciones de terceros](/es/docs/get-started/applications/third-party-applications) siempre requieren un client grant explícito para acceder a cualquier API, independientemente de la política de acceso configurada para la API.

| **Política de acceso a la API** | **Aplicaciones de primera parte** | **Aplicaciones de terceros** |
| ------------------------------- | --------------------------------- | ---------------------------- |
| **Permitir todo**               | Acceso concedido                  | Requiere client grant        |
| **Requerir client grant**       | Requiere client grant             | Requiere client grant        |
| **Denegar**                     | Acceso denegado                   | Acceso denegado              |

También puedes configurar [permisos predeterminados para todas las aplicaciones de terceros](/es/docs/get-started/applications/third-party-applications/configure-third-party-applications#default-permissions-for-all-third-party-applications):

1. Ve a **Applications > APIs** y selecciona la API.
2. En la pestaña **Settings**, ve a **Default Permissions for Third Party Applications**.
3. Selecciona **Authorized** para **User-delegated Access** o **Client Access** y, después, selecciona los alcances que quieras conceder.
4. Selecciona **Save**.

Para obtener más información, consulta [Configure API Access Policies for Third-Party Applications](/es/docs/get-started/applications/third-party-applications/configure-third-party-applications#configure-api-access-policies).

<Callout icon="file-lines" color="#0EA5E9" iconType="regular">
  Es posible que algunos inquilinos existentes tengan aplicaciones de terceros con un comportamiento de política de acceso distinto. Para obtener más información, consulta [Permissive Mode for Third-Party Applications](/es/docs/get-started/applications/third-party-applications/permissive-mode).
</Callout>

<div id="learn-more">
  ## Más información
</div>

* [Acceso de las aplicaciones a las API: Client Grants](/es/docs/get-started/applications/application-access-to-apis-client-grants)
* [Aplicaciones de terceros](/es/docs/get-started/applications/third-party-applications)
* [Controles de seguridad para aplicaciones de terceros](/es/docs/get-started/applications/third-party-applications/security-controls)
