Külső hitelesítésszolgáltatók hozzáadása az Intune-hoz API-k használatával az SCEP-hez
A Microsoft Intune külső hitelesítésszolgáltatókat (CA) adhat hozzá, és a hitelesítésszolgáltatók az Egyszerű tanúsítványigénylési protokoll (SCEP) használatával állíthatják ki és ellenőrizhetik a tanúsítványokat. A külső hitelesítésszolgáltató hozzáadása áttekintést nyújt erről a funkcióról, és ismerteti az Intune rendszergazdai feladatait.
Vannak olyan fejlesztői feladatok is, amelyek egy nyílt forráskódú kódtárat használnak, amelyet a Microsoft GitHub.com tett közzé. A kódtár tartalmaz egy API-t, amely:
- Ellenőrzi az Intune által dinamikusan létrehozott SCEP-jelszót
- Értesíti az Intune-t az SCEP-kérelmeket küldő eszközökön létrehozott tanúsítványokról
Ezzel az API-val a külső SCEP-kiszolgáló integrálható az MDM-eszközökhöz készült Intune SCEP felügyeleti megoldással. A kódtár elvonja a felhasználóktól az olyan szempontokat, mint a hitelesítés, a szolgáltatás helye és az ODATA Intune Service API.
SCEP felügyeleti megoldás
Az Intune használatával a rendszergazdák SCEP-profilokat hoznak létre, majd ezeket a profilokat MDM-eszközökhöz rendelik. Az SCEP-profilok olyan paramétereket tartalmaznak, mint például:
- Az SCEP-kiszolgáló URL-címe
- A hitelesítésszolgáltató megbízható főtanúsítványa
- Tanúsítványattribútumok és egyebek
Az Intune-nal bejelentkező eszközökhöz az SCEP-profil van hozzárendelve, és ezekkel a paraméterekkel vannak konfigurálva. Az Intune létrehoz egy dinamikusan generált SCEP-feladványjelszót, majd hozzárendeli az eszközhöz.
Ez a feladat a következőket tartalmazza:
- A dinamikusan generált kihívás jelszava
- A tanúsítvány-aláírási kérelemben (CSR) elvárt paraméterek részletei, amelyeket az eszköz az SCEP-kiszolgálónak ad ki
- A feladvány lejárati ideje
Az Intune titkosítja ezeket az információkat, aláírja a titkosított blobot, majd az SCEP-feladvány jelszavába csomagolja ezeket az adatokat.
Az SCEP-kiszolgálóval kapcsolatba lépő eszközök tanúsítvány kéréséhez, majd adja meg ezt az SCEP-kérési jelszót. Az SCEP-kiszolgáló elküldi a CSR-t és a titkosított SCEP-feladványjelszót az Intune-nak ellenőrzés céljából. Ennek a kihívásnak a jelszavának és a CSR-nek meg kell felelnie az SCEP-kiszolgáló érvényesítésnek ahhoz, hogy tanúsítványt adjon ki az eszköznek. Egy SCEP-feladat ellenőrzésekor a következő ellenőrzések történnek:
- Ellenőrzi a titkosított blob aláírását
- Ellenőrzi, hogy a feladvány nem járt-e le
- Ellenőrzi, hogy a profil továbbra is az eszközre van-e megcélzva
- Ellenőrzi, hogy az eszköz által a CSR-ben kért tanúsítványtulajdonságok megegyeznek-e a várt értékekkel
Az SCEP felügyeleti megoldás jelentéskészítést is tartalmaz. A rendszergazdák információt kaphatnak az SCEP-profil telepítési állapotáról és az eszközöknek kiadott tanúsítványokról.
Integrálás az Intune-nal
Az Intune SCEP-vel integrálandó kód a Microsoft/Intune-Resource-Access GitHub-adattárban tölthető le.
A kódtárat a termékekbe integrálva a következő lépések szerepelnek. Ezekhez a lépésekhez ismeretekre van szükség a GitHub-adattárak használatához, valamint a megoldások és projektek Visual Studióban való létrehozásához.
Regisztráció az adattárból érkező értesítések fogadásához
Az adattár klónozása vagy letöltése
Lépjen a könyvtár szükséges implementációjára a
\src\CsrValidation
mappában (https://github.com/Microsoft/Intune-Resource-Access/tree/develop/src/CsrValidation)Hozza létre a kódtárat a README fájl utasításai alapján
Vegye fel a kódtárat az SCEP-kiszolgálót buildelő projektbe
Hajtsa végre a következő feladatokat az SCEP-kiszolgálón:
- Engedélyezze a rendszergazdának, hogy konfigurálja a tár által a hitelesítéshez használt Azure-alkalmazás azonosítót, Azure-alkalmazás kulcsot és bérlőazonosítót (ebben a cikkben). A rendszergazdáknak engedélyezni kell a Azure-alkalmazás kulcs frissítését.
- Az Intune által létrehozott SCEP-jelszót tartalmazó SCEP-kérések azonosítása
- A Kérés érvényesítése API-kódtár használata az Intune által létrehozott SCEP-jelszavak érvényesítéséhez
- A kódtár értesítési API-jaival értesítheti az Intune-t az Intune által létrehozott SCEP-jelszavakkal rendelkező SCEP-kérelmekhez kibocsátott tanúsítványokról. Értesítse az Intune-t az SCEP-kérések feldolgozásakor előforduló hibákról is.
- Győződjön meg arról, hogy a kiszolgáló elegendő információt naplóz a rendszergazdáknak a problémák elhárításához
Végezze el az integrációs tesztelést (ebben a cikkben), és oldja meg az esetleges problémákat
Adjon írásos útmutatást az ügyfélnek, amely a következőt ismerteti:
- Az SCEP-kiszolgáló előkészítésének menete az Microsoft Intune Felügyeleti központban
- A kódtár konfigurálásához szükséges Azure-alkalmazás azonosító és Azure-alkalmazás kulcs lekérése
SCEP-kiszolgáló előkészítése az Azure-ban
Az Intune-beli hitelesítéshez az SCEP-kiszolgálónak szüksége van egy Azure-alkalmazás-azonosítóra, egy Azure-alkalmazás kulcsra és egy bérlőazonosítóra. Az SCEP-kiszolgálónak emellett engedéllyel kell rendelkeznie az Intune API eléréséhez.
Az adatok lekéréséhez az SCEP-kiszolgáló rendszergazdája bejelentkezik az Azure Portal, regisztrálja az alkalmazást, megadja az alkalmazásnak a Microsoft Intune API\SCEP challenge validation engedélyt és az Application.Read.All engedélyt, létrehoz egy kulcsot az alkalmazáshoz, majd letölti az alkalmazásazonosítót, annak kulcsát és bérlőazonosítóját.
Az alkalmazások regisztrálásával, valamint az azonosítók és kulcsok lekérésével kapcsolatos útmutatásért lásd: Microsoft Entra alkalmazás és szolgáltatásnév létrehozása Microsoft Entra erőforrások eléréséhez.
Java Library API
A Java-kódtár maven-projektként van implementálva, amely a létrehozásakor lekéri a függőségeit. Az API-t a osztály implementálta a com.microsoft.intune.scepvalidation
IntuneScepServiceClient
névtérben.
IntuneScepServiceClient osztály
A IntuneScepServiceClient
osztály tartalmazza az SCEP-szolgáltatás által az SCEP-jelszavak ellenőrzésére, az Intune-nak a létrehozott tanúsítványokról való értesítésére és a hibák listázására használt metódusokat.
IntuneScepServiceClient konstruktor
Aláírás:
IntuneScepServiceClient(
Properties configProperties)
Leírás:
Példányosít és konfigurál egy IntuneScepServiceClient
objektumot.
Paraméterek:
- configProperties – Ügyfélkonfigurációs adatokat tartalmazó Tulajdonságok objektum
A konfigurációnak a következő tulajdonságokat kell tartalmaznia:
- AAD_APP_ID="Az előkészítési folyamat során beszerzett Azure-alkalmazás-azonosító"
- AAD_APP_KEY="Az előkészítési folyamat során beszerzett Azure-alkalmazás kulcs"
- TENANT="Az előkészítési folyamat során beszerzett bérlőazonosító"
- PROVIDER_NAME_AND_VERSION="A termék és annak verziójának azonosítására használt információ"
Ha a megoldás hitelesítéssel vagy hitelesítés nélkül igényel proxyt, a következő tulajdonságokat adhatja hozzá:
- PROXY_HOST="A gazdagép, amelyen a proxy fut."
- PROXY_PORT="A port, amelyen a proxy figyel."
- PROXY_USER="Az a felhasználónév, amelyet akkor kell használni, ha a proxy alapszintű hitelesítést használ."
- PROXY_PASS="A jelszó, amelyet akkor kell használni, ha a proxy alapszintű hitelesítést használ."
Dobások:
- IllegalArgumentException – Azt jelzi, hogy a konstruktor megfelelő tulajdonságobjektum nélkül lett végrehajtva.
Fontos
A legjobb, ha példányosít egy példányt ebből az osztályból, és több SCEP-kérés feldolgozására használja. Ez csökkenti a többletterhelést, mivel gyorsítótárazza a hitelesítési jogkivonatokat és a szolgáltatás helyadatait.
Biztonsági megjegyzések
Az SCEP-kiszolgáló megvalósítójának meg kell védenie a tárolóban tárolt konfigurációs tulajdonságokban megadott adatokat az illetéktelen módosítás és a közzététel ellen. Az információk védelméhez ajánlott megfelelő ACL-eket és titkosítást használni.
ValidateRequest metódus
Aláírás:
void ValidateRequest(
String transactionId,
String certificateRequest)
Leírás:
Ellenőrzi az SCEP-tanúsítványkérelmet.
Paraméterek:
- transactionId – Az SCEP-tranzakció azonosítója
- certificateRequest – DER-kódolású PKCS #10 Tanúsítványkérelem Base64 sztringként kódolva
Dobások:
- IllegalArgumentException – Érvénytelen paraméterrel meghívva
- IntuneScepServiceException – Azt jelzi, hogy a tanúsítványkérelem érvénytelen
- Kivétel – Nem várt hiba esetén jelenik meg
Fontos
A metódus által visszaadott kivételeket a kiszolgálónak kell naplóznia. Vegye figyelembe, hogy a IntuneScepServiceException
tulajdonságok részletes információkkal rendelkeznek arról, hogy miért hiúsult meg a tanúsítványkérelem érvényesítése.
Biztonsági megjegyzések:
- Ha ez a metódus kivételt jelez, az SCEP-kiszolgáló nem adhat ki tanúsítványt az ügyfélnek.
- Az SCEP-tanúsítványkérelem érvényesítési hibái problémát jelezhetnek az Intune-infrastruktúrában. Vagy azt is jelezhetik, hogy egy támadó tanúsítványt próbál beszerezni.
SendSuccessNotification metódus
Aláírás:
void SendSuccessNotification(
String transactionId,
String certificateRequest,
String certThumbprint,
String certSerialNumber,
String certExpirationDate,
String certIssuingAuthority)
Leírás:
Értesíti az Intune-t, hogy a tanúsítvány egy SCEP-kérés feldolgozása során jön létre.
Paraméterek:
- transactionId – Az SCEP-tranzakció azonosítója
- certificateRequest – DER-kódolású PKCS #10 Tanúsítványkérelem Base64 sztringként kódolva
- certThumprint – A kiépített tanúsítvány ujjlenyomatának SHA1 kivonata
- certSerialNumber – A kiépített tanúsítvány sorozatszáma
- certExpirationDate – A kiépített tanúsítvány lejárati dátuma. A dátum-idő sztringnek webes UTC-időként (ÉÉÉÉ-HH-NNNH:mm:ss.sssTZD) kell formáznia az ISO 8601-et.
- certIssuingAuthority – A tanúsítványt kiállító hatóság neve
Dobások:
- IllegalArgumentException – Érvénytelen paraméterrel meghívva
- IntuneScepServiceException – Azt jelzi, hogy a tanúsítványkérelem érvénytelen
- Kivétel – Nem várt hiba esetén jelenik meg
Fontos
A metódus által visszaadott kivételeket a kiszolgálónak kell naplóznia. Vegye figyelembe, hogy a IntuneScepServiceException
tulajdonságok részletes információkkal rendelkeznek arról, hogy miért hiúsult meg a tanúsítványkérelem érvényesítése.
Biztonsági megjegyzések:
- Ha ez a metódus kivételt jelez, az SCEP-kiszolgáló nem adhat ki tanúsítványt az ügyfélnek.
- Az SCEP-tanúsítványkérelem érvényesítési hibái problémát jelezhetnek az Intune-infrastruktúrában. Vagy azt is jelezhetik, hogy egy támadó tanúsítványt próbál beszerezni.
SendFailureNotification metódus
Aláírás:
void SendFailureNotification(
String transactionId,
String certificateRequest,
long hResult,
String errorDescription)
Leírás:
Értesíti az Intune-t, hogy hiba történt egy SCEP-kérés feldolgozása során. Ezt a metódust nem szabad meghívni az osztály metódusai által eredményezett kivételek esetén.
Paraméterek:
- transactionId – Az SCEP-tranzakció azonosítója
- certificateRequest – DER-kódolású PKCS #10 Tanúsítványkérelem Base64 sztringként kódolva
- hResult – Win32 hibakód, amely a legjobban leírja a tapasztalt hibát. Lásd: Win32-hibakódok
- errorDescription – A tapasztalt hiba leírása
Dobások:
- IllegalArgumentException – Érvénytelen paraméterrel meghívva
- IntuneScepServiceException – Azt jelzi, hogy a tanúsítványkérelem érvénytelen
- Kivétel – Nem várt hiba esetén jelenik meg
Fontos
A metódus által visszaadott kivételeket a kiszolgálónak kell naplóznia. Vegye figyelembe, hogy a IntuneScepServiceException
tulajdonságok részletes információkkal rendelkeznek arról, hogy miért hiúsult meg a tanúsítványkérelem érvényesítése.
Biztonsági megjegyzések:
- Ha ez a metódus kivételt jelez, az SCEP-kiszolgáló nem adhat ki tanúsítványt az ügyfélnek.
- Az SCEP-tanúsítványkérelem érvényesítési hibái problémát jelezhetnek az Intune-infrastruktúrában. Vagy azt is jelezhetik, hogy egy támadó tanúsítványt próbál beszerezni.
SetSslSocketFactory metódus
Aláírás:
void SetSslSocketFactory(
SSLSocketFactory factory)
Leírás:
Ezzel a módszerrel tájékoztathatja az ügyfelet arról, hogy az Intune-nal való kommunikáció során a megadott SSL-szoftvercsatorna-előállítót kell használnia (az alapértelmezett helyett).
Paraméterek:
- factory – Az SSL-szoftvercsatorna-előállító, amelyet az ügyfélnek HTTPS-kérésekhez kell használnia
Dobások:
- IllegalArgumentException – Érvénytelen paraméterrel meghívva
Megjegyzés:
Az SSL-szoftvercsatorna-előállítót szükség esetén be kell állítani az osztály többi metódusának végrehajtása előtt.
Integrációs tesztelés
Elengedhetetlen annak ellenőrzése és tesztelése, hogy a megoldás megfelelően integrálva van-e az Intune-nal. Az alábbi lista a lépések áttekintését tartalmazza:
- Állítson be egy Intune-próbafiókot.
- Az SCEP-kiszolgáló előkészítése a Azure Portal (ebben a cikkben).
- Konfigurálja az SCEP-kiszolgálót az SCEP-kiszolgáló előkészítésekor létrehozott azonosítókkal és kulccsal.
- Eszközök regisztrálása a forgatókönyv-tesztelési mátrix forgatókönyveinek teszteléséhez.
- Hozzon létre egy megbízható főtanúsítvány-profilt a teszt hitelesítésszolgáltatójához.
- Hozzon létre SCEP-profilokat a forgatókönyv-tesztelési mátrixban felsorolt forgatókönyvek teszteléséhez.
- Rendelje hozzá a profilokat azokhoz a felhasználókhoz, amelyek regisztrálták az eszközeiket.
- Várja meg, amíg az eszközök szinkronizálódnak az Intune-nal. Vagy manuálisan szinkronizálhatja az eszközöket.
- Ellenőrizze, hogy a megbízható főtanúsítvány és az SCEP-profilok telepítve vannak-e az eszközökön.
- Ellenőrizze, hogy a megbízható főtanúsítvány telepítve van-e az összes eszközön.
- Ellenőrizze, hogy a hozzárendelt profilok SCEP-tanúsítványai telepítve vannak-e az összes eszközön.
- Ellenőrizze, hogy a telepített tanúsítványok tulajdonságai megegyeznek-e az SCEP-profilban beállított tulajdonságokkal.
- Ellenőrizze, hogy a kiadott tanúsítványok megfelelően vannak-e felsorolva az Intune Felügyeleti központban
Lásd még
- Külső hitelesítésszolgáltató hozzáadása – áttekintés
- Az Intune beállítása
- Eszközregisztráció
- SCEP-tanúsítványprofilok konfigurálása (ehhez a forgatókönyvhöz nem a Microsoft NDES-kiszolgáló\Összekötő beállítása használható)
Visszajelzés
https://aka.ms/ContentUserFeedback.
Hamarosan elérhető: 2024-ben fokozatosan kivezetjük a GitHub-problémákat a tartalom visszajelzési mechanizmusaként, és lecseréljük egy új visszajelzési rendszerre. További információ:Visszajelzés küldése és megtekintése a következőhöz: