Jefferson Health · Authentication Profile

Jefferson Health Authentication

Authentication

Jefferson Health runs two independent authorization surfaces that share a brand and nothing else. The Thomas Jefferson University Hospital clinical FHIR endpoint requires a patient- or user-authorized SMART on FHIR token for every resource. The Jefferson Health Plans Da Vinci Plan-Net provider directory is served ANONYMOUSLY, as the implementation guide requires; its SMART authorization server exists for the separate Patient Access API and lives on a third host, appgallery.healthpartnersplans.com.

Jefferson Health secures its APIs with oauth2, openIdConnect, and none across 3 declared security schemes, as derived from its OpenAPI definitions. OAuth 2.0 is offered via the authorizationCode, clientCredentials, jwtBearer, and tokenExchange flow(s).

Academic Medical CenterCARIN Blue ButtonCMS InteroperabilityCures ActDa Vinci Plan-NetEpicFHIRHL7HealthcareHospital SystemMyChartAuthenticationPatient AccessProvider DirectorySMART on FHIRUS CoreUSCDI
Methods: oauth2, openIdConnect, none Schemes: 3 OAuth flows: authorizationCode, clientCredentials, jwtBearer, tokenExchange API key in:

Security Schemes

smartOnFhir oauth2
· flows: authorizationCode
jhpSmartAuth oauth2
· flows: authorizationCode
anonymous none

Source

Authentication Profile

Raw ↑
generated: '2026-08-15'
method: probed
source: Live discovery documents fetched 2026-08-15 — https://fhir.jefferson.edu/FHIRProxy/api/FHIR/R4/.well-known/smart-configuration,
  https://fhir.jefferson.edu/FHIRProxy/api/FHIR/R4/.well-known/openid-configuration, https://appgallery.healthpartnersplans.com/smartauth-fhir/.well-known/openid-configuration,
  and the security blocks of both live CapabilityStatements. Supersedes the 2026-07-11 pass, which was derived from openapi/_original/jefferson-health-tjuh-fhir-r4-api-openapi.yml
  alone.
docs: https://www.jeffersonhealthplans.com/home/about-us/interoperability/authentication-and-data-endpoints/
description: Jefferson Health runs two independent authorization surfaces that share a brand and nothing else. The Thomas
  Jefferson University Hospital clinical FHIR endpoint requires a patient- or user-authorized SMART on FHIR token for every
  resource. The Jefferson Health Plans Da Vinci Plan-Net provider directory is served ANONYMOUSLY, as the implementation guide
  requires; its SMART authorization server exists for the separate Patient Access API and lives on a third host, appgallery.healthpartnersplans.com.
summary:
  types:
  - oauth2
  - openIdConnect
  - none
  oauth2_flows:
  - authorizationCode
  - clientCredentials
  - jwtBearer
  - tokenExchange
  api_key_in: []
  anonymous_surfaces: 1
  authorization_servers: 2
schemes:
- name: smartOnFhir
  type: oauth2
  server: tjuh-fhir-r4
  applies_to: https://fhir.jefferson.edu/FHIRProxy/api/FHIR/R4
  required: true
  description: SMART App Launch over OAuth 2.0 with mandatory PKCE. Covers both patient-facing standalone launches and provider-facing
    EHR launches.
  issuer: https://fhir.jefferson.edu/FHIRProxy/oauth2
  flows:
  - flow: authorizationCode
    authorizationUrl: https://fhir.jefferson.edu/FHIRProxy/oauth2/authorize
    tokenUrl: https://fhir.jefferson.edu/FHIRProxy/oauth2/token
    scopes: 13
  grant_types_supported:
  - authorization_code
  - refresh_token
  - client_credentials
  - urn:ietf:params:oauth:grant-type:jwt-bearer
  - urn:ietf:params:oauth:grant-type:token-exchange
  token_endpoint_auth_methods_supported:
  - client_secret_post
  - client_secret_basic
  - private_key_jwt
  code_challenge_methods_supported:
  - S256
  pkce_required: true
  response_types_supported:
  - code
  response_modes_supported:
  - query
  jwks_uri: https://fhir.jefferson.edu/FHIRProxy/api/epic/2019/Security/Open/PublicKeys/530027/OIDC
  id_token_signing_alg_values_supported:
  - RS256
  subject_types_supported:
  - public
  smart_capabilities:
  - launch-ehr
  - launch-standalone
  - client-public
  - client-confidential-symmetric
  - client-confidential-asymmetric
  - context-banner
  - context-style
  - context-ehr-patient
  - context-ehr-encounter
  - context-standalone-patient
  - permission-offline
  - permission-patient
  - permission-user
  - permission-v1
  - permission-v2
  - sso-openid-connect
  - authorize-post
  backend_services: true
  backend_services_evidence: private_key_jwt + jwt-bearer grant + a published jwks_uri is the SMART Backend Services (system-level)
    shape, which is what the Bulk Data export requires.
  registration: https://fhir.epic.com/Developer/Apps
  registration_note: Client registration is handled by Epic on FHIR, not by Jefferson Health directly; Jefferson approves
    the app for production against its own endpoint.
  sources:
  - well-known/jefferson-health-tjuh-smart-configuration.json
  - well-known/jefferson-health-tjuh-openid-configuration.json
  - conformance/jefferson-health-tjuh-fhir-r4-capabilitystatement.json
  - openapi/_original/jefferson-health-tjuh-fhir-r4-api-openapi.yml
- name: jhpSmartAuth
  type: oauth2
  server: jhp-patient-access
  applies_to: https://smilercdr.healthpartnersplans.com/
  required: true
  description: Jefferson Health Plans SMART on FHIR authorization server for the CARIN Blue Button Patient Access API. Developer
    registration runs through the JHP App Gallery developer portal.
  issuer: https://appgallery.healthpartnersplans.com/smartauth-fhir
  flows:
  - flow: authorizationCode
    authorizationUrl: https://appgallery.healthpartnersplans.com/smartauth-fhir/oauth/authorize
    tokenUrl: https://appgallery.healthpartnersplans.com/smartauth-fhir/oauth/token
  response_types_supported:
  - code
  - code id_token
  - token
  - token id_token
  code_challenge_methods_supported:
  - plain
  - S256
  pkce_required: false
  pkce_note: '''plain'' is advertised alongside S256. Clients should insist on S256; the server permitting ''plain'' is a
    weaker posture than the hospital endpoint, which offers S256 only.'
  introspection_endpoint: https://appgallery.healthpartnersplans.com/smartauth-fhir/oauth/token/introspect
  userinfo_endpoint: https://appgallery.healthpartnersplans.com/smartauth-fhir/userinfo
  revocation_endpoint: https://appgallery.healthpartnersplans.com/smartauth-fhir/oauth/token/revoke
  session_management_endpoint: https://appgallery.healthpartnersplans.com/smartauth-fhir/session/management
  jwks_uri: https://appgallery.healthpartnersplans.com/smartauth-fhir/jwk
  id_token_signing_alg_values_supported:
  - RS256
  subject_types_supported:
  - public
  registration: https://appgallery.healthpartnersplans.com/app-gallery/portal/
  sources:
  - well-known/jefferson-health-jhp-openid-configuration.json
  - conformance/jefferson-health-jhp-provider-directory-capabilitystatement.json
- name: anonymous
  type: none
  server: jhp-provider-directory
  applies_to: https://providerfhirapi.healthpartnersplans.com
  required: false
  description: 'The Da Vinci Plan-Net provider directory requires no credentials. Verified live: GET /InsurancePlan?_count=1
    and GET /Practitioner?_count=2 both returned HTTP 200 searchset Bundles with no Authorization header.'
  note: The CapabilityStatement still advertises SMART oauth-uris pointing at the appgallery authorization server, which is
    a decoy for this host — do not build an auth flow for the directory.
observed_behaviour:
- server: tjuh-fhir-r4
  request: GET /Patient?family=Smith with no Authorization header
  http_status: 401
  content_type: application/json
  body: (empty)
  note: No OperationOutcome and no challenge body. An agent must branch on the status code alone.
- server: jhp-provider-directory
  request: GET /Practitioner?_count=2 with no Authorization header
  http_status: 200
  note: Anonymous read confirmed.
gaps:
- No published token lifetime, refresh-token lifetime, or client-credential rotation policy on either authorization server.
- 'The Jefferson Health Plans Patient Access SMART configuration is not served: https://smilercdr.healthpartnersplans.com/smartauth/well-known/openid-configuration
  returns the portal HTML shell (soft 200), and https://appgallery.healthpartnersplans.com/smartauth-fhir/.well-known/smart-configuration
  likewise. Only the OIDC discovery document is machine-readable.'
docs_additional:
- https://fhir.epic.com/Documentation

Work with this as data

Every security artifact here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for security posture

4 MCP tools reach this
  • find_securityBrowse and filter every security artifact in the catalog.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This security artifact
curl "https://apis.io/api/v1/security/jefferson-health-authentication"
All security posture
curl "https://apis.io/api/v1/security?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.