> 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, welche wiederum entweder ein neues Zertifikat registriert oder ein bereits vorhandenes erneuert.

Unser Entwickler Christoph stellte dieses Feature und einige Hintergrunddetails bei der Workplace Ninja Usergroup Germany vor:

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

## Voraussetzungen

### 1. Self-Service-Registrierung

Um Zertifikate zu registrieren, müssen Benutzer authentifiziert sein, um ihre Berechtigung zu überprüfen. Folgen Sie dieser Anleitung für Schritt-für-Schritt-Anweisungen, 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 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***

Dieses Szenario registriert Zertifikate des Typs ***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 verwenden 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 authentifizierenden Benutzer zu verifizieren, 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 erzeugen und ein CSR für die Ausstellung 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.

## Registrierungs- und Erneuerungsskript

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 beziehen sowie es regelmäßig zu überprüfen und bei Erreichen des Schwellenwerts eine Erneuerung zu versuchen.

Während das Skript normalerweise ausgeführt wird, indem die Parameter im Terminal übergeben werden, müssen wir einige Teile daran ändern, damit es über Intune bereitgestellt werden kann.

Suchen Sie den Teil des Skripts, der die übergebenen Terminal-Argumente der Variablen zuweist, und passen Sie ihn an Ihre Bedürfnisse 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

# Fügen Sie zusätzlich die folgenden Variablen hinzu
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 anschließend kann er die Self-Service-Funktionalität verwenden.

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

<figure><img src="https://2075553437-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LoGejQeUQcw7lqnQ3WX%2Fuploads%2FKWdXwi8JnKGy27tU384e%2Fimage.png?alt=media&amp;token=5173dc4b-8981-40e9-8875-e932078c6667" 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 dort 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 legt das Verhalten des Skripts in Bezug auf Registrierung und Erneuerung fest:

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

**"renewal"** erneuert ein Zertifikat, wenn es kurz vor dem Ablauf steht, erstellt aber nicht zunächst ein 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* und der authentifizierte Benutzer muss mit dem Eigentümer des Objekts in der 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 Verschlüsselung verzichtet, um eine automatische Erneuerung zu ermöglichen.)
* Wenn Sie passphrasegeschützte Zertifikate aus Certificate Master erneuern, müssen Sie diese Passphrase eingeben, um sie zu erneuern.

## Bereitstellungsskript

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 die ***Ausführungskontext*** zu ***Benutzer*** festlegen und entweder den Inhalt des angepassten Bash-Skripts, das Sie im vorherigen Abschnitt erstellt haben, hochladen oder einfügen.

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.
{% 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.
