arcgis.auth package¶
Subpackages¶
Submodules¶
arcgis.auth.api module¶
- 
class 
arcgis.auth.api.EsriSession(auth: AuthBase = None, cert: Tuple[str] = None, verify_cert: bool = True, allow_redirects: bool = True, headers: Dict[str, Any] = None, referer='http', **kwargs)¶ Bases:
objectThe 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.
Argument
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
Argument
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) `- 
property 
adapters¶ Returns an dictionary of mounted adapters.
- Returns
 dict
- 
allow_redirects= None¶ 
- 
property 
auth¶ Get/Set the Authentication Handler for the Session
- 
property 
cert¶ Get/Set the users certificate as a (private, public) keys.
- Returns
 Tuple[str]
- 
close()¶ Closes all adapters and as such the session
- 
delete(url, **kwargs) → requests.Response¶ Sends a DELETE request. Returns
Responseobject.- Parameters
 url – URL for the new
Requestobject.**kwargs – Optional arguments that
requesttakes.
- Return type
 requests.Response
- 
get(url, **kwargs) → requests.Response¶ Sends a GET request. Returns
Responseobject.- Parameters
 url – URL for the new
Requestobject.**kwargs – Optional arguments that
requesttakes.
- Return type
 requests.Response
- 
head(url, **kwargs) → requests.Response¶ Sends a HEAD request. Returns
Responseobject.- Parameters
 url – URL for the new
Requestobject.**kwargs – Optional arguments that
requesttakes.
- Return type
 requests.Response
- 
property 
headers¶ Gets/Sets the headers from the current session object
- 
mount(prefix: str, adapter: HTTPAdatper)¶ Registers a connection adapter to a prefix.
Adapters are sorted in descending order by prefix length.
- 
options(url, **kwargs) → requests.Response¶ Sends a OPTIONS request. Returns
Responseobject.- Parameters
 url – URL for the new
Requestobject.**kwargs – Optional arguments that
requesttakes.
- Return type
 requests.Response
- 
patch(url, data=None, **kwargs) → requests.Response¶ Sends a PATCH request. Returns
Responseobject.- Parameters
 url – URL for the new
Requestobject.data – (optional) Dictionary, list of tuples, bytes, or file-like object to send in the body of the
Request.**kwargs – Optional arguments that
requesttakes.
- Return type
 requests.Response
- 
post(url, data=None, json=None, **kwargs) → requests.Response¶ Sends a POST request. Returns
Responseobject.- Parameters
 url – URL for the new
Requestobject.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
requesttakes.
- 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) → requests.Response¶ Sends a PUT request. Returns
Responseobject.- Parameters
 url – URL for the new
Requestobject.data – (optional) Dictionary, list of tuples, bytes, or file-like object to send in the body of the
Request.**kwargs – Optional arguments that
requesttakes.
- Return type
 requests.Response
- 
property 
referer¶ Gets/Sets the referer
- 
property 
stream¶ Gets/Sets the stream property for the current session object
- 
update_headers(values: Dict[str, Any]) → bool¶ Performs an update call on the headers
- 
property 
verify_cert¶ Get/Set property that allows for the verification of SSL certificates
- Returns
 bool
Module contents¶
- 
class 
arcgis.auth.ArcGISProAuth(legacy: bool = False)¶ Bases:
requests.auth.AuthBase,arcgis.auth._auth._schain.SupportMultiAuthPerforms the ArcGIS Pro Authentication for a given request.
- 
handle_40x(r, **kwargs)¶ Handles Case where token is invalid
- 
property 
token¶ obtains the login token
- 
 
- 
class 
arcgis.auth.BaseEsriAuth¶ Bases:
requests.auth.AuthBaseA 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
- 
response_hook(response: requests.models.Response, **kwargs) → requests.models.Response¶ response hook logic
- Returns
 Response
- 
property 
token¶ returns a ArcGIS Token as a string
- Returns
 string
- 
 
- 
class 
arcgis.auth.EsriAPIKeyAuth(api_key: str, referer: str = None, verify_cert: bool = True, auth: requests.auth.AuthBase = None)¶ Bases:
requests.auth.AuthBase,arcgis.auth._auth._schain.SupportMultiAuthauthentication for API Keys
- 
add_api_token(r, **kwargs)¶ generates a server token using Portal token
- 
api_key= None¶ 
- 
auth= None¶ 
- 
property 
token¶ Gets/Sets the API token
- Returns
 String
- 
 
- 
class 
arcgis.auth.EsriBasicAuth(username: str, password: str, referer: str = 'http', verify_cert: bool = True)¶ Bases:
requests.auth.HTTPBasicAuth,arcgis.auth._auth._schain.SupportMultiAuthDescribes a basic requests authentication.
- 
auth= None¶ 
- 
generate_portal_server_token(r, **kwargs)¶ generates a server token using Portal token
- 
property 
token¶ Gets the token. This is always None for EsriBasicAuth
- Returns
 String
- 
 
- 
class 
arcgis.auth.EsriBuiltInAuth(url: str, username: str, password: str, expiration: int = None, legacy: bool = False, verify_cert: bool = True, referer: str = None, **kwargs)¶ Bases:
requests.auth.AuthBase,arcgis.auth._auth._schain.SupportMultiAuthPerforms the BUILT-IN Login Authorization for ArcGIS Online and Enterprise
- 
handle_401(r, **kwargs)¶ handles the issues in the response where token might be rejected
- 
suspend() → bool¶ Invalidates the login and checks any licenses back in
- Returns
 Bool. If True, the licenses is checked back in successfully, False, the process failed.
- 
property 
token¶ obtains the login token
- 
 
- 
class 
arcgis.auth.EsriGenTokenAuth(token_url: str, referer: str, username: str = None, password: str = None, portal_auth: Optional[arcgis.auth._auth._token.EsriGenTokenAuth] = None, time_out: int = 1440, verify_cert: bool = True, legacy: bool = False, **kwargs)¶ Bases:
requests.auth.AuthBase,arcgis.auth._auth._schain.SupportMultiAuthThis 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.
- 
property 
expiration¶ Gets the time the token will expire on
- 
handle_401(r, **kwargs)¶ 
- 
handle_redirect(r, **kwargs)¶ 
- 
init_per_thread_state()¶ 
- 
property 
referer¶ 
- 
property 
time_out¶ returns the time out time in minutes
- 
token(server_url=None) → str¶ 
- 
property 
 
- 
class 
arcgis.auth.EsriKerberosAuth(referer: str = None, verify_cert: bool = True, **kwargs)¶ Bases:
requests.auth.AuthBase,arcgis.auth._auth._schain.SupportMultiAuth- 
generate_portal_server_token(r, **kwargs)¶ generates a server token using Portal token
- 
property 
token¶ Gets the token. This is always None for KerberosAuth
- Returns
 String
- 
 
- 
class 
arcgis.auth.EsriNotebookAuth(token: str, referer: str = None, auth: requests.auth.AuthBase = None, **kwargs)¶ Bases:
requests.auth.AuthBase,arcgis.auth._auth._schain.SupportMultiAuthauthentication for notebook servers Keys
- 
add_token(r, **kwargs)¶ generates a server token using Portal token
- 
auth= None¶ 
- 
property 
token¶ Gets/Sets the API token
- Returns
 String
- 
 
- 
class 
arcgis.auth.EsriOAuth2Auth(base_url: str, client_id: str, client_secret: str = None, username: str = None, password: str = None, referer: str = 'http', expiration: int = 1440, session: Session = None, **kwargs)¶ Bases:
requests.auth.AuthBase,arcgis.auth._auth._schain.SupportMultiAuthPerforms the OAuth Workflow for logging in to Enterprise
- 
handle_40x(r, **kwargs)¶ Handles Case where token is invalid
- 
property 
token¶ Gets the Oauth token
- Returns
 String
- 
 
- 
class 
arcgis.auth.EsriPKIAuth(cert: Tuple[str], referer: str = None, verify_cert: bool = True, **kwargs)¶ Bases:
requests.auth.AuthBase,arcgis.auth._auth._schain.SupportMultiAuthHandles PKI authentication when tokens are needed
- 
generate_portal_server_token(r, **kwargs)¶ generates a server token using Portal token
- 
property 
token¶ returns the authentication token
- 
 
- 
class 
arcgis.auth.EsriSession(auth: AuthBase = None, cert: Tuple[str] = None, verify_cert: bool = True, allow_redirects: bool = True, headers: Dict[str, Any] = None, referer='http', **kwargs)¶ Bases:
objectThe 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.
Argument
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
Argument
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) `- 
property 
adapters¶ Returns an dictionary of mounted adapters.
- Returns
 dict
- 
allow_redirects= None¶ 
- 
property 
auth¶ Get/Set the Authentication Handler for the Session
- 
property 
cert¶ Get/Set the users certificate as a (private, public) keys.
- Returns
 Tuple[str]
- 
close()¶ Closes all adapters and as such the session
- 
delete(url, **kwargs) → requests.Response¶ Sends a DELETE request. Returns
Responseobject.- Parameters
 url – URL for the new
Requestobject.**kwargs – Optional arguments that
requesttakes.
- Return type
 requests.Response
- 
get(url, **kwargs) → requests.Response¶ Sends a GET request. Returns
Responseobject.- Parameters
 url – URL for the new
Requestobject.**kwargs – Optional arguments that
requesttakes.
- Return type
 requests.Response
- 
head(url, **kwargs) → requests.Response¶ Sends a HEAD request. Returns
Responseobject.- Parameters
 url – URL for the new
Requestobject.**kwargs – Optional arguments that
requesttakes.
- Return type
 requests.Response
- 
property 
headers¶ Gets/Sets the headers from the current session object
- 
mount(prefix: str, adapter: HTTPAdatper)¶ Registers a connection adapter to a prefix.
Adapters are sorted in descending order by prefix length.
- 
options(url, **kwargs) → requests.Response¶ Sends a OPTIONS request. Returns
Responseobject.- Parameters
 url – URL for the new
Requestobject.**kwargs – Optional arguments that
requesttakes.
- Return type
 requests.Response
- 
patch(url, data=None, **kwargs) → requests.Response¶ Sends a PATCH request. Returns
Responseobject.- Parameters
 url – URL for the new
Requestobject.data – (optional) Dictionary, list of tuples, bytes, or file-like object to send in the body of the
Request.**kwargs – Optional arguments that
requesttakes.
- Return type
 requests.Response
- 
post(url, data=None, json=None, **kwargs) → requests.Response¶ Sends a POST request. Returns
Responseobject.- Parameters
 url – URL for the new
Requestobject.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
requesttakes.
- 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) → requests.Response¶ Sends a PUT request. Returns
Responseobject.- Parameters
 url – URL for the new
Requestobject.data – (optional) Dictionary, list of tuples, bytes, or file-like object to send in the body of the
Request.**kwargs – Optional arguments that
requesttakes.
- Return type
 requests.Response
- 
property 
referer¶ Gets/Sets the referer
- 
property 
stream¶ Gets/Sets the stream property for the current session object
- 
update_headers(values: Dict[str, Any]) → bool¶ Performs an update call on the headers
- 
property 
verify_cert¶ Get/Set property that allows for the verification of SSL certificates
- Returns
 bool
- 
class 
arcgis.auth.EsriUserTokenAuth(token: str, referer: str = None, verify_cert: bool = True, **kwargs)¶ Bases:
requests.auth.AuthBase,arcgis.auth._auth._schain.SupportMultiAuthAuthentication Using User Created Tokens
- 
auth= None¶ 
- 
handle_40x(r, **kwargs)¶ Handles Case where token is invalid
- 
token= None¶ 
- 
 
- 
class 
arcgis.auth.EsriWindowsAuth(username: str = None, password: str = None, referer: str = None, verify_cert: bool = True, **kwargs)¶ Bases:
requests.auth.AuthBase,arcgis.auth._auth._schain.SupportMultiAuth- 
generate_portal_server_token(r, **kwargs)¶ generates a server token using Portal token
- 
property 
token¶ Gets the token. This is always None for EsriWindowsAuth
- Returns
 String
-