Subpackages
Submodules
arcgis.auth.api module
- class arcgis.auth.api.EsriSession(auth=None, cert=None, verify_cert=True, allow_redirects=True, headers=None, referer='http', **kwargs)
Bases:
object
The EsriSession class is designed to simplify access to the Esri WebGIS environments without the additional components of the arcgis or arcpy modules. It is designed to allow users to connect and manage all HTTP calls themselves with no hand holding.
Security is handled through the requests authentication model. Leveraging authentication handlers and primarily connecting to 10.8.1+ enterprise components.
The supported Authentication Schemes are:
Username/Password
Oauth 2
IWA/NTLM
Basic
Digest
PKI
API Keys
User Provided Tokens
Kerberos
Anyone can extend the authentication handlers by creating a class and inheriting from requests.auth.AuthBase.
The EsriSession authentication supports authentication chaining. Meaning users can stack authentication methods.
auth1 + auth2 + auth3
It is recommended that you do not stack unneeded authenicators because they can caused unintended failures.
Parameter
Description
auth
Optional AuthBase. This is a security handler that performs some sort of security check.
cert
Optional Tuple. The client side certificate as a tuple or string. It should be noted that EsriSession does not support encrypted private keys.
verify_cert
Optional Bool. When False all SSL certificate errors are ignored. The default is True.
allow_redirects
Optional Bool. When False if the URL redirects a user, an error will be raised. The default is True
headers
Optional Dict. An additional set of key/value(s) to append to any request’s header.
referer
Optional Str. The referer header value. The default is http. This is mainly used with token security.
Optional Arguments
Parameter
Description
trust_env
Optional Bool. The default is True. If False proxies will cause an error to be raised if set by .netrc files.
stream
Optional Bool. To enable handling streaming responses, set stream to True and iterate over the response with iter_lines. The default is False.
check_hostname
Optional Bool. When connecting to a side via IP Address with an SSL certificate, the hostname will not match. This allows a user to specify the hostname in the headers parameters and ignore hostname errors.
retries
Optional Int. The max number of tries to retry a service for 50x errors.
backoff_factor
Optional float. The amount of time in seconds to wait between retries.
status_to_retry
Optional Tuple. The status codes to run retries on. The default is (413, 429, 503, 500, 502, 504).
method_whitelist
Optional List. When retries is specified, the user can specifiy what methods are retried. The default is ‘POST’, ‘DELETE’, ‘GET’, ‘HEAD’, ‘OPTIONS’, ‘PUT’, ‘TRACE’
proxies
Optional Dict. A key/value mapping where the keys are the transfer protocol and the value is the <url>:<port>.
example
`python proxies = {"http" : 127.0.0.1:8080, "https" : 127.0.0.1:8081} session = EsriSession(proxies=proxies) `
- delete(url, **kwargs)
Sends a DELETE request. Returns
Response
object.- Parameters:
url – URL for the new
Request
object.**kwargs – Optional arguments that
request
takes.
- Return type:
requests.Response
- get(url, **kwargs)
Sends a GET request. Returns
Response
object.- Parameters:
url – URL for the new
Request
object.**kwargs – Optional arguments that
request
takes.
- Return type:
requests.Response
- head(url, **kwargs)
Sends a HEAD request. Returns
Response
object.- Parameters:
url – URL for the new
Request
object.**kwargs – Optional arguments that
request
takes.
- Return type:
requests.Response
- mount(prefix, adapter)
Registers a connection adapter to a prefix.
Adapters are sorted in descending order by prefix length.
- options(url, **kwargs)
Sends a OPTIONS request. Returns
Response
object.- Parameters:
url – URL for the new
Request
object.**kwargs – Optional arguments that
request
takes.
- Return type:
requests.Response
- patch(url, data=None, **kwargs)
Sends a PATCH request. Returns
Response
object.- Parameters:
url – URL for the new
Request
object.data – (optional) Dictionary, list of tuples, bytes, or file-like object to send in the body of the
Request
.**kwargs – Optional arguments that
request
takes.
- Return type:
requests.Response
- post(url, data=None, json=None, **kwargs)
Sends a POST request. Returns
Response
object.- Parameters:
url – URL for the new
Request
object.data – (optional) Dictionary, list of tuples, bytes, or file-like object to send in the body of the
Request
.json – (optional) json to send in the body of the
Request
.**kwargs – Optional arguments that
request
takes.
- Return type:
requests.Response
- property proxies
Dictionary mapping protocol or protocol and host to the URL of the proxy. (e.g. {‘http’: ‘foo.bar:3128’, ‘http://host.name’: ‘foo.bar:4012’}) to be used on each
Request
.- Returns:
dict
- put(url, data=None, **kwargs)
Sends a PUT request. Returns
Response
object.- Parameters:
url – URL for the new
Request
object.data – (optional) Dictionary, list of tuples, bytes, or file-like object to send in the body of the
Request
.**kwargs – Optional arguments that
request
takes.
- Return type:
requests.Response
Module contents
- class arcgis.auth.ArcGISProAuth(legacy=False)
Bases:
AuthBase
,SupportMultiAuth
Performs the ArcGIS Pro Authentication for a given request.
- class arcgis.auth.BaseEsriAuth
Bases:
AuthBase
A base class that developers can inherit from to create custom authentication handlers.
For more information, please see: https://docs.python-requests.org/en/master/user/authentication/#new-forms-of-authentication
- class arcgis.auth.EsriAPIKeyAuth(api_key, referer=None, verify_cert=True, auth=None)
Bases:
AuthBase
,SupportMultiAuth
authentication for API Keys
- class arcgis.auth.EsriBasicAuth(username, password, referer='http', verify_cert=True, **kwargs)
Bases:
HTTPBasicAuth
,SupportMultiAuth
Describes a basic requests authentication.
- class arcgis.auth.EsriBuiltInAuth(url, username, password, expiration=None, legacy=False, verify_cert=True, referer=None, **kwargs)
Bases:
AuthBase
,SupportMultiAuth
Performs the BUILT-IN Login Authorization for ArcGIS Online and Enterprise
- class arcgis.auth.EsriGenTokenAuth(token_url, referer, username=None, password=None, portal_auth=None, time_out=1440, verify_cert=True, legacy=False, **kwargs)
Bases:
AuthBase
,SupportMultiAuth
This form of Authentication leverages the generateToken endpoint from the ArcGIS Product. This is supported for ArcGIS Online, ArcGIS Enterprise and ArcGIS Server.
This form of authentication is considered legacy and should only be used with unfederated server products.
- class arcgis.auth.EsriHttpNtlmAuth(username, password, session=None, send_cbt=True, **kwargs)
Bases:
AuthBase
HTTP NTLM Authentication Handler for Requests.
Supports pass-the-hash.
This is derived from work of Jordan Borean and requests-ntlm/requests-ntlm2
- exception arcgis.auth.EsriHttpResponseError(message)
Bases:
Exception
Exception raised for http errors.
- Attributes:
message – explanation of the error
- class arcgis.auth.EsriKerberosAuth(referer=None, verify_cert=True, *, username=None, password=None, **kwargs)
Bases:
AuthBase
,SupportMultiAuth
- class arcgis.auth.EsriNotebookAuth(token, referer=None, auth=None, **kwargs)
Bases:
AuthBase
,SupportMultiAuth
authentication for notebook servers Keys
- class arcgis.auth.EsriOAuth2Auth(base_url, client_id, client_secret=None, username=None, password=None, referer='http', expiration=1440, proxies=None, session=None, **kwargs)
Bases:
AuthBase
,SupportMultiAuth
Performs the OAuth Workflow for logging in to Enterprise
- class arcgis.auth.EsriPKCEAuth(url, username, password, *, legacy=False, **kwargs)
Bases:
BaseEsriAuth
Implements OAuth 2.0 PKCE Workflow
- class arcgis.auth.EsriPKIAuth(cert, referer=None, verify_cert=True, **kwargs)
Bases:
AuthBase
,SupportMultiAuth
Handles PKI authentication when tokens are needed
- class arcgis.auth.EsriSession(auth=None, cert=None, verify_cert=True, allow_redirects=True, headers=None, referer='http', **kwargs)
Bases:
object
The EsriSession class is designed to simplify access to the Esri WebGIS environments without the additional components of the arcgis or arcpy modules. It is designed to allow users to connect and manage all HTTP calls themselves with no hand holding.
Security is handled through the requests authentication model. Leveraging authentication handlers and primarily connecting to 10.8.1+ enterprise components.
The supported Authentication Schemes are:
Username/Password
Oauth 2
IWA/NTLM
Basic
Digest
PKI
API Keys
User Provided Tokens
Kerberos
Anyone can extend the authentication handlers by creating a class and inheriting from requests.auth.AuthBase.
The EsriSession authentication supports authentication chaining. Meaning users can stack authentication methods.
auth1 + auth2 + auth3
It is recommended that you do not stack unneeded authenicators because they can caused unintended failures.
Parameter
Description
auth
Optional AuthBase. This is a security handler that performs some sort of security check.
cert
Optional Tuple. The client side certificate as a tuple or string. It should be noted that EsriSession does not support encrypted private keys.
verify_cert
Optional Bool. When False all SSL certificate errors are ignored. The default is True.
allow_redirects
Optional Bool. When False if the URL redirects a user, an error will be raised. The default is True
headers
Optional Dict. An additional set of key/value(s) to append to any request’s header.
referer
Optional Str. The referer header value. The default is http. This is mainly used with token security.
Optional Arguments
Parameter
Description
trust_env
Optional Bool. The default is True. If False proxies will cause an error to be raised if set by .netrc files.
stream
Optional Bool. To enable handling streaming responses, set stream to True and iterate over the response with iter_lines. The default is False.
check_hostname
Optional Bool. When connecting to a side via IP Address with an SSL certificate, the hostname will not match. This allows a user to specify the hostname in the headers parameters and ignore hostname errors.
retries
Optional Int. The max number of tries to retry a service for 50x errors.
backoff_factor
Optional float. The amount of time in seconds to wait between retries.
status_to_retry
Optional Tuple. The status codes to run retries on. The default is (413, 429, 503, 500, 502, 504).
method_whitelist
Optional List. When retries is specified, the user can specifiy what methods are retried. The default is ‘POST’, ‘DELETE’, ‘GET’, ‘HEAD’, ‘OPTIONS’, ‘PUT’, ‘TRACE’
proxies
Optional Dict. A key/value mapping where the keys are the transfer protocol and the value is the <url>:<port>.
example
`python proxies = {"http" : 127.0.0.1:8080, "https" : 127.0.0.1:8081} session = EsriSession(proxies=proxies) `
- delete(url, **kwargs)
Sends a DELETE request. Returns
Response
object.- Parameters:
url – URL for the new
Request
object.**kwargs – Optional arguments that
request
takes.
- Return type:
requests.Response
- get(url, **kwargs)
Sends a GET request. Returns
Response
object.- Parameters:
url – URL for the new
Request
object.**kwargs – Optional arguments that
request
takes.
- Return type:
requests.Response
- head(url, **kwargs)
Sends a HEAD request. Returns
Response
object.- Parameters:
url – URL for the new
Request
object.**kwargs – Optional arguments that
request
takes.
- Return type:
requests.Response
- mount(prefix, adapter)
Registers a connection adapter to a prefix.
Adapters are sorted in descending order by prefix length.
- options(url, **kwargs)
Sends a OPTIONS request. Returns
Response
object.- Parameters:
url – URL for the new
Request
object.**kwargs – Optional arguments that
request
takes.
- Return type:
requests.Response
- patch(url, data=None, **kwargs)
Sends a PATCH request. Returns
Response
object.- Parameters:
url – URL for the new
Request
object.data – (optional) Dictionary, list of tuples, bytes, or file-like object to send in the body of the
Request
.**kwargs – Optional arguments that
request
takes.
- Return type:
requests.Response
- post(url, data=None, json=None, **kwargs)
Sends a POST request. Returns
Response
object.- Parameters:
url – URL for the new
Request
object.data – (optional) Dictionary, list of tuples, bytes, or file-like object to send in the body of the
Request
.json – (optional) json to send in the body of the
Request
.**kwargs – Optional arguments that
request
takes.
- Return type:
requests.Response
- property proxies
Dictionary mapping protocol or protocol and host to the URL of the proxy. (e.g. {‘http’: ‘foo.bar:3128’, ‘http://host.name’: ‘foo.bar:4012’}) to be used on each
Request
.- Returns:
dict
- put(url, data=None, **kwargs)
Sends a PUT request. Returns
Response
object.- Parameters:
url – URL for the new
Request
object.data – (optional) Dictionary, list of tuples, bytes, or file-like object to send in the body of the
Request
.**kwargs – Optional arguments that
request
takes.
- Return type:
requests.Response
- class arcgis.auth.EsriUserTokenAuth(token, referer=None, verify_cert=True, **kwargs)
Bases:
AuthBase
,SupportMultiAuth
Authentication Using User Created Tokens