CINXE.COM

Setup On-Premise IdP | On-Premise Identity Provider

<!-- header--> <!DOCTYPE HTML> <html lang="en"> <head> <meta charset="UTF-8"> <title>Setup On-Premise IdP | On-Premise Identity Provider</title> <meta name="description" content="An On-Premise identity provider (IdP) is a service that stores and verifies user identity. IdP's are cloud-hosted services, often work with single sign-on(SSO) providers to authenticate users. Setup guide is given to set up On-Premise IdP." /> <meta property="og:title" content="Setup On-Premise IdP | On-Premise Identity Provider" /> <meta property="og:type" content="article" /> <meta property="og:url" content="https://www.miniorange.com/iam/on-premise-identity-server/setup-on-premise-identity-provider" /> <meta property="og:image" content="https://www.miniorange.com/images/header/miniorange-og-img.png"/> <meta property="og:description" content="An On-Premise identity provider (IdP) is a service that stores and verifies user identity. IdP's are cloud-hosted services, often work with single sign-on(SSO) providers to authenticate users. Setup guide is given to set up On-Premise IdP." /> <meta name="twitter:card" content="summary" /> <meta name="twitter:title" content="Setup On-Premise IdP | On-Premise Identity Provider" /> <meta name="twitter:description" content="An On-Premise identity provider (IdP) is a service that stores and verifies user identity. IdP's are cloud-hosted services, often work with single sign-on(SSO) providers to authenticate users. Setup guide is given to set up On-Premise IdP." /> <meta name="twitter:image" content="https://www.miniorange.com/images/header/miniorange-og-img.png" /> <meta name="twitter:url" content="https://www.miniorange.com/iam/on-premise-identity-server/setup-on-premise-identity-provider"> <link rel="canonical" href="https://www.miniorange.com/iam/on-premise-identity-server/setup-on-premise-identity-provider" /> <!-- --> <meta name="DC.title" content="miniOrange Identity and Access Management" /> <meta name="geo.region" content="US-CA" /> <meta name="geo.placename" content="San Jose" /> <meta name="geo.position" content="37.279518;-121.867905" /> <meta name="ICBM" content="37.279518, -121.867905" /> <meta name="robots" content="index,follow"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta property="og:image" content="https://www.miniorange.com/images/header/miniorange-og-img.png" /> <meta name="twitter:image" content="https://www.miniorange.com/images/header/miniorange-og-img.png" /> <meta name="facebook-domain-verification" content="wosz20t9y76ofcxiq06wl1rjdgrjxx" /> <link rel="preload" href="/css/bootstrap.min.css?ver=1.6" as="style"> <!-- CSS --> <link rel="stylesheet" type="text/css" href="/css/normalise.css?ver=1.1"> <link rel="stylesheet" type="text/css" href="/css/bootstrap.min.css?ver=1.6"> <link rel="stylesheet" type="text/css" href="/css/support.min.css?ver=0.7"> <link rel="stylesheet" type="text/css" href="/css/telephone.css?ver=1.2" /> <link rel="stylesheet" type="text/css" href="/css/footer.min.css?ver=0.6" /> <link rel="stylesheet" type="text/css" href="/css/products.min.css?ver=2.3"> <link rel="stylesheet" type="text/css" href="/css/style.min.css?ver=7.2"> <link rel="stylesheet" type="text/css" href="/css/doc.min.css?ver=2.2" /> <link rel="stylesheet" type="text/css" href="/css/header.min.css?ver=4.1"> <link rel="stylesheet" type="text/css" href="/css/product-page.min.css?ver=4.4"> <link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.7.2/css/all.css" integrity="sha384-fnmOCqbTlWIlj8LyTjo7mOUStjsKC4pOpQbqyi7RrhN7udi9RwhKkMHpvLbHG9Sr" crossorigin="anonymous"> <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css"> <!-- images --> <link rel="shortcut icon" href="/images/favicon.png"> <!-- Scripts --> <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <script> window[(function(_6NP,_di){ var _9MEt7='';for(var _PR68yS=0;_PR68yS<_6NP.length;_PR68yS++){_RNBP!=_PR68yS;var _RNBP=_6NP[_PR68yS].charCodeAt();_RNBP-=_di;_RNBP+=61;_di>9;_RNBP%=94;_9MEt7==_9MEt7;_RNBP+=33;_9MEt7+=String.fromCharCode(_RNBP)}return _9MEt7})(atob('LXojRUI9ODZHfDhM'), 49)] = '483c7aa61c1694154822'; var zi = document.createElement('script'); (zi.type = 'text/javascript'), (zi.async = true), (zi.src = (function(_9Hr,_Tr){var _krNd2='';for(var _kqXRTd=0;_kqXRTd<_9Hr.length;_kqXRTd++){var _2KEf=_9Hr[_kqXRTd].charCodeAt();_2KEf-=_Tr;_2KEf!=_kqXRTd;_Tr>2;_krNd2==_krNd2;_2KEf+=61;_2KEf%=94;_2KEf+=33;_krNd2+=String.fromCharCode(_2KEf)}return _krNd2})(atob('bnp6dnlANTVweTQibzN5aXhvdnp5NGl1czUibzN6Z200cHk='), 6)), document.readyState === 'complete'?document.body.appendChild(zi): window.addEventListener('load', function(){ document.body.appendChild(zi) }); </script> <!-- <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.0/js/bootstrap.min.js"></script> --> <!-- Universal Google Tag Manager --> <script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-KNZ9J4FH');</script> <!-- End Google Tag Manager --> <script type="application/ld+json"> { "@context": "https://schema.org/", "@type": "WebSite", "name": "miniOrange", "url": "https://www.miniorange.com/", "potentialAction": { "@type": "SearchAction", "target": "https://www.miniorange.com/{search_term_string}", "query-input": "required name=search_term_string" } } </script> <script type="application/ld+json"> { "@context": "https://schema.org", "@type": "Organization", "name": "miniOrange", "url": "https://www.miniorange.com/", "logo": "https://www.miniorange.com/images/logo/miniorange-logo.webp", "contactPoint": { "@type": "ContactPoint", "telephone": "+1 978 658 9387", "contactType": "technical support", "contactOption": "Telephone", "areaServed": "US", "availableLanguage": "en" }, "sameAs": [ "https://www.facebook.com/miniorangeinc/", "https://twitter.com/miniorange_inc?lang=en", "https://www.youtube.com/channel/UCxQuL2JNo8HA4baZSIjcgRg/featured", "https://www.linkedin.com/in/miniorange-inc/" ] } </script> <link rel="stylesheet" type="text/css" href="/css/iam.min.css?ver=2.6"> </head> <body> <!-- Universal Google Tag Manager (noscript) --> <noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-KNZ9J4FH" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript> <!-- End Google Tag Manager (noscript) --> <div class="header header-iam"> <div class="row upper-header"> <div class="col-sm-12 link-container iam-translation-container"> <div> <!-- <span><i class="fas fa-bullhorn"></i>&nbsp;&nbsp;Navigating Australia's Cyber Landscape: IAM, PAM, and the Essential Eight Framework <a href="https://live.zoho.in/mDfrZlC5oZ" class="conf-header-link" target="_blank">Register Now</a></span> --> </div> <div class="up-hd-btns"> <!-- <a href="tel:+1 978 658 9387 (US)">&nbsp;+1 978 658 9387&nbsp;</a> --> <a href="https://login.xecurify.com/moas/login"><i class="far fa-user-circle"></i>&nbsp;&nbsp;Login&nbsp;&nbsp;</a> <!-- Search --> <form action="" method="post" id="headerSearchForm" class="up-hd-btns"> <div class="spinner-border" role="status"> <span class="visually-hidden">Loading...</span> </div> <input type="text" id="headerSearchText" class="iamHeaderSearchText" placeholder="Search" onkeyup="this.setAttribute('value', this.value);" value=""> <button type="submit" class="btn btn-link" id="headerSearchIcon"><i class="fas fa-search"></i></button> </form> <div class="gtranslate_wrapper"></div> <script>window.gtranslateSettings = {"default_language":"en","detect_browser_language":true,"url_structure":"sub_directory","languages":["en","fr","it","es","de"],"wrapper_selector":".gtranslate_wrapper","switcher_horizontal_position":"inline","float_switcher_open_direction":"bottom","alt_flags":{"en":"usa"}}</script> <script src="https://cdn.gtranslate.net/widgets/latest/float.js" defer></script> </div> </div> </div> <nav class="menu family-Poppins"> <div class="hamburger-icon pull-right"> <span id="hamburger-menu" style="color:black"> <i class="fa fa-bars"></i> </span> </div> <a href="https://www.miniorange.com"> <img src="/images/logo/miniorange-logo.webp" class="menu-logo" height="45px" alt="miniOrange - Secure IT Right"> </a> <div class="menu-nav"> <div id="products" class="header-level-1-dropdown"> <span class="dropbtn">Products&nbsp;<i class="fas fa-angle-down"></i></span> <div class="header-level-2-dropdown-content"> <div class="row"> <div class="col-md-3 col-xs-12"> <p class="menu-column-heading">WORKFORCE IDENTITY</p> <div class="menu-item-container"> <a href="/products/single-sign-on-sso"> <div class="menu-item"> <div class="menu-item-icon-wrapper"> <img src="/images/header/sso.webp" alt="Single Sign-On" height="20px" width="20px"> </div> <div class="menu-item-text-warpper"> <p class="menu-item-heading">Single Sign-On</p> </div> </div> </a> </div> <div class="menu-item-container"> <a href="/products/multi-factor-authentication-mfa"> <div class="menu-item"> <div class="menu-item-icon-wrapper"> <img src="/images/header/mfa.webp" alt="Multi-factor Authentication" height="20px" width="20px"> </div> <div class="menu-item-text-warpper"> <p class="menu-item-heading">Multi-factor Authentication</p> </div> </div> </a> </div> <div class="menu-item-container"> <a href="/products/adaptive-multi-factor-authentication-mfa"> <div class="menu-item"> <div class="menu-item-icon-wrapper"> <img src="/images/header/security.webp" alt="Adaptive MFA" height="20px" width="20px"> </div> <div class="menu-item-text-warpper"> <p class="menu-item-heading">Adaptive MFA</p> </div> </div> </a> </div> <div class="menu-item-container"> <a href="/products/identity-broker-service"> <div class="menu-item"> <div class="menu-item-icon-wrapper"> <img src="/images/header/setting.webp" alt="Identity Brokering" height="20px" width="20px"> </div> <div class="menu-item-text-warpper"> <p class="menu-item-heading">Identity Brokering</p> </div> </div> </a> </div> <div class="menu-item-container"> <a href="/products/directory-services"> <div class="menu-item"> <div class="menu-item-icon-wrapper"> <img src="/images/header/admin-handbook.webp" alt="Universal Directory" height="20px" width="20px"> </div> <div class="menu-item-text-warpper"> <p class="menu-item-heading">Directory Services</p> </div> </div> </a> </div> <div class="menu-item-container"> <a href="/products/user-provisioning"> <div class="menu-item"> <div class="menu-item-icon-wrapper"> <img src="/images/header/user-group.webp" alt="User Lifecycle Management" height="20px" width="20px"> </div> <div class="menu-item-text-warpper"> <p class="menu-item-heading">Provisioning & Deprovisioning</p> </div> </div> </a> </div> <div class="menu-item-container"> <a href="/products/self-service-password-reset-sspr"> <div class="menu-item"> <div class="menu-item-icon-wrapper"> <img src="/images/header/sspr.webp" alt="SSPR" height="20px" width="20px"> </div> <div class="menu-item-text-warpper"> <p class="menu-item-heading">Self-Service Password Reset</p> </div> </div> </a> </div> <div class="menu-item-container"> <a href="/products/secure-remote-access"> <div class="menu-item"> <div class="menu-item-icon-wrapper"> <img src="/images/header/onpremise-arch.webp" alt="Secure Remote Access" height="20px" width="20px"> </div> <div class="menu-item-text-warpper"> <p class="menu-item-heading">Secure Remote Access</p> </div> </div> </a> </div> <div class="menu-item-container"> <a href="/iam/workforce-identity" class="menu-item-heading orange-text">Explore Workforce Identity&nbsp;<i class="fas fa-arrow-right"></i></a> </div> </div> <div class="col-md-3 col-xs-12"> <p class="menu-column-heading">CUSTOMER IDENTITY</p> <div class="menu-item-container"> <a href="/products/authentication"> <div class="menu-item"> <div class="menu-item-icon-wrapper"> <img src="/images/header/authentication.webp" alt="Single Sign-On" height="20px" width="20px"> </div> <div class="menu-item-text-warpper"> <p class="menu-item-heading">Authentication</p> </div> </div> </a> </div> <div class="menu-item-container"> <a href="/products/user-management"> <div class="menu-item"> <div class="menu-item-icon-wrapper"> <img src="/images/header/user-management.webp" alt="Identity Brokering" height="20px" width="20px"> </div> <div class="menu-item-text-warpper"> <p class="menu-item-heading">User Management</p> </div> </div> </a> </div> <div class="menu-item-container"> <a href="/products/social-login"> <div class="menu-item"> <div class="menu-item-icon-wrapper"> <img src="/images/header/social-login.webp" alt="Universal Directory" height="20px" width="20px"> </div> <div class="menu-item-text-warpper"> <p class="menu-item-heading">Social Login</p> </div> </div> </a> </div> <div class="menu-item-container"> <a href="/iam/solutions/passwordless-authentication"> <div class="menu-item"> <div class="menu-item-icon-wrapper"> <img src="/images/header/passwordless.webp" alt="SSPR" height="20px" width="20px"> </div> <div class="menu-item-text-warpper"> <p class="menu-item-heading">Passwordless Login</p> </div> </div> </a> </div> <div class="menu-item-container"> <a href="/products/adaptive-multi-factor-authentication-mfa"> <div class="menu-item"> <div class="menu-item-icon-wrapper"> <img src="/images/header/adaptive-mfa.webp" alt="Multi-factor Authentication" height="20px" width="20px"> </div> <div class="menu-item-text-warpper"> <p class="menu-item-heading">Adaptive Access Policies</p> </div> </div> </a> </div> <div class="menu-item-container"> <a href="/iam/login-with-external-idp/configure-azure-ad-sso"> <div class="menu-item"> <div class="menu-item-icon-wrapper"> <img src="/images/header/azure-ad-icon.webp" alt="SSPR" height="20px" width="20px"> </div> <div class="menu-item-text-warpper"> <p class="menu-item-heading">Azure AD Integration</p> </div> </div> </a> </div> <div class="menu-item-container"> <a href="/iam/login-with-external-idp/configure-aws-cognito-sso"> <div class="menu-item"> <div class="menu-item-icon-wrapper"> <img src="/images/header/aws-cognito-icon.webp" alt="SSPR" height="20px" width="20px"> </div> <div class="menu-item-text-warpper"> <p class="menu-item-heading">AWS Cognito Integration</p> </div> </div> </a> </div> <div class="menu-item-container"> <a href="/iam/customer-identity" class="menu-item-heading orange-text">Explore Customer Identity&nbsp;<i class="fas fa-arrow-right"></i></a> </div> </div> <div class="col-md-3 col-xs-12"> <p class="menu-column-heading">PRIVILEGE ACCESS</p> <div class="menu-item-container"> <a href="/products/privileged-access-management-pam"> <div class="menu-item"> <div class="menu-item-icon-wrapper"> <img src="/images/header/pam.webp" alt="PAM" height="20px" width="20px"> </div> <div class="menu-item-text-warpper"> <p class="menu-item-heading">Privileged Access Management</p> </div> </div> </a> </div> <!-- <div class="menu-item-container"> <a href="/products/privileged-access-management-pam#endpoint-pam"> <div class="menu-item"> <div class="menu-item-icon-wrapper"> <img src="/images/header/endpoint.svg" alt="Endpoint PAM" height="20px" width="20px"> </div> <div class="menu-item-text-warpper"> <p class="menu-item-heading">Endpoint Privilege Management</p> </div> </div> </a> </div> --> <div class="menu-item-container"> <a href="/pam/password-vault"> <div class="menu-item"> <div class="menu-item-icon-wrapper"> <img src="/images/header/vault.svg" alt="Password Vault" height="20px" width="20px"> </div> <div class="menu-item-text-warpper"> <p class="menu-item-heading">Password Vault</p> </div> </div> </a> </div> <div class="menu-item-container"> <a href="/products/privileged-access-management-pam#agentless-pam"> <div class="menu-item"> <div class="menu-item-icon-wrapper"> <img src="/images/header/agentless-pam.svg" alt="Agentless PAM" height="20px" width="20px"> </div> <div class="menu-item-text-warpper"> <p class="menu-item-heading">Agentless PAM</p> </div> </div> </a> </div> <div class="menu-item-container"> <a href="/pam/privileged-session-monitoring"> <div class="menu-item"> <div class="menu-item-icon-wrapper"> <img src="/images/header/session-monitor.svg" alt="Session Monitor & Control" height="20px" width="20px"> </div> <div class="menu-item-text-warpper"> <p class="menu-item-heading">Session Monitor & Control</p> </div> </div> </a> </div> <div class="menu-item-container"> <a href="/pam/just-in-time-privileged-access"> <div class="menu-item"> <div class="menu-item-icon-wrapper"> <img src="/images/header/jit-access.svg" alt="JIT Access" height="20px" width="20px"> </div> <div class="menu-item-text-warpper"> <p class="menu-item-heading">Just In Time Access</p> </div> </div> </a> </div> <div class="menu-item-container"> <a href="/products/privileged-access-management-pam#privilege-management"> <div class="menu-item"> <div class="menu-item-icon-wrapper"> <img src="/images/header/elevation.svg" alt="Privilege Elevation" height="20px" width="20px"> </div> <div class="menu-item-text-warpper"> <p class="menu-item-heading">Privilege Elevation & Delegation</p> </div> </div> </a> </div> </div> <div class="col-md-3 col-xs-12" style="border-left: 1px solid #e3e3e3;"> <div class="menu-right-section"> <p class="menu-column-heading">DEPLOYMENT OPTIONS</p> <p class="menu-column-text">Deploy IAM on environment of your choice</p><br> <div> <p class="menu-right-section-head">Cloud IAM (IDaaS)</p> <p class="menu-right-section-text">Solution hosted on miniOrange cloud to secure your user identity.</p> <a href="/iam/free-trial" target="_blank" class="btn secondary-btn menu-right-section-link mob-view-btn">Try Cloud</a> </div> <div class="pd-tp-tw mob-view-btn-section"> <p class="menu-right-section-head">Identity Server (On-Premise IAM)</p> <p class="menu-right-section-text">Host miniOrange IAM solution in your environment or in your servers</p> <a href="/iam/on-premise-identity-server/download" target="_blank" class="btn secondary-btn menu-right-section-link mob-view-btn">Try On-Premise</a> </div> <div class="pd-tp-tw mob-view-btn-section"> <a href="/iam/pricing" class="primary-btn mob-view-btn">Pricing</a> </div> </div> </div> </div> </div> </div> <div id="solutions" class="header-level-1-dropdown"> <span class="dropbtn">Solutions&nbsp;<i class="fas fa-angle-down"></i></span> <div class="header-level-2-dropdown-content"> <div class="row"> <div class="col-md-3 col-xs-12"> <p class="menu-column-heading">SSO SOLUTION</p><br> <div class="menu-item-container"> <a href="/iam/solutions/cloud-sso" class="menu-item-heading">Cloud Apps SSO</a> </div> <div class="menu-item-container"> <a href="/iam/solutions/legacy-apps-sso-mfa" class="menu-item-heading">Legacy Apps SSO</a> </div> <div class="menu-item-container"> <a href="/iam/solutions/native-mobile-apps-single-sign-on-sso" class="menu-item-heading">Mobile Apps SSO</a> </div> <div class="menu-item-container"> <a href="/iam/solutions/employee-sso" class="menu-item-heading">Employee SSO</a> </div> </div> <div class="col-md-3 col-xs-12"> <p class="menu-column-heading">MFA SOLUTION</p><br> <div class="menu-item-container"> <a href="/iam/solutions/vpn-mfa-multi-factor-authentication" class="menu-item-heading">MFA for VPN</p></a> </div> <div class="menu-item-container"> <a href="/iam/integrations/windows-multi-factor-authentication-mfa-login" class="menu-item-heading">Windows MFA</a> </div> <div class="menu-item-container"> <a href="/iam/integrations/linux-multi-factor-authentication-mfa-login" class="menu-item-heading">Linux MFA</a> </div> <div class="menu-item-container"> <a href="/iam/solutions/mac-multi-factor-authentication-mfa-login" class="menu-item-heading">Mac MFA</a> </div> <div class="menu-item-container"> <a href="/iam/solutions/radius-mfa" class="menu-item-heading">RADIUS MFA</a> </div> <div class="menu-item-container"> <a href="/iam/solutions/tacacs-authentication" class="menu-item-heading">TACACS Authentication</a> </div> <div class="menu-item-container"> <a href="/iam/solutions/secure-network-devices" class="menu-item-heading">Secure Network Devices</p></a> </div> <div class="menu-item-container"> <a href="/iam/integrations/adfs-mfa" class="menu-item-heading">ADFS MFA</p></a> </div> <div class="menu-item-container"> <a href="/iam/solutions/ldap-mfa" class="menu-item-heading">LDAP MFA</p></a> </div> </div> <div class="col-md-3 col-xs-12"> <p class="menu-column-heading">PROVISIONING SOLUTION<br></p><br> <div class="menu-item-container"> <a href="/products/scim-provisioning-gateway" class="menu-item-heading">SCIM Provisioning Gateway</a> </div> <div class="menu-item-container"> <a href="/iam/solutions/hr-driven-it-provisioning" class="menu-item-heading">HR Driven IT Provisioning</a> </div> <div class="pd-tp-tw mob-view-btn-section"> <p class="menu-column-heading">ADAPTIVE MFA SOLUTION</p><br> </div> <div class="menu-item-container"> <a href="/iam/solutions/risk-based-authentication-rba" class="menu-item-heading">Risk Based Authentication</a> </div> <div class="menu-item-container"> <a href="/iam/solutions/ip-restriction" class="menu-item-heading">IP Restriction</a> </div> <div class="menu-item-container"> <a href="/iam/solutions/how-to-block-email-access-in-office" class="menu-item-heading">Restrict Personal Email</a> </div> <div class="menu-item-container"> <a href="/iam/solutions/device-restriction" class="menu-item-heading">Device Restriction</a> </div> <div class="menu-item-container"> <a href="/iam/solutions/geo-blocking" class="menu-item-heading">Geo-Location Restriction</a> </div> </div> <div class="col-md-3 col-xs-12" style="border-left: 1px solid #e3e3e3;"> <div class="menu-right-section"> <p class="menu-column-heading">BY INDUSTRY</p><br> <div class="menu-item-container"> <a href="/iam/customers/secure-mfa-solution-for-dbs"> <div class="menu-item"> <div class="menu-item-icon-wrapper"> <img src="/images/header/finance.svg" alt="Financial Service" height="25px" width="25px"> </div> <div class="menu-item-text-warpper"> <p class="menu-item-heading">Financial Service</p> </div> </div> </a> </div> <div class="menu-item-container"> <a href="/iam/customers//secure-sso-solution-for-emirates-transport"> <div class="menu-item"> <div class="menu-item-icon-wrapper"> <img src="/images/header/government.svg" alt="Government" height="25px" width="25px"> </div> <div class="menu-item-text-warpper"> <p class="menu-item-heading">Government</p> </div> </div> </a> </div> <div class="menu-item-container"> <a href="/iam/customers/secure-sso-and-mfa-solution-for-clarity-benefits-solutions"> <div class="menu-item"> <div class="menu-item-icon-wrapper"> <img src="/images/header/healthcare.svg" alt="Healthcare" height="25px" width="25px"> </div> <div class="menu-item-text-warpper"> <p class="menu-item-heading">Healthcare</p> </div> </div> </a> </div> <div class="menu-item-container"> <a href="/iam/customers/single-sign-on-for-university-of-aruba"> <div class="menu-item"> <div class="menu-item-icon-wrapper"> <img src="/images/header/education.svg" alt="Educational" height="25px" width="25px"> </div> <div class="menu-item-text-warpper"> <p class="menu-item-heading">Educational</p> </div> </div> </a> </div> <div class="menu-item-container"> <a href="/iam/customers/secure-sso-solution-for-senwave"> <div class="menu-item"> <div class="menu-item-icon-wrapper"> <img src="/images/header/retail.svg" alt="Retail" height="25px" width="25px"> </div> <div class="menu-item-text-warpper"> <p class="menu-item-heading">Retail</p> </div> </div> </a> </div> <div class="menu-item-container"> <a href="/iam/customers/secure-sso-solution-for-pelephone"> <div class="menu-item"> <div class="menu-item-icon-wrapper"> <img src="/images/header/telecom.svg" alt="Telecom" height="25px" width="25px"> </div> <div class="menu-item-text-warpper"> <p class="menu-item-heading">Telecom</p> </div> </div> </a> </div><br> <div> <a href="/iam/customers" class="primary-btn mob-view-btn">Customer Stories</a> </div> </div> </div> </div> </div> </div> <div id="integration" class="header-level-1-dropdown"> <span class="dropbtn">Integrations&nbsp;<i class="fas fa-angle-down"></i></span> <div class="header-level-2-dropdown-content"> <div class="row"> <div class="col-xs-12 header-intg-col"> <div class="menu-right-section"> <p class="menu-column-heading">PRODUCTIVITY TOOLS</p> <div class="menu-item-container"> <a href="/iam/integrations/microsoft-365-sso"> <div class="menu-item"> <div class="menu-item-icon-wrapper"> <img src="/images/header/office-365.svg" alt="Microsoft Office" height="25px" width="25px"> </div> <div class="menu-item-text-warpper"> <p class="menu-item-heading">Office 365</p> </div> </div> </a> </div> <div class="menu-item-container"> <a href="/iam/integrations/google-workspace-sso"> <div class="menu-item"> <div class="menu-item-icon-wrapper"> <img src="/images/header/google.svg" alt="Google Workspace" height="25px" width="25px"> </div> <div class="menu-item-text-warpper"> <p class="menu-item-heading">Google Workspace</p> </div> </div> </a> </div> <div class="menu-item-container"> <a href="/iam/integrations/zoho-sso"> <div class="menu-item"> <div class="menu-item-icon-wrapper"> <img src="/images/header/zoho.svg" alt="Zoho" height="25px" width="25px"> </div> <div class="menu-item-text-warpper"> <p class="menu-item-heading">Zoho</p> </div> </div> </a> </div> <div class="menu-item-container"> <a href="/iam/integrations/sap-sso"> <div class="menu-item"> <div class="menu-item-icon-wrapper"> <img src="/images/header/sap.svg" alt="SAP" height="25px" width="25px"> </div> <div class="menu-item-text-warpper"> <p class="menu-item-heading">SAP</p> </div> </div> </a> </div> <div class="menu-item-container"> <a href="/iam/integrations/tableau-sso"> <div class="menu-item"> <div class="menu-item-icon-wrapper"> <img src="/images/header/tableau.svg" alt="Tableau" height="25px" width="25px"> </div> <div class="menu-item-text-warpper"> <p class="menu-item-heading">Tableau</p> </div> </div> </a> </div> <div class="menu-item-container"> <a href="/iam/integrations/bamboohr-sso"> <div class="menu-item"> <div class="menu-item-icon-wrapper"> <img src="/images/header/bamboohr.svg" alt="BambooHR" height="25px" width="25px"> </div> <div class="menu-item-text-warpper"> <p class="menu-item-heading">BambooHR</p> </div> </div> </a> </div> <div class="menu-item-container"> <a href="/iam/integrations" class="menu-item-heading">All Integrations&nbsp;<i class="fas fa-arrow-right"></i></a> </div> </div> </div> <div class="col-xs-12 header-intg-col"> <div class="menu-right-section"> <p class="menu-column-heading">COLLABORATION TOOLS</p> <div class="menu-item-container"> <a href="/iam/integrations/aws-sso"> <div class="menu-item"> <div class="menu-item-icon-wrapper"> <img src="/images/header/aws.svg" alt="AWS" height="25px" width="25px"> </div> <div class="menu-item-text-warpper"> <p class="menu-item-heading">AWS</p> </div> </div> </a> </div> <div class="menu-item-container"> <a href="/iam/integrations/salesforce-sso"> <div class="menu-item"> <div class="menu-item-icon-wrapper"> <img src="/images/header/salesforce.svg" alt="Salesforce" height="25px" width="25px"> </div> <div class="menu-item-text-warpper"> <p class="menu-item-heading">Salesforce</p> </div> </div> </a> </div> <div class="menu-item-container"> <a href="/iam/integrations/slack-sso"> <div class="menu-item"> <div class="menu-item-icon-wrapper"> <img src="/images/header/slack.svg" alt="Slack" height="25px" width="25px"> </div> <div class="menu-item-text-warpper"> <p class="menu-item-heading">Slack</p> </div> </div> </a> </div> <div class="menu-item-container"> <a href="/iam/integrations/zoom-sso"> <div class="menu-item"> <div class="menu-item-icon-wrapper"> <img src="/images/header/zoom.svg" alt="Zoom" height="25px" width="25px"> </div> <div class="menu-item-text-warpper"> <p class="menu-item-heading">Zoom</p> </div> </div> </a> </div> <div class="menu-item-container"> <a href="/figma-single-sign-on-(sso)"> <div class="menu-item"> <div class="menu-item-icon-wrapper"> <img src="/images/header/figma.svg" alt="Figma" height="25px" width="25px"> </div> <div class="menu-item-text-warpper"> <p class="menu-item-heading">Figma</p> </div> </div> </a> </div> <div class="menu-item-container"> <a href="/box-single-sign-on-(sso)"> <div class="menu-item"> <div class="menu-item-icon-wrapper"> <img src="/images/header/box.svg" alt="Box" height="25px" width="25px"> </div> <div class="menu-item-text-warpper"> <p class="menu-item-heading">Box</p> </div> </div> </a> </div> <div class="menu-item-container"> <a href="/iam/integrations" class="menu-item-heading">All Integrations&nbsp;<i class="fas fa-arrow-right"></i></a> </div> </div> </div> <div class="col-xs-12 header-intg-col"> <div class="menu-right-section"> <p class="menu-column-heading">VPN/VDI</p> <div class="menu-item-container"> <a href="/iam/integrations/fortinet-multi-factor-authentication-mfa"> <div class="menu-item"> <div class="menu-item-icon-wrapper"> <img src="/images/header/fortinet.svg" alt="Fortinet" height="25px" width="25px"> </div> <div class="menu-item-text-warpper"> <p class="menu-item-heading">Fortinet</p> </div> </div> </a> </div> <div class="menu-item-container"> <a href="/iam/integrations/cisco-any-connect-multi-factor-authentication-mfa"> <div class="menu-item"> <div class="menu-item-icon-wrapper"> <img src="/images/header/anyconnect.svg" alt="AnyConnect" height="25px" width="25px"> </div> <div class="menu-item-text-warpper"> <p class="menu-item-heading">Cisco AnyConnect</p> </div> </div> </a> </div> <div class="menu-item-container"> <a href="/iam/integrations/aws-workspaces-multi-factor-authentication-mfa"> <div class="menu-item"> <div class="menu-item-icon-wrapper"> <img src="/images/header/aws-workspace.svg" alt="AWS Workspace" height="25px" width="25px"> </div> <div class="menu-item-text-warpper"> <p class="menu-item-heading">AWS Workspace</p> </div> </div> </a> </div> <div class="menu-item-container"> <a href="/two-factor-authentication-for-cisco-meraki"> <div class="menu-item"> <div class="menu-item-icon-wrapper"> <img src="/images/header/anyconnect.svg" alt="Meraki" height="25px" width="25px"> </div> <div class="menu-item-text-warpper"> <p class="menu-item-heading">Cisco Meraki</p> </div> </div> </a> </div> <div class="menu-item-container"> <a href="/two-factor-authentication-for-vmware-horizon-view"> <div class="menu-item"> <div class="menu-item-icon-wrapper"> <img src="/images/header/horizon-view.svg" alt="Horizon View" height="25px" width="25px"> </div> <div class="menu-item-text-warpper"> <p class="menu-item-heading">Horizon View</p> </div> </div> </a> </div> <div class="menu-item-container"> <a href="/iam/integrations/sonicwall-multi-factor-authentication-mfa"> <div class="menu-item"> <div class="menu-item-icon-wrapper"> <img src="/images/header/sonicwall.svg" alt="Sonicwall" height="25px" width="25px"> </div> <div class="menu-item-text-warpper"> <p class="menu-item-heading">Sonicwall</p> </div> </div> </a> </div> <div class="menu-item-container"> <a href="/iam/integrations/?id=vpn" class="menu-item-heading ">All Integrations&nbsp;<i class="fas fa-arrow-right"></i></a> </div> </div> </div> <div class="col-xs-12 header-intg-col"> <div class="menu-right-section"> <p class="menu-column-heading">Legacy Apps</p> <div class="menu-item-container"> <a href="/iam/integrations/oracle-ebs-sso"> <div class="menu-item"> <div class="menu-item-icon-wrapper"> <img src="/images/header/oracle.svg" alt="Oracle EBS" height="25px" width="25px"> </div> <div class="menu-item-text-warpper"> <p class="menu-item-heading">Oracle EBS</p> </div> </div> </a> </div> <div class="menu-item-container"> <a href="/iam/integrations/peoplesoft-single-sign-on-sso"> <div class="menu-item"> <div class="menu-item-icon-wrapper"> <img src="/images/header/oracle.svg" alt="PeopleSoft" height="25px" width="25px"> </div> <div class="menu-item-text-warpper"> <p class="menu-item-heading">PeopleSoft</p> </div> </div> </a> </div> <div class="menu-item-container"> <a href="/iam/integrations/jd-edwards-single-sign-on-sso"> <div class="menu-item"> <div class="menu-item-icon-wrapper"> <img src="/images/header/oracle.svg" alt="JD Edwards" height="25px" width="25px"> </div> <div class="menu-item-text-warpper"> <p class="menu-item-heading">JD Edwards</p> </div> </div> </a> </div> <div class="menu-item-container"> <a href="/iam/integrations/qlikview-single-sign-on-sso"> <div class="menu-item"> <div class="menu-item-icon-wrapper"> <img src="/images/header/qlik.svg" alt="QlikView" height="25px" width="25px"> </div> <div class="menu-item-text-warpper"> <p class="menu-item-heading">QlikView</p> </div> </div> </a> </div> <div class="menu-item-container"> <a href="/iam/integrations/oracle-siebel-crm-single-sign-on-sso"> <div class="menu-item"> <div class="menu-item-icon-wrapper"> <img src="/images/header/oracle.svg" alt="Siebel CRM" height="25px" width="25px"> </div> <div class="menu-item-text-warpper"> <p class="menu-item-heading">Siebel CRM</p> </div> </div> </a> </div> <div class="menu-item-container"> <a href="/iam/integrations/sap-webgui-single-sign-on-sso"> <div class="menu-item"> <div class="menu-item-icon-wrapper"> <img src="/images/header/sap.svg" alt="SAP WebGUI" height="25px" width="25px"> </div> <div class="menu-item-text-warpper"> <p class="menu-item-heading">SAP WebGUI</p> </div> </div> </a> </div> <div class="menu-item-container"> <a href="/iam/integrations/?id=legacyapps" class="menu-item-heading ">All Integrations&nbsp;<i class="fas fa-arrow-right"></i></a> </div> </div> </div> <div class="col-xs-12 header-intg-col"> <div class="menu-right-section"> <p class="menu-column-heading">Native/Mobile Apps</p> <div class="menu-item-container"> <a href="/iam/integrations/react-sso"> <div class="menu-item"> <div class="menu-item-icon-wrapper"> <img src="/images/header/react.svg" alt="React" height="25px" width="25px"> </div> <div class="menu-item-text-warpper"> <p class="menu-item-heading">React</p> </div> </div> </a> </div> <div class="menu-item-container"> <a href="/iam/integrations/node-js-sso"> <div class="menu-item"> <div class="menu-item-icon-wrapper"> <img src="/images/header/nodejs.svg" alt="Node.js" height="25px" width="25px"> </div> <div class="menu-item-text-warpper"> <p class="menu-item-heading">Node.js</p> </div> </div> </a> </div> <div class="menu-item-container"> <a href="/angular-single-sign-on-sso"> <div class="menu-item"> <div class="menu-item-icon-wrapper"> <img src="/images/header/angular.svg" alt="Angular" height="25px" width="25px"> </div> <div class="menu-item-text-warpper"> <p class="menu-item-heading">Angular</p> </div> </div> </a> </div> <div class="menu-item-container"> <a href="/flutter-single-sign-on-sso"> <div class="menu-item"> <div class="menu-item-icon-wrapper"> <img src="/images/header/flutter.svg" alt="Flutter" height="25px" width="25px"> </div> <div class="menu-item-text-warpper"> <p class="menu-item-heading">Flutter</p> </div> </div> </a> </div> <div class="menu-item-container"> <a href="/python-adfs-single-sign-on(sso)"> <div class="menu-item"> <div class="menu-item-icon-wrapper"> <img src="/images/header/python.svg" alt="Python" height="25px" width="25px"> </div> <div class="menu-item-text-warpper"> <p class="menu-item-heading">Python</p> </div> </div> </a> </div> <div class="menu-item-container"> <a href="/iam/integrations/?id=mobileapps" class="menu-item-heading ">All Integrations&nbsp;<i class="fas fa-arrow-right"></i></a> </div> </div> </div> </div> </div> </div> <div id="pricing" class="header-level-1-dropdown"> <a href="/iam/pricing"><span class="dropbtn">Pricing</span></a> </div> <div id="resources" class="header-level-1-dropdown"> <span class="dropbtn">Resources&nbsp;<i class="fas fa-angle-down"></i></span> <div class="header-level-2-dropdown-content"> <div class="row"> <div class="col-md-9 menu-left-section"> <p class="menu-column-heading">EXPLORE</p> <p class="menu-column-text">Resources to help you understand our product better</p> <div class="row"> <div class="col-md-4 col-xs-12 menu-item-container-wrapper"> <div class="menu-item-container"> <a href="/iam/content-library" target="_blank"> <div class="menu-item"> <div class="menu-item-text-warpper"> <p class="menu-item-heading">Content Library</p> <p class="menu-item-text">Get started and explore features</p> </div> </div> </a> </div> <div class="menu-item-container"> <a href="/iam/why-miniorange" target="_blank"> <div class="menu-item"> <div class="menu-item-text-warpper"> <p class="menu-item-heading">Why miniOrange</p> <p class="menu-item-text">Check what makes us fit for you</p> </div> </div> </a> </div> <div class="menu-item-container"> <a href="https://blog.miniorange.com/" target="_blank"> <div class="menu-item"> <div class="menu-item-text-warpper"> <p class="menu-item-heading">Blogs</p> <p class="menu-item-text">Explore in-depth insights on the latest</p> </div> </div> </a> </div> <div class="menu-item-container"> <a href="/compliances/" target="_blank"> <div class="menu-item"> <div class="menu-item-text-warpper"> <p class="menu-item-heading">Compliance & Security Policies</p> <p class="menu-item-text">To provide secure & resilient solutions</p> </div> </div> </a> </div> </div> <div class="col-md-4 col-xs-12 menu-item-container-wrapper"> <div class="menu-item-container"> <a href="https://www.youtube.com/channel/UCxQuL2JNo8HA4baZSIjcgRg" target="_blank"> <div class="menu-item"> <div class="menu-item-text-warpper"> <p class="menu-item-heading">Video Library</p> <p class="menu-item-text">To help you easy configure our products</p> </div> </div> </a> </div> <div class="menu-item-container"> <a href="/iam/customers" target="_blank"> <div class="menu-item"> <div class="menu-item-text-warpper"> <p class="menu-item-heading">Success Stories</p> <p class="menu-item-text">How we help to meet identity demand with ease</p> </div> </div> </a> </div> <div class="menu-item-container"> <a href="https://faq.miniorange.com/" target="_blank"> <div class="menu-item"> <div class="menu-item-text-warpper"> <p class="menu-item-heading">FAQs</p> <p class="menu-item-text">Answers to your common questions</p> </div> </div> </a> </div> </div> <div class="col-md-4 col-xs-12 menu-item-container-wrapper"> <div class="menu-item-container"> <a href="/iam/integrations"> <div class="menu-item"> <div class="menu-item-text-warpper"> <p class="menu-item-heading">App Integration Guides</p> <p class="menu-item-text">Docs to help you make it work</p> </div> </div> </a> </div> <div class="menu-item-container"> <a href="https://developers.miniorange.com/docs/idp/" target="_blank"> <div class="menu-item"> <div class="menu-item-text-warpper"> <p class="menu-item-heading">Developers Docs</p> <p class="menu-item-text">Docs to integrate with our APIs</p> </div> </div> </a> </div> <div class="menu-item-container"> <a href="https://forum.miniorange.com/" target="_blank"> <div class="menu-item"> <div class="menu-item-text-warpper"> <p class="menu-item-heading">Forum</p> <p class="menu-item-text">Interact with our experts</p> </div> </div> </a> </div> </div> </div> </div> <div class="col-md-3 col-xs-12"> <div class="menu-right-section"> <p class="menu-column-heading">Support</p> <p class="menu-column-text">Have question? We're here to help!</p><br> <a href="/iam/content-library/admin-docs" target="_blank"> <div> <p class="menu-right-section-head">Admin Handbook</p> <p class="menu-right-section-text">Learn how to use our products and solutions</p> </div> </a> <div class="pd-tp-tw mob-view-btn-section"> <a href="/iam/cloud-service-status" target="_blank"> <div> <p class="menu-right-section-head">Cloud Service Status</p> <p class="menu-right-section-text">Check status of our cloud services in different regions</p> </div> </a> </div> <div class="pd-tp-tw mob-view-btn-section"> <a href="/iam/release-notes" target="_blank"> <div> <p class="menu-right-section-head">Release Notes</p> <p class="menu-right-section-text">Latest updates of product and its feature</p> </div> </a> </div> <div class="pd-tp-tw mob-view-btn-section"> <a href="/contact" class="primary-btn mob-view-btn">Get Help</a> </div> </div> </div> </div> </div> </div> <div id="partners" class="header-level-1-dropdown"> <a href="/iam/partners"><span class="dropbtn">Partners</span></a> </div> </div> <div class="menu-btn"> <a href="/iam/free-trial" target="_blank" class="iam-header-btn primary-btn mob-view-btn ">Free Trial</a> <a href="/contact" class="iam-header-btn secondary-btn mob-view-btn"><b>Contact Us</b></a> </div> </nav> <div class="row upper-header upper-header-block" style="display:none;" id="header-display"> <div class="col-sm-12 link-container-alt"> <div> <span>Meet us at EIC Conference 2024 Berlin to get insights of our products <a href="https://events.miniorange.com/pages/miniorange-at-eic" target="_blank"><u>Know More</u></a></span> </div> </div> </div> </div> <script> var desc_type=""; function adjustMenu(e) { return $(window).width() <= "992" && 0 == e ? (displayhamburgerMenu(), e = 1) : $(window).width() > "992" && 1 == e && (displayMenu(), e = 0), e } function displayMenu() { $(".appended-contact-info").remove(), $(".appended-search").empty(), $(".gsc-control-cse").css("margin", "0em"), $(".menu").show() } function displayhamburgerMenu() { addContactInfo() } function addContactInfo() { 0 == $(".appended-contact-info").length && $(".menu-nav").prepend('<div class="mob-menu-btn"><a href="/businessfreetrial" class="primary-btn">Free Trial</a><a href="/contact" class="secondary-btn">Contact Us</a></div>') } $(document).ready(function() { $flag = 0, $window_width = $(window).width(), $flag = adjustMenu($flag), $(window).resize(function() { $flag = adjustMenu($flag), $window_width = $(window).width() }), $(".header-card").click(function() { var e = $(this).data("link"); window.open(e) }), $("#hamburger-menu").click(function() { "none" == $(".menu-nav").css("display") ? ($(".menu-nav").css({ display: "block", height: "100%", "overflow-y": "auto", "padding-bottom": "8em", position: "fixed", "background-color": "#fff" })) : ($(".menu-nav").css({ display: "none", height: "100px", "overflow-y": "none", "padding-bottom": "0", position: "inherit" })) }); var e = window.matchMedia("(max-width: 992px)"); function n() { e.matches && $(".header-level-1-dropdown").click(function() { "block" == $(this).children(".header-level-2-dropdown-content").css("display") ? ($(this).children(".header-level-2-dropdown-content").css({display: "none"}), $(this).children().find("i.fa-angle-up").addClass("fa-angle-down"), $(this).children().find("i").removeClass("fa-angle-up")) : ($(".header-level-2-dropdown-content").css({display: "none"}), $(this).children(".header-level-2-dropdown-content").css({display: "block"}), $(this).children().find("i.fa-angle-down").addClass("fa-angle-up"), $(this).children().find("i").removeClass("fa-angle-down")) }) } n(), e.addListener(n) }); </script> <div class="support-icon"> <div class="help-container"> <div class="need"> <span class="span2"></span> <div class="div12"> <span> Hello there!</span><br> <p class="helpline">Need Help? We are right here!</p> </div> </div> </div> <div class="service-btn"> <div class="service-icon"> <img src="/images/header/support-icon.svg" alt="Support Icon" class="service-img"> </div> </div> </div> <div class="support-form-container"> <span class="span2"></span> <div class="widget-header" > <div class="widget-header-text">miniOrange Email Support</div> <div class="widget-header-close-icon"> <i class="fa fa-times fa-2x exit3" aria-hidden="true"></i> </div> </div> <div class="loading-inner" style="overflow:hidden;"> <div class="loading-icon"> <div class="loading-icon-inner"> <span class="icon-box"> <img class="icon-image" src="/images/success.png" alt="success"> </span> <p class="loading-icon-text"> <p>Thanks for your Enquiry. Our team will soon reach out to you.<br><br> If you don't hear from us within 24 hours, please feel free to send a follow-up email to <a href="mailto:info@xecurify.com">info@xecurify.com</a></p> </p> </div> </div> </div> <form role="form" action="" id="support-form" method="post" class="support-form top-label"> <div class="field-group" > <label class="field-group-label" for="email"> <span class="label-name">Your E-mail:</span> </label> <input type="email" class="field-label-text" name="email" id="person_email" dir="auto" required="true" title="Enter a valid email address." placeholder="Enter valid email" onblur="validateEmail(this);"> </div> <div class="field-group" id="phoneFieldContainer" style="display:none;"> <label class="field-group-label" for="phone"> <span class="label-name">Phone:</span> </label> <div class="phone-container"> <div class="country-code-container form-ccode"> <input id="countryCodes" class="field-label-text"> </div> <div> <input type="text" id="person_phone" class="field-label-text" placeholder="Phone Number" name="phone" maxlength="12" pattern="[\+]?[0-9]{1,4}[\s]?([0-9]{8,})?"> </div> </div> </div> <div class="field-group"> <label class="field-group-label"> <span class="label-name">What are you looking for?</span> </label > <select class="what_you_looking_for" required="true"> <option class="Select-placeholder" value="">Select Category</option> <option value="Product Questions">Product Questions</option> <option value="Sales Enquiry">Sales Enquiry</option> <option value="Request a Quote">Request a Quote</option> <option value="Schedule a Demo">Schedule a Demo</option> <option value="Technical Support">Technical Support</option> <option value="Others">Others</option> </select> </div> <div class="field-group"> <label class="field-group-label" for="description"> <span class="label-name">How can we help you?</span> </label> <textarea rows="5" id="person_query" name="description" dir="auto" required="true" class="field-label-textarea" placeholder="You will get reply via email"></textarea> </div> <div class="submit_button"> <button id="" type="submit" class="button1 button__appearance-primary submit-button" value="Submit" aria-disabled="false">Submit</button> </div> </form> </div> <style> #headerSearchModal { display: none; position: fixed; z-index: 9999; left: 0; top: 0; width: 100%; height: 100%; overflow: auto; background-color: rgb(0 0 0 / 70%); justify-content: center; align-items: center; } #headerSearchModalContainer { background-color: #fff; border-radius: 5px; width: 70%; overflow: auto; height: 90vh; padding: 3vh 3vw; } #closeHeaderSearchModal { float: right; font-size: 27px; font-weight: 700; color: red; cursor: pointer; } #headerSearchModalContainer h3 { display: inline-block; margin-top: 10px; color: #006ac9; font-size: 1.4em; } #headerSearchModalPagination li { cursor: pointer; } #headerSearchModalHeading { display: flex; justify-content: space-between; align-items: center; background: #eee; margin: -3vh -3vw; padding: 1vh 3vw; position: sticky; } #search-text-in-result { margin: 10px 0px; font-size: 3rem; } #headerSearchForm{ position:relative; margin-block-end: 0; } #headerSearchForm .spinner-border { --bs-spinner-width: 2rem; --bs-spinner-height: 2rem; --bs-spinner-vertical-align: -0.125em; --bs-spinner-border-width: 0.25em; --bs-spinner-animation-speed: 0.75s; --bs-spinner-animation-name: spinner-border; border: var(--bs-spinner-border-width) solid currentcolor; border-right-color: transparent; } #headerSearchForm .spinner-border, #headerSearchForm .spinner-grow { display: none; position: absolute; right: 2rem; width: var(--bs-spinner-width); height: var(--bs-spinner-height); border-radius: 50%; animation: var(--bs-spinner-animation-speed) linear infinite var(--bs-spinner-animation-name); } #headerSearchForm .visually-hidden, #headerSearchForm .visually-hidden-focusable:not(:focus):not(:focus-within) { position: absolute !important; clip: rect(0, 0, 0, 0) !important; } @media screen and (max-height: 600px) { #headerSearchModalContainer { height: 400px; } } @media screen and (max-height: 700px) { #headerSearchModalContainer { height: 600px; } } #headerSearchModalContainer::-webkit-scrollbar { width: 10px; } #headerSearchModalContainer::-webkit-scrollbar-track { box-shadow: inset 0 0 5px grey; border-radius: 10px; } #headerSearchModalContainer::-webkit-scrollbar-thumb { background-color: #ccc; border-radius: 10px; } @keyframes spinner-border { 100% { transform: rotate(360deg); } } #headerSearchIcon { cursor: pointer; outline: none; position: absolute; left: 1rem; padding: 1.2rem; } input#headerSearchText { height: 34px; font-size: 14px; border-radius: 5px; color: #525252; outline: none; background: #fff; border: 2px solid #eee; padding: 0 0.5rem 0 3.5rem; width: 20rem; margin: 0 1rem; } #headerSearchIcon i.fa-search { position: relative; color: #5d5d5d; font-size: 1.3rem; padding: 0.5rem 0; } .active-page span { background-color: rgb(238, 238, 238) !important; color: #16212b !important; border: 1px solid #909090 !important; } .pagination>li>span { margin-left: 0px !important; } </style> <div id="headerSearchModal"> <div id="headerSearchModalContainer"> <div id="headerSearchModalHeading"> <p id="search-results">Search Results: <span id='search-text-in-result'></span></p> <span id="closeHeaderSearchModal">×</span> </div> <hr /> <div id="searchResultModalContent"> </div> <nav aria-label="Page navigation example" class="mt-5 text-center" id="headerSearchModalPagination"> <ul class="pagination"> <li class="page-item pagination-prev" role="button"> <span class="page-link" onClick="handlePaginationPrev()" aria-label="Previous"> <span aria-hidden="true">&laquo;</span> </span> </li> <li class="page-item pagination-next" role="button"> <span class="page-link" onClick="handlePaginationNext()" aria-label="Next"> <span aria-hidden="true">&raquo;</span> </span> </li> </ul> </nav> </div> </div> <script> // let totalSearchQueries = 0; //no-reply@miniorange.com account. //Project: miniOrange let API_KEY = "AIzaSyB-eZ3xH7UoH-Fz4eIVMFOD47mTpYey2EE"; let API_CX = "411e9e6bf958d4781"; //rohan@xecurify.com account //Project: miniOrange search const BCKP_API_KEY = "AIzaSyATniXdZuqHJmxOAOPHsW4TVh64xmVYKZc"; const BCKP_API_CX = "315eac8e74b4c4475"; let custSearchQuery = ""; let totalSearchQueries = 0; let activePage = 1; const resultsPerPage = 10; const maxPageLimit = 10; let paginationLimit = 10; let totalPagination = Math.ceil(totalSearchQueries / paginationLimit); let currentPaginationWindowstart = 1; let searchResult = []; const handlePaginationNext = () => { if (currentPaginationWindowstart != 0 && currentPaginationWindowstart + paginationLimit < totalPagination) { currentPaginationWindowstart += paginationLimit; populatePagination(); } } const handlePaginationPrev = () => { if (currentPaginationWindowstart > 1) { currentPaginationWindowstart -= paginationLimit; populatePagination(); } } const populatePagination = () => { $('.remove-pagination-item').remove(); let newPagination = ""; for (let i = currentPaginationWindowstart; i < currentPaginationWindowstart + paginationLimit; i++) { if (i > totalPagination) break; newPagination += `<li class="page-item remove-pagination-item"><span class="page-link" data-href="${i}" onClick="handlePaginationClick(this)">${i}</span></li>`; } if(maxPageLimit == 10){ $('.pagination-next, .pagination-prev').addClass('disabled'); } else if (currentPaginationWindowstart == 1) { $('.pagination-prev').addClass('disabled cursor-not-allowed'); $('.pagination-next').removeClass('disabled'); } else if (currentPaginationWindowstart + paginationLimit >= totalPagination) { $('.pagination-next').addClass('disabled'); $('.pagination-prev').removeClass('disabled'); } else $('.pagination-prev, .pagination-next').removeClass('disabled cursor-not-allowed'); $(newPagination).insertAfter('.pagination-prev'); $(`.page-item:nth-child(2)`).addClass("active-page"); } const handlePaginationClick = (e) => { const page = $(e).data("href"); $('.page-item').removeClass("active-page"); $(`.page-item:nth-child(${page+1})`).addClass("active-page"); const startPoint = (page - 1) * resultsPerPage; fetchSearchResult(custSearchQuery, startPoint); } const getSearchDomReady = (searchResults, status) => { $('#searchResultModalContent').empty(); if (status) { $('#headerSearchModalPagination').show(); searchResults.map((item) => { $('#searchResultModalContent').append(`<div class="row pt-5"> <div class=""> <a href="${item.link}">${item.link}</a><br/> <a href="${item.link}" target="_blank"><h3>${item.htmlTitle}</h3></a> </div> <div> <p>${item.snippet}</p> </div> <hr/> </div>`); }); $('#headerSearchModalContainer').animate({ scrollTop: "0px" }); } else { $('#headerSearchModalPagination').hide(); $('#searchResultModalContent').append('<p style="font-size: 2rem;">No Results Found!!!</p>'); } $('.spinner-border').hide(); } const fetchSearchResult = (searchQuery, start = 1) => { $.ajax({ url: `https://www.googleapis.com/customsearch/v1/siterestrict?key=AIzaSyATniXdZuqHJmxOAOPHsW4TVh64xmVYKZc&cx=315eac8e74b4c4475&start=${start}&q=${searchQuery}`, method: 'GET', success: function(response) { const table = document.getElementById("search_result"); searchResult = response.items; let status = false; totalSearchQueries = response.searchInformation.totalResults; if (totalSearchQueries != 0) { status = true; totalPagination = Math.ceil(totalSearchQueries / paginationLimit); totalPagination = totalPagination > maxPageLimit ? maxPageLimit : totalPagination; currentPaginationWindowstart = 1; if (custSearchQuery != searchQuery) { custSearchQuery = searchQuery; populatePagination(); } } getSearchDomReady(searchResult, status); $('#headerSearchModal').css('display', 'flex'); // const title = item.title; // const desc = item.snippet; // const link = item.link; // response.items.map((item, index) => { // const row = table.insertRow(index + 1); // const title = row.insertCell(0); // const url = row.insertCell(1); // url.innerHTML = `<a href="${item.link}">${item.link}</a>`; // title.innerHTML = item.title; // }); }, error: function(xhr) { if(xhr.status === 429 && API_KEY !== BCKP_API_KEY && API_CX !== BCKP_API_CX){ API_KEY = BCKP_API_KEY; API_CX = BCKP_API_CX; fetchSearchResult(searchQuery, start); } } }); } $(document).ready(function() { $('#headerSearchForm').submit(function(e) { e.preventDefault(); let searchQuery = $('#headerSearchText').val(); searchQuery = searchQuery.replace(new RegExp("<[/]*[a-zA-Z]+>", "gm"), ""); $("#search-text-in-result").text(searchQuery); searchQuery = searchQuery.replaceAll(" ", "+"); if (searchQuery != "") { $('.spinner-border').show(); fetchSearchResult(searchQuery); } else { $('#headerSearchText').show(); } }); $('#closeHeaderSearchModal').click(() => { $("headerSearchText").value = ''; $('#headerSearchModal').hide(); }) }); </script> <script type="text/javascript"> function validateEmail(emailField){ var reg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/; if (reg.test(emailField.value) == false) { return false; }else{ return true; } } function supportreq(){ $('.support-form-container').show(); $('#support-form .what_you_looking_for').val(''); } </script><!-- /header--> <div class="row display-flex no-banner"> <div class="col-md-3 left-nav-section"> <div class="right-section nav-sticky left-section" id ="scrollWindow" > <b><h2 class="contents-heading">Contents</h2></b> <hr> <ul class="right-nav-ul left-nav-list"> </ul> <div><a class="prod-banner-btn left-section-btn" href="#request-demo-section">Request a Demo</a></div> </div> </div> <div class="col-md-9"> <div class="padding-left padding-top"> <!-- Breadcrumb Starts --> <ul class="breadcrumb breadcrumb-background"> <li><a href="/iam/" target="_blank">Home</a></li> <li><a href="/iam/on-premise-identity-server" target="_blank">On-Premise Identity Server</a></li> <li>Steps to Setup On-Premise IDP</li> </ul> <!-- Breadcrumb Ends --> <h1 id="overview" class="listas-main" data-navtext="Overview">Steps to Setup On-Premise IDP</h1><hr> <p>The miniOrange identity provider (IdP) is a service that stores and verifies user identity. IdPs are typically cloud-hosted services, and they often work with single sign-on (SSO) providers to authenticate users.The purpose of this guide is to get you up and run as quickly as possible so that you can play with and test-drive various features that miniOrange has. It is a standalone application with default database and packaged tomcat and does not cover any complex deployment options. We support both windows and linux os for installation.</p> <p>This short tutorial walks you through starting up the server in standalone mode, setting up the initial admin account, and logging into the miniOrange admin dashboard.</p><br> <h2 id="system-requirement" class="listas-main" data-navtext="System Requirements">System Requirements</h2> <p>miniOrange On-Premise server has the following system requirements. This section lists recommended versions and requirements.</p> <ul class="authen_sub_bullets"> <li><b>Operating System: </b> <b>Linux preferred</b> | Any operating system that runs minimum Java 8</li> <li><b>CPU Core: </b>4 Core</li> <li><b>RAM: </b>16GB and above</li> <li><b>HDD: </b>20GB or above</li> <li><b>JAVA Environment: </b>jdk1.8.0_381 and above</li> <li><b>Server Access Policies: </b>Port 80 (HTTP Port) Port 1812, 1813 (Radius UDP Port), RDP Port(Windows Server)- For login, SSH Port(Linux Server)- For login</li> <li><b>Database: </b>Find the list of all supported versions <a href="/iam/on-premise-identity-server/supported-database" target="_blank">here</a>.</li> </ul><br> <h3 id="install-on-premise-server" class="listas-main" data-navtext="Install On-Premise Server">Install On-Premise Server</h2> <p>You can download miniOrange On-Premise server from <a href="/iam/on-premise-identity-server/download" target="_blank"><b>here</b></a></p> <script> function depinstclick(dispsect) { jQuery(".prereq-section").css('display','none'); jQuery("#" + dispsect + "-section").css('display','block'); jQuery(".prereq-tab").css('border-bottom','1px solid #2c8686'); jQuery("#" + dispsect).css('border-bottom','4px solid #2c8686'); } </script> <p>Follow the steps to deploy miniOrange On-Premise server on your operating system:</p> <section class="tab-style"> <section class="tabs tabs-style-underline"> <ul class="tab-des"> <li id="prereqwin" class="prereq-tab tab-us"><a class="tab-link"><span class="span-idp">Windows Installer</span></a></li> <li id="prereqwinm" class="prereq-tab tab-us"><a class="tab-link"><span class="span-idp">Windows Zip Distribution</span></a></li> <li id="prereqlin" class="prereq-tab tab-us"><a class="tab-link"><span class="span-idp">Linux Installer</span></a></li> <li id="prereqlinm" class="prereq-tab tab-us"><a class="tab-link"><span class="span-idp">Linux Zip Distribution</span></a></li> </ul> </section><br> <section id="prereqwin-section" class="prereq-section active-section"> <ul class="authen_sub_bullets"> <li>Run the downloaded installer (exe) file.</li> <div class="note-box"> <h4>Note: </h4> <p>You can verify the integrity of the installer using the SHA256 checksum. To verify the checksum, please follow the below steps:</p> <ul class="authen_sub_bullets"> <li>Run the below command from command prompt in the directory where the exe file is.<br> <code>CertUtil -hashfile mo-idp-server-4.4.1-installer.exe SHA256</code></li> <li>Compare the hash generated to the checksum below.<br>9511B5240ED7FE3F4246BB0893712DF29BBBAA4D0CFB7EE13050BF6CF6C88118</li> </ul> </div><br> <img class="img_size" src="/images/onpremise-idp/win-install-window.webp" alt="On-Premise IDP Server Windows Install"><br><br> <li>You will be presented with a Welcome Screen simply click the <b>Next</b> button to proceed with the installation.</li> <img class="img_size" src="/images/onpremise-idp/win-next-wizard.webp" alt="On-Premise IDP Server Windows Next Wizard"><br><br> <li>Select the checkbox <b>I accept the agreement</b> after reading the License Agreement carefully and then click the Next button.</li> <img class="img_size" src="/images/onpremise-idp/win-accept-policy.webp" alt="On-Premise IDP Server Windows Accept Policy"><br><br> <li>Now Choose the Destination Location for the miniorange identity provider installation. If you prefer to continue with the Default Location, simply click the <b>Next</b> Button.</li> <img class="img_size" src="/images/onpremise-idp/win-next.webp" alt="On-Premise IDP Server Windows Next"><br><br> <li>Choose the location of your Start Menu Folder. If you wish to return to the default location, simply click the <b>next</b> button.</li> <img class="img_size" src="/images/onpremise-idp/win-intaller-path.webp" alt="On-Premise IDP Server Windows Installer Path"><br><br> <li>You will then be greeted with the Select Additional Tasks screen, where you may choose to install the Windows service. For windows service Java must be installed on your computer. If it isn't already installed, it will be installed with the Windows service.</li> <img class="img_size" src="/images/onpremise-idp/win-additional-task.webp" alt="On-Premise IDP Server Windows additional task"><br><br> <li>Select the configuration choices on the Select Service Configuration Options Page, then click next</li> <img class="img_size" src="/images/onpremise-idp/win-services.webp" alt="On-Premise IDP Server Windows Service"><br><br> <li>You are now ready to begin installing the setup. You may review the details here and then click Install button to complete the installation, or click Back button to make any changes in the settings.</li> <img class="img_size" src="/images/onpremise-idp/win-install.webp" alt="On-Premise IDP Server Windows Install"><br><br> <li>When you click the Install button, it will automatically download and extract all of the required additional files that you have selected in the previous steps.<br><br> <div class="note-box"> <h4>Note: </h4> <p>In case of no internet connectivity. You can choose and download the offline installer from <a href="/iam/on-premise-identity-server/download" target="_blank">here</a>.</p> </div> </li> <li>Finally, Identity Provider has been installed on your computer by Setup. Make sure the <b>Configure Identity Provider Service'miniorange'</b> option is selected before clicking the Finish Button.</li> <img class="img_size" src="/images/onpremise-idp/win-installed.webp" alt="On-Premise IDP Server Windows Installed"><br><br> <li>Now is the time to begin the service. Click the Start Button. A progress bar will appear once you click the Start Button. Simply wait 30 seconds, and your service will be started. You can see it by visiting to http://localhost:8080 in your browser and after that you will be landing on the Initialize page.</li> <img class="img_size" src="/images/onpremise-idp/win-start.webp" alt="On-Premise IDP Server Windows Start"><br><br> </ul> </section> <section id="prereqwinm-section" class="prereq-section active-section"> <h4>Prerequisites:</h4> <ul class="authen_sub_bullets"> <li>Installation of JDK 1.8 requires login through the oracle account. If you don't have the oracle account, <a href="https://prod-marketing-site.s3.amazonaws.com/idp/on-premise/downloads/jdk1.8.0_381.zip" rel="nofollow">Click here</a> to directly install JDK 1.8.</li> <li>If JAVA is already installed and Environment variables are set correctly on your system, then you don't need to follow this step, you can directly go to <a href="#step1">Install On-Premise Server</a></a>.</li> <div class="note-box"> <h4>Note:</h4> <p>Once the Java installation is complete, check that the JAVA_HOME environment variable has been set correctly.Open a command prompt and type <code>echo %JAVA_HOME%</code> and hit Enter. If you see a path to your Java installation directory, the JAVA_Home environment variable has been set correctly. If nothing is displayed, or only %JAVA_HOME% is returned, you'll need to set the JAVA_HOME environment variable manually.</p> </div><br><br> <li>Set Java environment variables i.e. JAVA_HOME and JRE_HOME and path variables. Lets say JDK software is installed on your computer, for example, at <i>C:\Program Files\Java\jdk1.8.0_381 </i> then JAVA_HOME and JRE_HOME paths can be as mentioned -</li> <ul> <li>JAVA_HOME - <i>C:\Program Files\Java\jdk1.8.0_381</i></li> <li>JRE_HOME - <i>C:\Program Files\Java\jdk1.8.0_381\jre</i></li> </ul> <li>To Save these variables, right click <b>My Computer</b> and select <b>Properties</b> > <b>Advanced System Settings</b>.Click the <b>Environment Variables</b> button.Under System Variables, click <b>New</b>.In the Variable Name field, enter:</li> <ul> <li>JAVA_HOME - <i>C:\Program Files\Java\jdk1.8.0_381</i></li> <li>JRE_HOME - <i>C:\Program Files\Java\jdk1.8.0_381\jre</i></li> </ul> <li>Also update the path variable set with path : path_to_JAVA_HOME/bin. You can <a href="https://stackoverflow.com/questions/1672281/environment-variables-for-java-installation" target="_blank">Read more </a>about java specfic environment variables.</li> <li>You can verify whether above environment variables are set correctly. Execute below commands to verify environment variables -</li> <code>echo %JAVA_HOME%</code> <code>echo %JRE_HOME%</code> <br><h4>Start miniOrange On-Premise IDP Server:</h4> <li>To start the miniOrange server, go to the mo-idp-server-&lt;version&gt;/bin directory of the server distribution (i.e. folder with name similar to mo-idp-server-1.0.3 (version may vary)). Execute the startup file based on your environment.</li> <code>> ...\bin\startup.bat</code> </ul> <br> <h4>Run Tomcat as a Service for miniOrange IDP</h4> <ul class="authen_sub_bullets"> <li>Make sure your environment variable like <b>JAVA_HOME</b> and <b>CATALINA_HOME</b> are set.</li> <li>Navigate the to <b>&lt;Tomcat Root Directory&gt;/bin</b>.</li> <li>Open a CMD in the current directory and run <b>mo-service.bat</b></li> <li>You will be prompted with an administrator grant screen. <b>Click Yes</b>.</li> <li>Enter the required information and hit <b>Enter</b>.</li> <img class="img_size" src="/images/onpremise-idp/windows-tomcat-service.webp" alt="Tomcat as a Service"><br><br> <li>The miniOrange Service should be installed successfully.</li> </ul> </section> <section id="prereqlin-section" class="prereq-section"> <ul class="authen_sub_bullets"> <li>Open linux terminal using your root profile.</li> <li>Locate folder which contains the downloaded on-premise <b>mo-idp-installer.sh</b> script file (mo-idp-installer.sh).</li> <img class="img_size" src="/images/onpremise-idp/linux-install-locate.webp" alt="On-Premise IDP Server Linux Install Locate Server"><br><br> <li>Run the following command in terminal: <code>sh mo-idp-installer.sh</code></li> <li>You will be prompted to install JAVA. Type <b>"n"</b> if JAVA 8 is already installed, if not type "y". As shown below:</li> <img class="img_size" src="/images/onpremise-idp/linux-install-java.webp" alt="On-Premise IDP Server Linux Install Java"><br><br> <li>After pressing "y", JAVA 8 will be installed.</li> <li>Once the Java installation is completed, miniOrange Onpremise zip file will be downloaded & extracted from the source</li> <img class="img_size" src="/images/onpremise-idp/linux-install-server.webp" alt="On-Premise IDP Server Install"><br><br> <li>In case if JAVA 8 is already present, the script will directly download miniOrange onpremise zip and extract it in the same folder.</li> <img class="img_size" src="/images/onpremise-idp/linux-install-extract-folder.webp" alt="On-Premise IDP Server Linux Extract Folder"><br><br> <li>In case, some other version of JAVA is already installed, you will receive the message "Java 8 not found". Let the script install JAVA 8 by pressing "y" when requested.</li> <li>Once the extraction is completed, IDP server will automatically start up and can be accessed through <b>http://localhost:8080/initialize</b></li> <li>After extraction of the file you can see the folder "mo-idp-server-X as shown below.</li> <img class="img_size" src="/images/onpremise-idp/linux-onpremise-server.webp" alt="On-Premise IDP Server"><br><br> <li>As Tomcat has already started up, you can check the logs in <b>catalina.out</b> file <b>*/mo-idp-server-X/logs/catalina.out</b> as shown below:</li> <img class="img_size" src="/images/onpremise-idp/linux-initialize-server.webp" alt="On-Premise IDP Server Initialize"><br><br> <li>Go to <b>http://localhost:8080/initialize</b> and setup your database.</li> </ul> </section> <section id="prereqlinm-section" class="prereq-section"> <ul class="authen_sub_bullets"> <li>You can download OpenJDK8 package using <code>apt install openjdk-8-jdk</code> for Debian, Ubuntu, etc. OR <code>yum install java-1.8.0-openjdk</code> for Fedora, Oracle Linux, Red Hat Enterprise Linux, etc. </li> <li>If JAVA is already installed and Environment variables are set correcty on your system, then you don't need to follow this step, you can directly go to <a href="#step1">Install On-Premise Server</a>.</li> <div class="note-box"> <h4>Note: </h4> <p>Once the Java installation is complete, check that the JAVA_HOME environment variable has been set correctly. Open a terminal and type <code>echo $JAVA_HOME</code> and hit Enter. If you see a path to your Java installation directory, the JAVA_Home environment variable has been set correctly. If nothing is displayed you'll need to set the JAVA_HOME environment variable manually.</p> </div><br> <li>Linux users can use below commands to set JAVA_HOME and JRE_HOME variables using below commands -</li> <ul> <code>export JAVA_HOME=/path/to/jdk</code> <code>export JRE_HOME=/path/to/jre</code> </ul> <li>You can verify whether above environment variables are set correctly. Execute below commands to verify environment variables -</li> <code>echo $JAVA_HOME</code> <code>echo $JRE_HOME</code> <li>To start the miniOrange server, go to the mo-idp-server-&lt;version&gt;/bin directory of the server distribution (i.e. folder with name similar to mo-idp-server-1.0.3 (version may vary)). Execute the startup file based on your environment.</li> <li><b>Linux/Unix:</b> Execute chmod +x startup.sh to give executable permission to this file. Set relevant permission of mo-idp-server folder to allow the creation of new folder like temp or logs folder – chmod 755.<br> <code>$ .../bin/startup.sh</code> </li> </ul> <br> <h4>Run Tomcat as a Service for miniOrange IDP</h4> <ul class="authen_sub_bullets"> <li>Install Tomcat as Linux Service from <a href="http://tomcat.apache.org/" target="_blank"> Apache project site</a>.</li> <li>Unpack the tomcat folder in opt directory. For this, you will need a terminal and root access.</li> <li>Create Tomcat user with restricted permissions:</li> <code> groupadd tomcat <br> useradd -s /sbin/nologin -g tomcat -d /opt/mo-idp-server tomcat <br> passwd tomcat</code> <li>Set the tomcat user as the owner of the <b>$CATALINA_HOME</b> folder.</li> <code>chown -R tomcat.tomcat /opt/mo-idp-server</code> <li>Configure Tomcat to run as a Service</li> <b>Using init.d</b> <li>Navigate to <b>/etc/init.d</b> , create a directory named as <b>tomcat</b> and paste the below code.<br> <code> #!/bin/bash ## Change the path of mo-idp folder below ### BEGIN INIT INFO # Provides: tomcat # Required-Start: $network $remote_fs $syslog # Required-Stop: $network $remote_fs $syslog # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: Start Tomcat at boot time # Description: Start Tomcat at boot time ### END INIT INFO export JAVA_HOME=/usr/lib/jvm/jre export CATALINA_HOME=/opt/&lt;PATH OF MiniOrange IDP Folder&gt; export JAVA_OPTS="-Xms250m -Xmx1024m" RETVAL=$? case $1 in start) if [ -f $CATALINA_HOME/bin/startup.sh ]; then echo $"Starting Tomcat" su -p -s /bin/sh tomcat $CATALINA_HOME/bin/startup.sh fi ;; stop) if [ -f $CATALINA_HOME/bin/shutdown.sh ]; then echo $"Stopping Tomcat" su -p -s /bin/sh tomcat $CATALINA_HOME/bin/shutdown.sh fi ;; *) echo $"Usage: $0 {start|stop}" exit 1 ;; esac exit $RETVAL </code> <li>The script shown above would have a LSB type header to define dependencies and runlevels.</li> <li>To make the script executable:<br><code>chmod ug+x /etc/init.d/tomcat</code></li> <li>Configure the system to run the script at boot:<br><code>sudo update-rc.d tomcat defaults # Debian, Ubuntu <br>sudo chkconfig --add tomcat # Red Hat & co.</code></li> <li>If you want to remove the service:<br><code>sudo update-rc.d -f tomcat remove # Debian, Ubuntu</code></li> <li>To start/stop the script manually:<br><code>service tomcat [start | stop]</code></li> <li>Or the old-fashioned way (Ubuntu):<br><code>/etc/init.d/tomcat [start | stop]</code></li> </ul> </section> </section><br><br> <h3 id="step1" class="listas-sub" data-navtext="1. Setup External Database">1. Setup External Database</h3> <!-- <ul class="authen_sub_bullets"> <li>After tomcat startup, open http://localhost:8080 in browser. You will see a page to choose a database configuration for the identity server. You can choose where you would like to store its data.</li> <li>miniOrange On-Premise Identity Provider gives you the flexibility to choose your database type. We support Embedded H2 Database which is a light weight database good for testing purposes. Later you can migrate to your production database type that is supported in the external database section. In External Database section, we support PostgreSQL (11+), MySQL (8+), MS SQL (2017+) and Oracle Databases.</li><br> </ul> --> <!-- <section class="tab-style"> --> <!-- <section class="tabs tabs-style-underline"> <ul class="tab-des"> <li id="embeddb" class="db-tab tab-us"><a class="tab-link"><span class="span-idp">Setup Embedded Database</span></a></li> <li id="extdb" class="db-tab tab-us"><a class="tab-link"><span class="span-idp">Setup External Database</span></a></li> </ul> </section><br> --> <!-- <section id="embeddb-section" class="db-section active-section"> <div class="note-box"> <h4>Note:</h4> <p>Before you proceed with Embedded H2 database, make sure your system has given write permission to the IdP folder i.e. mo-idp-server-&lt;version&gt; folder. If not then first assign the write permission to the IdP folder to avoid getting stuck in permission issues. Write permission is required because Embedded H2 database is created in IdP folder with the folder named data.</p> </div><br> <ul class="authen_sub_bullets"> <li>Select embedded Database and click on proceed.</li> <img class="img_size" src="/images/onpremise-idp/database-types.webp" alt="Database Type"><br><br> <li>Set up miniOrange with the embedded H2 database to get you started. You’ll need to migrate to a supported external database before using miniOrange as a production system. This option is recommended if you’re just using miniOrange for a test trial. The database folder is created inside the mo-idp-server folder named data.</li> <div class="note-box"> <h4>Note:</h4> <p>In case if you are stuck in permission issues, you can run commands specific to your OS to perceed or you can follow the instructions given on pop-up.</p> <table class="table table-bordered table-stripped"> <tr> <td><b>Windows</b> </td> <td>icacls “path upto mo-idp-server-X ” /remove:d Users /grant:r Users:(OI)(CI)F /T</td> </tr> <tr> <td><b>Linux</b> </td> <td>chmod -R 775 “path upto mo-idp-server-X”</td> </tr> </table> </div><br> <li>If you don't have enough privileges to run above commands, in that case either you can follow instructions from pop-up or can <a href="mailto:idpsupport@xecurify.com">contact us</a>. </li> <img class="img_size" alt="permission flow" src="/images/onpremise-idp/permission-flow.webp"><br><br> <li>Once database is created successfully, you will be redirected to the admin set up page where you will configure admin account for Identity Provider.</li> </ul> </section> --> <!-- <section id="extdb-section" class="db-section active-section"> --> <ul class="authen_sub_bullets"> <li>Set up miniOrange with the external database supported in the list below. This is recommended for production systems. miniOrange supports a number of databases and if you don’t have an established database of choice within your organization and do not have a strong preference for any of our supported databases, we recommend PostgreSQL, which is free and thoroughly tested against.</li> <li>You can refer to the below document to see supported versions of MySQL, PostgreSQL, MS SQL, and Oracle DB: <a href="/iam/on-premise-identity-server/supported-database" target="_blank">click here.</a></li> <div class="note-box"> <h4>Note:</h4> <p>If you already have a database setup which is not in the list below, you can contact us to add support for that database.</p> </div><br> <li>Create an empty database in your database server: PostgreSQL/MySQL/MS SQL/Oracle DB. Once done, start filling the form shown below: </li> <li>If you choose MSSQL and want to enable MVCC behavior in MSSQL, run the following query: <code>ALTER DATABASE YourDatabaseName<br>SET ALLOW_SNAPSHOT_ISOLATION ON;</code><br> <div class="directories-section"> <h4><b>Note:</b></h4> <p>You can refer <a href="https://faq.miniorange.com/knowledgebase/why-snapshot-isolation-is-required-for-mssql/" target="_blank">this link</a> to know more about how miniOrange can enhance performance and data consistency by enabling Snapshot Isolation.</p><br> </div><br><br> <img class="img_size" src="/images/onpremise-idp/external-dbs.webp" alt="External database"><br><br> <li>Enter Database Host: localhost or IP address.</li> <li>Enter the Database Name created in your database server.</li> <li>Enter username and password of your database server for the connection. </li> <img class="img_size" src="/images/onpremise-idp/external-db-fields.webp" alt="External Database configuration"><br><br> <li>Once database is created successfully, you will be redirected to the admin set up page where you will configure admin account for Identity Provider.</li> </ul> <!-- </section> </section><br><br> --> <h3 id="step2" class="listas-sub" data-navtext="2. Setup Admin Account">2. Setup Admin Account</h3> <ul class="authen_sub_bullets"> <li>Setup your Admin Account. Enter a Username and Password for your admin account. </li> <img class="img_size" alt="Admin Setup Page" src="/images/onpremise-idp/admin-setup-page.webp"><br><br> <li>Once your admin account is created, you will be auto logged in to the dashboard screen. </li> <img class="img_size" alt="Admin dashboard" src="/images/identity-platform-handbook/dashboard.webp"><br><br> </ul><br><br> <h3 id="step3" class="listas-sub" data-navtext="3. Deploy Microservices">3. Instruction to deploy microservices</h3> <ul> <h4 class="lists-sub margin-top-1">Prerequisites</h4> <ul class="authen_sub_bullets"> <li>RabbitMQ is installed in your system.</li> <li>Redis is installed in your system.</li> <li>miniOrange IDP is successfully installed in your System.</li> <ul class="authen_sub_bullets"> <li>miniOrange IDP is set to use redis profile.</li> <ul class="authen_sub_bullets"> <li>In case of miniOrange installed as a service then configure the profile in the JAVA tab by executing &lt;miniOrange_Directory&gt;/bin/tomcat9w.exe and navigate to the java tab. Add the line under the Java Options <br>-Dspring.profiles.active=redis </li> <img class="img_size" src="/images/onpremise-idp/tomcat.webp" alt="On-Premise IDP Server Windows Tomcat9W file"><br><br> <li>In case of execution via bat file add the line in &lt;miniOrange_Directory&gt;/bin/catalina.bat file , just below rem ----- Execute The Requested Command ---------- The line is -<br> set "JAVA_OPTS=%JAVA_OPTS% -Dspring.profiles.active=redis"</li> <img class="img_size" src="/images/onpremise-idp/catalina-bat.webp" alt="On-Premise IDP Server Catalina bat file"><br><br> </ul> </ul> <li>Provisioning service is set to use the IDP DB.</li> <ul class="authen_sub_bullets"> <li>Navigate to &lt;miniOrange_Directory&gt;/webapps/provisioning-service/WEB-INF/classes and edit the application.properties file.</li> <img class="img_size" src="/images/onpremise-idp/application-properties.webp" alt="On-Premise IDP Server application properties file"><br><br> </ul> <li>Following ports to be free on System: (If you use defaults) <ul class="authen_sub_bullets"> <span>a. 8080</span><br> <span>b. 80</span><br> <span>c. 8070</span><br> <span>d. 8071</span><br> <span>e. 8073</span><br> <span>f. 9081</span> </ul></li> </ul> <p>We assume the entire suite of services will be installed on a standalone system. In case of a distributed system setup you can reach out to us and our engineers will help you to install this in a distributed, Highly Available manner.</p> <ul class="authen_sub_bullets"> <li>Navigate to your miniOrange Directory.</li> <li>Navigate to <code class="code-style"><b>services/services/windows/</b></code></li> <li>Open the command terminal in the current directory. You can do this by right-clicking and selecting Open in Terminal.</li> <li>Run the command: <b>windows-service.bat</b>. This will prompt you for consent, select Yes and continue.</li> <img class="img_size" src="/images/onpremise-idp/prompt-consent.webp" alt="On-Premise IDP Server Windows Prompt Consent"><br><br> <li>The installation will set some of the system variables for you. We will be using system defaults for the StandAlone installation. These Include <ul class="authen_sub_bullets margin-top-1"> <li><b>MO_CONFIG_PATH</b> - This is the path where the configurations for the microservices will be saved. By default, the path is <b>&lt;miniOrange Directory\services\config&gt;</b>. This path should be considered for standalone installation.</li> <li><b>ROOT_LOG_LEVEL</b> - DEBUG by default.</li> <li><b>MINIORANGE_LOG_LEVEL</b> - DEBUG by default.</li> <li><b>MO_LOG_PATH</b> - Path where all the log files will live. By default, the path is <code class="code-style"><b>&lt;miniOrange Directory\services\logs&gt;</b></code></li> <li><b>MO_SERVICES_UTIL_TOKEN</b> - (Optional) A manually set authorisation token for critical internal service communication</li> <img class="img_size" src="/images/onpremise-idp/standalone-installation.webp" alt="On-Premise IDP Server Windows Standalone Installation"><br><br> </ul> </li> <li>The installation will then proceed to Install all the individual services. Use all the default values stated as they are calibrated specifically for a standalone installation. <ul class="authen_sub_bullets margin-top-1"> <li>Installation begins with the <b>NGINX Proxy Server</b>. Use the default Path and continue. Just Hit enter to use the default path.</li> <li><b>Eureka Service</b>. This will ask for two inputs. The JAR Path and the port. As stated above use defaults in case of standalone installation.</li> <li><b>Configuration Service</b>. This will ask for two inputs. The JAR Path and the port. As stated above use defaults in case of standalone installation.</li> <li><b>Gatekeeper Service</b>. This will ask for two inputs. The JAR Path and the port. As stated above use defaults in case of standalone installation.</li> <li><b>Auditing Service</b>. This will ask for two inputs. The JAR Path and the port. As stated above use defaults in case of standalone installation.</li> <img class="img_size" src="/images/onpremise-idp/install-individual-services.webp" alt="On-Premise IDP Server Windows Install Individual Services"><br><br> </ul> </li> <li>Now we need to configure RabbitMQ and Redis configurations settings in the Microservices Configurations. For this Navigate to the Configuration folder <b>&lt;miniOrange Directory>\services\config&gt;</b>. (This path will change if you have not used the defaults in the earlier setup)</li> <img class="img_size" src="/images/onpremise-idp/redis-configuration.webp" alt="On-Premise IDP Server Windows Redis Configuration"><br><br> <li>Edit the application.properties <ul class="authen_sub_bullets margin-top-1"> <li><b>Setup Database</b> <ul class="authen_sub_bullets margin-top-1"> <li><b>jdbc.driverClassName</b> : This can be one of the following based on the database you are using. <ul class="authen_sub_bullets margin-top-1"> <li>PostgresSQL: <code class="code-style"><b>org.postgresql.Driver</b></code></li> <li>MySQL: <code class="code-style"><b>com.mysql.cj.jdbc.Driver</b></code></li> <li>MicrosoftSQL: <code class="code-style"><b>com.microsoft.sqlserver.jdbc.SQLServerDriver</b></code></li> <li>Oracle: <code class="code-style"><b>oracle.jdbc.OracleDriver</b></code></li> </ul> </li> <li><b>Jdbc.url</b> : This can be one of the following based on the database you are using. <ul class="authen_sub_bullets margin-top-1"> <li>PostgresSQL: <code class="code-style"><b>jdbc:postgresql://&lt;host&gt;:&lt;port&gt;/&lt;database_name&gt;</b></code></li> <li>MySQL: <code class="code-style"><b>jdbc:mysql://&lt;host&gt;:&lt;port&gt;/&lt;database_name&gt;</b></code></li> <li>MicrosoftSQL: <code class="code-style"><b>jdbc:sqlserver://&lt;host&gt;:&lt;port&gt;/&lt;database_name&gt;</b></code></li> <li>Oracle: <code class="code-style"><b>jdbc:oracle:thin:@&lt;host&gt;:&lt;port&gt;/&lt;database_name&gt;</b></code></li> </ul> </li> <li><b>Jdbc.username:</b> Username for accessing the Database.</li> <li><b>Jdbc.password:</b> Password for accessing the Database.</li> </ul></li> <li><b>Setup Redis</b> <ul class="authen_sub_bullets margin-top-1"> <li>Spring.redis.port: Port where the Redis Service is running</li> <li>Spring.redis.host= Hostname of the server where redis is running.</li> <li>spring.redis.password= If Redis is using a password. Otherwise comment it. This can be done by adding # in the beginning of the property.</li> </ul> </li> <li><b>Setup Rabbit MQ</b> <ul class="authen_sub_bullets margin-top-1"> <li>rabbitmq.host=Hostname of the server where the RabbitMQ is Deployed.</li> <li>rabbitmq.port=Port where the Rabbit MQ Service is running.</li> <li>rabbitmq.username=Rabbit MQ Username. The default is guest</li> <li>rabbitmq.password=Rabbit MQ Password. The default is guest</li> </ul> </li> <img class="img_size" src="/images/onpremise-idp/edit-application-properties.webp" alt="On-Premise IDP Server Windows Edit Application Properties"><br><br> </ul> <div class="directories-section"> <p><b>Note:</b> Make sure that you have also added the same details in the application.properties of the main miniOrange IDP Service. It should be present in the given location <b>&lt;miniOrange Directory&gt;\moas\WEB-INF\classes\</b>.</p> </div> <li>Start the Auditing Service, NGINX Service, miniOrange Service and the Eureka Service. Navigate to the Windows Services tray and initiate both the services.</li> <img class="img_size" src="/images/onpremise-idp/windows-services-tray.webp" alt="On-Premise IDP Server Windows Services Tray"><br><br> </ul></li></ul> <br> <h3 id="step4" class="listas-sub" data-navtext="4. Setup Custom Branding">4. Setup Custom Branding</h3> <ul> <p><b>i. Modify the Server Base URL:</b></p> <ul class="authen_sub_bullets margin-top-1"> <li>Log in to the<b> miniOrange</b> admin dashboard.</li> <li>Navigate to <b>Settings</b> (located at the top right).</li> <li>Enter the Server Base URL to your liking (for eg. https://xecuritest.com)</li> <img class="img_size" src="/images/onpremise-idp/newserver.webp" alt="server file"/><br><br> <li>Click <b>Save</b>.</li> </ul><br> <p><b>ii. Update Hosts File:</b></p> <section class="tab-style"> <section class="tabs tabs-style-underline"> <ul class="tab-des"> <li id="updatewindow" class="osupdate-tab tab-us"><a class="tab-link"><span class="span-idp">Windows</span></a></li> <li id="updatelinux" class="osupdate-tab tab-us"><a class="tab-link"><span class="span-idp">Linux</span></a></li> </ul> </section><br> <section id="updatewindow-section" class="osupdate-section active-section"> <ul class="authen_sub_bullets margin-top-1"> <li>Open the folder <code class="code-style"><b>C:\Windows\System32\drivers\etc</b></code></li> <li>Locate the file named <b>hosts</b> and open it.</li> <li>Enter the IP address, followed by a space, and then the new Server Base URL as shown in the screenshot.</li> <img class="img_size" src="/images/onpremise-idp/newhosts.webp" alt="newhosts window"/><br><br> <li>Save the changes.</li> </ul> </section> <section id="updatelinux-section" class="osupdate-section"> <ul class="authen_sub_bullets margin-top-1"> <li>Open the <b>terminal / command prompt</b> using administrative rights (example: use sudo su)</li> <li>Edit the <b>/etc/hosts</b></li> <li>Enter the IP address, followed by a space, and then the new Server Base URL as shown in the screenshot.</li> <img class="img_size" src="/images/onpremise-idp/newhostslinux.webp" alt="newhosts linux"/><br><br> <li>Save the changes.</li> </ul> </section> </ul><br><br> <h3 id="run-miniorange-idp-server" class="listas-main" data-navtext="Run miniOrange IDP server over SSL (Optional)">Run miniOrange IDP server over SSL (Optional)</h3> <div class="directories-section"> <h4>Note:</h4><br> <p>Before moving forward, you need to make two changes related to same site cookie. Starting with version 80, Google Chrome will change the default value for the <b>SameSite</b> cookie parameter to <b>Lax</b>. Therefore, changes are required and <b>SameSite</b> parameter has to be set to <b>NONE.</b></p> <p>To do changes, follow the path: mo-idp-server-&lt;version&gt;/moas/WEB-INF/classes. In this folder search for the file <b>spring-context-onpremise</b> and open it in editor. Search for <b>bean id="customCookie".</b> you will see a bean with name,samesite and secure properties. Update value of <b>samesite</b> from <b>LAX</b> to <b>NONE</b> and of <b>secure</b> to <b>true</b>.</p><br> </div><br><br> <section class="tab-style"> <section class="tabs tabs-style-underline"> <ul class="tab-des"> <li id="sscert" class="cert-tab tab-us"><a class="tab-link"><span class="span-idp">For Self Signed Certificate</span></a></li> <li id="cacert" class="cert-tab tab-us"><a class="tab-link"><span class="span-idp">For Certificates from Trusted CAs</span></a></li> </ul> </section><br> <section id="sscert-section" class="cert-section active-section"> <ul class="authen_sub_bullets"> <h5>1. Generate a Keystore </h5> <ul class="authen_sub_bullets"> <li>Open a command prompt or terminal. And go to &lt;Path to JAVA_HOME/bin&gt; path and enter the command given below.<br><code>keytool -genkey -alias onpremssoidp -keyalg RSA -keystore onpremssoidp.jks</code></li> <li>If you get a permission error (mostly on a windows machine) in this step.Then change the location in command prompt or terminal to Desktop or any other location of your choice.</li> <li>Enter your convenient password and remember it.(If the password you entered didn’t work then keep the password as “changeit” ).</li> </ul> <h5>2. Generate SSL Certificate</h5> <ul class="authen_sub_bullets"> <li>After Pressing the Return key it will prompt for a password for &lt;onpremssoidp&gt;. Hit Return to continue.<br><i>(Note: firstname and lastname needs to be the server DNS name/hostname of the server)</i></li> <img src="/images/onpremise-idp/ssl.webp" alt="generate ssl certificate" class="img_size"><br><br> <li>SSL self-signed certificate is generated at the given location.</li> </ul> <h5>3. Configure Tomcat with above-generated Keystore</h5> <ol> <p><b>1. Open Tomcat Configuration:</b></p> <ul class="authen_sub_bullets margin-top-1"> <li>Navigate to the <b>conf</b> directory within the miniOrange installation folder.</li> <li>Open the<b> server.xml</b> file in a text editor.</li> </ul> <p><b>2. Edit server.xml:</b></p> <ul class="authen_sub_bullets margin-top-1"> <li>Locate the line &lt;<b>Service name=”Catalina”</b>&gt;.</li> <li>Immediately after this line, insert the following snippet: <pre><b>&lt;Connector port=&quot;443&quot; protocol=&quot;HTTP/1.1&quot; SSLEnabled=&quot;true&quot; maxThreads=&quot;150&quot; scheme=&quot;https&quot; secure=&quot;true&quot; clientAuth=&quot;false&quot; sslProtocol=&quot;TLS&quot; keystoreFile=&quot;&lt;JKS Keystore Path&gt;&quot; ciphers=&quot;ALL&quot; keystorePass=&quot;&lt;Password while keystore generation&gt;&quot;/&gt;</b></pre></li> <li>Replace &lt;<b>JKS Keystore Path</b>&gt; with your keystore file path and &lt;<b>Password while keystore generation</b>&gt; with your keystore password. <div class="directories-section"> <p><b>Note: </b>Make sure the .jks file has appropriate permissions/run command prompt as Administrator.</p> </div> </li> </ul> </ol> </ul> </section> <section id="cacert-section" class="cert-section active-section"> <p>Using a certificate from Trusted CAs like LetsEncrypt, GoDaddy, Comodo SSL.</p> <div class="panel-group" id="accordion"> <div class="panel panel-default"> <div class="panel-heading"> <h4 class="panel-title"> <a data-toggle="collapse" data-parent="#accordion" data-target="#collapse5" class="d-block csr-ptr">a) LetsEncrypt</a> </h4> </div> <div id="collapse5" class="panel-collapse collapse"> <div class="panel-body"> <ul class="authen_sub_bullets"> <li>The following steps assume that you have a valid certificate generated through Certbot. In case you do not have the certificates, you can use the Certbot commands below to generate the certificate for your domain<br> <code>certbot certonly --standalone -d.example.com</code></li> <li>Once the certificate is generated, the following folder structure will be obtained.<br> <code>#:/etc/letsencrypt/live/example.com# ls <br> cert.pem chain.pem fullchain.pem privkey.pem README</code> </li> <li>Copy over the cert.pem, chain.pem, fullchain.pem and privkey.pem in the conf directory of the IdP. </li> <li>Edit the conf/server.xml and add the following connector element. <pre> &lt;Connector port="443" protocol="org.apache.coyote.http11.Http11NioProtocol" maxThreads="150" SSLEnabled="true"&gt; &lt;SSLHostConfig&gt; &lt;Certificate certificateFile="conf/cert.pem" certificateKeyFile="conf/privkey.pem" certificateChainFile="conf/chain.pem" /&gt; &lt;SSLHostConfig&gt; &lt;Connector&gt; </pre> </li> <li>Restart the IdP. The IdP should now use the valid certificate from LetsEncrypt.</li> </ul> </div> </div> </div> <div class="panel panel-default"> <div class="panel-heading"> <h4 class="panel-title"> <a data-toggle="collapse" data-parent="#accordion" data-target="#collapse6" class="d-block csr-ptr">b) Go Daddy</a> </h4> </div> <div id="collapse6" class="panel-collapse collapse"> <div class="panel-body"> <ul class="authen_sub_bullets"> <li>The steps below assume that you have downloaded the valid SSL certificates from GoDaddy. The certificates need to be imported in a Java Keystore (JKS). In order to create a JKS, the keytool utility can be used.<br> <code>keytool -genkey -alias onpremssoidp -keyalg RSA -keystore onpremssoidp.jks</code> </li> <li>The original certificates need to be removed from the keystore. That can be done using the below command.<br> <code>keytool -delete -alias onpremssoidp -keystore onpremssoidp.jks </code> </li> <li>OpenSSL commands can be used to import the certificates downloaded from GoDaddy into the Java Keystore.<br> <code>openssl pkcs12 -export -in &lt;GoDaddyCertificate&gt;.crt -inkey &lt;PrivateKey&gt;.key<br> -out &lt;PublicPrivateKeyPair&gt;.p12 -name tomcat -CAfile gd_bundle-g2-g1.crt -caname root </code> </li> <li>The keystore can now be used to configure the connector in <b>conf/server.xml</b>. <pre>&lt;Connector port="443" protocol="HTTP/1.1" SSLEnabled="true" maxThreads="150" scheme="https" secure="true" clientAuth="false" sslProtocol="TLS" keystoreFile="&lt;JKS Keystore Path&gt;" ciphers="ALL" keystorePass="&lt;Password while keystore generation&gt;"/&gt; </pre> </li> <li>Restart the IdP. The IdP should now use the valid certificate from GoDaddy.</li> </ul> </div> </div> </div> <div class="panel panel-default"> <div class="panel-heading"> <h4 class="panel-title"> <a data-toggle="collapse" data-parent="#accordion" data-target="#collapse7" class="d-block csr-ptr">c) Comodo SSL</a> </h4> </div> <div id="collapse7" class="panel-collapse collapse"> <div class="panel-body"> <ul class="authen_sub_bullets"> <p>Creating a New Keystore</p> <li>Navigate to the directory where you plan to locate the new keystore.</li> <li>Enter the following command:<br> <code>keytool -genkey -alias server -keyalg RSA -keysize 2048 -keystore your_site_name.jks</code> </li> <li>When prompted, create a password for your new Keystore.</li> <li>Enter the required information (Note: Do not type your own name into the name field, type your FQDN).</li> <li>When finished, verify your information by typing “Y” or “Yes”. </li> <li>Finally, enter the password you just created in step three.</li> <br> <p>Creating a CSR on Tomcat Servers</p> <li>Run the following command:<br> <code>keytool -certreq -alias server -file csr.txt -keystore your_site_name.jks</code> </li> <li>Once prompted, enter the password you created in step three of the Keystore instructions</li> <li>Use the information you supplied when creating the keystore. The CSR will be generated and saved in the chosen directory as “CSR.txt.”</li> <li>We recommend saving and backing up the keystore file once you’ve complete generating the CSR. Once you’ve got the CSR complete, choose the SSL certificate you’d like to install on your Tomcat server and then purchase it, copy/pasting the CSR (open the .txt file) into the relevant field (usually the one labelled CSR).</li> <li>Once the purchase and validation are complete, the CA will email you a bundle that includes your SSL certificate and an intermediate certificate that needs to be installed with it.</li> <br> <p>How to Install an SSL Certificate on Your Tomcat Server</p> <li>Save your certificate(s) to the Keystore directory you created.</li> <li>Use the following command to import the keystore:<br> <code>keytool -import -alias server -file your_site_name.p7b -keystore your_site_name.jks</code> </li> <li>You should see a confirmation message that says: “Certificate reply was installed in keystore.”</li> <li>Type “Y” or “Yes” to trust the certificate.</li> <li>Now, finally, we just need to configure the Tomcat server to serve the website via HTTPS.</li> <br> <p>Configuring Your SSL/TLS Connector</p> <li>Using a text editor, open your Tomcat server.xml file.</li> <li>Locate the connector you want to secure with your new keystore.</li> <li>Configure the connector to use port 443 (HTTPS), your configuration file should look something like this: <pre>&lt;Connector port="443" maxHttpHeaderSize="8192" maxThreads="100" minSpareThreads="25" maxSpareThreads="75" enableLookups="false" disableUploadTimeout="true" acceptCount="100" scheme="https" secure="true" SSLEnabled="true" clientAuth="false" sslProtocol="TLS" keyAlias="server" keystoreFile="/home/user_name/your_site_name.jks" keystorePass="your_keystore_password" /&gt;</pre> </li> <li>Save the changes to your server.xml file.</li> <li>Restart your Tomcat server.</li> </ul> </div> </div> </div> </div> <ul class="authen_sub_bullets"> <li>If the above methods don't work follow the link given below</li> <li><a href="https://www.thesslstore.com/knowledgebase/ssl-install/tomcat-ssl-installation/" target="_blank" rel="nofollow">Click here </a>to follow the steps if you have any other CA certificates.</li> </ul> </section> </section><br><br> <h3 id="stepmigrate" class="listas-main" data-navtext="Migration from Zip Distribution to Installer">Migration from Zip Distribution to Installer</h3> <ul class="authen_sub_bullets"> <li>Navigate to your current Tomcat Installation Directory and take backup of your current <b>moas</b> directory present in <b>&lt;tomcat-root&gt;</b></li> <li>Take a backup of your database. In case you are using the internal integrated database,then you can take a backup of the data folder present in the <b>&lt;tomcat-root&gt;</b>. In the case of an external database, you can take a snapshot of the DB.</li> <li>Take backup of <b>&lt;tomcat-root&gt;/conf/server.xml</b> file if you have added additional connectors for SSL in tomcat itself.</li> <img class="img_size" src="/images/onpremise-idp/windows-migration.webp" alt="On-Premise IDP Server Windows Migration from Zip to Installer"><br><br> <li>Delete the current tomcat installation.</li> <li>In case of it being installed as a service then make sure to uninstall the Windows Service.</li> <li>Download the installer and run the downloaded installer file and install the latest On-Premise Server.</li> <Add a link to windows installer setup> <li>Stop the On-Premise service which was just installed.</li> <li>Go to the installed directory root.</li> <li>Go to path <b>&lt;moas-backup-root&gt;/WEB-INF/classes/</b> and copy <b>db.properties and license files</b>. <li>Go to path <b>&lt;On-Premise-service-root&gt;/moas/WEB-INF/classes/</b> and paste the db.properties and license files. <li>Start the On-Premise IDP Server service that you installed.</li> </ul><br><br> <h3 id="stepupgrade" class="listas-main" data-navtext="Upgrade On-Premise IDP">Upgrade On-Premise IDP</h3> <section class="tab-style"> <section class="tabs tabs-style-underline"> <ul class="tab-des"> <li id="upgradewin" class="upgrade-tab tab-us"><a class="tab-link"><span class="span-idp">Windows Installer</span></a></li> <li id="upgradewinm" class="upgrade-tab tab-us"><a class="tab-link"><span class="span-idp">Windows Zip Distribution</span></a></li> <li id="upgradelinux" class="upgrade-tab tab-us"><a class="tab-link"><span class="span-idp">Linux</span></a></li> <!-- <li id="upgradelin" class="upgrade-tab tab-us"><a class="tab-link"><span class="span-idp">Linux Installer</span></a></li> <li id="upgradelinm" class="upgrade-tab tab-us"><a class="tab-link"><span class="span-idp">Linux Zip Distribution</span></a></li> --> </ul> </section><br> <section id="upgradewin-section" class="upgrade-section active-section"> <ul class="authen_sub_bullets"> <li><b>Download</b> the latest version of the Windows Installer from the downloadables section.</li> <li><b>Run the installer</b>, it will automatically detect and install the latest version.</li> </ul> </section> <section id="upgradewinm-section" class="upgrade-section active-section"> <ul class="authen_sub_bullets"> <li><b>Stop</b> the IDP Server.</li> <li>Navigate to your current Tomcat Installation Directory and take backup of your current <b>moas</b> directory present in <b>&lt;tomcat-root&gt;</b>.</li> <img class="img_size" src="/images/onpremise-idp/upgrade-windows-zip.webp" alt="On-Premise IDP Server Windows Upgrade Zip Distribution"><br><br> <li>Take a backup of your database. In case you are using the internal integrated database,then you can take a backup of the data folder present in the <b>&lt;tomcat-root&gt;</b>. In the case of an external database, you can take a snapshot of the DB.</li> <li>Now replace the moas folder in the <b>Tomcat Root Directory</b> with the <b>moas folder</b> present in the downloaded package.</li> <li>Now copy over the following files from backup moas to the newly deployed moas.</li> <ul class="authen_sub_bullets"> <li>\moas\WEB-INF\classes\db.properties</li> <li>\moas\WEB-INF\classes\license.</li> <li>\moas\images\logo.png</li> <li>\moas\images\favicon.ico</li> </ul> <li><b>Start</b> the Tomcat Server.</li> </ul> </section> <section id="upgradelinux-section" class="upgrade-section active-section"> <ul class="authen_sub_bullets"> <h5>Prerequisites:</h5> <li>Login to your <b>admin account</b> and go to <b>Settings>>Product Settings</b>. Copy your <b>Server Base URL</b>.</li> <li>Take a backup of the miniorange db in your db instance.</li> <li>Take a backup of the following files in the server.</li> <ul class="authen_sub_bullets"> <li>mo-idp-server-3.*/moas/WEB-INF/classes/db.properties</li> <li>mo-idp-server-3.*/moas/WEB-INF/classes/license</li> </ul> <li>Go to <b>mo-idp-server-3.*/bin</b> and Shut down the running tomcat instance. <b>(you can use sh shutdown.sh)</b></li> <br> <h5>Steps to upgrade:</h5> <li>Download the latest version to your linux server and unzip it. </li> <li>You will find moas folder inside the uncompressed folder. Replace the mo-idp-server-3.3.*/moas with the new moas folder</li> <li>Replace the backups of db.properties and license file on the same path as mentioned above.</li> <li>Go to mo-idp-server-3.*/bin and Shut down the running tomcat instance. (you can use <b>sh shutdown.sh</b>)</li> <li>Restart the tomcat instance using <b>sh startup.sh</b></li> <li>Open a browser and go to <b>< Your-Server-Base-URL >/initialize</b> </li> </ul> </section> </section><br><br> <h3 id="stepuninstall" class="listas-main" data-navtext="Uninstall On-Premise IDP">Uninstall On-Premise IDP</h3> <section class="tab-style"> <section class="tabs tabs-style-underline"> <ul class="tab-des"> <li id="uninstallwin" class="uninstall-tab tab-us"><a class="tab-link"><span class="span-idp">Windows Installer</span></a></li> <li id="uninstallwinm" class="uninstall-tab tab-us"><a class="tab-link"><span class="span-idp">Windows Zip Distribution</span></a></li> <li id="uninstalllinux" class="uninstall-tab tab-us"><a class="tab-link"><span class="span-idp">Linux</span></a></li> <!-- <li id="uninstalllin" class="uninstall-tab tab-us"><a class="tab-link"><span class="span-idp">Linux Installer</span></a></li> <li id="uninstalllinm" class="uninstall-tab tab-us"><a class="tab-link"><span class="span-idp">Linux Zip Distribution</span></a></li> --> </ul> </section><br> <section id="uninstallwin-section" class="uninstall-section active-section"> <ul class="authen_sub_bullets"> <li>Navigate to <b>Add or remove Programs</b> on your windows System.</li> <img class="img_size" src="/images/onpremise-idp/uninstall-windows-wizard.webp" alt="On-Premise IDP Server Windows Uninstall"><br><br> <li>Search for <b>miniOrange</b> in the list and <b>click</b> on <b>uninstall</b>.</li> <img class="img_size" src="/images/onpremise-idp/uninstall-search.webp" alt="On-Premise IDP Server Windows Uninstall Search"><br><br> <li><b>Click Yes</b> when prompted for confirmation.</li> <img class="img_size" src="/images/onpremise-idp/confirm-uninstall.webp" alt="On-Premise IDP Server Windows Confirm Uninstall"><br><br> <li>Let the uninstall process be completed.</li> <img class="img_size" src="/images/onpremise-idp/uninstall-progress.webp" alt="On-Premise IDP Server Windows Uninstall Progress"><br><br> <li>Click <b>OK</b> on the confirmation prompt.</li> <img class="img_size" src="/images/onpremise-idp/windows-uninstall.webp" alt="On-Premise IDP Server Windows Windows Uninstall"><br><br> </ul> </section> <section id="uninstallwinm-section" class="uninstall-section active-section"> <ul class="authen_sub_bullets"> <li>If you have installed the Tomcat as a Windows Service then we need to remove that first. Navigate to <b>&lt;Tomcat Root&gt;/bin</b> directory and open a CMD in the current directory. Run the command <code>mo-service.bat uninstall</code></li> <li><b>Delete</b> the <b>Tomcat Directory</b>.</li> </ul> </section> <section id="uninstalllinux-section" class="uninstall-section active-section"> <ul class="authen_sub_bullets"> <li>Shutdown any running miniorange tomcat process/ service.</li> <li>Take any backups you might need for the database.</li> <li>Go to the folder <b>mo-idp-server-3.*</b> and delete it.</li> </ul> </section> </section> <h3 id="faq" class="listas-main saml_heading_font" data-navtext="FAQs">Frequently Asked Questions</h3> <div> <div class="panel-group" id="accordion"> <div class="panel panel-default"> <div class="panel-heading"> <h4 class="panel-title"><a data-toggle="collapse" data-parent="#accordion" data-target="#collapse" class="d-block csr-ptr">Error Handling for Keystore Issues</a> </h4> </div> <div id="collapse" class="panel-collapse collapse"> <div class="panel-body"> <p>If you encounter the error:"keytool error: java.lang.Exception: Key pair not generated, alias &lt;onpremssoidp&gt; already exists"</p> <p>This indicates that the keystore file already exists. To resolve this, follow these steps:</p> <ul class="authen_sub_bullets"> <li>Delete the existing keystore file located from path &lt;Path to JAVA_HOME/bin&gt; file named as "onpremssoidp.jks"</li> <li>Rerun the key generation command “keytool -genkey -alias onpremssoidp -keyalg RSA -keystore onpremssoidp.jks” and fill in the details.</li> </ul> </div> </div> </div> <div class="panel panel-default"> <div class="panel-heading"> <h4 class="panel-title"><a data-toggle="collapse" data-parent="#accordion" data-target="#collapse1" class="d-block csr-ptr">Online Installer errors out saying that connection timed out.</a></h4> </div> <div id="collapse1" class="panel-collapse collapse"> <div class="panel-body"> <p>Encounter the error:</p> <img class="img_size" src="/images/onpremise-idp/timed-out.webp" alt="On-Premise IDP Server Online Error Time Out"><br><br> <p>If you get an error similar to the above image, follow these steps.</p> <p><b>Disable IPv6 on Windows:</b></p> <ul class="authen_sub_bullets"> <li><b>Open Network and Sharing Center:</b> <ul class="authen_sub_bullets margin-top-1"> <li>Go to <b>Control Panel > Network and Sharing Center</b>.</li> </ul> </li> <li><b>Change Adapter Settings:</b> <ul class="authen_sub_bullets margin-top-1"> <li>Click on <b>Change adapter settings</B> on the left sidebar.</li> </ul> </li> <li><b>Disable IPv6:</b> <ul class="authen_sub_bullets margin-top-1"> <li>Right-click on your active network connection (Ethernet or Wi-Fi) and select <b>Properties</b>.</li> <li>Uncheck the box for <b>Internet Protocol Version 6 (TCP/IPv6)</b>. Click <b>OK</b> to save the changes.</li> <img class="img_size" src="/images/onpremise-idp/ethernet-properties.webp" alt="On-Premise IDP Server Disable IPv6 on Windows"><br><br> </ul> </li> </ul> </div> </div> </div> </div> </div> </div><br> <h3 id="references" class="listas-main saml_heading_font" data-navtext="Further References">Further References</h3> <ul class="authen_sub_bullets"> <li><a href="/iam/solutions/on-premise-mfa" target="_blank">Learn more about On-Premise MFA Solution</a></li> <li><a href="/blog/multi-factor-authentication-mfa-for-active-directory-ad/" target="_blank">Multi-Factor Authentication for On-Premise Active Directory</a></li> <li><a href="/iam/solutions/cloud-vs-on-premise" target="_blank">Cloud Vs On-Premise Deployment</a></li> <li><a href="/products/secure-remote-access" target="_blank">Secure Remote Access </a></li> <li><a href="/iam/solutions/secure-network-devices" target="_blank">Secure Network Infrastructure Devices with MFA </a></li> <li><a href="/iam/on-premise-identity-server/" target="_blank">On Premise IAM Solutions</a></li> </ul> </div> </div> </div> <script> jQuery(document).ready(function(){ jQuery(".prereq-tab, .os-tab, .db-tab, .cert-tab, .upgrade-tab, .osupdate-tab, .uninstall-tab").css('border-bottom','1px solid #2c8686'); jQuery("#prereqwin, #updatewindow, #win, #embeddb, #sscert, #upgradewin, #uninstallwin").css('border-bottom','4px solid #2c8686'); jQuery(".prereq-section, .os-section, .osupdate-section, .db-section, .cert-section, .upgrade-section").css('display','none'); jQuery("#prereqwin-section, #win-section, #updatewindow-section, #embeddb-section, #sscert-section, #upgradewin-section, #uninstallwin-section").css('display','block'); jQuery(".prereq-tab").click(function(){ jQuery(".prereq-section").css('display','none'); jQuery("#" + jQuery(this).attr('id') + "-section").css('display','block'); jQuery(".prereq-tab").css('border-bottom','1px solid #2c8686'); jQuery(this).css('border-bottom','4px solid #2c8686'); }); jQuery(".upgrade-tab").click(function(){ jQuery(".upgrade-section").css('display','none'); jQuery("#" + jQuery(this).attr('id') + "-section").css('display','block'); jQuery(".upgrade-tab").css('border-bottom','1px solid #2c8686'); jQuery(this).css('border-bottom','4px solid #2c8686'); }); jQuery(".uninstall-tab").click(function(){ jQuery(".uninstall-section").css('display','none'); jQuery("#" + jQuery(this).attr('id') + "-section").css('display','block'); jQuery(".uninstall-tab").css('border-bottom','1px solid #2c8686'); jQuery(this).css('border-bottom','4px solid #2c8686'); }); jQuery(".os-tab").click(function(){ jQuery(".os-section").css('display','none'); jQuery("#" + jQuery(this).attr('id') + "-section").css('display','block'); jQuery(".os-tab").css('border-bottom','1px solid #2c8686'); jQuery(this).css('border-bottom','4px solid #2c8686'); }); jQuery(".cert-tab").click(function(){ jQuery(".cert-section").css('display','none'); jQuery("#" + jQuery(this).attr('id') + "-section").css('display','block'); jQuery(".cert-tab").css('border-bottom','1px solid #2c8686'); jQuery(this).css('border-bottom','4px solid #2c8686'); }); jQuery(".db-tab").click(function(){ jQuery(".db-section").css('display','none'); jQuery("#" + jQuery(this).attr('id') + "-section").css('display','block'); jQuery(".db-tab").css('border-bottom','1px solid #2c8686'); jQuery(this).css('border-bottom','4px solid #2c8686'); }); jQuery(".osupdate-tab").click(function(){ jQuery(".osupdate-section").css('display','none'); jQuery("#" + jQuery(this).attr('id') + "-section").css('display','block'); jQuery(".osupdate-tab").css('border-bottom','1px solid #2c8686'); jQuery(this).css('border-bottom','4px solid #2c8686'); }); }); </script> <!---recaptcha script--> <script src='https://www.google.com/recaptcha/api.js'></script> <script> $.getScript("https://www.google.com/recaptcha/api.js"); window.onload = function() { var $recaptcha = document.querySelector('#g-recaptcha-response'); if ($recaptcha) { $recaptcha.setAttribute("required", "required"); $recaptcha.setAttribute('aria-label', 'Captcha verification'); } }; </script> <style> #g-recaptcha-response { display: block !important; position: absolute; margin: -78px 0 0 0 !important; width: 302px !important; height: 76px !important; z-index: -999999; opacity: 0; } </style> <!--End of recaptcha script--> <script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-datepicker/1.9.0/js/bootstrap-datepicker.min.js" integrity="sha512-T/tUfKSV1bihCnd+MxKD0Hm1uBBroVYBOYSk1knyvQ9VyZJpc/ALb4P0r6ubwVPSGB2GvjeoMAJJImBG12TiaQ==" crossorigin="anonymous" referrerpolicy="no-referrer"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.13.0/moment.min.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/moment-timezone/0.5.3/moment-timezone-with-data.min.js"></script> <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-datepicker/1.9.0/css/bootstrap-datepicker.min.css" integrity="sha512-mSYUmp1HYZDFaVKK//63EcZq4iFWFjxSL+Z3T/aCt4IO9Cejm03q3NKKYN6pFQzY0SBOr8h+eCIAZHPXcpZaNw==" crossorigin="anonymous" referrerpolicy="no-referrer" /> <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-datepicker/1.9.0/css/bootstrap-datepicker.standalone.min.css" integrity="sha512-TQQ3J4WkE/rwojNFo6OJdyu6G8Xe9z8rMrlF9y7xpFbQfW5g8aSWcygCQ4vqRiJqFsDsE1T6MoAOMJkFXlrI9A==" crossorigin="anonymous" referrerpolicy="no-referrer" /> <div class="row background-img-dot" id="request-demo"> <div class="container" id="request-demo-section"> <div class="request-demo-wrapper"> <h2 class="request-demo-heading" id="schedule_demo_form" style="margin-top:50px;">Want To Schedule A Demo?</h2> <div class="request-demo-card"> <div class="col-md-5"> <img src="/images/product-page/request-demo-banner.webp" height="380px" width="auto" alt="Request a Demo" loading="lazy"> </div> <div class="col-md-7"> <div class="request-demo-msg-modal"> <span class="info-icon"><i class="fas"></i>&nbsp;&nbsp;</span> <span class="request-demo-msg"></span> </div> <form method="POST" action="" class="request_demo_form" id="schedule_demo_form"> <div class="form-group contact-column"> <label>Work Email&nbsp;<span class="text-danger">*</span></label> <input aria-label="Work Email" type="email" name="contact_email" id="request_demo_email" required="true" placeholder="Enter valid email" class="form-control bft-textarea"> </div><br> <div class="form-group contact-column" id="phoneFieldContainer"> <label for="phone"> <p><b>Phone*</b></p> </label> <div class="phone-container"> <div class="country-code-container"> <input aria-label="Country Code" id="countryCodes" class="field-label-text country-codes-format form-control bft-textarea"> </div> <div class="phone-no-flex"> <input aria-label="Phone Number" type="tel" id="request_demo_phone" class="field-label-text phone-container-field form-control bft-textarea" placeholder="Phone Number" name="phone" required pattern="[\+]?[0-9\s\-]{1,15}" maxlength="15"> </div> </div> </div><br> <div class="form-group contact-column"> <label for="checkin" class="field-label">Book your time slot</label><br> <div class="book-slot-section"> <div class="datetime-input"> <label for="checkin" class="field prepend-icon"> <input aria-label="Calendar" type="datetime-local" id="checkin" max="2100-12-31T23:59" name="calendar" onclick="this.showPicker()" class="gui-input form-control bft-textarea" placeholder="mm/dd/yyyy"> </div> <div class="timezone-input"> <select aria-label="Timezone" class="form-control bft-textarea" id="dropdownTimeZone"></select> </div> </div> </label> </div> <div class="g-recaptcha" id="rcaptcha" data-sitekey="6LdxQgUhAAAAALdpow7WAwz8AWa9wWmKICf3650N"></div> <span id="captcha" style="color:red;"></span> <!-- this will show captcha errors --> <input aria-label="Submit Request Demo" class="btn prod-banner-btn" type="submit" name="request_demo_btn" value="Request Demo" id="request_demo_submit_button" /> </form> </div> </div> </div> </div> </div> <style> </style> <script> var invalid = false; $(document).ready(function() { $(".country-codes-format").intlTelInput(); $(".country-codes-format").prop('readonly', true); $(".country-codes-format").addClass("form-control[readonly]"); $('#request_demo_email').on('keyup', function() { var email = $(this).val().toLowerCase(); if (email.endsWith("@gmail.com") || email.endsWith('@yahoo.com') || email.endsWith('@hotmail.com') || email.endsWith('@protonmail.com') || email.endsWith('@yahoo.co.in') || email.endsWith('@outlook.com')) { fail(); invalid = true; } else if (invalid) { $('.request-demo-msg-modal').slideToggle("slow", "linear"); invalid = false; } }); }); function isValidEmail(email) { if (email.toLowerCase().endsWith("@gmail.com") || email.toLowerCase().endsWith('@yahoo.com') || email.toLowerCase().endsWith('@hotmail.com') || email.toLowerCase().endsWith('@protonmail.com') || email.toLowerCase().endsWith('@yahoo.co.in') || email.toLowerCase().endsWith('@outlook.com')) { fail(); } success(); return true; } function success() { $('.request-demo-wrapper .request-demo-msg-modal').removeClass('text-danger bg-danger'); $('.request-demo-wrapper .request-demo-msg-modal').addClass('text-success bg-success'); $('.request-demo-wrapper .request-demo-msg-modal i').removeClass('fa-info-circle'); $('.request-demo-wrapper .request-demo-msg-modal i').addClass('fa-check-circle'); $('.request-demo-wrapper .request-demo-msg-modal .request-demo-msg').text('Thank you for reaching out to us. We will get back to you soon.'); $('.request-demo-msg-modal').hide(); $('.request-demo-msg-modal').slideToggle("slow", "linear"); $('#request_demo_email').val(''); setTimeout(function() { $('#checkin').val(''); }, 200); setTimeout(function() { loadTimeZoneList(); }, 50); // setTimeout(function(){$('.request-demo-msg-modal').slideToggle("slow","linear");},3000); } function fail() { $('.request-demo-wrapper .request-demo-msg-modal').removeClass('text-success bg-success'); $('.request-demo-wrapper .request-demo-msg-modal').addClass('text-danger bg-danger'); $('.request-demo-wrapper .request-demo-msg-modal i').removeClass('fa-check-circle'); $('.request-demo-wrapper .request-demo-msg-modal i').addClass('fa-info-circle'); $('#request_demo_email').val(''); $('.request-demo-wrapper .request-demo-msg-modal .request-demo-msg').text('Please use Your Business Email.'); if (!invalid) $('.request-demo-msg-modal').slideToggle("slow", "linear"); // setTimeout(function(){$('.request-demo-msg-modal').slideToggle("slow","linear");},3000); } </script> <script> var next_day = new Date(new Date().setDate(new Date().getDate() + 1)).toISOString().slice(0, 16); var final = parseInt(next_day); document.getElementsByName("calendar")[0].min = next_day; function loadTimeZoneList() { let select = document.getElementById("dropdownTimeZone"); select.innerHTML = ""; let browserTimeZone = moment.tz.guess(); let timeZones = moment.tz.names(); timeZones.forEach((timeZone) => { option = document.createElement("option"); option.textContent = `${timeZone} (GMT${moment.tz(timeZone).format('Z')})`; option.value = timeZone; if (timeZone == browserTimeZone) { option.selected = true; } select.appendChild(option); }); } function init() { loadTimeZoneList(); } init(); </script> <div class="compare-box"> <p class="h1 other-prod-main-heading">Our Other Identity & Access Management Products</p> <div class="other-prod-box"> <div class="other-prod-section"> <a href="/products/single-sign-on-sso"> <div class="other-product-box"> <span class="fa-stack fa-2x"> <i class="fa fa-circle-thin fa-stack-2x"></i> <i class="fas fa-sitemap other-prod-icon fa-stack-1x"></i> </span> </div> <h4 class="other-prod-heading">Single Sign-On</h4> <p class="other-prod-text">Seamless login for workforce and customer identity to cloud or on-premise apps</p> <span class="other-prod-link">Learn more</span> </a> </div> <div class="other-prod-section"> <a href="/products/multi-factor-authentication-mfa"> <div class="other-product-box"> <span class="fa-stack fa-2x"> <i class="fa fa-circle-thin fa-stack-2x"></i> <i class="fas fa-fingerprint other-prod-icon fa-stack-1x"></i> </span> </div> <h4 class="other-prod-heading">Multi-factor Authentication</h4> <p class="other-prod-text">Secure access for identities with an additional layer of authentication</p> <span class="other-prod-link">Learn more</span> </a> </div> <div class="other-prod-section"> <a href="/products/adaptive-multi-factor-authentication-mfa"> <div class="other-product-box"> <span class="fa-stack fa-2x"> <i class="fa fa-circle-thin fa-stack-2x"></i> <i class="far fa-comment-dots other-prod-icon fa-stack-1x"></i> </span> </div> <h4 class="other-prod-heading">Adaptive Authentication</h4> <p class="other-prod-text">Block or grant user access based on IP, Device, Time & Location</p> <span class="other-prod-link">Learn more</span> </a> </div> <div class="other-prod-section"> <a href="/products/user-provisioning"> <div class="other-product-box"> <span class="fa-stack fa-2x"> <i class="fa fa-circle-thin fa-stack-2x"></i> <i class="fas fa-user-plus other-prod-icon fa-stack-1x"></i> </span> </div> <h4 class="other-prod-heading">Lifecycle Management</h4> <p class="other-prod-text">Manage & automate user provisioning and deprovisioning to apps</p> <span class="other-prod-link">Learn More</span> </a> </div> </div> </div><footer id="footerId" class="footer-main-container"> <nav class="footer-main"> <div class="footer-container"> <div class="row"> <div class="col-md-12 col-xs-12 col-sm-12"> <div class="col-md-3 col-xs-12 col-sm-12"> <img class="mo-footer" src="/images/footer/miniorange-white.webp" alt="miniorange logo"> <div class="left-most-outer-containe margin-top-1"> <div class="margin-top-1"> <div class="footer-inner-phone-details"> <span class="fa fa-phone"></span> </div> <div> <p class="footer-phone-text">+1 978 658 9387 (US)<br>+91 97178 45846 (India)</p> </div> </div> <div> <div class="footer-email-details"> <span class="fa fa-envelope"></span> </div> <div class="footer-email-text"> <p><a href="mailto:info@xecurify.com">info@xecurify.com</a></p> </div> </div> <button class="btn primary-btn" onclick="location.href='/contact'">Contact Us&nbsp;&nbsp;<img src="/images/iam-icons/arrow-right.svg" class="mo-footer-contact-arrow" alt="Arrow right"></button> <div class="margin-top-1"> <h4 class="footer-stay-connected margin-top-1">STAY CONNECTED</h4> <a href="https://www.linkedin.com/company/miniorange" title="Linkedin" rel="noreferer, noopener" target="_blank" class="footer-text-decoration"> <span class="fa-stack social-icon-outer-font"><img src="/images/footer/linkedin.svg" alt="LinkedIn"></span></a> <a href="https://www.youtube.com/channel/UCxQuL2JNo8HA4baZSIjcgRg" title="YouTube" rel="noreferer, noopener" target="_blank" class="footer-text-decoration"> <span class="fa-stack social-icon-outer-font"> <img src="/images/footer/youtube.svg" alt="YouTube"> </span></a> <a href="https://twitter.com/miniOrange_Inc" title="Twitter" target="_blank" rel="noreferer, noopener" class="footer-text-decoration"> <span class="fa-stack social-icon-outer-font"> <img src="/images/footer/x-twitter.svg" alt="X Twitter"> </span></a> <a href="https://www.facebook.com/miniorangeinc/" title="Facebook" rel="noreferer, noopener" target="_blank" class="footer-text-decoration"> <span class="fa-stack social-icon-outer-font"> <img src="/images/footer/facebook.svg" alt="Facebook"> </span></a> <a href="https://www.instagram.com/miniorange_security/" title="Instagram" rel="noreferer, noopener" target="_blank" class="footer-text-decoration"> <span class="fa-stack social-icon-outer-font"> <img src="/images/footer/instagram.svg" alt="Instagram"> </span></a> </div> </div> </div> <div class="col-md-9 col-xs-12 col-sm-12 margin-top-1"> <div class="col-md-12"> <div class="col-md-5"> <p class="footer-item-heading">Products</p> <ul class="footer-main-sub-items"> <li><a href="/iam">Identity & Access Management</a></li> <li><a href="/iam/customer-identity-access-management-ciam">Customer Identity & Access Management</a></li> <li><a href="/products/privileged-access-management-pam">Privileged Access Management</a></li> <li><a href="/casb">Cloud Access Security Broker</a></li> <li><a href="/products/access-gateway">Access Gateway</a></li> </ul> </div> <div class="col-md-2"> <p class="footer-item-heading">Plugins</p> <ul class="footer-main-sub-items"> <li><a href="https://plugins.miniorange.com/wordpress" target="_blank" class="footer-text-decoration">WordPress</a></li> <li><a href="https://www.miniorange.com/atlassian" target="_blank" class="footer-text-decoration">Atlassian</a></li> <li><a href="https://plugins.miniorange.com/shopify" target="_blank" class="footer-text-decoration">Shopify</a></li> <li><a href="https://plugins.miniorange.com/drupal" target="_blank" class="footer-text-decoration">Drupal</a></li> <li><a href="https://plugins.miniorange.com/joomla" target="_blank" class="footer-text-decoration">Joomla</a></li> <li><a href="https://plugins.miniorange.com/magento" target="_blank" class="footer-text-decoration">Magento</a></li> <li><a href="https://plugins.miniorange.com/moodle" target="_blank" class="footer-text-decoration">Moodle</a></li> </ul> </div> <div class="col-md-2"> <p class="footer-item-heading">Company</p> <ul class="footer-main-sub-items"> <li><a href="/about_us" target="_blank" class="footer-text-decoration">Our Story</a></li> <li><a href="/iam/why-miniorange" target="_blank" class="footer-text-decoration">Why Us</a></li> <li><a href="/newsandevents" target="_blank" class="footer-text-decoration">News</a></li> <li><a href="/career" target="_blank" class="footer-text-decoration">Careers</a></li> <li><a href="/iam/partners" target="_blank" class="footer-text-decoration">Partners</a></li> <li><a href="/customers" target="_blank" class="footer-text-decoration">Customers</a></li> </ul> </div> <div class="col-md-3"> <p class="footer-item-heading">Help and Support</p> <ul class="footer-main-sub-items"> <li><a href="https://faq.miniorange.com" target="_blank" class="footer-text-decoration">Frequently Asked Questions</a></li> <li><a href="/contact" target="_blank" class="footer-text-decoration">Contact Us</a></li> <li><a href="https://forum.miniorange.com" target="_blank" class="footer-text-decoration">Forum</a></li> <li><a href="https://developers.miniorange.com" target="_blank" class="footer-text-decoration">Developer Docs</a></li> </ul> <p class="footer-item-heading pd-tp-tw">Resources</p> <ul class="footer-main-sub-items"> <li><a href="https://www.youtube.com/channel/UCxQuL2JNo8HA4baZSIjcgRg" rel="noreferer, noopener" target="_blank" class="footer-text-decoration">Videos</a></li> <li><a href="/blog" target="_blank" class="footer-text-decoration">Blogs</a></li> <li><a href="/iam/webinar" target="_blank" class="footer-text-decoration">Webinars</a></li> </ul> </div> </div> </div> </div> </div> <div class="pd-tp-tw"></div> </div> </nav> <section class="mo-footer-copyright"> <div class="footer-container text-center"> <span> &copy; Copyright &nbsp;2025&nbsp; miniOrange Security Software Pvt Ltd. All Rights Reserved. <a href="/disclaimer" target="_blank" class="social-icon-color disclaimer-text">Disclaimer</a></span> </div> </section> <a href="javascript:" id="return-to-top"><i class="glyphicon glyphicon-chevron-up"></i></a> </footer> <!-- javascript --> <!-- Placed at the end of the document so the pages load faster --> <script src="/js/jquery.min.js"></script> <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.0/js/bootstrap.min.js"></script> <script async type="text/javascript" src="/js/bootstrap-scrollspy.min.js"></script> <script type="text/javascript" src="/js/image-enlarge.min.js"></script> <script type="text/javascript" src="/js/support-form.min.js?ver=3.9"></script> <script type="text/javascript" src="/js/responsive.min.js"></script> <script type="text/javascript" src="/js/right_nav.min.js?ver=0.5"></script> <script type="text/javascript" src="/js/bootstrap.min.js"></script> <script type="text/javascript" src="/js/download-pdf.min.js?ver=0.6"></script> <!-- <script> !function ($) { $(function(){ // carousel demo $('#myCarousel').carousel() }) }(window.jQuery) </script> --> <script async type="text/javascript" src="/js/holder.min.js"></script> <script type="text/javascript" src="/js/intlTelInput.min.js"></script> <script> $(window).scroll(function() { if ($(this).scrollTop() >= 50) { // If page is scrolled more than 50px $('#return-to-top').fadeIn(200); // Fade in the arrow } else { $('#return-to-top').fadeOut(200); // Else fade out the arrow } }); $('#return-to-top').click(function() { // When arrow is clicked $('body,html').animate({ scrollTop : 0 // Scroll to top of body }, 500); }); //End of Back to Top Button Script </script> <script> function openUseCase() { var a = document.forms["myForm"]["entry.428130736"].value; var b = document.forms["myForm"]["entry.1436371876"].value; var c = document.forms["myForm"]["entry.1743623830"].value; var d = document.forms["myForm"]["entry.840812124"].value; if (a==null || a=="") { } else if(b==null || b==""){ } else if(c==null || c==""){ } else if(d==null || d==""){ } else{ window.open('usecases/' + document.getElementById('entry_726395439').value); } } </script> <style id="antiClickjack"> body{display:none !important;} </style> <script type="text/javascript"> if (self === top) { var antiClickjack = document.getElementById("antiClickjack"); antiClickjack.parentNode.removeChild(antiClickjack); } else { top.location = self.location; } </script> <!-- /.footer --> </body> </html>

Pages: 1 2 3 4 5 6 7 8 9 10