> 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

Verwenden Sie diese REST-API mit Microsoft-Identitäten zur Authentifizierung, um Zertifikate zu registrieren, als Alternative zu den SCEP-Endpunkten, die die SCEP-Authentifizierungsart erfordern.

{% 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 zum Beantragen von Zertifikaten. Dies ist eine Alternative zu den SCEP-Endpunkten, die die SCEP-artige Authentifizierung erfordern, während die REST-API Microsoft-Identitäten zur Authentifizierung verwendet. Das Protokoll ist außerdem viel 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 als diese Anwendung gegenüber SCEPman 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 aus.

Beispiel:

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

*ServicePrincipalId*

Das ***Objekt-ID*** der zugehörigen ***Unternehmensanwendung*** der App-Registrierung, die wir im vorherigen Schritt erstellt haben. Beachten Sie, dass dies sich nicht auf die Unternehmensanwendung bezieht, die normalerweise 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 *von Ihrer Organisation verwendeten Berechtigungen*. Weisen Sie ***CSR.Request.Db*** Berechtigung von ***SCEPman-api*** als eine *Anwendungsberechtigung*.

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

*Service Principals* benötigen außerdem die Graph-Berechtigung ***Application.Read.All*** um den API-Bereich von SCEPman zur Authentifizierung automatisch abzurufen.

Die Berechtigung kann manuell wie folgt hinzugefügt werden:

<figure><img src="https://2075553437-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LoGejQeUQcw7lqnQ3WX%2Fuploads%2FDcTPqAoP7o03QirKhyMH%2Fimage.png?alt=media&amp;token=7233bb9a-a9c1-49aa-9cbc-21f90931c59c" alt=""><figcaption></figcaption></figure>
{% endstep %}

{% step %}

### Client-Secret

Erstellen Sie unter „Zertifikate & Geheimnisse“ ein Client-Secret. Das Client-Secret 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 er mTLS-Clientzertifikate akzeptiert. Überprüfen Sie im Konfigurationsbereich des Abschnitts Einstellungen, dass der Clientzertifikatmodus unter Eingehende Clientzertifikate auf ***Optionaler interaktiver Benutzer***.

<figure><img src="https://2075553437-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LoGejQeUQcw7lqnQ3WX%2Fuploads%2F9UeFFxwefnV8Cb7Zz14u%2Fimage.png?alt=media&amp;token=210ea9b7-ecd5-4b2b-9641-22447246e718" alt=""><figcaption></figcaption></figure>

Setzen Sie den Clientzertifikatmodus nicht auf Erforderlich oder Zulassen, da dies den normalen Betrieb von SCEPman an den SCEP-Endpunkten beeinträchtigen würde!

#### Umgebungsvariablen

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 kommagetrennte Liste von Zertifikattypen, für die Sie die Erneuerung zulassen möchten. Eine Liste möglicher Zertifikattypen finden Sie in der verlinkten Variablendokumentation.

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

## Zertifikate beantragen

Nachdem Sie die Voraussetzungen vorbereitet haben, können Sie ein PKCS#10/CMS per POST an Ihren SCEPman mit dem HTTP-Pfad 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 Komponente Certificate Master auflisten und widerrufen können.

Eine bequeme Methode, diese Anfrage 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-Beispielbibliothek 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.
