OpenID Connect
OpenID Connect es una capa de autenticación sobre OAuth 2.0, un marco de autorización. Está compatible con muchos proveedores y ofrece la posibilidad de autenticarse contra sistemas como EntraID.
Este documento describe los pasos necesarios para configurar EntraID OpenID Connect y utilizarlo con Universal.
Configuración de Azure Entra ID (Azure Active Directory)
En el portal de Azure, navegue hasta su hoja de Entra ID. A continuación, haga clic en el nodo Enterprise Application y después en New application.

A continuación, haga clic en Create your own application.

Seleccione un nombre para su aplicación y seleccione Register an application to integrate with Microsoft Entra ID.

En la página Register an application, defina un URI de redirección. Esta será la URL del servidor de PowerShell Universal al que Entra ID redirigirá al usuario. Este valor se define en el fichero de configuración de PowerShell Universal, appsettings.json.
Ahora que se ha creado la aplicación, desde la página Enterprise Applications, haga clic en Single sign-on y después en Go to application. Esto le llevará a la página de registro de la aplicación.

Certificates and secrets y defina un nuevo secreto. Este se utilizará con el fichero de configuración de PowerShell Universal.

Ahora necesitaremos recopilar varios datos de la aplicación para proporcionarlos a PowerShell Universal. Desde la página de inicio de la aplicación, guarde el Application (client) ID y el directory (tenant) ID.

Asignación de reclamaciones
Para proporcionar reclamaciones de grupo a PowerShell Universal, deberá exponer las reclamaciones de grupo desde el registro de su aplicación. Haga clic en Token Configuration y después en Add groups claim.

Después de hacer clic en Add groups claim, tendrá la opción de seleccionar qué grupos se proporcionan. Si selecciona All Groups, las reclamaciones de grupo se proporcionarán a PowerShell Universal
Si selecciona Groups assigned to the application, asegúrese de marcar el valor Emit groups as role claims. Esta configuración requiere un plan de pago de Entra ID.

Para asignar un grupo al registro de su aplicación, localice su aplicación en Enterprise Applications y haga clic en User and Groups. A continuación, haga clic en Add User\Group y seleccione los grupos que desea asignar a su aplicación.
Una vez que tenga configurada la reclamación de grupos en Entra ID, podrá actualizar las asignaciones de reclamaciones de PowerShell Universal a los grupos proporcionados.
Para cada rol que desee asignar a un grupo de Entra ID, especifique el Claim Type y el Claim Value de ese rol. Por ejemplo, tengo un grupo en mi entorno con el ID 446832da-d4ad-4972-b0a2-eda736129928. El Claim Type de este objeto es http://schemas.microsoft.com/ws/2008/06/identity/claims/groups.
Para asignarlo al grupo de administradores, haría lo siguiente.

Los usuarios de este grupo pasarían ahora a formar parte del rol Administrator en PowerShell Universal.
Excesos de grupos
En las organizaciones que tienen usuarios con muchos grupos, conviene limitar el número de grupos enviados a PowerShell Universal. El envío de un gran número de grupos puede superar el tamaño del token y provocar fallos de autorización. Si desea limitar los grupos, seleccione Groups assigned to the application.

Para añadir grupos a la aplicación, vuelva a la página de la Enterprise application y seleccione Users and groups.

Haga clic en el valor Add user/group para asignar estos grupos a su aplicación. Cuando los usuarios inicien sesión en PowerShell Universal, solo se proporcionarán estas reclamaciones de grupo.
Para obtener más información sobre los excesos de grupos, haga clic aquí.
Configuración de Universal para Entra ID
Uso de Appsettings.json
Ahora que hemos completado la configuración de un registro de aplicación de AzureAD, podemos actualizar el fichero appsettings.json con los ajustes adecuados. Para mi aplicación, tendría un aspecto similar a este.
Si utiliza Chrome, también deberá habilitar HTTPS. Verá un error 500 si HTTPS no está habilitado.
Uso de Authentication.ps1
Puede utilizar la consola de administración para configurar OpenID Connect. Recomendamos este método, ya que no necesitará reiniciar el servicio de PowerShell Universal después de configurar OIDC.
Para añadir un nuevo método de autenticación, navegue hasta Security \ Authentication y añada el proveedor OpenID Connect.

Una vez añadido el proveedor, puede hacer clic en el botón de detalles para introducir los ajustes que necesitará para autenticarse contra su proveedor OIDC. Después de establecer las opciones de OIDC, active el proveedor y cierre la sesión. Al visitar la página /admin, se le solicitará el inicio de sesión OIDC.

Tokens de acceso delegado
Puede utilizar los tokens de acceso generados por un inicio de sesión OIDC para otros servicios a los que el usuario pueda tener acceso. Dentro de su proveedor OIDC, como Entra ID, puede conceder permisos adicionales al token.

También tendrá que habilitar los tokens de acceso dentro del flujo de autenticación para que el token proporcione el acceso al recurso necesario.

Por último, en su fichero appsettings.json de PSU, deberá asegurarse de que SaveTokens esté habilitado, que el tipo de recurso incluya el token y que el recurso al que desea acceder esté incluido en la configuración Resource. La URL que especifique en el recurso debe estar indicada dentro del proveedor.
El ejemplo siguiente añade un recurso para Microsoft O365.
En su panel, ahora tendrá acceso a las variables $AccessToken y $IdToken, que puede utilizar con cmdlets que requieran autorización.
Por ejemplo, el cmdlet Connect-AzureAd acepta un token de acceso.
Tokens de actualización
Puede configurar Azure Active Directory y PowerShell Universal para que proporcionen tokens de actualización con los que solicitar nuevos tokens si el token de acceso caduca. Para ello, deberá habilitar offline_access en el registro de su aplicación.

Al configurar PowerShell Universal, debe solicitar el ámbito offline_access, establecer SaveTokens en true y utilizar el tipo de respuesta id_token.
Una vez configurado, puede acceder a la variable $RefreshToken en sus scripts y aplicaciones.
Configuración de Okta
Okta admite OpenID Connect. Puede configurar una aplicación para permitir la autenticación contra instancias de PowerShell Universal.
En su consola de administración de Okta, expanda Applications y haga clic en Applications. A continuación, haga clic en Create App Integration.

Seleccione OIDC y Web Application.

Asigne un nombre a su aplicación y defina la URL de redirección de inicio de sesión utilizada para llamar a su servidor de PowerShell Universal. Deberá especificar esta URL de retorno de llamada en su configuración de PowerShell Universal.

Una vez creada su aplicación, tome nota de su Client ID y Client Secret. Los especificará en su configuración de PowerShell Universal.

En la pestaña Sign On, especifique el filtro de reclamaciones de grupo que se utilizará para proporcionar reclamaciones a PowerShell Universal. Estas reclamaciones se pueden utilizar para asignar roles según la pertenencia a grupos. El filtro siguiente devuelve todas las reclamaciones.

Una vez que tenga su aplicación configurada, podrá configurar PowerShell Universal.
Configuración de Universal para Okta
Una vez que haya definido su aplicación de Okta, puede configurar su fichero appsettings.json para utilizar el proveedor para los inicios de sesión. A continuación se muestra un ejemplo de la sección necesaria para que Okta funcione. Tenga en cuenta la funcionalidad de ámbito, ya que es necesaria para recuperar la pertenencia a grupos.
Acceso basado en roles
Para consultar la pertenencia a grupos en Okta, deberá utilizar la variable $UserInfo, que está disponible en roles.ps1. Esta variable proporciona información adicional sobre el usuario que inicia sesión.
La propiedad groups contendrá una lista de los grupos a los que pertenece el usuario. Puede validar la pertenencia comprobando si la lista contiene el grupo deseado.
Tokens de acceso delegado
Los tokens de acceso están disponibles para los usuarios en sus scripts. Puede utilizar tokens de acceso en trabajos iniciados por los usuarios y en paneles.
Por ejemplo, podría devolver la información del usuario actual utilizando el token de acceso proporcionado por Okta.
Visualización de la información de reclamaciones
Si no está seguro de qué información de reclamaciones se envía a PowerShell Universal desde su proveedor de identidad, puede utilizar el botón View Claim Information de la página Security \ Roles para ver todos los roles que se han proporcionado a PSU desde el sistema remoto.
Última actualización
¿Te fue útil?