ArcGIS is built with, supports, and evolves with standard IT industry authentication mechanisms, protocols, and technologies to ensure it integrates smoothly with an existing organization’s security policies, practices, and infrastructure. ArcGIS products follow standard authentication practices when accessing IT resources, including file sources, DBMS sources, and web-based sources. ArcGIS Enterprise and ArcGIS Online both support a built-in user store as well as standard user stores and identity providers (IdP) that IT organizations use and provide, like Microsoft Active Directory, LDAP, Okta, and others. ArcGIS clients and servers support authentication across every tier in a single or multi-tier architecture, including ArcGIS clients or servers accessing web services, portals, DBMS(s), file stores, data lakes, and other sources.
ArcGIS also supports and promotes single sign-on (SSO) user authentication experiences that rely on an organization’s existing Identity Provider (IdP) and security infrastructure to manage user identities and credentials and authentication mechanisms. Integrating with IdPs in this way ensures that ArcGIS seamlessly builds on established mission-critical security infrastructure with robust, centralized user provisioning, administration, monitoring, and auditing resources.
To establish a user or programmatic session with ArcGIS Enterprise or ArcGIS Online, the following supported standard industry protocols and mechanisms are used to authenticate users and clients across the ArcGIS system. They include:
ArcGIS also supports anonymous user access to most resource types across the system, for organizations which have a requirement for either open access on their WAN, or public access to applications through the internet.
API keys are only supported with ArcGIS Location Platform ↩
ArcGIS supports and integrates with an organization’s existing identity provider (IdP) based on the supported authentication protocols provided above, such as SAML, IWA/AD, LDAP, or PKI. This integrated approach simplifies the security model and allows ArcGIS to rely on the IdP to directly authenticate users, provide authentication services, manage access (for example, to add or remove privileges or enable or disable accounts), and provide single sign-on (SSO) user experience as well as vulnerability and intrusion prevention resources. Lastly, ArcGIS can integrate with network and cloud based IdPs depending on the authentication protocol(s) supported in the IdP.
When using web-based resources in ArcGIS, a user establishes an identity after they initially authenticate. Identity can be established through the variety of methods, but the general sequence is described as follows:
However authentication is completed, the resulting session is based on the ArcGIS access token. This token is maintained either in application code or as an HTTP cookie and is valid for a specific duration and session. The default token expiration is 120 minutes, though tokens can be refreshed. The user’s identity also includes user-specific attributes that apply across the ArcGIS system and user experience, such as:
Along with the access token, a refresh_token
is also generated, which can be used to refresh the user’s access token and extend their session when usage goes beyond a two-hour period.
When using desktop-based resources in a traditional client-server configuration, for example, DBMS or file server, the user’s identity is based on the security model associated to the server technology or operating system capability.
In backend automation scenarios, like server-to-server or operating system process-based communications, the client in those interactions follows the patterns above to establish identity with associated credentials.
Further information on ArcGIS-specific authentication patterns can be found on the Esri Developer site.
While most use workflows completed in ArcGIS systems are user-based, where a person is interacting with a web page or application that issues requests to a server, other workflows require a server-to-server or programmatic level of interaction, whether for integrating between systems, automating data tasks, or providing some other level of connectivity between different server-like or backend systems.
While server-based requests that allow an anonymous identity are simple to support, there are many options for authenticating these requests when the service or endpoint is secured, and some level of authentication or identification is required. Some general recommendations in this area include:
refresh_token
(generated from a built in or enterprise identity provider), can be embedded in a system and used to generate session tokens on an as-needed basis. A valid refresh token can also be exchanged for a new refresh token, so logic can be created to maintain this refresh token and keep it valid indefinitely.