NAESB · Authentication Profile

Naesb Authentication

Authentication

NAESB secures its APIs with mutualTLS and oauth2 across 2 declared security schemes, as derived from its OpenAPI definitions. OAuth 2.0 is offered via the authorizationCode flow(s).

EnergyUnited StatesStandardsUtilitiesElectricityGasGreen ButtonSmart MeteringEnergy MarketsGrid
Methods: mutualTLS, oauth2 Schemes: 2 OAuth flows: authorizationCode API key in:

Security Schemes

NAESB EIR client certificate mutualTLS
ESPI OAuth 2.0 (authored by NAESB, implemented by each Data Custodian) oauth2
· flows: authorizationCode

Source

Authentication Profile

naesb-authentication.yml Raw ↑
generated: '2026-07-27'
method: searched
source: >-
  wsdl/naesb-eir-webregistry.wsdl (harvested live), a verified anonymous SOAP call to the
  production EIR webRegistry endpoint on 2026-07-27, the OATI webRegistry Technical Guide
  v6.1, the NAESB Authorized Certification Authority list, and the ESPI v4.0 XML schema.
docs: https://www.naesb.org/pdf4/eir_webregistry_technical_guide_v6.1_1018.pdf
summary:
  types:
  - mutualTLS
  - oauth2
  note: >-
    NAESB has two entirely separate authentication stories and they must not be conflated.
    The one API NAESB itself operates — the EIR webRegistry — is protected by mutual TLS
    with X.509 client certificates issued by NAESB-Authorized Certification Authorities.
    The OAuth 2.0 model below is NOT NAESB authentication: it is the authorization model
    that the REQ.21 ESPI (Green Button) standard requires each utility Data Custodian to
    implement at its own endpoint. NAESB authors that model; it operates no ESPI endpoint.
  api_key_in: []
  oauth2_flows:
  - authorizationCode
schemes:
- name: NAESB EIR client certificate
  api: naesb:naesb-eir-webregistry
  type: mutualTLS
  transport: https
  sources:
  - wsdl/naesb-eir-webregistry.wsdl
  issuer_model: >-
    X.509 certificates issued by NAESB-Authorized Certification Authorities (ACAs) accredited
    under NAESB WEQ-012 Public Key Infrastructure. The registry itself publishes the ACA
    roster through the DownloadACA and DownloadPKICA operations, whose ACAStruct carries
    PKICAName, CertificateURL and CertificateType (ROOT | INTERMEDIATE | ISSUER).
  authorized_ca_list: https://www.naesb.org/pdf4/ac_authorities_2023.pdf
  minimum_tls: TLSv1.2
  minimum_tls_source: https://www.naesb.org/pdf4/registry_required_browser_settings_tls-v1.2_0320.pdf
  additional_requirement: >-
    A paid EIR registration and annual subscription is required in addition to the certificate.
    The annual subscription fee rose to $275 effective 2025-10-01.
  verified_behavior:
    date: '2026-07-27'
    probe: >-
      Anonymous SOAP POST of DownloadRegistryVersion to the production endpoint, no client
      certificate presented.
    http_status: 200
    response_return_code: 1
    response_return_code_desc: FAILURE
    response_error_code_desc: Please present a valid certificate that is associated with a NAESB EIR user
    finding: >-
      The service is reachable and answers anonymously with a well-formed SOAP body, but every
      operation is refused without a registered client certificate. The WSDL itself is served
      to anonymous callers; only the data behind it is gated.
- name: ESPI OAuth 2.0 (authored by NAESB, implemented by each Data Custodian)
  api: naesb:naesb-espi-green-button
  type: oauth2
  operated_by: each utility Data Custodian, not NAESB
  sources:
  - schemas/naesb-espi_v4.xsd
  flows:
  - flow: authorizationCode
    note: >-
      The v4.0 schema encodes the endpoints as data rather than fixing them, because every
      Data Custodian runs its own authorization server. ApplicationInformation carries
      authorizationServerUri, authorizationServerAuthorizationEndpoint,
      authorizationServerTokenEndpoint and authorizationServerRegistrationEndpoint;
      GrantType and TokenEndPointMethod select the flow and client authentication method.
  schema_elements:
  - authorizationServerUri
  - authorizationServerAuthorizationEndpoint
  - authorizationServerTokenEndpoint
  - authorizationServerRegistrationEndpoint
  - GrantType
  - TokenEndPointMethod
  - scope
  - OAuthError
  scopes_note: >-
    The schema declares a `scope` element and an Authorization resource, but the scope
    string grammar and its permitted values live in the copyright-protected REQ.21 Model
    Business Practices narrative, which NAESB paywalls. No scope vocabulary is published
    openly, so no scopes/ artifact is emitted for this provider rather than guessing one.
unauthenticated_surface:
- surface: WSDL retrieval
  url: https://www.naesbwry.oati.com/cgi-bin/webplus.dll?Script=/naesbwry/WREG-Web-Services-Main.wml
  note: The full 30-operation WSDL is served without any credential.
- surface: ESPI XML schema download
  url: https://www.naesb.org/ESPI_Standards.asp
  note: >-
    The four ESPI XSDs are downloadable anonymously after a one-click terms-of-use
    acknowledgement, released under Apache License 2.0 as a documented one-time exception
    to the NAESB Copyright Policy.