Mit dem Release 13.0 (vermutlich Q2 2019) werden voraussichtlich am Citrix ADC die seit Version 12.0.41.16 bzw. 12.0.56.20 veralteten Classic Policies entfernt und durch Advanced Policies ersetzt.
Getreu dem Motto „Was du heute kannst besorgen, schiebe gleich auf Morgen!“, ach nein, „Wenn nicht jetzt, wann dann?“ geht es heute einmal darum, am eigenen Citrix Application Delivery Controller die deprecated Classic Policies, soweit es geht, durch die Advanced Policies zu ersetzen. Glücklicherweise stellt Citrix dafür das CLI Tool „nspepi“ bereit. Als erstes mal ein kleiner Überblick, was denn alles an Klassik verschwindet (CTX234821):
- Classic Named (policy) expression
- Application Firewall Classic policy
- Compression Classic policy
- Classic Cache Redirection policy
- Content Switching Classic policy
- SSL Classic policy
- Classic Audit SYSLOG policy
- Classic Audit NSLOG policy
- Classic AAA Pre-authentication policy
- Classic Authorization policy
- Classic Traffic Management Session policy
- Classic Tunnel Traffic policy
- Classic VPN Traffic policy
- Classic VPN Session policy
- Trace Classic expression
- SYS.EVAL_CLASSIC_EXPR Classic function
Eine Möglichkeit wäre jetzt mit „nspepi“ Expression für Expression von Hand umzustellen:
nspepi -e "REQ.HTTP.HEADER Host CONTAINS 'autodiscover.domain.tld'"
> "HTTP.REQ.HEADER(\"Host\").CONTAINS(\"autodiscover.domain.tld\")"
Um nicht alle Expressions von Hand durchgehen zu müssen, lässt sich „nspepi“ zum Glück auch mit einer kompletten ADC Konfiguration „ns.conf“ befüttern:
cp /nsconfig/ns.conf /var/tmp/ns_classic.conf
nspepi -f /var/tmp/ns_classic.conf
> WARNING: Total number of warnings due to bind commands: 9
> WARNING: Line numbers which has bind command issues: 210, 211, 212, 213, 311, 324, 325, 326, 327
> OUTPUT: New configuration file created: new_ns_classic.conf
> OUTPUT: New warning file created: warn_ns_classic.conf
Derzeit können am Netscaler Gateway / Unified Gateway Advanced Policies nur per nFactor (AAA vServer) und Authentication Profil angebunden werden. Daher habe ich in meinem Fall die „new_ns_classic.conf“ runtergeladen, die vier neuen Policies für meine AAA vServer rausgepickt und im Namen um „_ADV_“ ergänzt. Im nächsten Step wurden dann die an den vServer / global gebundenen Basic Policies entfernt und durch die Advanced Policies ersetzt.
add authentication policy LDAPS_ADV_POL_Exchange -rule "HTTP.REQ.HEADER(\"Host\").CONTAINS(\"outlook.domain.tld\") || HTTP.REQ.HEADER(\"Host\").CONTAINS(\"autodiscover.domain.tld\")" -action LDAPS_SRV_Exchange
add authentication policy LDAPS_ADV_POL_Exchange_UPN -rule "HTTP.REQ.HEADER(\"Host\").CONTAINS(\"outlook.domain.tld\") || HTTP.REQ.HEADER(\"Host\").CONTAINS(\"autodiscover.domain.tld\")" -action LDAPS_SRV_Exchange_UPN
add authentication policy LDAPS_ADV_POL_Exchange_401 -rule TRUE -action LDAPS_SRV_Exchange
add authentication policy LDAPS_ADV_POL_Exchange_UPN_401 -rule TRUE -action LDAPS_SRV_Exchange_UPN
unbind authentication vserver vs_aaa_EXCHANGE_auth_form01 -policy LDAPS_POL_Exchange
unbind authentication vserver vs_aaa_EXCHANGE_auth_form01 -policy LDAPS_POL_Exchange_UPN
unbind authentication vserver vs_aaa_EXCHANGE_auth_basic -policy LDAPS_POL_Exchange_401
unbind authentication vserver vs_aaa_EXCHANGE_auth_basic -policy LDAPS_POL_Exchange_UPN_401
bind authentication vserver vs_aaa_EXCHANGE_auth_form01 -policy LDAPS_ADV_POL_Exchange -priority 100 -gotoPriorityExpression NEXT
bind authentication vserver vs_aaa_EXCHANGE_auth_form01 -policy LDAPS_ADV_POL_Exchange_UPN -priority 110 -gotoPriorityExpression END
bind authentication vserver vs_aaa_EXCHANGE_auth_basic -policy LDAPS_ADV_POL_Exchange_401 -priority 100 -gotoPriorityExpression NEXT
bind authentication vserver vs_aaa_EXCHANGE_auth_basic -policy LDAPS_ADV_POL_Exchange_UPN_401 -priority 110 -gotoPriorityExpression END
Damit das Gateway auch auf die Advanced Policies umgestellt werden kann benötigen wir einen weiteren (nicht adressierbaren) AAA vServer, ein Authentication Profile sowie die passende Advanced Policy. Ebenfalls kan ein Blick in diese beiden Dokumente auch nicht schaden*:
- https://www.citrix.com/content/dam/citrix/en_us/documents/data-sheet/citrix-workspace-app-feature-matrix.pdf
- https://support.citrix.com/article/CTX238946
add authentication policy LDAPS_ADV_POL_UGW -rule TRUE -action LDAPS_SRV_UGW
add authentication policy LDAPS_ADV_POL_UGW_UPN -rule TRUE -action LDAPS_SRV_UGW_UPN
add authentication vserver vs_aaa_UGW SSL 0.0.0.0 -maxLoginAttempts 5 -failedLoginTimeout 10
set ssl vserver vs_aaa_UGW -sslProfile ns_default_ssl_profile_frontend
bind ssl vserver vs_aaa_UGW -certkeyName Gateway_Cert
add authentication authnProfile aaa_auth_prof_UGW -authnVsName vs_aaa_UGW -AuthenticationHost aaa.domain.tld
bind authentication vserver vs_aaa_UGW -policy LDAPS_ADV_POL_UGW -priority 100 -gotoPriorityExpression NEXT
bind authentication vserver vs_aaa_UGW -policy LDAPS_ADV_POL_UGW_UPN -priority 110 -gotoPriorityExpression END
unbind vpn vserver UG_VPN_GN-Gateway -policy LDAPS_POL_UGW
set vpn vserver UG_VPN_GN-Gateway -authnProfile aaa_auth_prof_UGW
Damit der Content Switch vom Unified Gateway eine Verbindung zum soeben erstellten AAA vServer erlaubt, muss die CSW Policy des UGW noch um „|| HTTP.REQ.URL.CONTAINS(„nf/auth“)“ erweitert werden.
set cs policy UG_CSPOL_Gateway -rule "is_vpn_url || HTTP.REQ.URL.PATH.SET_TEXT_MODE(IGNORECASE).STARTSWITH(\"/Citrix\") || HTTP.REQ.URL.CONTAINS(\"nf/auth\")"
P.S.: Obacht.. Damit die Authentifizierung über UPN am ADC Unified Gateway auch am Storefront funktioniert, muss das „SSO Name Attribute“ auf „samAccountName“ konfiguriert werden. Dann validiert der ADC den UPN, holt sich den samAccountName und meldet „sich“ damit am Storefront an.
set authentication ldapAction LDAPS_SRV_UGW_UPN -ssoNameAttribute samAccountName
*) Update 18.07.2020: Das iPhone und iPad bekommen nFactor Support in der Citrix Workspace App for iOS / iPadOS Version 20.7.0:
V3 authentication protocol
V3 authentication represents the third major definition of a logon protocol to Citrix Gateway that is supported by Citrix Workspace App for iOS. It is the standard logon protocol for Citrix Gateway in combination with the Multifactor authentication policy framework.
Multifactor authentication enhances the security of an application by requiring users to provide multiple proofs of identify to gain access. Multifactor authentication makes authentication steps and the associated credential collection forms completely configurable by the administrator.
Native Citrix Workspace app can support this protocol by building on the Forms logon support already implemented for StoreFront. The web logon page for Citrix Gateway and Traffic Manager virtual servers also consume this protocol.
For more information, see SAML Authentication, and Multi-Factor (nFactor) authentication.
https://docs.citrix.com/en-us/citrix-workspace-app-for-ios/whats-new.html
Schreibe einen Kommentar