> For the complete documentation index, see [llms.txt](https://docs.devolutions.net/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.devolutions.net/powershell-universal/es/api/security.md).

# Seguridad

Proteja los endpoints de la API REST de PowerShell Universal con autenticación por token, Windows y cookies, y aplique después autorización basada en roles a cada solicitud.

Una vez habilitado, podrá aplicar autenticación y autorización en sus endpoints.

## Definición de endpoints seguros

Puede definir endpoints seguros en la interfaz de usuario habilitando la autenticación. Usted autenticación y autorización del endpoint en la pestaña Seguridad de las propiedades de un endpoint.

También puede definir endpoints seguros mediante el fichero `.universal/endpoints.ps1` o la API de gestión usando `New-PSUEndpoint`.

```powershell
New-PSUEndpoint -Url '/endpoint' -Method 'GET' -Endpoint {
   "Hello, world!"
} -Authentication
```

Cuando la autenticación está habilitada, se exigirá el uso de uno de los métodos de autenticación configurados. Las API admiten los siguientes métodos.

* Tokens de aplicación JWT
* Autenticación de Windows
* Autenticación por cookies
* Autenticación básica

## Acceso a endpoints seguros

Una vez que haya definido un endpoint seguro, deberá proporcionar autenticación y autorización para acceder a él.

### Autenticación con tokens

{% hint style="warning" %}
Tenga en cuenta que, si aloja en IIS y no tiene habilitada la Autenticación anónima, no podrá pasar tokens de aplicación al servidor de PowerShell Universal.
{% endhint %}

Para autenticarse con tokens, primero necesita generar un nuevo token de aplicación para su uso. Puede utilizar el cmdlet `Grant-PSUAppToken` para hacerlo de forma remota o conceder un token al usuario que ha iniciado sesión actualmente en **Menú de usuario > Configuración de usuario > Tokens**.

Una vez que haya creado su token de aplicación, ya puede utilizarlo para autenticarse contra el endpoint seguro. Para ello, pase el encabezado Authorization junto con la solicitud.

```powershell
Invoke-RestMethod http://localhost:5000/auth -Headers @{ Authorization = "******" }
```

#### Encabezado de autorización personalizado

PowerShell Universal proporciona un encabezado de autorización personalizado para admitir escenarios con proxies inversos que pueden requerir su propio encabezado Authorization. Si se especifica el encabezado `X-PSU-Authorization`, PSU ignorará el encabezado `Authorization` y utilizará este encabezado en su lugar.

```
Invoke-RestMethod http://localhost:5000/auth -Headers @{ 
    Authorization = "******" 
    'X-PSU-Authorization' = '******'
}
```

### Autenticación con Autenticación de Windows

Para autenticarse con [autenticación de Windows](/powershell-universal/es/seguridad/enterprise-security/windows-sso.md#windows-authentication-in-iis), puede utilizar el parámetro `-UseDefaultCredentials` de `Invoke-RestMethod` e `Invoke-WebRequest` . Esto realizará la autenticación negotiate tanto si se ejecuta dentro de IIS como de un servicio.

```powershell
Invoke-RestMethod http://localhost:5000/auth -UseDefaultCredentials
```

### Autenticación con cookies

Para autenticarse con cookies, primero deberá llamar a la API de inicio de sesión para recibir una cookie válida del sistema. Puede utilizar `Invoke-WebRequest` para hacerlo. Pase el nombre de usuario y la contraseña como cuerpo. Especifique el parámetro `-SessionVariable` para establecer una sesión.

```powershell
Invoke-WebRequest http://localhost:5000/api/v1/signin -Body (@{ 
    UserName = "Admin"
    Password = "Any"
} | ConvertTo-Json) -ContentType 'application/json' -SessionVariable mySession -Method POST
```

Una vez que se haya autenticado correctamente, puede utilizar su variable `$mySession` para llamar a endpoints seguros.

```powershell
 Invoke-WebRequest http://localhost:5000/auth -WebSession $mySession
```

## Aplicación de roles

Además de crear endpoints que requieran autenticación, también puede aplicar roles definiendo un rol en el cmdlet `New-PSUEndpoint` o seleccionando uno en la interfaz de usuario. Si se selecciona un rol, este posee el rol.

La autenticación de Windows y por cookies asignará roles según la identidad del usuario y las políticas de roles tal como se aplican.

Los tokens de aplicación JWT utilizarán el rol que se definió cuando se generaron.

## Roles de ejecución

Mediante la propiedad Roles de ejecución, puede establecer qué roles se asignan mientras se ejecuta el endpoint de la API. De forma predeterminada, el endpoint se ejecutará según los roles del llamante. En algunos escenarios, por ejemplo al usar Secretos con roles, es posible que desee proporcionar roles adicionales que el llamante podría no poseer. Los Roles de ejecución no requieren que la autenticación de la API esté habilitada.

## API

* [New-PSUEndpoint](/powershell-universal/es/comandos-de-powershell/new-psuendpoint.md)
* [Get-PSUEndpoint](/powershell-universal/es/comandos-de-powershell/get-psuendpoint.md)
* [Remove-PSUEndpoint](/powershell-universal/es/comandos-de-powershell/remove-psuendpoint.md)
* [New-PSUApiResponse](/powershell-universal/es/comandos-de-powershell/new-psuapiresponse.md)
* [Set-PSUSetting](/powershell-universal/es/comandos-de-powershell/set-psusetting.md)

### Véase también

* [Devolutions Academy – Creación de un endpoint de variable](https://academy.devolutions.net/student/activity/3466016-creating-a-variable-endpoint)
* [Devolutions Academy – Creación de un endpoint de cadena de consulta](https://academy.devolutions.net/student/activity/3466018-creating-a-query-string-endpoint)
* [Devolutions Academy – Autenticación](https://academy.devolutions.net/student/path/3465905/activity/5612255)


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.devolutions.net/powershell-universal/es/api/security.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
