> ## Documentation Index
> Fetch the complete documentation index at: https://docs.creditbenchmark.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Be om et tilgangstoken

> Signer en ES256-klientbekreftelse og bytt den mot et kortvarig bærertilgangstoken ved hjelp av OAuth 2.0 JWT-bærer-klientbekreftelsesflyten.

Autentisering bruker OAuth 2.0-flyten **JWT bearer client assertion** ([RFC 7523](https://datatracker.ietf.org/doc/html/rfc7523)) med en `client_credentials` tildelingsmetode. Ingen klienthemmelighet overføres noensinne.

Du trenger:

* Din **`OAuthClientId`** og **`KID`** fra din velkomstpakke.
* Den **private nøkkelen** (`es256-private.pem`) som samsvarer med den offentlige nøkkelen du har registrert. Se [Konfigurering av nøkkelpar](/api-reference/authentication/key-pair-setup).

## Trinn 1: Opprett klientbekreftelsen

Generer en JWT og signer den med din **private** ES256-nøkkel.

**Overskrift**

```json theme={null}
{ "alg": "ES256", "typ": "JWT", "kid": "<KID>" }
```

**Nyttelast**

```json theme={null}
{
  "iss": "<OAuthClientId>",
  "sub": "<OAuthClientId>",
  "aud": "cb-gateway-m2m-blue",
  "jti": "<random UUID>",
  "iat": 1790812800,
  "exp": 1790812920
}
```

| Krav | Verdi |
| - | - |
| `iss`, `sub` | Begge **må** svare til din `OAuthClientId`. |
| `aud` | **Må** være nøyaktig `cb-gateway-m2m-blue`. Dette er ikke gateway-URL-en. |
| `jti` | En ny tilfeldig UUID for hver bekreftelse. Bekreftelser er engangsbruk. |
| `iat` | Gjeldende tid, i Unix-sekunder. |
| `exp` | `iat` pluss 120 sekunder. Bekreftelser er kortvarige etter design. |

## Trinn 2: Bytt den mot et tilgangstoken

`POST` bekreftelsen til tokenendepunktet som `application/x-www-form-urlencoded`. Se «[Endepunktreferanse](/api-reference/create-jwt-token)» for fullstendig skjema.

```http theme={null}
POST /api/security/token
Content-Type: application/x-www-form-urlencoded

grant_type=client_credentials
&client_assertion_type=urn:ietf:params:oauth:client-assertion-type:jwt-bearer
&client_assertion=<signed JWT>
&OAuthClientId=<OAuthClientId>
```

Svaret er i JSON-format og inneholder et `accessToken` felt, gyldig i 30 minutter (`expiresIn: 1800`). Det utstedes ikke noe fornyelsestoken til M2M-klienter, så `refreshToken` er alltid `null`.

## Trinn 3: Kall API-et

Send tokenet som et bærertoken i hver forespørsel:

| Overskrift | Verdi |
| - | - |
| `Authorization` | `Bearer <accessToken>` |
| `Content-Type` | `application/json` |
| `Accept` | `application/json` |

Be om et nytt token når det utløper, i stedet for å lagre det i cache over lang tid.

## Fullstendig eksempel

Se [Eksempler på skript](/api-reference/authentication/sample-scripts) for kjørbare TypeScript- og Python-versjoner av hele prosessen. Onboarding-pakken din inneholder de samme skriptene med opplysningene dine allerede fylt ut.

## Feilsøking

### 401 fra tokenendepunktet

Tokenendepunktet returnerer den samme tomme `401` for hver avvist bekreftelse. Sjekk hvert av disse punktene:

* Overskriften `alg` er `ES256` og `kid` er `KID` til en nøkkel som er registrert og ikke tilbakekalt.
* `iss` er nøyaktig den samme som din `OAuthClientId`. Vi slår opp din offentlige nøkkel ved hjelp av `iss` og `kid`.
* `aud` er nøyaktig `cb-gateway-m2m-blue`.
* `exp` er til stede og i fremtiden. Vi tillater 30 sekunders klokkeavvik, så sjekk maskinens klokke hvis feilene vedvarer.
* `jti` er til stede og ny. En `jti` kan ikke gjenbrukes innen 10 minutter.
* Bekreftelsen er signert med den private nøkkelen som tilhører den offentlige nøkkelen du har registrert.

### 401 «Uautorisert tilgang» fra API-ruter

Tilgangstokenet har utløpt (tokenene varer i 30 minutter), eller ruten dekkes ikke av dine rettigheter. Be om et nytt token, og kontakt din Credit Benchmark-administrator hvis feilen vedvarer.

### En nøkkel mangler, er tilbakekalt eller rotert

Kontakt din Credit Benchmark-administrator.

## Sikkerhetsmerknader

* Del **aldri** din private nøkkel med noen, inkludert Credit Benchmark. Kun den offentlige nøkkelen skal forlate systemene dine.
* Generer en ny klientbekreftelse for hver tokenforespørsel.
* Hvis en privat nøkkel noen gang blir kompromittert, må du be oss om å tilbakekalle nøkkelen umiddelbart og følge [nøkkelrotasjon](/api-reference/authentication/key-pair-setup#key-rotation).


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.