Megosztás a következőn keresztül:


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

Hogyan integrálható a külső hitelesítésszolgáltató SCEP a Microsoft Intune

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.

  1. Regisztráció az adattárból érkező értesítések fogadásához

  2. Az adattár klónozása vagy letöltése

  3. 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)

  4. Hozza létre a kódtárat a README fájl utasításai alapján

  5. Vegye fel a kódtárat az SCEP-kiszolgálót buildelő projektbe

  6. 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
  7. Végezze el az integrációs tesztelést (ebben a cikkben), és oldja meg az esetleges problémákat

  8. 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.scepvalidationIntuneScepServiceClient 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:

  1. Állítson be egy Intune-próbafiókot.
  2. Az SCEP-kiszolgáló előkészítése a Azure Portal (ebben a cikkben).
  3. Konfigurálja az SCEP-kiszolgálót az SCEP-kiszolgáló előkészítésekor létrehozott azonosítókkal és kulccsal.
  4. Eszközök regisztrálása a forgatókönyv-tesztelési mátrix forgatókönyveinek teszteléséhez.
  5. Hozzon létre egy megbízható főtanúsítvány-profilt a teszt hitelesítésszolgáltatójához.
  6. Hozzon létre SCEP-profilokat a forgatókönyv-tesztelési mátrixban felsorolt forgatókönyvek teszteléséhez.
  7. Rendelje hozzá a profilokat azokhoz a felhasználókhoz, amelyek regisztrálták az eszközeiket.
  8. Várja meg, amíg az eszközök szinkronizálódnak az Intune-nal. Vagy manuálisan szinkronizálhatja az eszközöket.
  9. Ellenőrizze, hogy a megbízható főtanúsítvány és az SCEP-profilok telepítve vannak-e az eszközökön.
  10. Ellenőrizze, hogy a megbízható főtanúsítvány telepítve van-e az összes eszközön.
  11. Ellenőrizze, hogy a hozzárendelt profilok SCEP-tanúsítványai telepítve vannak-e az összes eszközön.
  12. Ellenőrizze, hogy a telepített tanúsítványok tulajdonságai megegyeznek-e az SCEP-profilban beállított tulajdonságokkal.
  13. Ellenőrizze, hogy a kiadott tanúsítványok megfelelően vannak-e felsorolva az Intune Felügyeleti központban

Lásd még