Použití rozhraní API k přidání certifikačních autorit třetích stran pro SCEP do Intune
V Microsoft Intune můžete přidat certifikační autority třetích stran a nechat tyto certifikační autority vydávat a ověřovat certifikáty pomocí protokolu SCEP (Simple Certificate Enrollment Protocol). Přidání certifikační autority třetí strany poskytuje přehled této funkce a popisuje úlohy správce v Intune.
Existují také některé vývojářské úlohy, které používají opensourcovou knihovnu, kterou Microsoft publikoval v GitHub.com. Knihovna obsahuje rozhraní API, které:
- Ověří heslo SCEP dynamicky generované Intune
- Informuje Intune o certifikátech vytvořených na zařízeních odesílaných žádosti SCEP.
Pomocí tohoto rozhraní API se server SCEP třetí strany integruje s řešením pro správu Intune SCEP pro zařízení MDM. Knihovna od svých uživatelů abstrahuje aspekty, jako je ověřování, umístění služby a rozhraní API služby Intune ODATA.
Řešení pro správu SCEP
Pomocí Intune vytvoří správci profily SCEP a pak tyto profily přiřadí zařízením MDM. Profily SCEP obsahují parametry, například:
- Adresa URL serveru SCEP
- Důvěryhodný kořenový certifikát certifikační autority
- Atributy certifikátu a další
Zařízení, která se přihlašují pomocí Intune, mají přiřazený profil SCEP a jsou nakonfigurovaná s těmito parametry. Dynamicky generované heslo výzvy SCEP vytvoří Intune a přiřadí se k zařízení.
Tento úkol obsahuje:
- Dynamicky generované heslo výzvy
- Podrobnosti o parametrech očekávaných v žádosti o podepsání certifikátu (CSR), kterou zařízení vystaví serveru SCEP
- Doba vypršení platnosti výzvy
Intune tyto informace zašifruje, podepíše šifrovaný objekt blob a pak tyto podrobnosti zabalí do hesla výzvy SCEP.
Zařízení, která kontaktují server SCEP s žádostí o certifikát, pak tomuto SCEP udělují heslo výzvy. Server SCEP odešle csr a šifrované heslo výzvy SCEP k Intune k ověření. Toto výzva heslo a CSR musí projít ověřením, aby server SCEP vydědil certifikát do zařízení. Při ověření výzvy SCEP proběhnou následující kontroly:
- Ověří podpis šifrovaného objektu blob.
- Ověří, že nevypršela platnost výzvy.
- Ověří, že profil stále cílí na zařízení.
- Ověří, že vlastnosti certifikátu požadované zařízením v csr odpovídají očekávaným hodnotám.
Řešení pro správu SCEP zahrnuje také vytváření sestav. Správce může získat informace o stavu nasazení profilu SCEP a o certifikátech vydaných zařízením.
Integrace s Intune
Kód pro integraci knihovny s Intune SCEP je k dispozici ke stažení v úložišti Microsoft/Intune-Resource-Access na GitHubu.
Integrace knihovny do produktů zahrnuje následující kroky. Tyto kroky vyžadují znalosti práce s úložišti GitHub a vytváření řešení a projektů v sadě Visual Studio.
Registrace pro příjem oznámení z úložiště
Klonování nebo stažení úložiště
Ve složce přejděte na potřebnou implementaci
\src\CsrValidation
knihovny (https://github.com/Microsoft/Intune-Resource-Access/tree/develop/src/CsrValidation).Sestavte knihovnu podle pokynů v souboru README.
Do projektu, který sestaví server SCEP, zahrňte knihovnu.
Na serveru SCEP proveďte následující úlohy:
- Umožněte správci nakonfigurovat identifikátor Aplikace Azure, klíč Aplikace Azure a ID tenanta (v tomto článku), které knihovna používá k ověřování. Správci by měli mít možnost aktualizovat klíč Aplikace Azure.
- Identifikace požadavků SCEP, které obsahují heslo SCEP vygenerované Intune
- Ověření hesel Intune generovaných Intune SCEP pomocí knihovny API pro ověření požadavků
- Pomocí rozhraní API pro oznámení knihovny můžete Intune informovat o certifikátech vystavených pro požadavky SCEP, které mají Intune vygenerovaná hesla SCEP. Upozorněte Intune také na chyby, ke kterým může dojít při zpracování těchto požadavků SCEP.
- Ověřte, že server protokoluje dostatek informací, které správcům pomůžou při řešení problémů.
Dokončete testování integrace (v tomto článku) a vyřešte případné problémy.
Poskytněte zákazníkovi písemné pokyny, které vysvětlují:
- Způsob nasazení serveru SCEP v Centru pro správu Microsoft Intune
- Jak získat identifikátor Aplikace Azure a klíč Aplikace Azure potřebný ke konfiguraci knihovny
Onboarding serveru SCEP v Azure
K ověření v Intune server SCEP vyžaduje ID Aplikace Azure, klíč Aplikace Azure a ID tenanta. Server SCEP také potřebuje oprávnění pro přístup k rozhraní API Intune.
Aby správce serveru SCEP získal tato data, přihlásí se k Azure Portal, zaregistruje aplikaci, udělí aplikaci oprávnění k ověření výzvy Microsoft Intune API\SCEP i oprávnění Application.Read.All, vytvoří klíč aplikace a pak stáhne ID aplikace, její klíč a ID tenanta.
Pokyny k registraci aplikace a získání ID a klíčů najdete v tématu Použití portálu k vytvoření Microsoft Entra aplikace a instančního objektu pro přístup k prostředkům.
Rozhraní API knihovny Java
Knihovna Java se implementuje jako projekt Maven, který při sestavování načítá své závislosti. Rozhraní API je implementované v rámci com.microsoft.intune.scepvalidation
oboru názvů IntuneScepServiceClient
třídou .
IntuneScepServiceClient – třída
Třída IntuneScepServiceClient
zahrnuje metody používané službou SCEP k ověření hesel SCEP, k oznamování Intune o vytvořených certifikátech a k výpisu chyb.
IntuneScepServiceClient – konstruktor
Podpis:
IntuneScepServiceClient(
Properties configProperties)
Popis:
Vytvoří instanci a nakonfiguruje IntuneScepServiceClient
objekt.
Parametry:
- configProperties – objekt Properties obsahující informace o konfiguraci klienta.
Konfigurace musí obsahovat následující vlastnosti:
- AAD_APP_ID="ID Aplikace Azure získané během procesu onboardingu"
- AAD_APP_KEY="Klíč Aplikace Azure získaný během procesu onboardingu"
- TENANT="ID tenanta získané během procesu onboardingu"
- PROVIDER_NAME_AND_VERSION="Informace použité k identifikaci produktu a jeho verze"
Pokud vaše řešení vyžaduje proxy server s ověřováním nebo bez ověřování, můžete přidat následující vlastnosti:
- PROXY_HOST="Hostitel, na které je proxy server hostovaný."
- PROXY_PORT="Port, na který proxy server naslouchá."
- PROXY_USER="Uživatelské jméno, které se má použít, pokud proxy server používá základní ověřování."
- PROXY_PASS="Heslo, které se má použít, pokud proxy server používá základní ověřování."
Vyvolá:
- IllegalArgumentException – vyvolána, pokud je konstruktor spuštěn bez správného objektu vlastnosti.
Důležité
Nejlepší je vytvořit instanci této třídy a použít ji ke zpracování více požadavků SCEP. Tím se sníží režijní náklady, protože se do mezipaměti ukládají ověřovací tokeny a informace o umístění služby.
Poznámky k zabezpečení
Implementátor serveru SCEP musí chránit data zadaná ve vlastnostech konfigurace, které se uchovávají v úložišti, před manipulací a zveřejněním. K zabezpečení informací se doporučuje používat správné seznamy ACL a šifrování.
Metoda ValidateRequest
Podpis:
void ValidateRequest(
String transactionId,
String certificateRequest)
Popis:
Ověří žádost o certifikát SCEP.
Parametry:
- transactionId – ID transakce SCEP.
- certificateRequest – kódovaný kódem DER PKCS #10 Base64 žádosti o certifikát zakódovaný jako řetězec
Vyvolá:
- IllegalArgumentException – vyvolá se, pokud se volá s neplatným parametrem.
- IntuneScepServiceException – vyvolá se, pokud se zjistí, že žádost o certifikát není platná.
- Výjimka – vyvoláno, pokud dojde k neočekávané chybě.
Důležité
Výjimky vyvolané touto metodou by měl protokolovat server. Všimněte si IntuneScepServiceException
, že vlastnosti obsahují podrobné informace o tom, proč se ověření žádosti o certifikát nezdařilo.
Poznámky k zabezpečení:
- Pokud tato metoda vyvolá výjimku, server SCEP nesmí vystavit certifikát klientovi.
- Selhání ověření žádosti o certifikát SCEP můžou značit problém v infrastruktuře Intune. Nebo můžou znamenat, že se útočník pokouší získat certifikát.
Metoda SendSuccessNotification
Podpis:
void SendSuccessNotification(
String transactionId,
String certificateRequest,
String certThumbprint,
String certSerialNumber,
String certExpirationDate,
String certIssuingAuthority)
Popis:
Upozorní Intune, že se certifikát vytvoří v rámci zpracování žádosti SCEP.
Parametry:
- transactionId – ID transakce SCEP.
- certificateRequest – kódovaný kódem DER PKCS #10 Base64 žádosti o certifikát zakódovaný jako řetězec
- certThumprint – hodnota hash SHA1 kryptografického otisku zřízeného certifikátu.
- certSerialNumber – sériové číslo zřízeného certifikátu.
- certExpirationDate – datum vypršení platnosti zřízeného certifikátu. Řetězec data a času by měl být formátován jako web UTC (YYYY-MM-DDThh:mm:ss.sssTZD) ISO 8601.
- certIssuingAuthority – název autority, která certifikát vydala.
Vyvolá:
- IllegalArgumentException – vyvolá se, pokud se volá s neplatným parametrem.
- IntuneScepServiceException – vyvolá se, pokud se zjistí, že žádost o certifikát není platná.
- Výjimka – vyvoláno, pokud dojde k neočekávané chybě.
Důležité
Výjimky vyvolané touto metodou by měl protokolovat server. Všimněte si IntuneScepServiceException
, že vlastnosti obsahují podrobné informace o tom, proč se ověření žádosti o certifikát nezdařilo.
Poznámky k zabezpečení:
- Pokud tato metoda vyvolá výjimku, server SCEP nesmí vystavit certifikát klientovi.
- Selhání ověření žádosti o certifikát SCEP můžou značit problém v infrastruktuře Intune. Nebo můžou znamenat, že se útočník pokouší získat certifikát.
Metoda SendFailureNotification
Podpis:
void SendFailureNotification(
String transactionId,
String certificateRequest,
long hResult,
String errorDescription)
Popis:
Upozorní Intune, že při zpracování požadavku SCEP došlo k chybě. Tato metoda by neměla být vyvolána pro výjimky vyvolané metodami této třídy.
Parametry:
- transactionId – ID transakce SCEP.
- certificateRequest – kódovaný kódem DER PKCS #10 Base64 žádosti o certifikát zakódovaný jako řetězec
- hResult – kód chyby Win32, který nejlépe popisuje chybu, ke které došlo. Viz Kódy chyb Win32.
- errorDescription – popis chyby, ke které došlo.
Vyvolá:
- IllegalArgumentException – vyvolá se, pokud se volá s neplatným parametrem.
- IntuneScepServiceException – vyvolá se, pokud se zjistí, že žádost o certifikát není platná.
- Výjimka – vyvoláno, pokud dojde k neočekávané chybě.
Důležité
Výjimky vyvolané touto metodou by měl protokolovat server. Všimněte si IntuneScepServiceException
, že vlastnosti obsahují podrobné informace o tom, proč se ověření žádosti o certifikát nezdařilo.
Poznámky k zabezpečení:
- Pokud tato metoda vyvolá výjimku, server SCEP nesmí vystavit certifikát klientovi.
- Selhání ověření žádosti o certifikát SCEP můžou značit problém v infrastruktuře Intune. Nebo můžou znamenat, že se útočník pokouší získat certifikát.
Metoda SetSslSocketFactory
Podpis:
void SetSslSocketFactory(
SSLSocketFactory factory)
Popis:
Tato metoda slouží k informování klienta, že při komunikaci s Intune musí použít zadaný objekt pro vytváření soketů SSL (místo výchozího).
Parametry:
- factory – objekt pro vytváření soketů SSL, který by měl klient používat pro požadavky HTTPS
Vyvolá:
- IllegalArgumentException – vyvolá se, pokud se volá s neplatným parametrem.
Poznámka
Objekt pro vytváření soketů SSL musí být v případě potřeby nastaven před spuštěním ostatních metod této třídy.
Testování integrace
Ověření a otestování správné integrace řešení s Intune je nutností. Následující seznam obsahuje přehled kroků:
- Nastavte Intune zkušební účet.
- Onboarding serveru SCEP v Azure Portal (v tomto článku).
- Nakonfigurujte server SCEP pomocí ID a klíče vytvořeného při onboardingu serveru SCEP.
- Zaregistrujte zařízení pro testování scénářů v matici testování scénářů.
- Vytvořte profil důvěryhodného kořenového certifikátu pro testovací certifikační autoritu.
- Vytvořte profily SCEP a otestujte scénáře uvedené v matici testování scénářů.
- Přiřaďte profily uživatelům, kteří si zaregistrovali svá zařízení.
- Počkejte, až se zařízení synchronizují s Intune. Nebo můžete zařízení synchronizovat ručně.
- Ověřte, že jsou na zařízení nasazené profily Důvěryhodný kořenový certifikát a SCEP.
- Ověřte, že je na všech zařízeních nainstalovaný důvěryhodný kořenový certifikát.
- Ověřte, že jsou na všech zařízeních nainstalované certifikáty SCEP pro přiřazené profily.
- Ověřte, že vlastnosti nainstalovaných certifikátů odpovídají vlastnostem nastaveným v profilu SCEP.
- Ověřte, že jsou vydané certifikáty správně uvedené v Centru pro správu Intune.
Viz také
- Přidání přehledu certifikační autority třetí strany
- Instalační Intune
- Registrace zařízení
- Konfigurace profilů certifikátů SCEP (pro tento scénář se nepoužívá nastavení Microsoft NDES Server\Connector)