Product Documentation

StoreFront SDK

Jun 29, 2017

Citrix StoreFront proporciona un SDK basado en una serie de módulos de Microsoft Windows PowerShell 3.0. Con el SDK, se pueden realizar las mismas tareas que se llevan a cabo con la consola MMC de StoreFront, junto con otras tareas que no se pueden realizar con la consola.  

Para la referencia del SDK, consulte SDK de StoreFront

Diferencias principales entre el SDK de StoreFront 3.0 y el SDK de StoreFront actual

  • Ejemplos de SDK de alto nivel: Esta versión proporciona scripts de SDK de alto nivel que permiten automatizar las implementaciones de StoreFront de manera rápida y sencilla. Puede personalizar los ejemplos de alto nivel para que se ajuste a sus requisitos concretos, o puede crear una nueva implementación simplemente ejecutando un script.
  • Nuevo SDK de bajo nivel: Citrix proporciona un SDK documentado de bajo nivel para StoreFront, que le permite configurar las implementaciones, incluidas las tiendas, los métodos de autenticación, los sitios de Citrix Receiver para Web y Unified Citrix Receiver, así como el acceso remoto a través de NetScaler Gateway.
  • Compatibilidad con versiones anteriores: StoreFront 3.6 todavía contiene las API de StoreFront 3.0 y versiones anteriores, lo que facilita la transición gradual desde los scripts existentes a los del nuevo SDK.

Important

La compatibilidad con versiones anteriores con StoreFront 3.0 se ha mantenido siempre que ha sido posible y viable. Sin embargo, Citrix recomienda que, al escribir nuevos scripts, se usen los nuevos módulos Citrix.StoreFront.*, ya que el SDK de StoreFront 3.0 se considera obsoleto y será eliminado en el futuro. 

Uso de SDK

El SDK se compone de una serie de complementos de PowerShell que el asistente de instalación instala automáticamente cuando se instalan y se configuran varios componentes de StoreFront.

Para acceder a los cmdlets y ejecutarlos:

  1. Inicie un shell en PowerShell 3.0.

    Debe ejecutar el shell o el script usando una cuenta miembro del grupo de administradores locales en el servidor StoreFront.

  2. Para utilizar los cmdlets del SDK en scripts, configure la directiva de ejecución en PowerShell.

    Para obtener más información acerca de la directiva de ejecución de PowerShell, consulte la documentación de Microsoft.

  3. Agregue los módulos que necesite al entorno de PowerShell con el comando Add -Module en la consola de Windows PowerShell. Por ejemplo, escriba:
     Import-Module Citrix.StoreFront

    Para importar todos los cmdlets, escriba:

     

    Get-Module -ListAvailable | Where-Object { $_.Name.StartsWith("Citrix.StoreFront") } | Import-Module

Después de realizar la importación, tendrá acceso a los cmdlets y a la ayuda asociada.

Introducción a SDK

Para crear un script, siga los siguientes pasos:

  1. Tome uno de los ejemplos del SDK instalado por StoreFront en la carpeta %ProgramFiles%\Citrix\Receiver StoreFront\PowerShellSDK\Examples.
  2. Para ayudarle a personalizar su propio script, consulte el script de ejemplo para comprender lo que hace cada parte. Para obtener más información, consulte el caso de uso de ejemplo que describe con más detalle las acciones del script.
  3. Adapte los scripts de ejemplo para convertirlos en scripts más útiles para su consumo. Para hacerlo:
    • Use PowerShell ISE o una herramienta similar para editar el script.
    • Utilice variables para asignarles valores que se van a volver a utilizar o modificar.
    • Elimine los comandos que no sean necesarios.
    • Observe que los cmdlets de StoreFront se pueden identificar por el prefijo STF.
    • Use el cmdlet Get-Help con el nombre de un cmdlet y el parámetro -Full para obtener más información acerca de un comando en concreto.

Ejemplos

Nota: Al crear un script, para asegurarse de obtener siempre las mejoras y revisiones más recientes, Citrix recomienda seguir el procedimiento descrito en este tema en lugar de copiar y pegar el script de ejemplo.

Ejemplos

Descripción

Script: Crea una implementación simple de StoreFront con un controlador configurado con un único servidor XenDesktop.

Script: Se basa en el script anterior y añade acceso remoto a la implementación.

Script: Se basa en el script anterior y añade puertas de enlace preferidas óptimas para mejorar la experiencia del usuario.

Script: Crea una implementación simple configurada con un sitio de Desktop Appliance.

Ejemplo: Crear una implementación simple

El siguiente ejemplo muestra cómo crear una implementación simple configurada con un Controller de XenDesktop.

Antes de comenzar, compruebe que sigue los pasos detallados en Introducción al SDK. Este ejemplo se puede personalizar usando los métodos descritos para generar un script que automatice la implementación de StoreFront.

Nota: Para asegurarse de que siempre obtiene las últimas mejoras y revisiones, Citrix recomienda seguir el procedimiento descrito en este documento en lugar de copiar y pegar el script de ejemplo. 

Entender el script

Esta sección explica qué hace cada parte del script generado por StoreFront. Esto le ayudará con la personalización de su propio script.

  • Establece los requisitos para la gestión de errores e importa los módulos de StoreFront necesarios. La importación no es necesaria en versiones más nuevas de PowerShell.

Param(

    [Parameter(Mandatory=$true)]

    [Uri]$HostbaseUrl,

    [long]$SiteId = 1,

    [ValidateSet("XenDesktop","XenApp","AppController","VDIinaBox")]

    [string]$Farmtype = "XenDesktop",

    [Parameter(Mandatory=$true)]

    [string[]]$FarmServers,

    [string]$StoreVirtualPath = "/Citrix/Store",

    [bool]$LoadbalanceServers = $false,

    [int]$Port = 80,

    [int]$SSLRelayPort = 443,

    [ValidateSet("HTTP","HTTPS","SSL")]

    [string]$TransportType = "HTTP"

)

# Importar módulos de StoreFront Requerido para versiones de PowerShell anteriores a la 3.0 que no respaldan la carga automática

Import-Module Citrix.StoreFront

Import-Module Citrix.StoreFront.Stores

Import-Module Citrix.StoreFront.Authentication

Import-Module Citrix.StoreFront.WebReceiver

  • Automatiza la ruta virtual de los servicios de autenticación y Citrix Receiver para Web basándose en la ruta $StoreVirtualPath proporcionada.

# Determinar la ruta virtual de autenticación y Receiver para usar en función de la tienda

$authenticationVirtualPath = "$($StoreIISPath.TrimEnd('/'))Auth"

$receiverVirtualPath = "$($StoreVirtualPath.TrimEnd('/'))Web"

  • Crea una nueva implementación si todavía no hay ninguna, como preparación para agregar los servicios de StoreFront. -Confirm:$false suprime el requisito de confirmar que la implementación puede continuar.

# Determine si la implementación ya existe

$existingDeployment = Get-STFDeployment

if(-not $existingDeployment)

{

    # Instalar los componentes de StoreFront necesarios

    Add-STFDeployment -HostBaseUrl $HostbaseUrl -SiteId $SiteId -Confirm:$false

}

elseif($existingDeployment.HostbaseUrl -eq $HostbaseUrl)

{

    # La implementación existe y está configurada para la URL de base del host deseado

    Write-Output "A deployment has already been created with the specified hostbase url on this server and will be used."

}

else

{

    Write-Error "A deployment has already been created on this server with a different host base url."

}

  • Crea un nuevo servicio de autenticación si todavía no hay ninguno en la ruta virtual especificada El método de autenticación predeterminado de nombre de usuario y contraseña está habilitado.

# Determinar si existe el servicio de autenticación en la ruta virtual especificada

$authentication = Get-STFAuthenticationService -VirtualPath $authenticationVirtualPath

if(-not $authentication)

{

    # Agregar un servicio de autenticación usando la ruta IIS de la tienda con Auth

    $authentication = Add-STFAuthenticationService $authenticationVirtualPath

}

else

{

    Write-Output "An Authentication service already exists at the specified virtual path and will be used."

}

  • Crea un nuevo servicio de autenticación si todavía no hay ninguno en la ruta virtual especificada El método de autenticación predeterminado de nombre de usuario y contraseña está habilitado. 

# Determinar si existe el servicio de autenticación en la ruta virtual especificada

$authentication = Get-STFAuthenticationService -VirtualPath $authenticationVirtualPath

if(-not $authentication)

{

    # Agregar un servicio de autenticación usando la ruta IIS de la tienda con Auth

    $authentication = Add-STFAuthenticationService $authenticationVirtualPath

}

else

{

    Write-Output "An Authentication service already exists at the specified virtual path and will be used."

}

  • Crea un nuevo servicio de tienda configurado con un Controller de XenDesktop con los servidores en la matriz $XenDesktopServers en la ruta virtual especificada, si todavía no existe ninguna.

# Determinar si existe el servicio de tienda en la ruta virtual especificada

$store = Get-STFStoreService -VirtualPath $StoreVirtualPath

if(-not $store)

{

# Agregar una tienda que use el nuevo servicio de autenticación configurado para publicar recursos de los servidores suministrados

$store = Add-STFStoreService -VirtualPath $StoreVirtualPath -AuthenticationService $authentication -FarmName $Farmtype -FarmType $Farmtype -Servers $FarmServers -LoadBalance $LoadbalanceServers `

        -Port $Port -SSLRelayPort $SSLRelayPort -TransportType $TransportType

}

else

{

    Write-Output "A Store service already exists at the specified virtual path and will be used. Farm and servers will be appended to this store."

    # Obtener la cantidad de comunidades configuradas en la tienda

    $farmCount = (Get-STFStoreFarmConfiguration $store).Farms.Count

    # Añadir la comunidad a la tienda con un nombre único

    Add-STFStoreFarm -StoreService $store -FarmName "Controller$($farmCount + 1)" -FarmType $Farmtype -Servers $FarmServers -LoadBalance $LoadbalanceServers -Port $Port `

        -SSLRelayPort $SSLRelayPort -TransportType $TransportType

}

  • Agrega un servicio de Citrix Receiver para Web en la ruta virtual de IIS especificada para obtener acceso a las aplicaciones publicadas en la tienda creada anteriormente.

# Determinar si existe el servicio de Receiver en la ruta virtual especificada

$receiver = Get-STFWebReceiverService -VirtualPath $receiverVirtualPath

if(-not $receiver)

{

    # Agregar un sitio de Receiver para Web para que los usuarios puedan acceder a las aplicaciones y escritorios en la tienda

    $receiver = Add-STFWebReceiverService -VirtualPath $receiverVirtualPath -StoreService $store

}

else

{

    Write-Output "A Web Receiver service already exists at the specified virtual path and will be used."

}

  • Habilita los servicios XenApp para la tienda de modo que los clientes Citrix Receiver de versiones anteriores puedan conectarse a las aplicaciones publicadas.

# Determinar si PNA está configurado para el servicio de tienda

$storePnaSettings = Get-STFStorePna -StoreService $store

if(-not $storePnaSettings.PnaEnabled)

{

   # Habilitar los servicios XenApp la tienda y hacerlo parámetro predeterminado para este servidor

   Enable-STFStorePna -StoreService $store -AllowUserPasswordChange -DefaultPnaService

}

Ejemplo: Crear una implementación para acceso remoto

El siguiente ejemplo se basa en el script anterior y agrega una implementación de acceso remoto.

Antes de comenzar, compruebe que sigue los pasos detallados en Introducción al SDK. Este ejemplo se puede personalizar usando los métodos descritos para generar un script que automatice la implementación de StoreFront.

Nota: Para asegurarse de que siempre obtiene las últimas mejoras y revisiones, Citrix recomienda seguir el procedimiento descrito en este documento en lugar de copiar y pegar el script de ejemplo. 

Entender el script

Esta sección explica qué hace cada parte del script generado por StoreFront. Esto le ayudará con la personalización de su propio script.

  • Establece los requisitos para la gestión de errores e importa los módulos de StoreFront necesarios. La importación no es necesaria en versiones más nuevas de PowerShell.

Param(

    [Parameter(Mandatory=$true)]

    [Uri]$HostbaseUrl,

    [Parameter(Mandatory=$true)]

    [long]$SiteId = 1,

    [string]$Farmtype = "XenDesktop",

    [Parameter(Mandatory=$true)]

    [string[]]$FarmServers,

    [string]$StoreVirtualPath = "/Citrix/Store",

    [bool]$LoadbalanceServers = $false,

    [int]$Port = 80,

    [int]$SSLRelayPort = 443,

    [ValidateSet("HTTP","HTTPS","SSL")]

    [string]$TransportType = "HTTP",

    [Parameter(Mandatory=$true)]

    [Uri]$GatewayUrl,

    [Parameter(Mandatory=$true)]

    [Uri]$GatewayCallbackUrl,

    [Parameter(Mandatory=$true)]

    [string[]]$GatewaySTAUrls,

    [string]$GatewaySubnetIP,

    [Parameter(Mandatory=$true)]

    [string]$GatewayName

)

Set-StrictMode -Version 2.0

 

# Cualquier fallo hace terminar la operación.

$ErrorActionPreference = 'Stop'

$ReportErrorShowStackTrace = $true

$ReportErrorShowInnerException = $true

# Importar módulos de StoreFront Requerido para versiones de PowerShell anteriores a la 3.0 que no respaldan la carga automática

Import-Module Citrix.StoreFront

Import-Module Citrix.StoreFront.Stores

Import-Module Citrix.StoreFront.Roaming

  • Cree una implementación de StoreFront de acceso interno ejecutando los scripts de los ejemplos anteriores. La implementación básica se ampliará para dar respaldo al acceso remoto.

# Crear una implementación sencilla invocando el ejemplo SimpleDeployment

$scriptDirectory = Split-Path -Path $MyInvocation.MyCommand.Definition -Parent

$scriptPath = Join-Path $scriptDirectory "SimpleDeployment.ps1"

& $scriptPath -HostbaseUrl $HostbaseUrl -SiteId $SiteId -FarmServers $FarmServers -StoreVirtualPath $StoreVirtualPath -Farmtype $Farmtype `

    -LoadbalanceServers $LoadbalanceServers -Port $Port  -SSLRelayPort $SSLRelayPort -TransportType $TransportType

  • Obtiene los servicios creados en la implementación sencilla porque tienen que actualizarse para dar respaldo al escenario de acceso remoto.

# Determinar si sitios de autenticación y Receiver en función de la tienda

$store = Get-STFStoreService -VirtualPath $StoreVirtualPath

$authentication = Get-STFAuthenticationService -StoreService $store

$receiverForWeb = Get-STFWebReceiverService -StoreService $store

  • Habilita CitrixAGBasic en el servicio de Citrix Receiver para Web, requerido para el acceso remoto a través de NetScaler Gateway. Obtenga el método de autenticación ExplicitForms y CitrixAGBassic de Citrix Receiver para Web de los protocolos respaldados.

# Obtener el método de autenticación ExplicitForms y CitrixAGBassic de Citrix Receiver para Web de los protocolos respaldados

# Incluido con fines de demostración, porque se puede usar el nombre del protocolo si se conoce

$receiverMethods = Get-STFWebReceiverAuthenticationMethodsAvailable | Where-Object { $_ -match "Explicit" -or $_ -match "CitrixAG" }

# Habilitar CitrixAGBasic en Receiver para Web (requerido para el acceso remoto)

Set-STFWebReceiverService $receiverForWeb -AuthenticationMethods $receiverMethods

  • Habilita CitrixAGBasic en el servicio de autenticación. Esto es necesario para el acceso remoto.

# Obtener el método de autenticación CitrixAGBasic de los protocolos instalados.

# Incluido con fines de demostración, porque se puede usar el nombre del protocolo si se conoce

$citrixAGBasic = Get-STFAuthenticationProtocolsAvailable | Where-Object { $_ -match "CitrixAGBasic" }

# Habilitar CitrixAGBasic en el servicio de autenticación (requerido para el acceso remoto)

Enable-STFAuthenticationServiceProtocol -AuthenticationService $authentication -Name $citrixAGBasic

  • Agrega una nueva puerta de enlace de acceso remoto, agregando la dirección IP de subred optativa y registrándola con la tienda a la que se va a obtener acceso de forma remota.

# Agregar una nueva puerta de enlace utilizad para acceder a la nueva tienda de forma remota

Add-STFRoamingGateway -Name "NetScaler10x" -LogonType Domain -Version Version10_0_69_4 -GatewayUrl $GatewayUrl '

-CallbackUrl $GatewayCallbackUrl -SecureTicketAuthorityUrls $GatewaySTAUrls

# Obtener la nueva puerta de enlace de la configuración (Add-STFRoamingGateway devolverá la nueva puerta de enlace si se incluye el parámetro - PassThru)

$gateway = Get-STFRoamingGateway -Name $GatewayName

# Si se suministró la subred de la puerta de enlace, configúrela en el objeto de puerta de enlace

if($GatewaySubnetIP)

{

    Set-STFRoamingGateway -Gateway $gateway -SubnetIPAddress $GatewaySubnetIP

}

# Registre la puerta de enlace en la nueva tienda

Register-STFStoreGateway -Gateway $gateway -StoreService $store -DefaultGateway

Ejemplo: Crear una implementación para acceso remoto con una puerta de enlace óptima

El siguiente ejemplo se basa en el script anterior y agrega una implementación de acceso remoto con puerta de enlace de inicio óptima.

Antes de comenzar, asegúrese de seguir los pasos detallados en Introducción a SDK. Este ejemplo se puede personalizar usando los métodos descritos para generar un script que automatice la implementación de StoreFront.

Nota: Para asegurarse de que siempre obtiene las últimas mejoras y revisiones, Citrix recomienda seguir el procedimiento descrito en este documento en lugar de copiar y pegar el script de ejemplo. 

Entender el script

Esta sección explica qué hace cada parte del script generado por StoreFront. Esto le ayudará con la personalización de su propio script.

  • Establece los requisitos para la gestión de errores e importa los módulos de StoreFront necesarios. La importación no es necesaria en versiones más nuevas de PowerShell.

Param(

    [Parameter(Mandatory=$true)]

    [Uri]$HostbaseUrl,

    [long]$SiteId = 1,

    [string]$Farmtype = "XenDesktop",

    [Parameter(Mandatory=$true)]

    [string[]]$FarmServers,

    [string]$StoreVirtualPath = "/Citrix/Store",

    [bool]$LoadbalanceServers = $false,

    [int]$Port = 80,

    [int]$SSLRelayPort = 443,

    [ValidateSet("HTTP","HTTPS","SSL")]

    [string]$TransportType = "HTTP",

    [Parameter(Mandatory=$true)]

    [Uri]$GatewayUrl,

    [Parameter(Mandatory=$true)]

    [Uri]$GatewayCallbackUrl,

    [Parameter(Mandatory=$true)]

    [string[]]$GatewaySTAUrls,

    [string]$GatewaySubnetIP,

    [Parameter(Mandatory=$true)]

    [string]$GatewayName,

    [Parameter(Mandatory=$true)]

    [Uri]$OptimalGatewayUrl,

    [Parameter(Mandatory=$true)]

    [string[]]$OptimalGatewaySTAUrls,

    [Parameter(Mandatory=$true)]

    [string]$OptimalGatewayName

)

Set-StrictMode -Version 2.0

# Cualquier fallo hace terminar la operación.

$ErrorActionPreference = 'Stop'

$ReportErrorShowStackTrace = $true

$ReportErrorShowInnerException = $true

# Importar módulos de StoreFront Requerido para versiones de PowerShell anteriores a la 3.0 que no respaldan la carga automática

Import-Module Citrix.StoreFront

Import-Module Citrix.StoreFront.Stores

Import-Module Citrix.StoreFront.Roaming

  • Llama al script de implementación de acceso remoto para configurar la implementación básica y agregarle el acceso remoto.

# Crear una implementación para acceso remoto

$scriptDirectory = Split-Path -Path $MyInvocation.MyCommand.Definition -Parent

$scriptPath = Join-Path $scriptDirectory "RemoteAccessDeployment.ps1"

& $scriptPath -HostbaseUrl $HostbaseUrl -SiteId $SiteId -FarmServers $FarmServers -StoreVirtualPath $StoreVirtualPath -Farmtype $Farmtype `

    -LoadbalanceServers $LoadbalanceServers -Port $Port  -SSLRelayPort $SSLRelayPort -TransportType $TransportType `

    -GatewayUrl $GatewayUrl -GatewayCallbackUrl $GatewayCallbackUrl -GatewaySTAUrls $GatewaySTAUrls -GatewayName $GatewayName

  • Agrega la preferencia de puerta de enlace de inicio óptima y la obtiene de las puertas de enlace configuradas.

# Agregue una nueva puerta de enlace utilizada para el acceso remoto HDX a escritorios y aplicaciones

$gateway = Add-STFRoamingGateway -Name $OptimalGatewayName -LogonType UsedForHDXOnly -GatewayUrl $OptimalGatewayUrl -SecureTicketAuthorityUrls $OptimalGatewaySTAUrls -PassThru

  • Obtiene el servicio de la tienda para usar la puerta de enlace óptima, registrarla y asignarla a inicios desde una comunidad especificada.

# Obtener la tienda configurada por SimpleDeployment.ps1

$store = Get-STFStoreService -VirtualPath $StoreVirtualPath

# Registrar la puerta de enlace con la nueva tienda para inicarla con todas las comunidades (actualmente solo una)

$farmNames = @($store.FarmsConfiguration.Farms | foreach { $_.FarmName })

Register-STFStoreOptimalLaunchGateway -Gateway $gateway -StoreService $store -FarmName $farmNames

Ejemplo: Crear una implementación con un sitio de Desktop Appliance

El siguiente ejemplo se basa en el ejemplo de implementación simple y le agrega un sitio de Desktop Appliance.

Antes de comenzar, asegúrese de seguir los pasos detallados en Introducción a SDK. Este ejemplo se puede personalizar usando los métodos descritos para generar un script que automatice la implementación de StoreFront.

Nota: Para asegurarse de que siempre obtiene las últimas mejoras y revisiones, Citrix recomienda seguir el procedimiento descrito en este documento en lugar de copiar y pegar el script de ejemplo. 

Entender el script

Esta sección explica qué hace cada parte del script generado por StoreFront. Esto le ayudará con la personalización de su propio script.

  • Establece los requisitos para la gestión de errores e importa los módulos de StoreFront necesarios. La importación no es necesaria en versiones más nuevas de PowerShell.

Param(

    [Parameter(Mandatory=$true)]

    [Uri]$HostbaseUrl,

    [long]$SiteId = 1,

    [string]$Farmtype = "XenDesktop",

    [Parameter(Mandatory=$true)]

    [string[]]$FarmServers,

    [string]$StoreVirtualPath = "/Citrix/Store",

    [bool]$LoadbalanceServers = $false,

    [int]$Port = 80,

    [int]$SSLRelayPort = 443,

    [ValidateSet("HTTP","HTTPS","SSL")]

    [string]$TransportType = "HTTP",

    [Parameter(Mandatory=$true)]

    [Uri]$GatewayUrl,

    [Parameter(Mandatory=$true)]

    [Uri]$GatewayCallbackUrl,

    [Parameter(Mandatory=$true)]

    [string[]]$GatewaySTAUrls,

    [string]$GatewaySubnetIP,

    [Parameter(Mandatory=$true)]

    [string]$GatewayName,

    [Parameter(Mandatory=$true)]

    [Uri]$OptimalGatewayUrl,

    [Parameter(Mandatory=$true)]

    [string[]]$OptimalGatewaySTAUrls,

    [Parameter(Mandatory=$true)]

    [string]$OptimalGatewayName

)

Set-StrictMode -Version 2.0

# Cualquier fallo hace terminar la operación.

$ErrorActionPreference = 'Stop'

$ReportErrorShowStackTrace = $true

$ReportErrorShowInnerException = $true

# Importar módulos de StoreFront Requerido para versiones de PowerShell anteriores a la 3.0 que no respaldan la carga automática

Import-Module Citrix.StoreFront

Import-Module Citrix.StoreFront.Stores

Import-Module Citrix.StoreFront.Roaming

  • Automatizar la ruta de un dispositivo de escritorio basada en la de $StoreVirtualPath.

$desktopApplianceVirtualPath = "$($StoreIISPath.TrimEnd('/'))Appliance"

  • Llama a un script de implementación simple para configurar una implementación predeterminada con los servicios requeridos.

# Crear una implementación para acceso remoto

$scriptDirectory = Split-Path -Path $MyInvocation.MyCommand.Definition -Parent

$scriptPath = Join-Path $scriptDirectory "RemoteAccessDeployment.ps1"

& $scriptPath -HostbaseUrl $HostbaseUrl -SiteId $SiteId -FarmServers $FarmServers -StoreVirtualPath $StoreVirtualPath -Farmtype $Farmtype `

    -LoadbalanceServers $LoadbalanceServers -Port $Port  -SSLRelayPort $SSLRelayPort -TransportType $TransportType `

    -GatewayUrl $GatewayUrl -GatewayCallbackUrl $GatewayCallbackUrl -GatewaySTAUrls $GatewaySTAUrls -GatewayName $GatewayName

  • Obtiene el servicio de tienda para usarlo con el sitio de Desktop Appliance. Use el cmdlet Add-STFDesktopApplianceService para agregar el nuevo sitio con autenticación explícita de nombre de usuario y contraseña y hacerlo un sitio multiescritorio.

$store = Get-STFStoreService -VirtualPath $StoreVirtualPath

# Crear un nuevo sitio de Desktop Appliance con los escritorios publicados por el servicio de tienda

Add-STFDesktopApplianceService -VirtualPath $desktopApplianceVirtualPath -StoreService $store -EnableExplicit

Ejemplo: Intercambio de metadatos entre el proveedor de identidades y el proveedor de servicios (StoreFront) para la autenticación SAML

La autenticación SAML se puede configurar en la consola de administración de StoreFront (consulte Configuración del servicio de autenticación) o usando los cmdlets de PowerShell siguientes: Export-STFSamlEncryptionCertificate, Export-STFSamlSigningCertificate, Import-STFSamlEncryptionCertificate, Import-STFSamlSigningCertificate, New-STFSamlEncryptionCertificate, New-STFSamlIdPCertificate, New-STFSamlSigningCertificate.

Puede usar el cmdlet Update-STFSamlIdPFromMetadata, para intercambiar metadatos (identificadores, certificados, dispositivos de punto final y otro tipo de configuración) entre el proveedor de identidades y el proveedor de servicios, que es StoreFront en este caso.

Para una tienda de StoreFront, llamado "Store", con su servicio de autenticación dedicado, el punto final de metadatos será:

https:///Citrix/StoreAuth/SamlForms/ServiceProvider/Metadata

Si el proveedor de identidades es compatible con la importación de metadatos, puede apuntar a la URL anterior. Nota: Esto debe llevarse a cabo a través de HTTPS.

Para que StoreFront consuma los metadatos de un proveedor de identidades, se puede utilizar el siguiente comando de PowerShell:

comando Copiar

Get-Module "Citrix.StoreFront*" -ListAvailable | Import-Module

 

# Remember to change this with the virtual path of your Store.

$StoreVirtualPath = "/Citrix/Store"

 

$store = Get-STFStoreService -VirtualPath $StoreVirtualPath

$auth = Get-STFAuthenticationService -StoreService $store

 

# To read the metadata directly from the Identity Provider, use the following:

# Note again this is only allowed for https endpoints

Update-STFSamlIdPFromMetadata -AuthenticationService $auth -Url https://example.com/FederationMetadata/2007-06/FederationMetadata.xml

 

# If the metadata has already been download, use the following:

# Note: Ensure that the file is encoded as UTF-8

Update-STFSamlIdPFromMetadata -AuthenticationService $auth -FilePath "C:\Users\exampleusername\Downloads\FederationMetadata.xml"

Ejemplo: Listar los metadatos y los puntos finales de ACS para una tienda especificada para la autenticación SAML

Se puede utilizar el siguiente script para crear una lista de los puntos finales ACS (Assertion Consumer Service) y los metadatos para una tienda específicada.

comando Copiar

# Change this value for your Store

$storeVirtualPath = "/Citrix/Store"

 

$auth = Get-STFAuthenticationService -Store (Get-STFStoreService -VirtualPath $storeVirtualPath)

$spId = $auth.AuthenticationSettings["samlForms"].SamlSettings.ServiceProvider.Uri.AbsoluteUri

$acs = New-Object System.Uri $auth.Routing.HostbaseUrl, ($auth.VirtualPath + "/SamlForms/AssertionConsumerService")

$md = New-Object System.Uri $auth.Routing.HostbaseUrl, ($auth.VirtualPath + "/SamlForms/ServiceProvider/Metadata")

$samlTest = New-Object System.Uri $auth.Routing.HostbaseUrl, ($auth.VirtualPath + "/SamlTest")

Write-Host "SAML Service Provider information:

Service Provider ID: $spId

Assertion Consumer Service: $acs

Metadata: $md

Test Page: $samlTest"

Ejemplo de resultado

comando Copiar

SAML Service Provider information:

Service Provider ID: https://storefront.example.com/Citrix/StoreAuth

Assertion Consumer Service: https://storefront.example.com/Citrix/StoreAuth/SamlForms/AssertionConsumerService

Metadata: https://storefront.example.com/Citrix/StoreAuth/SamlForms/ServiceProvider/Metadata

Test Page: https://storefront.example.com/Citrix/StoreAuth/SamlTest