For the complete documentation index, see llms.txt. This page is also available as Markdown.

Von Intune verwalteter Linux-Client

Gilt für SCEPman Version 2.9 und höher

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:

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

Self-Service-Registrierung

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.

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.

Erforderlich für die Zertifikatsregistrierung und -erneuerung

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

Erforderlich für die Zertifikatserneuerung

Setzen Sie diese Variable auf true um Zertifikatserneuerungen zu aktivieren.

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 (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.

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

Skript für Enrollment und Erneuerung

Das 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:

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://b7d17d51-8b6d-45eb-b42b-3dae638cd5bc/Cert.Enroll"

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.

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.

Der Benutzer wird bei der ersten Ausführung aufgefordert, sich bei der Azure CLI-Anwendung anzumelden, da eine Authentifizierung erforderlich ist.

Zuletzt aktualisiert

War das hilfreich?