> 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/self-service-enrollment/intune-managed-linux-client.md).

# Von Intune verwalteter Linux-Client

{% hint style="info" %}
Gilt für SCEPman Version 2.9 und höher
{% endhint %}

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

Diese Methode kann verwendet werden, um Zertifikate für Benutzer und Geräte zu registrieren, die von Intune verwaltet werden.

Intune wird in diesem Fall ein Skript bereitstellen, das die SCEPman REST API nutzt, um entweder ein neues Zertifikat zu registrieren oder ein bereits vorhandenes zu erneuern.

Unser Entwickler Christoph hat dieses Feature und einige Hintergrunddetails bei der Workplace Ninja Usergroup Germany vorgestellt:

{% embed url="<https://www.youtube.com/watch?v=dQcVl1vS3lg>" %}

## Voraussetzungen

### 1. Self-Service-Enrollment

Um Zertifikate zu registrieren, müssen Benutzer authentifiziert sein, um ihre Berechtigung zu überprüfen. Folgen Sie dieser Anleitung für eine schrittweise Anleitung, wie Sie dies einrichten

{% content-ref url="/pages/da7b8437e46f95216cec58f2994820fff20618fc" %}
[Self-Service-Registrierung](/de/zertifikatsverwaltung/api-certificates/self-service-enrollment.md)
{% endcontent-ref %}

### 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***

Dieses Szenario stellt Zertifikate des Typs aus ***IntuneUser*** und ***IntuneDevice*** je nach Ihrer Wahl.

### **3. Client-Voraussetzungen**

Die folgenden Voraussetzungen müssen auf dem ausführenden Client/Host vorhanden sein, um die Enrollment REST API nutzen zu können.

#### [**Azure CLI**](https://learn.microsoft.com/en-us/cli/azure/install-azure-cli) **(Version 2.61 und höher)**

Die Azure CLI wird verwendet, um den sich anmeldenden Benutzer zu authentifizieren, seine Berechtigung zu prüfen und das Zugriffstoken abzurufen.

#### cURL

Wird verwendet, um das erstellte CSR an den SCEPman Enrollment API-Endpunkt zu senden und das Zertifikat zu empfangen.

#### OpenSSL

OpenSSL wird verwendet, um einen privaten Schlüssel zu generieren und ein CSR für die Anmeldung oder Erneuerung eines Zertifikats zu erstellen.

#### [**Intune-Registrierung**](https://learn.microsoft.com/en-us/mem/intune/user-help/enroll-device-linux)

Folgen Sie der verlinkten Dokumentation, um Ihren Linux-Client bei Intune zu registrieren.&#x20;

## Skript für Enrollment und Erneuerung

Das [enrollrenewcertificate.sh](https://github.com/scepman/csr-request/blob/main/enroll-certificate/enrollrenewcertificate.sh) Das Skript wird verwendet, um zunächst ein Zertifikat zu erhalten, es anschließend regelmäßig zu prüfen und bei Erreichen des Schwellenwerts eine Erneuerung zu versuchen.

Während das Skript normalerweise durch Übergabe der Parameter im Terminal ausgeführt wird, müssen wir einige Teile davon anpassen, damit es über Intune bereitgestellt werden kann.

Suchen Sie den Teil des Skripts, der die übergebenen Terminal-Argumente der Variable zuweist, und passen Sie ihn an Ihre Anforderungen an:

Beispielkonfiguration:

```bash
APPSERVICE_URL="https://scepman.contoso.net/"
API_SCOPE="api://b7d17d51-8b6d-45eb-b42b-3dae638cd5bc/Cert.Enroll"
CERT_DIR=~/certs
CERT_NAME="myCertificate"
KEY_NAME="myKey"
RENEWAL_THRESHOLD_DAYS=30

# Zusätzlich die folgenden Variablen hinzufügen
CERT_TYPE="user"
CERT_COMMAND="auto"
```

#### APPSERVICE\_URL

Die URL des SCEPman-App-Services.

*Beispiel: "<https://scepman.contoso.net/>"*

#### API\_SCOPE

Dies ist der API-Bereich, den Sie in der ***SCEPman-api*** App-Registrierung in Ihrer Umgebung erstellen können.

Dem Benutzer wird Ihr gewünschter Zustimmungsdialog angezeigt, und er kann danach die Self-Service-Funktionalität verwenden.

*Beispiel: "api://*&#x62;7d17d51-8b6d-45eb-b42b-3dae638cd5bc/Cert.Enrol&#x6C;*"*

<figure><img src="/files/4032f9313c7025fe43843a8d28143f7b4e973188" alt=""><figcaption></figcaption></figure>

#### CERT\_DIR

Das Verzeichnis, in dem das Zertifikat erstellt oder dessen Erneuerung versucht wird. Der private Schlüssel und das Stammzertifikat werden ebenfalls hier abgelegt.

*Beispiel: \~/certs/*

#### CERT\_NAME

Der Dateiname (ohne Erweiterung) des Zertifikats, das erstellt oder zur Erneuerung gelesen wird.

*Beispiel: "myCertificate"*

#### KEY\_NAME

Der Dateiname des privaten Schlüssels, der erstellt oder zur Erneuerung gelesen wird.

*Beispiel: "myKey"*

#### RENEWAL\_THRESHOLD\_DAYS

Die Anzahl der Tage, die das Zertifikat noch gültig sein muss, damit das Skript den Erneuerungsprozess startet.

*Beispiel: 30*

#### CERT\_TYPE

Der Typ des Zertifikats, das registriert wird.

*Kann entweder "user" oder "device" sein*

#### CERT\_COMMAND

Dies definiert das Verhalten des Skripts in Bezug auf Registrierung und Erneuerung:

**"auto"** erstellt zunächst ein Zertifikat oder erneuert ein Zertifikat, wenn es bereits vorhanden ist und kurz vor dem Ablauf steht.

**"renewal"** erneuert ein Zertifikat, wenn es kurz vor dem Ablauf steht, erstellt jedoch zunächst kein Zertifikat.

**"initial"** registriert nur ein Zertifikat, erneuert jedoch kein bestehendes.

{% hint style="warning" %}
Wenn Sie ein Gerätezertifikat registrieren oder erneuern, wird die DeviceId aus *\~/.config/intune/registration.toml* abgerufen, und der authentifizierte Benutzer muss dem Besitzer des Objekts im konfigurierten [DeviceDirectory](https://docs.scepman.com/advanced-configuration/application-settings/intune-validation#appconfig-intunevalidation-devicedirectory).
{% endhint %}

### Hinweise

* Dieses Skript verschlüsselt die erzeugten Schlüssel nicht (dafür ist eine Passphrase-Eingabe erforderlich, daher wurde auf die Verschlüsselung verzichtet, um eine automatische Erneuerung zu ermöglichen.)
* Wenn Sie mit einer Passphrase geschützte Zertifikate von Certificate Master erneuern, müssen Sie diese Passphrase eingeben, um sie zu erneuern.

## Skript bereitstellen

Mit Intune können wir das angepasste Skript nach Zeitplan bereitstellen, um zunächst ein Zertifikat mit den angegebenen Parametern zu registrieren und regelmäßig zu prüfen, ob es erneuert werden muss.

Fügen Sie eine neue Linux-Skriptbereitstellung hinzu und stellen Sie sicher, dass Sie das ***Ausführungskontext*** nach ***Benutzer*** setzen und entweder den Inhalt des angepassten Bash-Skripts hochladen oder einfügen, das Sie im vorherigen Abschnitt erstellt haben.

Passen Sie die ***Ausführungsfrequenz*** entsprechend Ihrem Erneuerungsschwellenwert an.

{% hint style="info" %}
Der Benutzer wird bei der ersten Ausführung aufgefordert, sich bei der Azure CLI-Anwendung anzumelden, da eine Authentifizierung erforderlich ist.&#x20;
{% endhint %}


---

# 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/self-service-enrollment/intune-managed-linux-client.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.
