SAML2
PowerShell Universal puede configurarse para integrarse con un proveedor de identidad SAML2. Esta documentación proporciona los detalles para configurar PSU con dicho sistema.
Carga automática de metadatos
PowerShell Universal proporciona un mecanismo para cargar el documento de metadatos directamente desde el proveedor de identidad SAML2 en lugar de proporcionar manualmente las opciones de configuración. Esto recopilará toda la información posible. Aún será necesario proporcionar el Entity ID.
La ruta de callback se mostrará en la parte superior del modal de la propiedad.

Proporcionar los valores manualmente
Configuración del proveedor de identidad
Deberá configurar su proveedor de identidad para la aplicación PowerShell Universal. Deberá establecer un entity ID aceptable y asignar atributos. PowerShell Universal requiere que el atributo name esté asignado. El nombre del atributo debe ser el siguiente.
Debería asignarlo a la identidad de usuario que desee utilizar dentro de PowerShell Universal.
Se pueden asignar atributos adicionales que estarán disponibles durante la evaluación de roles. A continuación encontrará un ejemplo de configuración de Shibboleth.
Configuración del Entity ID
Existen varias opciones básicas que puede configurar en la consola de administración de PowerShell Universal. Para añadir compatibilidad con SAML2, haga clic en Security \ Authentication. En la esquina superior derecha, puede seleccionar SAML2 en el menú desplegable.

Una vez añadida la integración de SAML2, puede configurar los ajustes básicos para comunicarse con su proveedor de identidad. Necesitará configurar al menos el Entity ID y el Identity Provider Entity ID.
Normalmente, estos entity ID son URL configuradas dentro de su proveedor de identidad.

El certificado de servicio se utiliza para firmar solicitudes. No es obligatorio. Puede ser una ruta local al servicio de PSU o el nombre distinguido de un certificado instalado en el almacén de certificados Personal Computer.
Configuración adicional
Además de las opciones disponibles en la consola de administración, también puede establecer lo siguiente en el fichero de configuración authentication.ps1.
ServiceCertificatePassword
Si utiliza una ruta de fichero para su certificado y este requiere una contraseña, puede especificarla mediante el parámetro -ServiceCertificatePassword de Set-PSUAuthenticationMethod. El valor de este parámetro es un SecureString. Puede aprovechar el módulo SecretManagement para cargar secretos.
Configure
El parámetro -Configure es un bloque de script que se puede utilizar para establecer opciones adicionales no expuestas por Set-PSUAuthenticationMethod. El bloque de script se invocará cuando se configure el proveedor y recibirá un único parámetro que contiene un objeto con las opciones para la autenticación SAML2.
El objeto es del tipo Saml2Options. El subobjeto de SPOptions se puede encontrar aquí.
Ejemplo: Entra ID
Configure una aplicación empresarial de Entra ID en Azure. Puede encontrar una guía paso a paso aquí. Deberá obtener el ID de la aplicación y el documento de metadatos de federación, así como el punto de conexión de inicio de sesión SAML-P. Dentro del registro de su aplicación, haga clic en el botón Endpoints.

Paso a paso
En PowerShell Universal:
Haga clic en Security \ Authentication.
Añada el proveedor de autenticación SAML2.
Haga clic en el botón Edit Properties.
En Entity ID, deberá poner el ID de la aplicación de Entra ID con el prefijo spn:
Por ejemplo: spn:2cf33625-e312-4659-a7bd-66ade51a0ea2
En Identity Provider Entity ID, deberá obtener el entity ID del documento de metadatos de federación. Abra la URL del documento en un navegador web.

En Metadata Address, inserte la URL del documento de metadatos de federación.
En Return URL, inserte la URL de su servidor PowerShell Universal con la ruta /Saml/Acs.
En Single Sign-On Service URL, inserte el endpoint de inicio de sesión SAML-P de Azure.

Una vez completado, guarde la configuración y habilite el proveedor SAML. Haga clic en cerrar sesión y navegue a la URL de su consola de administración.
Se le redirigirá a Azure para iniciar sesión y volverá a PowerShell Universal después de la autenticación.
Cualquier error que se produzca aparecerá en el log de PowerShell Universal. Si no consigue iniciar sesión, puede navegar a /login para iniciar sesión con una cuenta local.
Asignación de claims
Para proporcionar claims de grupo a PowerShell Universal, deberá exponer los claims de grupo desde su registro de 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, los claims 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 opción requiere un plan de pago de Entra ID.

Para asignar un grupo a su registro de 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 el claim de grupos configurado en Entra ID, podrá actualizar las asignaciones de claims 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 para este objeto es http://schemas.microsoft.com/ws/2008/06/identity/claims/role.
Para asignarlo al grupo de administradores, haría lo siguiente.

Los usuarios de este grupo formarían ahora parte del rol Administrator en PowerShell Universal. Si seleccionó una propiedad de grupo SAML diferente, el valor puede ser distinto (por ejemplo, sAMAccountName).
Excesos de grupos
En organizaciones con muchos grupos, conviene limitar el número de grupos proporcionados a PowerShell Universal. Esto puede aliviar los problemas de autorización que surgen al proporcionar demasiados grupos, lo que provoca que se superen los límites de la aplicación. Dentro de la configuración de la aplicación empresarial, haga clic en Single sign-on y después en el botón Edit debajo de Attributes & Claims.

Haga clic en el claim de grupos para ver las opciones. Las opciones avanzadas le permitirán filtrar los grupos que se proporcionan al servidor de PowerShell Universal. También puede configurar los claims de grupo mediante la configuración de tokens en el registro de aplicación de la aplicación empresarial.

Ejemplo: Okta
Este ejemplo muestra cómo configurar la autenticación SAML2 de Okta para su uso con PowerShell Universal.
Dentro de Okta, deberá configurar su aplicación de forma similar a la siguiente. SAML2 requiere HTTPS y deberá incluir la URL de su instancia de PSU en Single Sign On URL, seguida de /Saml2/Acs. La ruta distingue entre mayúsculas y minúsculas.
El Audience Restriction debe ser la URL de su servidor PowerShell Universal.

Para que sus usuarios puedan acceder a PowerShell Universal, deberá asegurarse de que se les haya asignado la aplicación de Okta.

En la pestaña Sign On de su aplicación, haga clic en el botón View SAML setup instructions.

Deberá capturar las dos URL y descargar el certificado para configurar PowerShell Universal. Consulte el siguiente paso para saber cómo utilizar estas URL en el fichero authentication.ps1.
authentication.ps1
El fichero authentication.ps1 se utiliza para configurar PowerShell Universal.
EntityId
Este valor debe coincidir con lo que puso en Audience Restriction dentro de Okta.
string
IdentityProviderEntityId
Este es el valor que se presentó en la página View SAML setup instructions.
string
CallbackPath
Esta es la ruta a la que se redirigirá al usuario si no se proporcionó ninguna ruta de redirección
string
SigningKey
Este es el fichero de certificado que se descargó en la página View SAML setup instructions.
string
SingleSignOnServiceUrl
Esta es la URL de inicio de sesión que se proporcionó en la página View SAML setup instructions.
string
Ejemplo: Shibboleth
Este ejemplo muestra cómo configurar Shibboleth para su uso con PowerShell Universal. Proporciona la configuración más básica y no necesariamente sigue las mejores prácticas.
Se supone que ha instalado Shibboleth Identity Provider v4 con integración de Active Directory.
ldap.properties
Las propiedades LDAP se han configurado para autenticar contra el dominio local utilizando una cuenta de administrador de dominio. Se ha configurado la URL de LDAP y se ha deshabilitado TLS.
A continuación encontrará el ejemplo completo del fichero ldap.properties.
relying-party.xml
El fichero relying-party.xml se ha actualizado para habilitar el IdP abierto. Esto significa que cualquier entity ID puede comunicarse con el proveedor de identidad. También puede configurarlo para exigir entity ID específicos. La configuración predeterminada también se ha ajustado para utilizar el bean SAML2.AttributeQuery.
attribute-resolver.xml
El fichero attribute-resolver.xml se ha actualizado para utilizar el conector de datos LDAPDirectory. Carga la dirección de correo electrónico, el nombre de pila, el SN y el nombre para mostrar desde Active Directory. A continuación, asigna el Principal Name, que será el nombre de usuario del usuario que inicia sesión, al tipo de claim requerido mediante un codificador de atributos.
attribute-filter.xml
El fichero attribute-filter.xml se ha actualizado para liberar varios de los atributos asignados por el conector de datos LDAPDirectory, así como el nombre de usuario que se utilizará como identidad dentro de PowerShell Universal.
Última actualización
¿Te fue útil?