
Security Fundamentals
Turtles, Clams, and Cyber Threat Actors: Shell Usage
The Socket Threat Research Team uncovers how threat actors weaponize shell techniques across npm, PyPI, and Go ecosystems to maintain persistence and exfiltrate data.
palantir-oauth-client
Advanced tools
A library for performing OAuth2 authentication with Multipass in order to obtain credentials for querying Foundry APIs.
This library supports two modes of operation for the Authorization code OAuth2 flow:
Command line prompt: A user will be prompted to navigate to Foundry and enter the resulting authorization_code
in their console after successful authentication.
Local webserver: A local webserver will be created to receive the redirect after successful authentication. The token exchange will be performed automatically.
If the offline_access
scope is specified, the credential will additionally contain a refresh token. When loading
cached credentials (see below), the refresh token will be used to update invalid or expired credentials. In the case
credentials cannot be obtained the user will be prompted to log in as above.
Use the palantir_oauth_client.get_user_credentials()
function to authenticate to Foundry APIs.
import requests
from palantir_oauth_client import get_user_credentials
hostname = "127.0.0.1:8080"
client_id = "f5496be223e4db85c6a7c99bc5c2d81a"
credentials = get_user_credentials(["offline_access"], hostname, client_id)
headers = {"Authorization": "Bearer " + credentials.token}
response = requests.get(f"https://{hostname}/multipass/api/me", headers=headers)
print("Hello, {}!".format(response.json().get("username")))
A third-party client application needs to have been created in Multipass and the client_id
provided when calling
palantir_oauth_client.get_user_credentials()
. This client should be registered as a Public client (native or single-page
application) when it is not possible to securely store the client_secret
. The library uses the
PKCE OAuth2 extension for all requests regardless of the type of client that has been
registered.
The following redirect URIs should use be specified for each mode of operation:
Command line prompt: https://<hostname>/multipass/api/oauth2/callback
Local webserver: http://127.0.0.1/
When obtaining credentials using palantir_oauth_client.get_user_credentials()
you may specify a
palantir_oauth_client.cache.CredentialsCache
. There are three implementations:
palantir_oauth_client.cache.READ_WRITE
(default): A read-write cache that will persist credentials to disk when
offline_access
scope is requested. The cached refresh tokens will be used when obtaining credentials where
possible to avoid explicit re-authentication.
palantir_oauth_client.cache.REAUTH
: A write-only cache that will persist credentials to disk when offline_access
scope is requested but will require reauthentication when obtaining credentials.
palantir_oauth_client.cache.NOOP
: Always requires reauthentication and never persists credentials to disk.
Persisted credentials will be stored in the default user home directory at ~/.foundry/oauth
. Caching should
only be used when this home directory is secure and inaccessible by other users who would not otherwise have access to
the Foundry credentials.
See the CONTRIBUTING.md document. Releases are published to pypi on tag builds and are automatically re-published to conda using conda-forge.
This project is made available under the Apache 2.0 License.
FAQs
OAuth2 client for Palantir Foundry
We found that palantir-oauth-client demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security Fundamentals
The Socket Threat Research Team uncovers how threat actors weaponize shell techniques across npm, PyPI, and Go ecosystems to maintain persistence and exfiltrate data.
Security News
At VulnCon 2025, NIST scrapped its NVD consortium plans, admitted it can't keep up with CVEs, and outlined automation efforts amid a mounting backlog.
Product
We redesigned our GitHub PR comments to deliver clear, actionable security insights without adding noise to your workflow.