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

# authentication - Authentifizierungs- & Zugriffsdaten

> Der authentication-Knoten verwaltet Zugangsdaten externer Authentifizierungsprovider wie Google OAuth 2.0 und Firebase Cloud Messaging im WEBSALE Shop.

Der Konfigurationsbereich `authentication` dient der Verwaltung von Authentifizierungsinformationen und Zugangsdaten für externe Dienste, Schnittstellen oder Systeme.

Über diesen Bereich können zukünftig verschiedene Authentifizierungsprovider (z. B. Google, Apple, Microsoft oder eigene OAuth-Dienste) eingebunden werden. Jede Authentifizierungseinheit wird dabei als eigener Eintrag mit individuellen Parametern konfiguriert.

Aktuell steht die Konfiguration für Google OAuth 2.0 zur Verfügung, die über den Eintrag\
`authentication.googleOAuthKey.FCMKey` die Zugangsdaten eines Google-Service-Accounts für Firebase Cloud Messaging (FCM) verwaltet.

***

## `authentication*` - Grundstruktur

Nachfolgend der Grundaufbau des Knotens `authentication`

```json theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{
    "authentication": {
      "googleOAuthKey": {...}
    }
}
```

#### Parameterübersicht

| **Parameter**    | **Beschreibung**                               |
| ---------------- | ---------------------------------------------- |
| `googleOAuthKey` | Authentifizierung für Firebase Cloud Messaging |

***

## `authentication.googleOAuthKey.FCMKey` - Authentifizierung für Firebase Cloud Messaging

Damit das Shopsystem Push-Nachrichten z. B. über die App oder den Browser senden kann, benötigt es eine Authentifizierung gegenüber Firebase.

Der Konfigurationsabschnitt `authentication.googleOAuthKey.FCMKey` enthält die Zugangsdaten für den Google-Service-Account, der für die Authentifizierung gegenüber Firebase Cloud Messaging (FCM) verwendet wird.

Diese Daten ermöglichen es dem System, Push-Benachrichtigungen über die Google-Infrastruktur zu senden oder andere FCM-bezogene Aktionen automatisiert durchzuführen.

Jeder Eintrag stellt die vollständigen Authentifizierungsinformationen des Service-Accounts bereit, einschließlich Projekt-ID, Client-E-Mail, privatem Schlüssel und den zugehörigen OAuth-Endpoints.

#### Beispielkonfiguration

```json theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{
  "authProviderX509CertUrl": "https://www.googleapis.com/oauth2/v1/certs",
  "authUri": "https://accounts.google.com/o/oauth2/auth",
  "clientEmail": "<CLIENTEMAIL>",
  "clientId": "<CLIENTID>",
  "clientX509CertUrl": "https://www.googleapis.com/robot/v1/metadata/x509/<CLIENTEMAIL>",
  "name": "FCM Service Account",
  "privateKey": "<PRIVATEKEY>",
  "privateKeyId": "<PRIVATEKEYID>",
  "projectId": "<PROJECTID>",
  "tokenUri": "https://oauth2.googleapis.com/token",
  "type": "service_account",
  "universeDomain": "googleapis.com"
}
```

#### Parameterübersicht

| **Parameter**             | **Typ** | **Beschreibung**                                                                        |
| ------------------------- | ------- | --------------------------------------------------------------------------------------- |
| `authProviderX509CertUrl` | string  | URL, über die die öffentlichen Zertifikate der Authentifizierung bereitgestellt werden. |
| `authUri`                 | string  | Standard-URL für das OAuth-Token-Handling bei Google.                                   |
| `clientEmail`             | string  | E-Mail-Adresse des Service-Accounts.                                                    |
| `clientId`                | string  | Interne ID des Service-Accounts.                                                        |
| `clientX509CertUrl`       | string  | URL, über die die öffentlichen Zertifikate der Authentifizierung bereitgestellt werden. |
| `name`                    | string  | Anzeigename des Service-Accounts im System.                                             |
| `privateKey`              | string  | Privater Schlüssel des Service-Accounts (dient zur Signierung der Token).               |
| `privateKeyId`            | string  | Schlüssel-ID des Service-Accounts (dient zur Signierung der Token).                     |
| `projectId`               | string  | ID des zugehörigen Firebase-/Google-Cloud-Projekts.                                     |
| `tokenUri`                | string  | Standard-URLs für das OAuth-Token-Handling bei Google                                   |
| `type`                    | string  | Typ des Authentifizierungsobjekts – hier immer `service_account`.                       |
| `universeDomain`          | string  | Google-spezifischer Namespace (Standard: `googleapis.com`).                             |
