{"id":218,"date":"2024-05-27T10:20:00","date_gmt":"2024-05-27T08:20:00","guid":{"rendered":"https:\/\/blog.comping.fi\/?p=218"},"modified":"2024-09-23T16:26:01","modified_gmt":"2024-09-23T14:26:01","slug":"netscaler-basic-on-prem-authentication","status":"publish","type":"post","link":"https:\/\/blog.comping.fi\/?p=218","title":{"rendered":"NetScaler Basic on-prem authentication"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">As promised; here&#8217;s the first one of the three real-life authentication examples. I will post the next one tomorrow and the final one the day after tomorrow.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Overview<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">In this use case the NetScaler acts as a load balancer (aka reverse web proxy) for the web front end servers, but also enables the authenticate, authorize and audit (AAA-TM) feature (<a href=\"https:\/\/docs.netscaler.com\/en-us\/citrix-adc\/current-release\/aaa-tm\">NetScaler Docs<\/a>). For the on-premises the LDAP authentication capability is used either with SSO and authorization or without.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">AAA processing<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">This example is applicable for sessions established from the internal networks or VPN clients.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"578\" src=\"https:\/\/blog.comping.fi\/wp-content\/uploads\/2024\/05\/Load-Balancing-with-basic-on-prem-authentication-1024x578.jpg\" alt=\"\" class=\"wp-image-219\" srcset=\"https:\/\/blog.comping.fi\/wp-content\/uploads\/2024\/05\/Load-Balancing-with-basic-on-prem-authentication-1024x578.jpg 1024w, https:\/\/blog.comping.fi\/wp-content\/uploads\/2024\/05\/Load-Balancing-with-basic-on-prem-authentication-300x169.jpg 300w, https:\/\/blog.comping.fi\/wp-content\/uploads\/2024\/05\/Load-Balancing-with-basic-on-prem-authentication.jpg 2031w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<ol class=\"wp-block-list\" start=\"1\">\n<li>User initiates a connection to https:\/\/service.my.domain\/production\/prod-system.html (if needed, the NetScaler can redirect user from the root path to the proper URL path)<\/li>\n\n\n\n<li>As the session was unauthenticated, the NetScaler AAA-TM redirects the user to the NetScaler authentication form page \/logon\/LogonPoint\/tmindex.html (in this example a shared host name is used for the authentication services)<\/li>\n\n\n\n<li>The browser requests \/logon\/LogonPoint\/tmindex.html<\/li>\n\n\n\n<li>Authentication form or 401 challenge is presented<\/li>\n\n\n\n<li>User enters credentials (or automatically SSO using Negotiate\/Kerberos for example)<\/li>\n\n\n\n<li>After a successful authentication and LDAP bind the group membership for the user is queried<\/li>\n\n\n\n<li>A list of groups is collected from LDAP<\/li>\n\n\n\n<li>Successful authentication adds the authentication cookie (NSC_AAAC) for the user session and redirects the session back to the original URL<\/li>\n\n\n\n<li>The original URL is requested with the authentication cookie<\/li>\n\n\n\n<li>The load balancing vServer proxies the traffic to the web front (optionally checks for AD group-based authorization), SSO is possible with the given credentials or configuring the NetScaler AAA as an IdP (for SAML or OIC\/OAuth2)<\/li>\n\n\n\n<li>A session is established from the NetScaler to the backend<\/li>\n\n\n\n<li>An authenticated (and optionally authorized) session is established<\/li>\n<\/ol>\n\n\n\n<h3 class=\"wp-block-heading\">Summary<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">This answers to the questions discussed in earlier posts <a href=\"https:\/\/blog.comping.fi\/?p=67\">Security basics, part 2 \u2013 Who?<\/a> and <a href=\"https:\/\/blog.comping.fi\/?p=91\">Security basics, part 3 \u2013 Where?<\/a>. It all comes down to a common thread, but a bit more technical angle this time.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Followup<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Next one is out tomorrow<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">In the next post we&#8217;ll discuss publishing a resource to the internet and authenticating it using Microsoft Entra ID (or similar).<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">A real head scratcher?<\/h3>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-7387b849 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:66.66%\">\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"768\" src=\"https:\/\/blog.comping.fi\/wp-content\/uploads\/2024\/05\/NetScaler-keychain-1024x768.jpg\" alt=\"\" class=\"wp-image-225\" srcset=\"https:\/\/blog.comping.fi\/wp-content\/uploads\/2024\/05\/NetScaler-keychain-1024x768.jpg 1024w, https:\/\/blog.comping.fi\/wp-content\/uploads\/2024\/05\/NetScaler-keychain-300x225.jpg 300w, https:\/\/blog.comping.fi\/wp-content\/uploads\/2024\/05\/NetScaler-keychain.jpg 1244w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:33.33%\">\n<p class=\"wp-block-paragraph\">Would you find this useful in your environment?<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Don&#8217;t hesitate to contact me, the address is <a href=\"mailto:kari.ruissalo@comping.fi\">kari.ruissalo@comping.fi<\/a>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">I have NetScaler key-chain after all so I must know something about this!<\/p>\n<\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>As promised; here&#8217;s the first one of the three real-life authentication examples. I will post the next one tomorrow and the final one the day after tomorrow. Overview In this use case the NetScaler acts as a load balancer (aka reverse web proxy) for the web front end servers, but also enables the authenticate, authorize <a href=\"https:\/\/blog.comping.fi\/?p=218\" class=\"more-link\">&#8230;<span class=\"screen-reader-text\">  NetScaler Basic on-prem authentication<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"inline_featured_image":false,"footnotes":""},"categories":[5,6,4],"tags":[17,18,7],"class_list":["post-218","post","type-post","status-publish","format-standard","hentry","category-identity","category-netscaler","category-security","tag-basic-authentication","tag-ldap","tag-netscaler"],"_links":{"self":[{"href":"https:\/\/blog.comping.fi\/index.php?rest_route=\/wp\/v2\/posts\/218","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.comping.fi\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.comping.fi\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.comping.fi\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.comping.fi\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=218"}],"version-history":[{"count":7,"href":"https:\/\/blog.comping.fi\/index.php?rest_route=\/wp\/v2\/posts\/218\/revisions"}],"predecessor-version":[{"id":229,"href":"https:\/\/blog.comping.fi\/index.php?rest_route=\/wp\/v2\/posts\/218\/revisions\/229"}],"wp:attachment":[{"href":"https:\/\/blog.comping.fi\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=218"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.comping.fi\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=218"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.comping.fi\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=218"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}