Manual Chapter :
Integrating APM with Citrix XML Brokers
Applies To:
Show VersionsBIG-IP APM
- 17.0.0, 16.1.0, 16.0.1, 16.0.0, 15.1.0
Integrating APM with Citrix XML Brokers
Overview: Integrating APM with Citrix XML Brokers with SmartAccess support
In this implementation, you integrate Access Policy Manager
®
(APM®
)
with Citrix XML Brokers and present Citrix published applications on an APM dynamic
webtop.APM integration with Citrix XML Brokers
- A user (client browser or Citrix Receiver) requests access to applications.
- The virtual server starts an access policy that performs authentication and sets SmartAccess filters.
- The virtual server sends the authenticated request and filters to a Citrix XML Broker.
- An XML Broker returns a list of allowed applications to the external virtual server.
- The virtual server renders and displays the user interface to the client on an Access Policy Manager webtop.
Supported authentication
For Citrix Receiver Windows and Linux clients: only Active Directory authentication
is supported.
For Citrix Receiver clients for iOS, Android, and Mac: Active Directory, or both RSA
and Active Directory authentication is supported.
For web clients, you are not restricted in the type of authentication you use.
About APM dynamic webtop for Citrix XML Brokers
A dynamic webtop enables Access Policy Manager
®
(APM®
) to act
as a presentation layer for Citrix published resources. APM communicates directly
with Citrix XML Brokers, retrieves a list of published resources, and displays them
to the user on a dynamic webtop.The addresses of XML Brokers are configured in pools on APM. A pool includes
addresses from one Citrix farm. You specify a pool as a destination in a Citrix
remote desktop resource. Each resource logically represents a Citrix farm. You can
assign multiple resources to a user, enabling the user to access Citrix applications
from multiple Citrix farms.
About Client Type
The Client Type action determines whether the client is using a full browser, the
BIG-IP
®
Edge Client, or another client to access the Access Policy
Manager®
(APM®
). This action makes it possible to specify
different actions for different client types in one access policy and, as a result,
to use one virtual server for traffic from different client types. This figure shows
the Client Type action as it looks when first added to an access policy.Client Type
By default, the Client Type action includes these branches:
- Edge Portal
- Indicates that the user is connecting with the BIG-IP®Edge Portal®mobile app.
- Edge Client
- Indicates that the user is connecting with the BIG-IP®Edge Client®or BIG-IP Edge Client app, supported on multiple devices and operating systems.
- Citrix Receiver
- Indicates that the user is connecting using a later Citrix Receiver client.
- Citrix Receiver (legacy)
- Indicates that the user is connecting using an earlier Citrix Receiver client (identified with PN Agent).
- VMware View
- Indicates that the user is connecting using a VMware Horizon View client.
- Full or Mobile Browser
- Indicates the user is connecting with a Windows web browser or a mobile browser.
- Windows Inbox F5 VPN Client
- Indicates the user is connecting using the Windows Inbox F5 VPN client.
- fallback
- Indicates the user is connecting with another method.
APM supports the client types on multiple operating systems. Refer to AskF5™
(support.f5.com) to look up the supported operating systems and versions in the
compatibility matrix for your version of APM.
Note: To create additional branching for a client type based on operating system, you
can add a client operating system (Client OS) action on the client type branch.
About Citrix client bundles in APM
A Citrix client bundle enables delivery of a Citrix Receiver client to a user's
Windows computer when a client is not currently installed, or when a newer client is
available. Access Policy Manager
®
(APM®
) detects whether the
Citrix Receiver client is present and redirects users to a download URL, or
downloads a Citrix Receiver client that you have uploaded.In Access Policy Manager, you specify the Citrix client bundle in a connectivity
profile. By default, a connectivity profile includes the default Citrix bundle,
/Common/default-citrix-client-bundle, which contains a download URL,
receiver.citrix.com.
Note: You can upload Citrix Receiver clients from the Application Access area of
Access Policy Manager.
About APM SSO support for Citrix clients
Access Policy Manager
®
(APM®
) supports two single sign-on
options for Citrix that provide password-less authentication:- Kerberos - Supports any kind of password-less authentication on APM: SmartCard, RSA PIN, client SSL certificate, and so on. Citrix supports Kerberos only for XenApp.
- SmartCard - Citrix supports SmartCard for XenDesktop. Citrix also supports SmartCard for XenApp.Note: When using SmartCard with XenApp, a user is prompted for a SmartCard PIN twice: once when logging in to APM and again when starting a Citrix application.
These options work in APM only when:
- Citrix is configured to support SmartCard SSO (with Kerberos) or SmartCard.
- Citrix requirements for using SmartCard SSO or SmartCard are met.
About the iApp for Citrix integration with APM
An iApps
®
template is available for configuring Access Policy
Manager®
and Local Traffic Manager™ to integrate with Citrix
applications. The template can be used on the BIG-IP®
system to create an
application service that is capable of performing complex configurations. You can
download the template from the F5®
DevCentral™ iApp Codeshare wiki at
https://devcentral.f5.com/wiki/iApp.Citrix-Applications.ashx. A deployment guide is
also available there.Task summary for XML Broker integration with APM
Ensure that you configure the Citrix components in the Citrix environment, in
addition to configuring the BIG-IP
®
system to integrate with Citrix XML
Brokers.Perform these tasks on the BIG-IP system so that Access Policy Manager
®
can
present Citrix published resources on a dynamic webtop.Task List
Creating a pool of Citrix XML Brokers
Create one pool of XML Brokers for each Citrix farm that you want to support.
- On the Main tab, clickLocal Traffic>Pools.The Pool List screen opens.
- ClickCreate.The New Pool screen opens.
- In theNamefield, type a unique name for the pool.
- In the Resources area, using theNew Memberssetting, add each resource that you want to include in the pool:
- Either type an IP address in theAddressfield, or select a preexisting node address from theNode List.
- If access to the XML Broker is through SSL, in theService Portfield, type443or selectHTTPSfrom the list; otherwise, type80or selectHTTPfrom the list.
- ClickAdd.
- ClickFinished.
The new pool appears in the Pools list.
Configuring a Citrix remote desktop resource
Create one Citrix remote desktop resource for each Citrix farm that you want to
support.
- On the Main tab, clickAccess Policy>Application Access>Remote Desktops>Remote Desktops List.The Remote Desktops list opens.
- ClickCreate.The New Resource screen opens.
- Type a name for the remote desktop resource.
- For theTypesetting, retain the defaultCitrix.
- For theDestinationsetting, selectPooland select the pool that you created previously.
- In the Single Sign-On area, select theEnable SSOcheck box for single sign-on to a Citrix XML Broker after logging in to Access Policy Manager®(APM®).
- From theSSO Methodlist, select the type of single sign-on to use, either Password-based, Kerberos, SmartCard, or Anonymous.The Kerberos and SmartCard options enable password-less authentication. You cannot use either of them successfully unless Citrix is configured for SmartCard SSO (Kerberos) or SmartCard.The fields that are displayed vary based on this selection.
- In theUsername Sourcefield, accept the default or type the session variable to use as the source for the SSO user name.
- In thePassword Sourcefield, accept the default or type the session variable to use as the source for the SSO user password.
- In theDomain Sourcefield, accept the default or type the session variable to use as the source for the SSO user domain.
- From theKerberos SSOlist, select a Kerberos SSO configuration that has already been configured.
- In the Customization Settings for language_name area, type aCaption.The caption is the display name of the Citrix resource on the APM webtop.
- ClickFinished.All other parameters are optional.
This creates the Citrix remote desktop resource.
Configuring a dynamic webtop
A dynamic
webtop allows you to see a variety of resources protected by Access Policy
Manager
®
, including Citrix Published Applications.
- On the Main tab, clickAccess Policy>Webtops.The Webtops screen displays.
- ClickCreate.The New Webtop screen opens.
- In theNamefield, type a name for the webtop.
- From theTypelist, selectFull.The Configuration area displays with additional settings configured at default values.
- ClickFinished.
The webtop is now configured, and appears in the webtop list.
Creating an access policy for Citrix SSO (APM dynamic webtop)
Before you can create an access policy for Citrix single sign-on (SSO), you must meet
these requirements:
- Configure the appropriate AAA servers to use for authentication.An Active Directory AAA server must include the IP address of the domain controller and the FQDN of the Windows domain name. If anonymous binding to Active Directory is not allowed in your environment, you must provide the admin name and password for the Active Directory AAA server.
- Create an access profile using default settings.
You configure an access policy to authenticate a user and enable single sign-on (SSO)
to Citrix published resources.
APM
®
supports
different types of authentication depending on the client type. This access
policy shows how to use the Client Type action to configure authentication for
legacy Citrix Receiver clients (Windows and Linux), and later Citrix Receiver
clients (iOS, Mac, and Android) in the same access policy.- On the Main tab, clickAccess Policy>Access Profiles.The Access Profiles List screen opens.
- In the Access Policy column, click theEditlink for the access profile you want to configure.The visual policy editor opens the access policy in a separate screen.
- Click the(+)icon anywhere in the access policy to add a new action item.Note:Only an applicable subset of access policy items is available for selection in the visual policy editor for any access profile type.A popup screen opens, listing predefined actions on tabs such as General Purpose, Authentication, and so on.
- Typeclientin the search field, and selectClient Typefrom the results.A properties screen displays.
- ClickSave.
- On the properties screen, on the Logon tab, select an access policy as appropriate:
- Logon Page: Specify this if you allow one-factor password authentication with a single logon prompt containing one password field.
- Citrix Logon Prompt: Specify this if you allow two-factor password authentication with a single logon prompt containing two password fields.
- ClickSave.The properties screen closes, and the Client Type action and Logon action displays in the visual policy editor.
- To configure actions for Citrix Receiver for Windows and Linux clients, perform these substeps.Note:Citrix Receiver for Windows version 3.4 and later, and Citrix Receiver for Linux, version 13 and later, support Active Directory authentication only.
- Click the (+) icon on the Citrix Receiver (legacy) branch after the Client Type action.
- On the Logon tab, select eitherLogon PageorCitrix Logon Prompt, and clickAdd Item.A properties screen displays. The default page settings are acceptable.
- ClickSave.
- After the Logon Page action, add an SSO Credential Mapping action with default settings.
- After the SSO Credential Mapping action, click the (+) icon.
- Typevarinto the search field, selectVariable Assignfrom the results, and clickAdd Item.Use the Variable Assign action to pass the domain name for the Citrix remote desktop resource so that a user is not repeatedly queried for it.A properties screen opens.
- ClickAdd new entry.Anemptyentry appears in the Assignment table.
- Click thechangelink next to the empty entry.A dialog box opens, where you can enter a variable and an expression.
- From the left-side list, retain theCustom Variablesetting, and typesession.logon.last.domain.
- From the right-side list, retain theCustom Expressionsetting, and typeexpr {"example.com"}to assign the domain name for the Citrix remote desktop resource (whereexample.comis the domain name of the resource).The Citrix remote desktop resource equates to an XML Broker that is selected from a pool.
- ClickFinished.
- ClickSave.
- After the previous action, click theDenyending, and select theAllowending.
- To configure actions for Citrix Receiver for iOS, Android, and Mac, complete the remaining steps.Citrix Receiver for iOS, Android, and Mac, support both RSA SecurID and AD Auth authentication. This example shows how to use both.
- After the Client Type action, on the Citrix Receiver branch, click the (+) icon.
- On the Logon tab, select eitherLogon Page, and clickAdd Item.
- Customize the Logon Page to accept an RSA token and an Active Directory password:
- In row 2: From theTypelist, selectpassword; in thePost Variable Namefield, typepassword1; in theSession Variable Namefield, typepassword1.APM stores the text that a user types into this field in the session.logon.last.password1 session variable.You have added another password field to the logon page.
- InLogin Page Input Field #2, typePassword.You replaced the existing prompt for the first password field.
- InLogin Page Input Field #3, typePasscode.You provided a prompt for the second password field.
- To add RSA SecurID authentication, click the plus (+) icon betweenLogon PageandDeny:
- Typersain the search field, selectRSA SecurIDfrom the results, and clickAdd Item.
- From theServerlist, select the AAA RSA SecurID server that you created previously and clickSave.The properties screen closes.
- After the RSA SecurID action, add a Variable Assign action.Use the Variable Assign action to move the AD password into the session.logon.last.password session variable; the authentication agent requires this.A Variable Assign properties page opens.
- ClickAdd new entry.Anemptyentry appears in the Assignment table.
- Click thechangelink next to the empty entry.A dialog box opens, where you can enter a variable and an expression.
- From the left-side list, retain theCustom Variablesetting, and typesession.logon.last.password.
- From the right-side list, retain theCustom Expressionsetting, and typeexpr { "[mcget -secure session.logon.last.password1]" }. For two-factor authentication, typeexpr {[mcget {session.logon.last.password1}]}.
- ClickFinishedto save the variable and expression, and return to the Variable Assign action screen.
- ClickSave.
- After the previous action, add an AD Auth action and configure properties for it:
- From theAAA Serverlist, select the AAA server that you created previously.
- If you are using Android Citrix receiver with a disabled session ID rotation in APM, you must setMax Logon Attemptsto1.
- Configure the rest of the properties as applicable to your configuration, and clickSave.
- Click the Add Item (+) icon betweenAD AuthandDeny.
- On the Assignment tab, selectSSO Credential Mapping, and clickAdd Item.
- ClickSave.
- Add a Variable Assign action after the SSO Credential Mapping action.Use the Variable Assign action to pass the domain name for an XML Broker so that a user is not repeatedly queried for it.
- ClickAdd new entry.Anemptyentry appears in the Assignment table.
- Click thechangelink next to the empty entry.A dialog box opens, where you can enter a variable and an expression.
- From the left-side list, selectCustom Variable(the default), and typesession.logon.last.domain.
- From the right-side list, selectCustom Expression(the default), and type an expressionexpr {"example.com"}.
- ClickFinishedto save the variable and expression, and return to the Variable Assign action screen.
- On the fallback path between the last action andDeny, clickDeny, and then clickAllowandSave.The access policy branch for the Citrix Receiver client type is complete.
- Click theApply Access Policylink to apply and activate the changes to the access policy.
- ClickClose.
You should have an access policy that contains actions for both Citrix Receiver
client types.
Example access policy for legacy Citrix Receiver clients and later Citrix Receiver
clients
To apply this access policy to network traffic, add the access profile to a virtual
server.
To ensure that logging is configured to meet
your requirements, verify the log settings for the access profile.
Assigning Citrix resources to an access policy for Citrix integration
Before you assign Citrix resources to an access policy for integration, create or
select an access profile, and open the associated access policy for edit.Assign the
webtop and Citrix remote desktop resources that you configured to a session so that
XML Brokers associated with the resources can return the appropriate published
resources for display on the webtop.
This access policy
shows how to use the Advanced Resource Assign action item to assign the
resources. Alternatively, you can use the Resource Assign and Webtop, Links and
Sections Assign action items.
- Click the(+)icon anywhere in the access policy to add a new action item.Note:Only an applicable subset of access policy items is available for selection in the visual policy editor for any access profile type.A popup screen opens, listing predefined actions on tabs such as General Purpose, Authentication, and so on.
- On the Assignment tab, selectAdvanced Resource Assignand clickAdd Item.The properties screen opens.
- ClickAdd new entry.AnEmptyentry displays.
- Click theAdd/Deletelink below the entry.The screen changes to display resources that you can add and delete.
- Select the Remote Desktop tab.A list of remote desktop resources is displayed.
- Select Citrix remote desktop resources and clickUpdate.You are returned to the properties screen where Remote Desktop and the names of the selected resources are displayed.
- ClickAdd new entry.AnEmptyentry displays.
- Click theAdd/Deletelink below the entry.The screen changes to display resources that you can add and delete.
- Select the Webtop tab.A list of webtops is displayed.
- Select a webtop and clickUpdate.The screen changes to display properties and the name of the selected webtop is displayed.
- SelectSaveto save any changes and return to the access policy.
Citrix remote desktop resource and an Access Policy Manager
®
(APM®
) dynamic webtop, are now assigned to the session.Adding Citrix Smart Access actions to an access policy
To perform this task, first select the access profile you created previously, and
open the associated access policy for edit.You can set one or more filters per
Citrix Smart Access action. If you include multiple Citrix Smart Access actions in
an access policy, Access Policy Manager accumulates the SmartAccess filters that are
set throughout the access policy operation.
- Click the(+) icon anywhere in your access profile to which you want to add the Citrix Smart Access action item.The Add Item screen opens.
- FromGeneral Purpose, selectCitrix Smart Accessand clickAdd Item.The Variable Assign: Citrix Smart Access properties screen opens.
- Type the name of a Citrix SmartAccess filter in the open row under Assignment.A filter can be any string. Filters are not hardcoded, but must match filters that are configured in the XenApp™ server for application access control or a user policy.In the XenApp server, you must specifyAPMas the Access Gateway farm when you configure filters.
- To add another filter, clickAdd entryand type the name of a Citrix filter in the open row under Assignment.
- When you are done adding filters, clickSaveto return to the Access Policy.
- Click theApply Access Policylink to apply and activate the changes to the access policy.
To apply this access policy to network traffic, add the access profile to a virtual
server.
To ensure that logging is configured to meet
your requirements, verify the log settings for the access profile.
Example access policy with Citrix SmartAccess filters
Here is a typical example access policy that uses Citrix SmartAccess filters to
restrict access to published applications based on the result of client inspection.
Client inspection can be as simple as IP Geolocation Match or Antivirus. The figure
shows an access policy being configured with a Citrix Smart Access action to set a
filter to
antivirus
after an antivirus check is
successful.Example access policy with Citrix SmartAccess action and an antivirus check
Verifying log settings for the access profile
Confirm that the correct log settings are selected for the access profile to ensure
that events are logged as you intend.
Log settings are
configured in the Access Policy Event Logs area of the product. They enable and
disable logging for access system and URL request filtering events. Log settings
also specify log publishers that send log messages to specified destinations.
- On the Main tab, clickAccess Policy>Access Profiles.The Access Profiles List screen opens.
- Click the name of the access profile that you want to edit.The properties screen opens.
- On the menu bar, clickLogs.The access profile log settings display.
- Move log settings between theAvailableandSelectedlists.You can assign up to three log settings that enable access system logging to an access profile. You can assign additional log settings to an access profile provided that they enable logging for URl request logging only.Note:Logging is disabled when theSelectedlist is empty.
- ClickUpdate.
An access profile is in effect when it is assigned to a virtual server.
Adding a connectivity profile
Create a connectivity profile to configure client connections for Citrix remote
access.
Note:
A Citrix client bundle provides an installable Citrix
Receiver client. The default parent connectivity profile includes a default Citrix
client bundle.- On the Main tab, clickAccess Policy>Secure Connectivity.A list of connectivity profiles displays.
- ClickAdd.The Create New Connectivity Profile popup screen opens and displays General Settings.
- Type aProfile Namefor the connectivity profile.
- From theParent Profilelist, select the default profile,connectivity.
- To use a Citrix bundle that you have configured, selectCitrix Client Settingsfrom the left pane and select the bundle from theCitrix Client Bundlelist in the right pane.The default Citrix client bundle is included if you do not perform this step.
- ClickOK.The popup screen closes, and the Connectivity Profile List displays.
The connectivity profile appears in the Connectivity Profile List.
Adding Citrix Receiver for HTML5 to a connectivity profile
Download the Citrix Receiver for HTML5 from the Citrix website.You add Citrix
Receiver for HTML5 to a Citrix bundle and add the bundle to a connectivity profile
so that APM
®
can deliver Citrix Receiver for HTML5 to clients.- From the command line, typemsiexec /a filepath to MSI file /qb TARGETDIR=filepath to target folder.
- On the Main tab, clickAccess Policy>Application Access>Remote Desktops>Citrix Client Bundles.
- In theNamefield, type a name that includeshtml5.
- From theSourcelist, selectWindows Package File.
- ClickChoose Fileand upload the file ./Citrix/HTML5 Management/HTML5Client.zip.
- On the Main tab, clickAccess Policy>Secure Connectivity.
- Click theConnectivity Profile Listtab.
- Select the connectivity profile you want to update.
- ClickEdit Profile.A popup screen opens.
- ClickCitrix Client Settings.
- From theCitrix Client Bundlelist, select the bundle withhtml5in its name.
- On the Main tab, clickAccess Policy>Hosted Content>Manage Profile Access.
- Click the checkbox next to the Access Profile that is associated with the Citrix Virtual Server.
- ClickOK.
The Citrix Receiver for HTML5 is included in a bundle with a particular connectivity
profile.To provide functionality with a connectivity profile, you must add the
connectivity profile and an access profile to a virtual server.
Creating a virtual server to support Citrix web and mobile clients
This virtual server supports Citrix traffic and responds to web and mobile client
requests.
- On the Main tab, clickLocal Traffic>Virtual Servers.The Virtual Server List screen opens.
- Click theCreatebutton.The New Virtual Server screen opens.
- In theNamefield, type a unique name for the virtual server.
- In theDestination Addressfield, type the IP address for a host virtual server.This field accepts an address in CIDR format (IP address/prefix). However, when you type the complete IP address for a host, you do not need to type a prefix after the address.
- In theService Portfield, type443or selectHTTPSfrom the list.
- From theConfigurationlist, selectAdvanced.
- For theSSL Profile (Client)setting, from theAvailablelist, select an SSL profile with an SSL certificate that the clients trust, and use the Move button to move the name to theSelectedlist.
- If access to XML Brokers requires SSL, then for the SSL Profile (Server) setting, select an SSL profile.
- From theSource Address Translationlist, selectAuto Map.
- In the Access Policy area, from theAccess Profilelist, select the access profile that you configured earlier.
- In the Access Policy area, from theConnectivity Profilelist, select the connectivity profile.
- From theVDI Profilelist, select a VDI profile.You can select the default profile,vdi.
- ClickFinished.
The access policy is now associated with the virtual server.
Overview: Giving APM users time to enter a Smart Card PIN
If you have configured Access Policy Manager
®
for smart card authentication
and your users cannot enter a PIN before the SSL handshake times out, they can
experience problems such as browser failure or errors because the BIG-IP®
system sends a TCP reset after the SSL handshake times out. You can mitigate this
problem by increasing the handshake timeout in the client SSL profile.Updating the handshake timeout in a Client SSL profile
By default, a client SSL profile provides a 10-second SSL handshake timeout. You
might need to modify the timeout to give users more or less time for the SSL
handshake to complete.
- On the Main tab, clickLocal Traffic>Profiles>SSL>Client.The Client profile list screen opens.
- In the Name column, click the name of the profile you want to modify.
- From theConfigurationlist, selectAdvanced.
- Scroll down toHandshake Timeoutand select theCustomcheck box.Additional settings become available.
- To limit the timeout to a number of seconds, selectSpecifyfrom the list, and type the desired number in thesecondsfield.In the list, the valueIndefinitespecifies that the system continue trying to establish a connection for an unlimited time. If you selectIndefinite, thesecondsfield is no longer available.
- ClickUpdate.