Hallo zusammen
Im letzten Artikel ging ich auf die Zuweisung von Session Policies an Gruppen innerhalb NetScaler Gateway ein. Auch wenn dieser dem einen oder anderen Leser vielleicht sehr banal vorkam, so wird dies in Kursen und im Support öfter mal angefragt.
In diesem Artikel wollen wir uns die Möglichkeiten anschauen, Authorization Policies des AAA Features aufgrund Gruppenmitgliedschaften ausführen zu lassen.
Zwar gibt es verlockenderweise auch Gruppen und Benutzer:
Und man erhält sogar die Option um Authorization Policies zuzuweisen, jedoch wird man bald an einer Fehlermeldung scheitern :-(
Somit ist diese Möglichkeit leider eben deren keine.
Wir müssen also auf eine andere Variante zurückgreifen und zwar auf die Expressions. Bevor ich diese genauer erläutere, bauen wir uns erst ein Szenario:
Gehen wir davon aus, dass wir einen bestimmten Backendservice mittels LB bereitstellen und zusätzlich mittels AAA (ohne SSO) absichern wollen.
Die Anmeldung erfolgt via LDAP und die Gruppen werden entsprechend ermittelt.
Die Gruppe G_PIT_Backend soll Zugriff erhalten, während den restlichen Benutzer der Zugriff verweigert werden soll.
Als erstes erstellen wir die LDAP Server und Policy inkl. Ermittlung der Gruppen:
add authentication ldapAction ldap-srv-PIT -serverIP 192.168.100.50 -serverPort 389 -ldapBase "dc=domain,dc=pit" -ldapBindDn svcldap@domain.pit -ldapBindDnPassword Password1 -ldapLoginName sAMAccountName -groupAttrName memberOf -subAttributeName cn add authentication ldapPolicy ldap-pol-PIT ns_true ldap-srv-PIT
Im weiteren Schritt wird der AAA vServer für die spätere Authentifizierung erstellt:
add authentication vserver aaa-vsrv-aaa.domain.pit SSL 192.168.200.50 443 bind authentication vserver aaa-vsrv-aaa.domain.pit -policy ldap-pol-PIT -priority 100 bind ssl vserver aaa-vsrv-aaa.domain.pit -certkeyName aaa.domain.pit
Nun können wir wie gewohnt unseren Backendservice mittels LB bereitstellen, jedoch zusätzlich den AAA vServer zur Authentifizierung hinzufügen:
add server INTRANET01 192.168.100.81 add server INTRANET02 192.168.100.82 add service svc-https-intranet01 INTRANET01 SSL 443 add service svc-https-intranet02 INTRANET02 SSL 443 add lb vserver lb-vsrv-intranet.domain.pit SSL 192.168.200.80 443 -persistenceType COOKIEINSERT -persistenceBackup SOURCEIP -AuthenticationHost aaa.domain.pit -Authentication ON -authnVsName aaa-vsrv-aaa.domain.pit bind lb vserver lb-vsrv-intranet.domain.pit svc-https-intranet01 bind lb vserver lb-vsrv-intranet.domain.pit svc-https-intranet02 bind lb vserver lb-vsrv-intranet.domain.pit -certkeyName intranet.domain.pit
Nach einem ersten Test stellen wir nun fest, dass die Authentifizierung funktioniert. Jedoch erhält aktuell noch jeder Benutzer Zugriff ins Backend.
Um die Zugriffe ins Backend zu steuern erstellen wir nun zwei Authorization Policies, wobei die eine alles sperrt und die andere den Zugriff für unsere Gruppe gewährt:
add authorization policy DenyAll HTTP.REQ.IS_VALID DENY add authorization policy IntranetBackendAllow "HTTP.REQ.USER.IS_MEMBER_OF(\"G_PIT_Backend\")" ALLOW
Diese Policies müssen wir nun noch in der richtigen (!) Priorität dem vorhin erstellen LB vServer zuweisen:
bind lb vserver LB-vsrv-intranet.domain.pit -policyName IntranetBackendAllow -priority 100 -gotoPriorityExpression END -type REQUEST bind lb vserver LB-vsrv-intranet.domain.pit -policyName DenyAll -priority 200 -gotoPriorityExpression END -type REQUEST
Ab jetzt erhalten nur noch die Mitglieder unserer definierten Gruppe den Zugriff ins Backend.
Viel Erfolg beim Nachbauen. :-)
Skript: NS-ResToGroup2
1 Gedanke zu „NetScaler Ressourcenzuweisung an Gruppen – Teil II“
Kommentare sind geschlossen.