> 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/api-certificates/api-enrollment.md).

# API-Registrierung

{% hint style="info" %}
Diese Funktion erfordert Version **2.3.689** oder höher.
{% endhint %}

{% hint style="warning" %}
nur SCEPman Enterprise Edition
{% endhint %}

SCEPman verfügt über eine REST-API zur Registrierung von Zertifikaten. Dies ist eine Alternative zu den SCEP-Endpunkten, die eine SCEP-Authentifizierung erfordern, während die REST-API für die Authentifizierung Microsoft-Identitäten verwendet. Das Protokoll ist außerdem deutlich einfacher als SCEP.

## Voraussetzungen

### 1. Service Principal

{% stepper %}
{% step %}

### App-Registrierung

Erstellen Sie eine neue *App-Registrierung* die Ihren Anwendungsfall beschreibt. Ihre Anwendung wird sich gegenüber SCEPman als diese Anwendung authentifizieren.
{% endstep %}

{% step %}

### API-Berechtigungen

#### CSR.Request.Db

Weisen Sie die erforderlichen Berechtigungen zu, indem Sie das **Register-SCEPmanApiClient** Cmdlet aus dem SCEPman PowerShell-Modul ausführen.

Beispiel:&#x20;

```powershell
Register-SCEPmanApiClient -ServicePrincipalId xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
```

*ServicePrincipalId*

Das ***Objekt-ID*** des ergänzenden ***Unternehmensanwendung*** der App-Registrierung, die wir im vorherigen Schritt erstellt haben. Beachten Sie, dass sich dies nicht auf die Unternehmensanwendung bezieht, die üblicherweise SCEPman-api heißt und SCEPman selbst identifiziert.

Um diese Berechtigung manuell zuzuweisen, können Sie zu *API-Berechtigungen* navigieren und eine Berechtigung aus den *Berechtigungen hinzufügen, die Ihre Organisation verwendet*erfolgen. Weisen Sie dem ***CSR.Request.Db*** Berechtigung aus ***SCEPman-api*** als eine *Anwendungsberechtigung*.

#### Application.Read.All (Optional)

*Dienstprinzipale* benötigen außerdem die Graph-Berechtigung ***Application.Read.All*** um den API-Scope von SCEPman für die Authentifizierung automatisch abrufen zu können.

Die Berechtigung kann manuell wie folgt hinzugefügt werden:

<figure><img src="/files/4b6878783f288d9ad4fbe57c7774d404d3869f1c" alt=""><figcaption></figcaption></figure>
{% endstep %}

{% step %}

### Client-Geheimnis

Erstellen Sie unter „Zertifikate & Geheimnisse“ ein Client-Geheimnis. Das Client-Geheimnis wird später als Kennwort zur Authentifizierung der Anwendung verwendet.
{% endstep %}
{% endstepper %}

### 2. App Service-Einstellungen

#### Konfiguration

*Erforderlich für die Zertifikatserneuerung*

Konfigurieren Sie Ihren SCEPman App Service so, dass mTLS-Clientzertifikate akzeptiert werden. Überprüfen Sie in der Konfigurationsseite des Abschnitts Einstellungen, ob der Clientzertifikatmodus unter Eingehende Clientzertifikate auf ***Optionaler interaktiver Benutzer***.

<figure><img src="/files/808e6394826f26064133960781d4a50cb2b6b555" alt=""><figcaption></figcaption></figure>

Setzen Sie den Clientzertifikatmodus nicht auf Erfordern oder Zulassen, da dies den normalen Betrieb von SCEPman an den SCEP-Endpunkten unterbrechen würde!

#### Environment Variables

Um dieses Szenario nutzen zu können, müssen Sie die folgenden Umgebungsvariablen für den SCEPman App Service festlegen.

#### [AppConfig:DbCSRValidation:Enabled](https://docs.scepman.com/advanced-configuration/application-settings/dbcsr-validation#appconfig-dbcsrvalidation-enabled)

*Erforderlich für die Zertifikatsregistrierung und -erneuerung*

Setzen Sie diese Variable auf ***true*** um die Validierung von Zertifikatsignierungsanforderungen (CSRs) zu aktivieren.

#### [AppConfig:DbCSRValidation:AllowRenewals](https://docs.scepman.com/advanced-configuration/application-settings/dbcsr-validation#appconfig-dbcsrvalidation-allowrenewals)

*Erforderlich für die Zertifikatserneuerung*

Setzen Sie diese Variable auf ***true*** um Zertifikatserneuerungen zu aktivieren.

#### [AppConfig:DbCSRValidation:ReenrollmentAllowedCertificateTypes](https://docs.scepman.com/advanced-configuration/application-settings/dbcsr-validation#appconfig-dbcsrvalidation-reenrollmentallowedcertificatetypes)

*Erforderlich für die Zertifikatserneuerung*

Setzen Sie diese Variable auf eine durch Kommas getrennte Liste von Zertifikatstypen, für die Sie die Erneuerung zulassen möchten. Eine Liste der möglichen Zertifikatstypen finden Sie in der verlinkten Variablendokumentation.

Beispiel: ***Static,IntuneUser,IntuneDevice***

## Registrierung von Zertifikaten

Nachdem Sie die Voraussetzungen vorbereitet haben, können Sie ein PKCS#10/CMS per HTTP-Pfad an Ihr SCEPman senden *api/csr*. Die HTTP-Antwort ist das frisch ausgestellte Zertifikat in DER-Kodierung.

SCEPman speichert alle ausgestellten Zertifikate automatisch in seinem Storage Account, sodass Sie sie bequem über die Certificate Master-Komponente auflisten und widerrufen können.

Eine bequeme Methode, diese Anfragen zu senden, ist unser SCEPmanClient PowerShell-Modul:

{% content-ref url="/pages/dbb1c25b5c5378e0bfea99026d67efd5eddf2f37" %}
[SCEPmanClient](/de/zertifikatsverwaltung/api-certificates/scepmanclient.md)
{% endcontent-ref %}

## Weitere Beispiele

Siehe unser [Open Source Sample Library auf GitHub](https://github.com/scepman/csr-request) um herauszufinden, wie Sie die REST-API von SCEPman verwenden.


---

# 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, and the optional `goal` query parameter:

```
GET https://docs.scepman.com/de/zertifikatsverwaltung/api-certificates/api-enrollment.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

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.
