SiFive · Authentication Profile

Sifive Authentication

Authentication

SiFive has no public REST API with an OpenAPI to derive security schemes from, so this profile is probed directly from the live RFC 8414 Authorization Server Metadata that the SiFive Cloud Services (SCS) portal serves anonymously. Every value below is copied from that document or from a probe of the endpoint it names.

SiFive secures its APIs with oauth2 and openIdConnect across 1 declared security scheme, as derived from its OpenAPI definitions. OAuth 2.0 is offered via the authorizationCode and refreshToken flow(s).

CompanySemiconductorsRISC-VProcessor IPChip DesignEmbeddedHardwareDeveloper ToolsElectronic Design AutomationOAuth
Methods: oauth2, openIdConnect Schemes: 1 OAuth flows: authorizationCode, refreshToken API key in:

Security Schemes

SiFiveCloudServicesOAuth2 oauth2
· flows: authorizationCode, refreshToken

Source

Authentication Profile

sifive-authentication.yml Raw ↑
generated: '2026-08-05'
method: probed
source: https://scs.sifive.com/.well-known/oauth-authorization-server
docs: https://www.sifive.com/software/sifive-core-designer
description: >-
  SiFive has no public REST API with an OpenAPI to derive security schemes from, so this
  profile is probed directly from the live RFC 8414 Authorization Server Metadata that the
  SiFive Cloud Services (SCS) portal serves anonymously. Every value below is copied from
  that document or from a probe of the endpoint it names.
summary:
  types: [oauth2, openIdConnect]
  api_key_in: []
  oauth2_flows: [authorizationCode, refreshToken]
  pkce: [S256]
  implementation: django-oauth-toolkit
schemes:
- name: SiFiveCloudServicesOAuth2
  type: oauth2
  source: https://scs.sifive.com/.well-known/oauth-authorization-server
  issuer_declared: http://localhost:8000/o
  issuer_actual: https://scs.sifive.com/o
  flows:
  - flow: authorizationCode
    authorizationUrl: https://scs.sifive.com/o/authorize/
    tokenUrl: https://scs.sifive.com/o/token/
    scopes: [openid, 'mcp:read', 'mcp:write']
  - flow: refreshToken
    tokenUrl: https://scs.sifive.com/o/token/
  token_endpoint_auth_methods: [client_secret_basic, client_secret_post, none]
  code_challenge_methods: [S256]
  response_types: [code]
  id_token_signing_alg: [RS256]
  subject_types: [public]
endpoints:
- {name: authorization, url: 'https://scs.sifive.com/o/authorize/', probed_status: 302}
- {name: token, url: 'https://scs.sifive.com/o/token/', probed_status: 405, note: 'GET rejected; POST only'}
- {name: registration, url: 'https://scs.sifive.com/o/register/', probed_status: 405, spec: 'RFC 7591 dynamic client registration'}
- {name: revocation, url: 'https://scs.sifive.com/o/revoke_token/', probed_status: 405, spec: 'RFC 7009'}
- {name: introspection, url: 'https://scs.sifive.com/o/introspect/', probed_status: 403, spec: 'RFC 7662'}
- {name: userinfo, url: 'https://scs.sifive.com/o/userinfo/', probed_status: 401, spec: 'OIDC Core 1.0'}
- {name: jwks, url: 'https://scs.sifive.com/o/.well-known/jwks.json', probed_status: 200, note: 'empty key set'}
observations:
- id: issuer-points-at-localhost
  severity: high
  finding: >-
    The production metadata document declares issuer "http://localhost:8000/o" and every
    endpoint URL as "http://localhost:8000/o/...". The real, working endpoints are on
    https://scs.sifive.com/o/. A spec-conformant OAuth client that follows RFC 8414 and
    RFC 9207 issuer validation cannot use this document as published: it will either
    refuse the mismatched issuer or attempt cleartext HTTP to a loopback address.
  evidence: well-known/sifive-oauth-authorization-server.json
  remedy: >-
    Set the deployment's OAUTH2_PROVIDER issuer/base URL to https://scs.sifive.com/o so the
    metadata document reflects the deployed origin.
- id: empty-jwks
  severity: medium
  finding: >-
    id_token_signing_alg_values_supported declares RS256 but the advertised jwks_uri
    returns {"keys": []}, so no relying party can verify a signed ID token from published
    key material.
  evidence: well-known/sifive-jwks.json
- id: no-openid-configuration
  severity: low
  finding: >-
    The "openid" scope and RS256 ID-token signing are advertised, but
    /.well-known/openid-configuration returns 404 — OIDC discovery is not served, only the
    OAuth 2.0 (RFC 8414) variant.
- id: token-endpoint-auth-none-allowed
  severity: informational
  finding: >-
    token_endpoint_auth_methods_supported includes "none", which is the expected posture
    for public clients paired with the mandatory-looking S256 PKCE support.
x-evidence:
  fetched: '2026-08-05'
  url: https://scs.sifive.com/.well-known/oauth-authorization-server
  http_status: 200
  content_type: application/json