# 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

### 2. App Service-Einstellungen

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

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

#### [**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="https://2075553437-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LoGejQeUQcw7lqnQ3WX%2Fuploads%2FKWdXwi8JnKGy27tU384e%2Fimage.png?alt=media&#x26;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 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 %}
