> For the complete documentation index, see [llms.txt](https://docs.scepman.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.scepman.com/de/zertifikatsverwaltung/management-rest-api.md).

# Management-REST-API

{% hint style="warning" %}
Nur SCEPman Enterprise Edition

Gilt für Version 3.1 und höher
{% endhint %}

Die Management-API bietet administrativen Zugriff auf ausgestellte Zertifikate in SCEPman. Sie ist für Verwaltungs- und Betriebsabläufe gedacht, wie das Auffinden von Zertifikaten und deren Widerruf bei Bedarf.

Diese Endpunkte sind unter `/api/manage` und erfordern einen authentifizierten Benutzer mit der **Manage.All** Rolle in SCEPman-api.

{% hint style="info" %}
Wenn Sie von einer früheren SCEPman-Version aktualisieren, verfügen Sie möglicherweise noch nicht über die Rolle Manage.All. Führen Sie `Complete-SCEPmanInstallation` erneut in einer Cloud Shell aus, um es Ihrer SCEPman-api-Anwendung automatisch hinzuzufügen.
{% endhint %}

### Authentifizierung

Die API verwendet Entra-Authentifizierung. Der einfachste Weg zur Authentifizierung ist oft die Microsoft Authentication Library (MSAL).

Eine Möglichkeit, ein Bearer-Token für die Management-API zu erhalten, ist die Azure CLI. Der erforderliche Wert für den Parameter \`--resource\` ist die Application-ID-URI Ihrer SCEPman-api-App-Registrierung (normalerweise ihre Application-ID mit vorangestelltem `api://`).

```bash
az account get-access-token --resource api://[APPLICATION-ID] --query accessToken --output tsv
```

Zum Beispiel:

```bash
TOKEN=$(az account get-access-token \
  --resource api://16b6a4d1-0a20-4b41-bf58-12783034cad3 \
  --query accessToken \
  --output tsv)
```

Anschließend können Sie dieses Token in den API-Aufrufen verwenden:

```bash
curl -X GET "https://scepman.contoso.com/api/manage/search?searchText=ABC123&pageSize=10&certValidity=Any&certType=Any" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Accept: application/json"
```

### Such-API

**`GET /api/manage/search`**

Durchsucht ausgestellte Zertifikate und gibt einen paginierten Ergebnissatz zurück.

#### Suchparameter

**`searchText`**

Freitext-Suchbegriff, der zum Finden übereinstimmender Zertifikate verwendet wird. Dies wird typischerweise für auf Teilzeichenketten basierende Abfragen verwendet, z. B. zum Abgleichen des Antragstellers oder anderer durchsuchbarer Zertifikatsmetadaten.

**`pageSize`**

Maximale Anzahl an Zertifikaten, die in einer einzelnen Antwortseite zurückgegeben werden.

* Standard: 50

**`continuationToken`**

Optionales Paginierungs-Token, das zum Anfordern der nächsten Ergebnisseite verwendet wird.\
Geben Sie das `continuationToken` von einer vorherigen Suchantwort zurückgegeben, um mit dem Abrufen weiterer Zertifikate fortzufahren.

**`certValidity`**

Filtert Zertifikate nach ihrem Gültigkeitsstatus.

* Standard: `Beliebig`

Gültige Werte sind `Beliebig`, `Aktiv`, `Abgelaufen`, `Widerrufen`.

**`certType`**

Filtert Zertifikate nach Zertifikatstyp.

* Standard: `Beliebig`

Dies kann verwendet werden, um den Ergebnissatz auf bestimmte Zertifikatkategorien einzuschränken. Gültige Werte sind `Statisch`, `DC`, `Benutzer`, `Gerät`, und `Beliebig`.

**`Quellen`**

Filtert Zertifikate nach dem Endpunkt, über den sie ausgestellt wurden. Sie können diesen Filter mehrfach angeben, einmal pro Quelle.

* Standard: Keine Einschränkung

Die gültigen Werte sind in der folgenden Tabelle aufgeführt; Sie müssen die Quelle anhand ihrer ganzzahligen Werte angeben:

| Quelle            | Wert                                                                      |
| ----------------- | ------------------------------------------------------------------------- |
| CertificateMaster | 0                                                                         |
| Intune            | 1 oder 9 (beide verwenden, um sicherzustellen, dass alle gefunden werden) |
| Statisch          | 3                                                                         |
| StaticAAD         | 4                                                                         |
| Jamf              | 5                                                                         |
| DomainController  | 6                                                                         |
| API               | 7                                                                         |
| RadiusAPI         | 8                                                                         |
| Active Directory  | 10                                                                        |

Die Antwort ist eine paginierte Liste von Zertifikatsdatensätzen sowie ein Fortsetzungs-Token zum Abrufen der nächsten Seite.

**Beispiel**

```bash
curl -X GET "https://scepman.contoso.com/api/manage/search?searchText=507AEAC03CCEF83F106914418D9222E466A629C1&pageSize=10&certValidity=Any&certType=Any" \
  -H "Authorization: Bearer <token>" \
  -H "Accept: application/json"
```

**Beispielantwort**

```json
{
  "items": [
    {
    "serialNumber":  "507AEAC03CCEF83F106914418D9222E466A629C1",
    "subject":  "CN=device01.contoso.local",
    "sans":  null,
    "upn":  null,
    "issuanceDate":  "2026-05-28T10:57:22Z",
    "expirationDate":  "2028-05-28T10:57:22Z",
    "revocationDate":  null,
    "revocationReason":  null,
    "revokedBy":  null,
    "requester":  "pkiAdmin@contoso.com",
    "source":  "CertificateMaster",
    "certificateType":  "Static"
    }
  ],
  "continuationToken": "..."
}
```

### **Widerrufs-API**

**`PATCH /api/manage/revoke/{serialNumber}`**

Widerruft ein Zertifikat, das durch seine Seriennummer identifiziert wird.

Der Request-Body enthält:

* `revocationReason` - eine ganze Zahl für den Widerrufsgrund. Mögliche Werte finden Sie in der folgenden Tabelle
* `revoker` *(optional)* - eine Freitext-Kennung für die Person oder das System, das den Widerruf anfordert

{% hint style="info" %}
Falls angegeben, empfehlen wir, für das Feld revoker die UPN zu verwenden. Falls nicht angegeben, wird die UPN des angemeldeten Benutzers verwendet. Auch wenn sie angegeben ist, wird die UPN des angemeldeten Benutzers weiterhin in der Form "{revoker} über API-Benutzer ${logged on user}" hinzugefügt.

Dieser Wert wird für Auditierungszwecke und in Suchen verwendet.
{% endhint %}

**Beispiel**

```bash
curl -X PATCH "https://scepman.contoso.com/api/manage/revoke/ABC123" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
    "revocationReason": 4,
    "revoker": "pkiAdmin@contoso.com"
  }'
```

**Erfolgreiche Antwort**

```http
HTTP/1.1 200 OK
```

**Zertifikat nicht gefunden**

```http
HTTP/1.1 404 Not Found
Content-Type: application/json
```

```json
{
  "errorMessage": "Zertifikat nicht gefunden.",
  "errorCode": 7012
}
```

**Bereits widerrufen**

```http
HTTP/1.1 409 Conflict
Content-Type: application/json
```

```json
{
  "errorMessage": "Das Zertifikat wurde bereits widerrufen.",
  "errorCode": 5013
}
```

#### Unterstützte Widerrufsgründe

Die API unterstützt die in [RFC 5280](https://datatracker.ietf.org/doc/html/rfc5280#section-5.3.1):

| Wert | Widerrufsgrund                  |
| ---- | ------------------------------- |
| 0    | Nicht angegeben                 |
| 1    | Kompromittierung des Schlüssels |
| 2    | CA-Kompromittierung             |
| 3    | Zugehörigkeit geändert          |
| 4    | Ersetzt                         |
| 5    | Einstellung des Betriebs        |
| 6    | Zertifikat angehalten           |
| 8    | Aus CRL entfernen               |
| 9    | Privileg entzogen               |
| 10   | AA-Kompromittierung             |


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.scepman.com/de/zertifikatsverwaltung/management-rest-api.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
