StoreFront

Autenticación OIDC de Entra ID (vista previa)

Esta sección describe cómo configurar NetScaler y StoreFront para que los usuarios puedan autenticarse con Entra ID. En esta configuración, los usuarios pueden tener una identidad híbrida o una identidad solo de Entra sin una cuenta de Active Directory.

IMPORTANTE:

El inicio de sesión único de Entra ID en VDA se encuentra actualmente en vista previa. Esta función se proporciona sin soporte y aún no se recomienda para su uso en entornos de producción.

Requisitos previos

  • NetScaler ADC
  • StoreFront 2603 o superior
  • Microsoft Entra ID y una cuenta con uno de los siguientes permisos:
    • Administrador de aplicaciones en la nube
    • Administrador de aplicaciones
    • Administrador global

Crear una aplicación de Microsoft Azure Entra ID

Un registro de aplicación en Microsoft Entra ID define su aplicación para que Entra ID la reconozca (en este caso, NetScaler OIDC). Este registro también gestiona las solicitudes de autenticación y autorización de la aplicación. Dado que OAuth requiere un proveedor de identidades (IdP) de confianza para autenticar a los usuarios y emitir tokens, registrar su aplicación le indica a Entra ID: “Esta aplicación le utiliza como su IdP para los flujos de OAuth”.

  1. Inicie sesión en el portal de Azure para el inquilino de Entra ID que utiliza para la autenticación de NetScaler o StoreFront.
  2. Vaya a Recurso de Microsoft Entra ID > Administrar > Registros de aplicaciones y, a continuación, seleccione Nuevo registro.
  3. Asigne un nombre a la aplicación, por ejemplo, NetScaler StoreFront Authentication.
  4. En Tipos de cuenta admitidos, seleccione Cuentas solo en este directorio organizativo.
  5. En URI de redirección, seleccione Web para el tipo de aplicación que desea crear. Introduzca el URI al que se envía el token de acceso. Utilice el formato <URL del servidor virtual de NetScaler>/oauth/login, por ejemplo https://netscalerentra.customer.com/oauth/login.

    Azure ID

Crear secreto de cliente

Para crear un secreto de cliente:

  1. Después de registrar la aplicación, vaya a Administrar > Certificados y secretos.
  2. Seleccione Secretos de cliente y, a continuación, seleccione Nuevo secreto de cliente. Su aplicación utiliza estas credenciales para comunicarse de forma segura con el IdP y solicitar tokens.
  3. Proporcione una descripción del secreto y una duración.
  4. Después de crear el secreto, registre su valor, ya que lo necesitará más adelante en el proceso de configuración y solo es visible durante esta fase de creación.

Azure NetScaler

Configurar permisos de aplicación

Para configurar los permisos de la aplicación:

  1. Vaya a Administrar > Registros de aplicaciones y, a continuación, seleccione su aplicación.
  2. Seleccione Administrar > Permisos de API.
  3. El permiso User.Read ya está añadido por defecto.
  4. Añada openid y profile.
  5. Seleccione Conceder consentimiento de administrador para <tenant name> y acepte.

«Conceder consentimiento de administrador para» en los permisos de API de Microsoft Entra ID significa que un administrador da su aprobación, en nombre de todos los usuarios de la organización, para que una aplicación acceda a recursos o API específicos con los permisos solicitados.

Conceder permiso de Azure

Configurar Citrix DaaS para habilitar la confianza XML

De forma predeterminada, Citrix DaaS autentica las solicitudes mediante las credenciales de Active Directory del usuario. Con la autenticación de Entra ID, StoreFront no tiene las credenciales. Por lo tanto, debe configurar DaaS para que confíe en StoreFront sin necesidad de autenticación. Se recomienda encarecidamente que habilite las claves de seguridad para proporcionar autenticación a nivel de servicio en su lugar.

  1. Inicie sesión en Citrix Cloud y vaya a la consola de DaaS.
  2. Vaya a Configuración.
  3. Active la confianza XML.

    Conceder permiso de Azure

  4. (Paso opcional) Para mayor seguridad, puede habilitar las claves de seguridad entre DaaS y StoreFront. Para obtener más información, consulte Administrar claves de seguridad en la documentación de Citrix DaaS™.

Configurar el perfil de autenticación de NetScaler

Esta sección describe cómo configurar un perfil de autenticación de NetScaler que puede vincular a su servidor virtual VPN de puerta de enlace. Esta configuración indica al ADC cómo redirigir a los usuarios a un IdP de OAuth externo (como Microsoft Entra ID) para iniciar sesión y cómo gestionar los tokens de OAuth recibidos después de la autenticación. Especifica los puntos finales, las credenciales de cliente, los ámbitos y cómo el ADC extrae la información del usuario de los tokens.

Necesita el secreto de cliente de los pasos anteriores y los puntos finales de autenticación de Microsoft Entra ID. Puede encontrar los puntos finales de autenticación en el portal de Azure yendo a la Descripción general del registro de aplicaciones y haciendo clic en la ficha Puntos finales.

Crear servidor virtual de autenticación

El servidor virtual de autenticación gestiona la autenticación de usuarios.

add authentication vserver EntraId_Authentication_VirtualServer SSL 0.0.0.0 443 \
  -state ENABLED \
  -authentication ON \
  -td 0 -appflowLog ENABLED \
  -noDefaultBindings NO
<!--NeedCopy-->

Crear política y acción de OAuth

La acción de OAuth especifica cómo NetScaler ADC interactúa con un IdP de OAuth como Microsoft Entra ID. Esta acción permite que Citrix Gateway redirija a los usuarios al IdP para iniciar sesión y gestione el token de OAuth devuelto. Establece userNameField en oid, lo que hace que el gateway pase el OID como nombre de usuario al autenticarse en StoreFront. StoreFront valida que el OID coincida con los detalles que obtiene al buscar el token de acceso de Entra ID; de lo contrario, la autenticación falla.

Necesita el ID de cliente y el secreto de cliente de los pasos anteriores.

add authentication OAuthAction EntraId_Oauth_Server \
  -authorizationEndpoint "https://login.microsoftonline.com/<TenantId>/oauth2/v2.0/authorize\?prompt=login" \
  -tokenEndpoint "https://login.microsoftonline.com/<TenantId>/oauth2/v2.0/token" \
  -clientID <ClientId> \
  -clientSecret <ClientSecret> \
  -Attribute1 email \
  -Attribute2 family_name \
  -Attribute3 given_name \
  -Attribute4 upn \
  -CertEndpoint "https://login.microsoftonline.com/<TenantId>/discovery/v2.0/keys" \
  -userNameField oid \
  -allowedAlgorithms HS256 RS256 RS512 \
  -PKCE ENABLED \
  -tokenEndpointAuthMethod client_secret_post \
  -OAuthType GENERIC \
  -grantType CODE \
  -refreshInterval 1440
add authentication Policy EntraId_Authentication_Policy \
  -rule true \
  -action EntraId_Oauth_Server
<!--NeedCopy-->

authorizationEndpoint incluye el parámetro de cadena de consulta prompt=login para que los usuarios se vean obligados a volver a autenticarse cuando intenten acceder a StoreFront a través de NetScaler.

Vincular la política de autenticación al servidor virtual

bind authentication vserver EntraId_Authentication_VirtualServer \
  -policy EntraId_Authentication_Policy \
  -priority 100 \
  -gotoPriorityExpression END
<!--NeedCopy-->

Crear perfil de autenticación

add authentication authnProfile EntraId_Auth_Profile \
  -authnVsName EntraId_Authentication_VirtualServer \
  -AuthenticationLevel 0
<!--NeedCopy-->

Crear servidor virtual VPN y vincular el perfil de autenticación

Complete los pasos 1, 2 y 4 de Integrar NetScaler Gateway con StoreFront, utilizando el perfil de autenticación creado en los pasos anteriores.

Alternativamente, si ya tiene un Citrix Gateway adecuado, puede vincularle el nuevo perfil de autenticación. La ejecución de este comando reemplaza el perfil de autenticación existente.

set vpn vserver <StoreFront ICA Proxy vServer> \
  -authentication ON \
  -authnProfile EntraId_Auth_Profile
<!--NeedCopy-->

Configuración de inyección de tokens de Entra ID para SSO en StoreFront

Después de que el gateway de Citrix autentique al usuario, debe pasar suficiente información a StoreFront para que este pueda validar que el usuario está autenticado y buscar la pertenencia a grupos. De forma predeterminada, el gateway de Citrix solo envía el nombre de usuario y la contraseña de Active Directory. En el caso de la autenticación de Entra ID, debe pasar el token de acceso de Entra ID para que StoreFront pueda buscar información del usuario mediante la API de Microsoft Graph. Para lograr esto, debe agregar una política de reescritura que añada el token de Entra ID a la llamada que realiza para autenticar al usuario en StoreFront. Si la política de reescritura del token de acceso de Entra ID no surte efecto, el inicio de sesión fallará. Si la función de política de reescritura está deshabilitada de forma predeterminada y aún no está habilitada, debe habilitarla primero.

enable ns feature Rewrite
add rewrite action EntraId_Oauth_Insert_AccessToken_Header insert_http_header X-Citrix-OIDC-Access-Token "AAA.USER.ATTRIBUTE(\"accesstoken\")" \
  -comment "A rewrite policy to add the OAUTH access_token to subsequent user authentication requests"
add rewrite policy EntraId_Oauth_Insert_AccessToken_Policy "HTTP.REQ.URL.TO_LOWER.ENDSWITH(\"gatewayauth/login\") || HTTP.REQ.URL.TO_LOWER.ENDSWITH(\"citrixagbasic/authenticate\")" EntraId_Oauth_Insert_AccessToken_Header \
  -comment "A rewrite policy to add the OAUTH access_token to subsequent user authentication requests"
bind vpn vserver <StoreFront ICA Proxy vServer> \
  -policy EntraId_Oauth_Insert_AccessToken_Policy \
  -priority 100 \
  -gotoPriorityExpression END \
  -type REQUEST
<!--NeedCopy-->

Configurar Citrix Gateway en StoreFront

  1. Agregar una instancia de NetScaler Gateway en StoreFront.

  2. Configure las Citrix Gateways.

    • Establezca el tipo de inicio de sesión en Dominio.

    • Especifique una URL de devolución de llamada válida. Esto es necesario para la autenticación de Entra ID con StoreFront.

  3. Configure la gateway para el acceso remoto para el Store que agrega los recursos de Citrix DaaS.

  4. En la pantalla Administrar métodos de autenticación, habilite Pass-through from Citrix Gateway y configure la configuración de Entra ID

Autenticación OIDC de Entra ID (vista previa)