For the complete documentation index, see llms.txt. This page is also available as Markdown.

Tokens de aplicación

Puede utilizar los tokens de aplicación de PowerShell Universal tanto con endpoints de API personalizados como con la API de gestión. La API de gestión utiliza los roles estándar Administrator, Operator y Reader. Los tokens de aplicación de API personalizados pueden utilizar roles personalizados además de los integrados.

Puede conceder tokens de aplicación mediante la consola de administración o puede utilizar directamente la API de gestión.

Consola de administración

Para conceder un token en la consola de administración, vaya a Seguridad \ Tokens. Haga clic en el botón Crear token de aplicación para conceder un token de aplicación.

Al hacer clic en Crear token de aplicación, un diálogo le permite especificar la identidad, el rol y el tiempo de expiración del token.

Diálogo de token de aplicación

API de gestión

También puede conceder tokens de aplicación a los usuarios desde la API de gestión. Para conceder un token de aplicación de forma programática mediante la API, puede hacer lo siguiente:

Los administradores pueden conceder tokens de aplicación a cualquier usuario especificando el ID de identidad del usuario. Para conceder un token de aplicación a una identidad a través de la API REST, el usuario necesita un rol definido. El rol Operator define al usuario, y su token de aplicación obtendrá acceso en función de ese rol.

Roles

Los roles de los tokens de aplicación se asignan directamente en el propio token. Los roles indican qué puede hacer el token. No se calculan durante el uso, por lo que la asignación de roles a reclamaciones no funcionará con los tokens de aplicación.

También sugerimos limitar el número de roles dentro de un token de aplicación. Cuantos más roles se añadan al token, mayor será su tamaño y menor el rendimiento, o pueden producirse problemas con determinadas herramientas que no admiten valores de token más largos.

Puede utilizar roles personalizados con un conjunto personalizado de permisos para limitar el número de roles, pero proporcionando acceso personalizado a la plataforma PowerShell Universal. Los permisos se evalúan cuando se utiliza el rol. Esto significa que asignar un rol personalizado a un token lo hace más flexible que un rol integrado, ya que los permisos pueden añadirse o eliminarse de un rol sin generar un nuevo token.

Migrar tokens de aplicación

Puede migrar tokens de aplicación entre sistemas mediante la API de gestión. Esto resulta útil al desarrollar para escenarios de alta disponibilidad.

A continuación se muestra un ejemplo del POST necesario para crear un token de aplicación existente en cualquier instancia de PSU. Tenga en cuenta que la clave de firma debe ser la misma entre las instancias. Necesita un token de aplicación válido en el sistema de destino para crear los tokens migrados.

Seguridad mejorada de los tokens de aplicación

Cuando la seguridad mejorada de los tokens de aplicación está habilitada, los valores de los tokens solo son accesibles en el momento de su creación. Se aplica un hash y la base de datos almacena el valor del hash en lugar del token. El token se utiliza igual que cualquier otro token.

Tokens de sistema

Los tokens de sistema son una forma de proporcionar tokens a sistemas que no son usuarios. No están vinculados directamente a la identidad de un usuario. Puede proporcionar un nombre para el token, así como la expiración y los roles.

Claves de firma

Clave de firma local

De forma predeterminada, PowerShell Universal crea una clave de firma basada en la cadena Jwt \ SigningKey de appsettings.json. Este valor se utiliza para codificar y decodificar el token. Si las claves de firma no coinciden, el token se considerará no válido. Cambiar la clave de firma invalidará todas las claves de firma existentes.

Clave de firma remota

Puede que desee utilizar un documento de descubrimiento de OAuth 2.0 para proporcionar la validación de la clave de firma. Al utilizar un sistema remoto como este, puede asegurarse de que, cuando se cambien las claves de firma, no sea necesario cambiar la configuración de PowerShell Universal. Para utilizar una clave de firma remota, establezca el valor Jwt \ DiscoveryDocument de appsettings.json en la URL del documento de metadatos de OAuth 2.0. Cuando PowerShell Universal se cargue, leerá las claves de firma del documento y las proporcionará al sistema de validación de JWT.

Tokens de aplicación externos

Al configurar una clave de firma remota, los tokens los genera el proveedor de OAuth 2.0. Por ello, la información de reclamaciones también la genera dicho proveedor. Para asignar correctamente los roles y permisos dentro de PowerShell Universal, deberá asegurarse de que las reclamaciones adecuadas estén definidas dentro del token. PowerShell Universal evaluará los siguientes valores de reclamación dentro de un token.

  • PSUPermission - Define los permisos del token

  • Roles - Define los roles del token.

Para permitir el acceso a los recursos dentro de una instancia de PowerShell Universal, asegúrese de que el token contenga las reclamaciones adecuadas. Por ejemplo, el siguiente token permitiría todo el acceso a las API de gestión de PowerShell Universal, porque proporciona la reclamación PSUPermission con un selector para todos los permisos. Puede utilizar el ejemplo siguiente para ver cómo lograrlo en Auth0.

Como alternativa, puede habilitar la evaluación de reclamaciones para los tokens JWT. De forma predeterminada, PowerShell Universal utiliza un conjunto estático de permisos al recibir un token. Si habilita la evaluación de reclamaciones para los tokens JWT, el sistema de autorización procesará el token y añadirá los permisos cuando se utilice el token, en lugar de cuando se genere.

Evaluación de reclamaciones para tokens

Para habilitar la evaluación de reclamaciones para tokens, puede ajustar appsettings.json para indicar a PSU que ejecute la evaluación de reclamaciones durante la validación del token.

Esto utilizará roles.ps1 para comprobar las reclamaciones de los tokens proporcionados y asignar permisos en función de los roles cualificados.

Ejemplo: token de acceso de Auth0 con evaluación de reclamaciones

Utilizando las funciones estándar de Auth0, puede generar tokens que después proporcionen roles en función de las reclamaciones del token. Esto no requiere ningún desencadenador ni acción especial dentro de Auth0.

Crear una aplicación de Auth0

En Auth0, cree una aplicación para una aplicación web normal. Puede hacerlo haciendo clic en Applications \ Applications y después en Create Application.

Crear una API de Auth0

A continuación, cree una API de Auth0 haciendo clic en Applications \ APIs y después en Create API. Establezca el nombre y el espacio de nombres en valores únicos y deje el resto de opciones con sus valores predeterminados.

Crear ámbitos de permisos personalizados en su API

Dentro de su API, defina permisos personalizados, como uno con un nombre de rol.

Autorizar a la aplicación a utilizar la API

En la configuración de la aplicación, haga clic en APIs y active el conmutador situado junto a la API para autorizar a la aplicación a utilizarla. Seleccione los permisos que desea proporcionar a la aplicación. Estos aparecerán como reclamaciones de permisos en el token.

Obtener un token de acceso de Auth0

Con la aplicación y la API definidas, ya puede solicitar un token de acceso en Auth0. Los valores client_id y client_secret se encuentran en la página Application Details. El valor audience debe ser el identificador de su API.

Configurar PowerShell Universal

Deberá configurar PowerShell Universal para utilizar Auth0 como proveedor de JWT. Puede hacerlo ajustando el fichero appsettings.json. Este debe incluir valores de Auth0. El DiscoveryDocument formará parte de su tenant y ayuda a definir datos como las claves de firma de los tokens JWT. El Issuer será la URL de su tenant. El Audience será el identificador de su API.

Configurar un rol para asignarlo al permiso de Auth0

Por último, cree un rol que se asigne al permiso de Auth0. El siguiente ejemplo comprueba que el token de API tenga una reclamación de permisos con el valor Administrator, como configuramos anteriormente. Si es así, al token se le asigna el rol API Admin, que tiene todos los permisos dentro de la API de gestión de PowerShell Universal.

Utilizar un token de aplicación con PowerShell Universal

Ahora que tiene un token de aplicación de Auth0, puede utilizarlo igual que lo haría con los tokens de aplicación integrados.

Ejemplo: token de acceso de Auth0 con reclamaciones personalizadas

Puede utilizar las API y las aplicaciones de Auth0 para proporcionar tokens de aplicación para PowerShell Universal.

Crear una aplicación de Auth0

En Auth0, cree una aplicación para una aplicación web normal. Puede hacerlo haciendo clic en Applications \ Applications y después en Create Application.

Crear una API de Auth0

A continuación, cree una API de Auth0 haciendo clic en Applications \ APIs y después en Create API. Establezca el nombre y el espacio de nombres en valores únicos y deje el resto de opciones con sus valores predeterminados.

Autorizar a la aplicación a utilizar la API

En la configuración de la aplicación, haga clic en APIs y active el conmutador situado junto a la API para autorizar a la aplicación a utilizarla.

Obtener un token de acceso de Auth0

Con la aplicación y la API definidas, ya puede solicitar un token de acceso en Auth0. Los valores client_id y client_secret se encuentran en la página Application Details. El valor audience debe ser el identificador de su API.

Configurar PowerShell Universal

Deberá configurar PowerShell Universal para utilizar Auth0 como proveedor de JWT. Puede hacerlo ajustando el fichero appsettings.json. Este debe incluir valores de Auth0. El DiscoveryDocument formará parte de su tenant y ayuda a definir datos como las claves de firma de los tokens JWT. El Issuer será la URL de su tenant. El Audience será el identificador de su API.

Utilizar un token de aplicación con PowerShell Universal

Ahora que tiene un token de aplicación de Auth0, puede utilizarlo igual que lo haría con los tokens de aplicación integrados.

Opcional: definir un desencadenador de acción de Auth0

Al conceder un nuevo token de acceso desde Auth0, este no contendrá los roles o permisos estándar como los tokens de aplicación integrados en PowerShell Universal. Puede controlarlo definiendo una acción personalizada y asignándola al desencadenador credential-exchange.

Haga clic en Actions y después en Library y Create Action y, a continuación, en Create Custom Action. Seleccione el desencadenador Password Reset / Post Challenge y asigne un nombre a la acción.

Defina la acción estableciendo una reclamación personalizada para el tipo de reclamación PSUPermission. Este ejemplo simplemente proporciona todo el acceso a las API de PowerShell Universal. Puede utilizar el contexto del evento para definir qué permisos se reciben en función de la solicitud del token de acceso.

A continuación, añada la acción al desencadenador del flujo de trabajo para credential-exchange haciendo clic en Actions y después en Triggers y después en credential-exchange.

Arrastre la acción Set Permissions al flujo de trabajo.

Una vez completado esto, puede generar un nuevo token y acceder a cualquier API dentro de PowerShell Universal.

Véase también

Última actualización

¿Te fue útil?