One common method for securing communication between clients and services is the use of client certificate authentication. This term can cover to a broad definition of client and server workflows. For example, it can be leveraged for a user requesting a web page, or a backend system connecting to an API in a server-to-server communication. PKI certificates can be used to encrypt web communications, sign code and applications, authenticate a user to a remote system or person-to-person communication through patterns like Pretty Good Privacy (PGP).
Client certificates are typically generated for a user from a certificate authority that is maintained or managed by an enterprise IT organization. They are stored in the operating system store, on a separate device, or other storage mechanism such as a USB key or a smart ID card. They can be connected to multiple different computers to allow the user to authenticate from different locations.
In ArcGIS systems, the most common relevant use of client certificates involves users authenticating to an authentication provider. Two main implementation patterns for this workflow are described below.
In ArcGIS Enterprise, web-tier authentication refers to a pattern where a web server hosts an installation of ArcGIS Web Adaptor to establish authentication. The general flow of this pattern includes the following:
This process does not require the client certificate to be sent to or trusted by ArcGIS Enterprise. No password is exchanged or validated with the ArcGIS component. The implicit trust of the client certificate authentication process is what grants the user access.
This pattern is increasingly popular as modern authentication methods are introduced. It involves the use of a client certificate to authenticate the user to a SAML or OIDC-based Identity Provider (IdP). In this pattern, there is no client certificate authentication interaction with ArcGIS Enterprise or ArcGIS Online. Rather, the workflow is as follows:
One additional pattern of client certificate-based authentication has to do with requests that originate from a server-side component, web service or other process, as opposed to an individual user’s session through software, such as a web browser. This process can occur in a wide variety of workflows, including:
In these scenarios, a configuration must be applied to provide a client certificate for the service to use to authenticate to the backend system. This can take many forms or be configured in different ways.