Mukautetun luottamuksellisen tietotyypin luominen PowerShellin avulla

Tässä artikkelissa kerrotaan, miten voit luoda XML-sääntöpakettitiedoston , joka määrittää mukautetut luottamukselliset tietotyypit. Tässä artikkelissa kuvataan mukautettu arkaluonteinen tietotyyppi, joka tunnistaa työntekijän tunnuksen. Voit käyttää tämän artikkelin XML-mallitiedostoa aloituspisteenä omalle XML-tiedostollesi.

Lisätietoja luottamuksellisista tietotyypeistä on artikkelissa Lisätietoja luottamuksellisista tietotyypeistä.

Kun olet luonut hyvin muotoillut XML-tiedostot, voit ladata sen Microsoft 365:een PowerShellin avulla. Sen jälkeen olet valmis käyttämään mukautettua luottamuksellista tietotyyppiä käytännöissä. Voit testata sen tehokkuutta luottamuksellisten tietojen tunnistamisessa haluamallasi tavalla.

Huomautus

Jos et tarvitse PowerShellin tarjoamaa hienorakeista ohjausobjektia, voit luoda mukautettuja luottamuksellisia tietotyyppejä Microsoft Purview -yhteensopivuusportaali. Lisätietoja on artikkelissa Luottamuksellisten tietotyyppien luominen.

Vihje

Jos et ole E5-asiakas, käytä 90 päivän Microsoft Purview -ratkaisujen kokeiluversiota ja tutustu siihen, miten muut Purview-ominaisuudet voivat auttaa organisaatiotasi hallitsemaan tietoturva- ja yhteensopivuustarpeita. Aloita nyt Microsoft Purview -yhteensopivuusportaali kokeilukeskuksesta. Lue lisätietoja rekisteröitymisestä ja kokeiluehdoista.

Tärkeä vastuuvapauslauseke

Microsoftin tuki ei voi auttaa sinua luomaan sisältövastaavuusmäärityksiä.

Mukautettujen sisältövastaavuuksien kehittämistä, testausta ja virheenkorjausta varten sinun on käytettävä omia sisäisiä IT-resurssejasi tai konsultointipalveluita, kuten Microsoft Consulting Services (MCS). Microsoftin tukihenkilöt voivat tarjota rajoitettua tukea tälle ominaisuudelle, mutta he eivät voi taata, että mukautetut sisältöä vastaavat ehdotukset vastaavat täysin tarpeitasi.

MCS voi tarjota säännöllisiä lausekkeita testausta varten. He voivat myös tarjota apua olemassa olevan RegEx-mallin vianmäärityksessä, joka ei toimi odotetulla tavalla yksittäisen sisältöesimerkin kanssa.

Lisätietoja mahdollisista vahvistusongelmista on tässä artikkelissa.

Lisätietoja tekstin käsittelyyn käytetystä Boost.RegEx(tunnettiin aiemmin nimellä RegEx++) -moduulista on kohdassa Boost.Regex 5.1.3.

Huomautus

Jos käytät et-merkkiä (&) avainsanan osana mukautetussa luottamuksellisessa tietotyypissä, sinun on lisättävä ylimääräinen termi, jonka ympärillä on välilyöntejä. Esimerkki: käytä L & PeiL&P.

Sääntöpaketin XML-malli

Tässä on malli-XML sääntöpaketista, jonka luomme tässä artikkelissa. Elementit ja määritteet selitetään alla olevissä osissa.

<?xml version="1.0" encoding="UTF-16"?>
<RulePackage xmlns="http://schemas.microsoft.com/office/2011/mce">
<RulePack id="DAD86A92-AB18-43BB-AB35-96F7C594ADAA">
  <Version build="0" major="1" minor="0" revision="0"/>
  <Publisher id="619DD8C3-7B80-4998-A312-4DF0402BAC04"/>
  <Details defaultLangCode="en-us">
    <LocalizedDetails langcode="en-us">
      <PublisherName>Contoso</PublisherName>
      <Name>Employee ID Custom Rule Pack</Name>
      <Description>
      This rule package contains the custom Employee ID entity.
      </Description>
    </LocalizedDetails>
  </Details>
</RulePack>
<Rules>
<!-- Employee ID -->
  <Entity id="E1CC861E-3FE9-4A58-82DF-4BD259EAB378" patternsProximity="300" recommendedConfidence="75">
    <Pattern confidenceLevel="65">
      <IdMatch idRef="Regex_employee_id"/>
    </Pattern>
    <Pattern confidenceLevel="75">
      <IdMatch idRef="Regex_employee_id"/>
      <Match idRef="Func_us_date"/>
    </Pattern>
    <Pattern confidenceLevel="85">
      <IdMatch idRef="Regex_employee_id"/>
      <Match idRef="Func_us_date"/>
      <Any minMatches="1">
        <Match idRef="Keyword_badge" minCount="2"/>
        <Match idRef="Keyword_employee"/>
      </Any>
      <Any minMatches="0" maxMatches="0">
        <Match idRef="Keyword_false_positives_local"/>
        <Match idRef="Keyword_false_positives_intl"/>
      </Any>
    </Pattern>
  </Entity>
  <Regex id="Regex_employee_id">(\s)(\d{9})(\s)</Regex>
  <Keyword id="Keyword_employee">
    <Group matchStyle="word">
      <Term>Identification</Term>
      <Term>Contoso Employee</Term>
    </Group>
  </Keyword>
  <Keyword id="Keyword_badge">
    <Group matchStyle="string">
      <Term>card</Term>
      <Term>badge</Term>
      <Term caseSensitive="true">ID</Term>
    </Group>
  </Keyword>
  <Keyword id="Keyword_false_positives_local">
    <Group matchStyle="word">
      <Term>credit card</Term>
      <Term>national ID</Term>
    </Group>
  </Keyword>
  <Keyword id="Keyword_false_positives_intl">
    <Group matchStyle="word">
      <Term>identity card</Term>
      <Term>national ID</Term>
      <Term>EU debit card</Term>
    </Group>
  </Keyword>
  <LocalizedStrings>
    <Resource idRef="E1CC861E-3FE9-4A58-82DF-4BD259EAB378">
      <Name default="true" langcode="en-us">Employee ID</Name>
      <Description default="true" langcode="en-us">
      A custom classification for detecting Employee IDs.
      </Description>
      <Description default="false" langcode="de-de">
      Description for German locale.
      </Description>
    </Resource>
  </LocalizedStrings>
</Rules>
</RulePackage>

Mitkä ovat tärkeimmät vaatimuksesi? [Sääntö, entiteetti, kuvioelementit]

On tärkeää, että ymmärrät säännön XML-rakenteen perusrakenteen. Rakenteen ymmärtäminen auttaa mukautettua luottamuksellista tietotyyppiä tunnistamaan oikean sisällön.

Sääntö määrittää yhden tai useamman entiteetin (jota kutsutaan myös luottamuksellisiksi tietotyypeiksi). Jokainen entiteetti määrittää yhden tai useamman kuvion. Käytäntö etsii mallia, kun se arvioi sisältöä (esimerkiksi sähköpostia ja asiakirjoja).

XML-merkinnöissä "säännöt" tarkoittavat malleja, jotka määrittävät luottamuksellisen tietotyypin. Älä liitä viittauksia tämän artikkelin sääntöihin muissa Microsoftin ominaisuuksissa yleisiin ehtoihin tai toimintoihin.

Yksinkertaisin skenaario: entiteetti, jolla on yksi kuvio

Tässä on yksinkertainen skenaario: Haluat käytännön tunnistavan sisällön, joka sisältää yhdeksännumeroisia työntekijätunnuksia, joita käytetään organisaatiossasi. Malli viittaa säännön säännönmukaiseen lausekkeeseen säännössä, joka tunnistaa yhdeksännumeroiset luvut. Sisältö, joka sisältää yhdeksännumeroisen luvun, täyttää mallin.

Kaavio entiteetistä, jossa on yksi kuvio.

Tämä malli saattaa kuitenkin tunnistaa minkä tahansa yhdeksännumeroisen luvun, mukaan lukien pidemmät luvut tai muuntyyppiset yhdeksännumeroiset luvut, jotka eivät ole työntekijöiden tunnuksia. Tämäntyyppistä ei-toivottua vastaavuutta kutsutaan false-positiiviseksi.

Yleisempi skenaario: entiteetti, jossa on useita kuvioita

False-positiivisten positiivisten mahdollisuuksien vuoksi entiteetin määrittämiseen käytetään yleensä useampaa kuin yhtä mallia. Useat mallit tukevat kohde-entiteettiä. Esimerkiksi muut avainsanat, päivämäärät tai muu teksti voivat auttaa tunnistamaan alkuperäisen entiteetin (esimerkiksi yhdeksännumeroisen työntekijänumeron).

Voit esimerkiksi kasvattaa työntekijän tunnuksen sisältävän sisällön tunnistamisen todennäköisyyttä määrittämällä muita malleja, joita haluat etsiä:

  • Malli, joka määrittää palkkauspäivämäärän.
  • Malli, joka tunnistaa sekä palkkauspäivämäärän että työntekijän tunnuksen avainsanan.

Kaavio entiteetistä, jossa on useita kuvioita.

Useiden kuviovastaavuuksien osalta on otettava huomioon seuraavat tärkeät seikat:

  • Enemmän todisteita edellyttävän kuvion luotettavuustaso on korkeampi. Voit tehdä seuraavat toiminnot luotettavuustason perusteella:

    • Rajoittavampien toimintojen (kuten sisällön estotoiminnon) käyttäminen luotettavampien vastaavuuksien kanssa.
    • Vähemmän rajoittavien toimintojen (kuten ilmoitusten lähettämisen) käyttäminen vastaavuuksien ollessa heikompia.
  • IdMatch Tukiosat ja Match elementit viittaavat RegExes- ja avainsanoihin, jotka ovat itse asiassa elementin Rule alikohteita, eivät .Pattern Näihin tukielementteihin viittaa , Patternmutta ne sisältyvät kohteeseen Rule. Tämä toiminta tarkoittaa sitä, että useat entiteetit ja mallit voivat viitata tukielementin yksittäiseen määritelmään, kuten säännölliseen lausekkeeseen tai avainsanaluetteloon.

Minkä entiteetin sinun on tunnistettava? [Entiteettielementti, TUNNUSmäärite]

Entiteetti on luottamuksellista tietotyyppiä, kuten luottokorttinumeroa, jolla on tarkka malli. Jokaisella entiteetillä on yksilöivä GUID-tunnus tunnuksenaan.

Nimeä entiteetti ja luo sen GUID-tunnus

  1. Lisää Rules - ja Entity -elementit valitsemaasi XML-editoriin.
  2. Lisää kommentti, joka sisältää mukautetun entiteetin nimen, kuten Työntekijän tunnus. Myöhemmin lisäät entiteetin nimen lokalisoitujen merkkijonojen osioon, ja kyseinen nimi tulee näkyviin hallintakeskukseen, kun luot käytännön.
  3. Luo entiteetille yksilöllinen GUID-tunnus. Esimerkiksi Windows PowerShell:ssä voit suorittaa komennon [guid]::NewGuid(). Myöhemmin lisäät MYÖS GUID-tunnuksen entiteetin lokalisoitujen merkkijonojen osaan.

XML-merkintä, joka näyttää säännöt ja entiteettielementit.

Minkä kuvion haluat täsmätä? [Pattern-elementti, IdMatch-elementti, Regex-elementti]

Malli sisältää luettelon arkaluontoisten tietojen tyypeistä. Malli voi sisältää RegExes-funktioita, avainsanoja ja sisäisiä funktioita. Funktiot tekevät esimerkiksi RegExes-funktion suorittamisen päivämäärien tai osoitteiden etsimiseksi. Luottamuksellisilla tietotyypeillä voi olla useita toistuvuuksia, joilla on yksilöllisiä luotettavuustietoja.

Seuraavassa kaaviossa kaikki mallit viittaavat samaan säännölliseen lausekkeeseen. Tämä RegEx etsii yhdeksännumeroista lukua (\d{9}) , jonka ympärillä on välilyönti (\s) ... (\s). Elementti viittaa tähän säännölliseen IdMatch lausekkeeseen, ja se on yleinen vaatimus kaikille säännönmukaisille malleille, jotka etsivät Työntekijän tunnus -entiteettiä. IdMatch on tunniste, jota kaava yrittää täsmätä. Elementillä Pattern on oltava täsmälleen yksi IdMatch elementti.

XML-merkintä, joka näyttää useita kuvioelementtejä, jotka viittaavat yksittäiseen Regex-elementtiin.

Tyydyttävä mallivastaavuus palauttaa määrä- ja luotettavuustason, jota voit käyttää käytäntösi ehdoissa. Kun lisäät käytäntöön ehdon arkaluontoisen tietotyypin havaitsemiseksi, voit muokata määrä- ja luotettavuustasoa seuraavassa kaaviossa esitetyllä tavalla. Luotettavuustaso (vastaavuustarkkuudeksi) selitetään myöhemmin tässä artikkelissa.

Esiintymämäärän ja vastaavuustarkkuuden asetukset.

Säännönmukaiset lausekkeet ovat tehokkaita, joten on olemassa ongelmia, joista sinun on tiedettävä. Esimerkiksi RegEx, joka tunnistaa liikaa sisältöä, voi vaikuttaa suorituskykyyn. Lisätietoja näistä ongelmista on tämän artikkelin myöhemmässä osassa Mahdolliset vahvistusongelmat, joista on syytä olla tietoinen .

Haluatko lisätodisteita? [Match-elementti, minCount-määrite]

-elementin lisäksi IdMatch-malli voi edellyttää Match lisätodisteita, kuten avainsanaa, RegExiä, päivämäärää tai osoitetta.

Voi Pattern sisältää useita Match elementtejä:

  • Suoraan elementtiin Pattern .
  • Yhdistellään käyttämällä -elementtiä Any .

Match elementit liitetään implisiittisellä AND-operaattorilla. Toisin sanoen kaikkien Match elementtien on oltava tyytyväisiä, jotta kaava vastaa toisiaan.

-elementin Any avulla voit ottaa käyttöön AND- tai OR-operaattorit. Elementti Any kuvataan myöhemmin tässä artikkelissa.

Valinnaisen minCount määritteen avulla voit määrittää, kuinka monta vastaavuusesiintymää kullekin Match elementille on löydettävä. Voit esimerkiksi määrittää, että malli täyttyy vain, kun löydetään vähintään kaksi avainsanaa avainsanaluettelosta.

XML-merkintä, joka näyttää Match-elementin ja minOccurs-määritteen.

Avainsanat [Avainsana-, Ryhmä- ja Termi-elementit, matchStyle- ja caseSensitive-määritteet]

Kuten aiemmin kuvattiin, luottamuksellisten tietojen tunnistaminen edellyttää usein muita avainsanoja vahvistavana todisteena. Voit esimerkiksi yhdeksännumeroisen luvun vastaavuuden lisäksi etsiä avainsanaelementin avulla sanoja, kuten "kortti", "merkki" tai "tunnus". Elementissä KeywordID on määrite, johon voidaan viitata useilla Match elementeillä useissa malleissä tai entiteeteissä.

Avainsanat sisällytetään elementin elementtien Term luettelona Group . Elementillä Group on määrite, matchStyle jossa on kaksi mahdollista arvoa:

  • matchStyle="word": Sanavastaavuus tunnistaa kokonaiset sanat, joita ympäröi tyhjä välilyönti tai muut erottimet. Käytä aina sanaa , ellei sinun tarvitse vastata sanoja tai sanoja aasialaisilla kielillä.

  • matchStyle="string": Merkkijonovastaavuus tunnistaa merkkijonot riippumatta siitä, mitä niiden ympärillä on. Esimerkiksi "tunnus" vastaa "bid" ja "idea". Käytä tätä string vain, kun sinun on vastattava aasialaisia sanoja tai jos avainsanasi saattaa sisältyä muihin merkkijonoihin.

Lopuksi voit määrittää elementin caseSensitive määritteen Term avulla, että sisällön on vastattava avainsanaa tarkasti, mukaan lukien pienet ja isot kirjaimet.

XML-merkintä, joka näyttää avainsanoihin viittaavien elementtien vastaavuusmerkinnän.

Säännönmukaiset lausekkeet [Regex-elementti]

Tässä esimerkissä työntekijäentiteetti ID käyttää jo elementtiä IdMatch viittaamaan säännönmukaiseen lausekkeeseen mallissa: yhdeksännumeroiseen lukuun, jonka ympärillä on välilyönnit. Lisäksi mallissa voidaan käyttää Match elementtiä viittaamaan lisäelementtiin Regex , jolla tunnistetaan vahvistustodisteet, kuten viisi- tai yhdeksännumeroinen luku Yhdysvaltalaisen postinumeron muodossa.

Muita malleja, kuten päivämääriä tai osoitteita [sisäiset funktiot]

Luottamukselliset tietotyypit voivat myös käyttää sisäisiä funktioita vahvistavan näytön tunnistamiseen. Esimerkiksi Yhdysvaltojen päivämäärä, EU-päivämäärä, vanhentumispäivämäärä tai Yhdysvaltain osoite. Microsoft 365 ei tue omien mukautettujen funktioiden lataamista. Kun luot mukautetun luottamuksellisen tietotyypin, entiteetti voi kuitenkin viitata sisäisiin funktioihin.

Esimerkiksi työntekijän tunnusmerkissä on palkkauspäivämäärä, joten tämä mukautettu entiteetti voi käyttää sisäistä Func_us_date funktiota päivämäärän tunnistamiseen muodossa, jota käytetään yleisesti Yhdysvalloissa.

Lisätietoja on artikkelissa Luottamuksellisten tietojen tyyppifunktiot.

XML-merkintä, joka näyttää vastaavan elementin viittaavan sisäiseen funktioon.

Erilaiset näyttöyhdistelmät [Kaikki elementit, minMatches- ja maxMatches-määritteet]

Elementissä Pattern kaikki IdMatch ja Match elementit yhdistetään implisiittisellä AND-operaattorilla. Toisin sanoen kaikki vastaavuudet on täytettävä, ennen kuin malli voidaan täyttää.

Voit luoda joustavamman vastaavuuslogiikan elementtien ryhmittelyyn Match -elementin Any avulla. Elementin Any avulla voit esimerkiksi vastata kaikkia, ei mitään tai sen alielementtien Match tarkkaa alijoukkoa.

Elementissä Any on valinnaisia minMatches elementtejä ja maxMatches määritteitä, joiden avulla voit määrittää, kuinka monta alielementtiä Match on täytettävä, ennen kuin malli vastaa toisiaan. Nämä määritteet määrittävät elementtien Matchmäärän, eivät vastaavuuksille löytyneiden todisteiden esiintymien määrää. Jos haluat määrittää tietyn vastaavuuksen esiintymien vähimmäismäärän, kuten kaksi avainsanaa luettelosta, käytä minCount elementin määritettä Match (katso yllä).

Vastaa vähintään yhtä match-alielementtiä

Jos haluat vaatia vain vähimmäismäärän Match elementtejä, voit käyttää -määritettä minMatches . Itse asiassa nämä Match elementit liitetään implisiittisellä OR-operaattorilla. Tämä Any elementti täyttyy, jos yhdysvaltojen muotoilema päivämäärä tai avainsana kummasta tahansa luettelosta löytyy.

<Any minMatches="1" >
     <Match idRef="Func_us_date" />
     <Match idRef="Keyword_employee" />
     <Match idRef="Keyword_badge" />
</Any>

Vastaa kaikkien alielementtien tarkkaa alijoukkoa Vastaavat elementit

Jotta vaatisit tarkan määrän Match elementtejä, määritä minMatches ja maxMatches määritä sama arvo. Tämä Any elementti täyttyy vain, jos löydetään täsmälleen yksi päivämäärä tai avainsana. Jos vastaavuuksia on lisää, malli ei täsmää.

<Any minMatches="1" maxMatches="1" >
     <Match idRef="Func_us_date" />
     <Match idRef="Keyword_employee" />
     <Match idRef="Keyword_badge" />
</Any>

Ei vastaa mitään alikohteita Vastaavat elementit

Jos haluat edellyttää, että kuvion täyttämistä varten ei ole erityisiä todisteita, voit määrittää sekä minMatches- että maxMatches-arvoksi 0. Tästä voi olla hyötyä, jos sinulla on avainsanaluettelo tai muita todisteita, jotka todennäköisesti osoittavat, että positiivinen arvo on epätosi.

Esimerkiksi työntekijätunnuksen entiteetti etsii avainsanaa "kortti", koska se saattaa viitata "tunnuskorttiin". Jos kortti kuitenkin esiintyy vain lauseessa "luottokortti", "kortti" tässä sisällössä ei todennäköisesti tarkoita "henkilökorttia". Voit siis lisätä avainsanana luottokortin termiluetteloon, jonka haluat jättää pois mallin täyttämisestä.

<Any minMatches="0" maxMatches="0" >
    <Match idRef="Keyword_false_positives_local" />
    <Match idRef="Keyword_false_positives_intl" />
</Any>

Vastaa yksilöivien termien määrää

Jos haluat yhdistää useita yksilöllisiä termejä, käytä uniqueResults-parametria , jonka arvoksi on asetettu true seuraavassa esimerkissä esitetyllä tavalla:

<Pattern confidenceLevel="75">
    <IdMatch idRef="Salary_Revision_terms" />
    <Match idRef=" Salary_Revision_ID " minCount="3" uniqueResults="true" />
</Pattern>

Tässä esimerkissä palkkatarkistusta varten on määritetty malli, jossa käytetään vähintään kolmea yksilöllistä osumaa.

Kuinka lähellä entiteettiä muiden todisteiden on oltava? [patternsProximity-määrite]

Arkaluontoinen tietotyyppi etsii mallia, joka edustaa työntekijän tunnusta, ja osana tätä mallia se etsii myös vahvistavia todisteita, kuten avainsanaa, kuten "tunnus". On järkevää, että mitä lähempänä nämä todisteet ovat, sitä todennäköisempää on, että kyseessä on todellinen työntekijätunnus. Voit määrittää, miten lähellä muut mallissa olevat todisteet ovat entiteetille, käyttämällä Entiteetti-elementin vaadittua patternsProximity-määritettä.

XML-merkintä, joka näyttää kuviotProximity-määrite.

PatternsProximity-määritteen arvo määrittää jokaiselle entiteetin mallille etäisyyden (Unicode-merkeinä) IdMatch-sijainnista kaikille muille mallille määritetyille vastaavuuksille. IdMatch-sijainti ankkuroi lähestymisikkunan siten, että ikkuna ulottuu IdMatch-kohteen vasemmalle ja oikealle puolelle.

Lähestymisikkunan kaavio.

Alla olevassa esimerkissä havainnollistetaan, miten lähestymisikkuna vaikuttaa kuvioon, joka vastaa mallia, jossa mukautetun työntekijätunnuksen entiteetin IdMatch-elementti edellyttää vähintään yhtä avainsanan tai päivämäärän vahvistusvastaavuutta. Vain ID1 vastaa, koska id2: lle ja ID3: lle ei löydy tai vain osittaisia todisteita ei löydy läheisyysikkunasta.

Kaavio vahvistustodisteista ja läheisyysikkunasta.

Huomaa, että sähköpostiviestissä viestin tekstiä ja jokaista liitettä käsitellään erillisinä kohteina. Tämä tarkoittaa sitä, että läheisyysikkuna ei ulotu näiden kohteiden lopun ulkopuolelle. Kunkin kohteen (liitteen tai leipätekstin) sekä idMatch- että vahvistavan näytön on oltava kyseisessä kohteessa.

Mitkä ovat oikeat luotettavuustasot eri malleille? [confidenceLevel-määrite, recommendedConfidence-määrite]

Mitä enemmän todisteita mallista on, sitä luotettavampi sinulla on siitä, että todellinen entiteetti (kuten työntekijätunnus) on tunnistettu, kun malli täsmää. Sinulla on esimerkiksi enemmän luottamusta malliin, joka edellyttää yhdeksännumeroista tunnusnumeroa, palkkauspäivämäärää ja avainsanaa läheisyyteen, kuin malliin, joka edellyttää vain yhdeksännumeroista tunnusnumeroa.

Pattern-elementillä on pakollinen confidenceLevel-määrite. Voit ajatella confidenceLevel-arvoa (arvo välillä 65/75/85 ilmaisee pieniä/keskitasoisia/korkeita luotettavuustasoja) yksilöivänä tunnuksena kullekin entiteetin mallille. Kun olet ladannut mukautetun luottamuksellisen tietotyypin ja luonut sitten käytännön, voit viitata näihin luottamustasoihin luotettavien sääntöjen ehdoissa.

XML-merkintä, joka näyttää kuvio-elementit, joilla on erilaiset arvot confidenceLevel-määritteelle.

Kunkin kuvion confidenceLevel-arvon lisäksi entiteetillä on suositeltuConfidence-määrite. Suositeltua luotettavuusmääritettä voidaan pitää säännön oletusarvoisena luotettavuustasona. Kun luot säännön käytäntöön ja et määritä käytettävälle säännölle luotettavuustasoa, kyseinen sääntö vastaa entiteetin suositeltua luottamustasoa. Huomaa, että suositeltuConfidence-määrite on pakollinen jokaiselle sääntöpaketin entiteettitunnukselle. Jos se puuttuu, et voi tallentaa luottamuksellista tietotyyppiä käyttäviä käytäntöjä.

Haluatko tukea muita kieliä yhteensopivuuskeskuksen käyttöliittymässä? [LocalizedStrings-elementti]

Jos yhteensopivuustiimisi käyttää Microsoft Purview -yhteensopivuusportaali käytäntöjen luomiseen eri alueilla ja eri kielillä, voit antaa lokalisoituja versioita mukautetun luottamuksellisen tietotyypin nimestä ja kuvauksesta. Kun yhteensopivuustiimisi käyttää Microsoft 365:tä kielellä, jota tuet, he näkevät lokalisoidun nimen käyttöliittymässä.

Esiintymämäärä ja vastaavuustarkkuuden määritys.

Säännöt-elementin on sisällettävä LocalizedStrings-elementti, joka sisältää Resource-elementin, joka viittaa mukautetun entiteetin GUID-tunnukseen. Kukin Resource-elementti sisältää yksi tai useampia Name- ja Description-elementtejä, jotka kukin käyttävät langcode-määritettä tarjotakseen lokalisoidun merkkijonon tietylle kielelle.

XML-merkintä, joka näyttää LocalizedStrings-elementin sisällön.

Huomaa, että käytät lokalisoituja merkkijonoja vain siihen, miten mukautettu luottamukselliset tietotyyppisi näkyvät yhteensopivuuskeskuksen käyttöliittymässä. Et voi käyttää lokalisoituja merkkijonoja eri lokalisoitujen versioiden tarjoamiseen avainsanaluettelosta tai säännöllisestä lausekkeesta.

Muu sääntöpaketin merkintä [RulePack GUID]

Lopuksi jokaisen RulePackage-kohteen alussa on joitakin yleisiä tietoja, jotka sinun on täytettävä. Voit käyttää seuraavaa merkintää mallina ja korvata kohteen . . " paikkamerkit, joilla on omat tietosi.

Mikä tärkeintä, sinun on luotava RulePackin GUID-tunnus. Yllä loit GUID-tunnuksen entiteetille. tämä on RulePackin toinen GUID-tunnus. GUID-tunnuksia voi luoda monella tavalla, mutta voit tehdä sen helposti PowerShellissä kirjoittamalla [guid]::NewGuid().

Versio-elementti on myös tärkeä. Kun lataat sääntöpaketin ensimmäistä kertaa, Microsoft 365 ilmoittaa versionumeron. Jos päivität sääntöpaketin ja lataat uuden version, muista päivittää versionumero tai Microsoft 365 ei ota sääntöpakettia käyttöön.

<?xml version="1.0" encoding="utf-16"?>
<RulePackage xmlns="http://schemas.microsoft.com/office/2011/mce">
  <RulePack id=". . .">
    <Version major="1" minor="0" build="0" revision="0" />
    <Publisher id=". . ." />
    <Details defaultLangCode=". . .">
      <LocalizedDetails langcode=" . . . ">
         <PublisherName>. . .</PublisherName>
         <Name>. . .</Name>
         <Description>. . .</Description>
      </LocalizedDetails>
    </Details>
  </RulePack>

 <Rules>
  . . .
 </Rules>
</RulePackage>

Kun olet valmis, RulePack-elementtisi pitäisi näyttää tältä.

XML-merkintä, joka näyttää RulePack-elementin.

Validators

Microsoft 365 näyttää usein käytettyjen SIT-tietojen funktioiden suorittimet vahvistajina. Tässä on luettelo niistä.

Tällä hetkellä käytettävissä olevien tarkistajien luettelo

  • Func_credit_card
  • Func_ssn
  • Func_unformatted_ssn
  • Func_randomized_formatted_ssn
  • Func_randomized_unformatted_ssn
  • Func_aba_routing
  • Func_south_africa_identification_number
  • Func_brazil_cpf
  • Func_iban
  • Func_brazil_cnpj
  • Func_swedish_national_identifier
  • Func_india_aadhaar
  • Func_uk_nhs_number
  • Func_Turkish_National_Id
  • Func_australian_tax_file_number
  • Func_usa_uk_passport
  • Func_canadian_sin
  • Func_formatted_itin
  • Func_unformatted_itin
  • Func_dea_number_v2
  • Func_dea_number
  • Func_japanese_my_number_personal
  • Func_japanese_my_number_corporate

Näin voit määrittää oman RegEx-kohteen ja vahvistaa ne. Jos haluat käyttää tarkistajia, määritä oma RegEx ja lisää valitsemasi funktiosuoritin -ominaisuuden Validator avulla. Kun se on määritetty, voit käyttää tätä RegExiä SIT:ssä.

Alla olevassa esimerkissä säännöllinen lauseke – Regex_credit_card_AdditionalDelimiters määritetään luottokortille, joka sitten vahvistetaan luottokortin tarkistussummafunktiolla käyttämällä Func_credit_card tarkistajana.

<Regex id="Regex_credit_card_AdditionalDelimiters" validators="Func_credit_card"> (?:^|[\s,;\:\(\)\[\]"'])([0-9]{4}[ -_][0-9]{4}[ -_][0-9]{4}[ -_][0-9]{4})(?:$|[\s,;\:\(\)\[\]"'])</Regex>
<Entity id="675634eb7-edc8-4019-85dd-5a5c1f2bb085" patternsProximity="300" recommendedConfidence="85">
<Pattern confidenceLevel="85">
<IdMatch idRef="Regex_credit_card_AdditionalDelimiters" />
<Any minMatches="1">
<Match idRef="Keyword_cc_verification" />
<Match idRef="Keyword_cc_name" />
<Match idRef="Func_expiration_date" />
</Any>
</Pattern>
</Entity>

Microsoft 365 tarjoaa kaksi yleistä tarkistajaa

Tarkistussumman tarkistaja

Tässä esimerkissä työntekijän tunnuksen tarkistussumman vahvistaja on määritetty vahvistamaan EmployeeID-regEx.

<Validators id="EmployeeIDChecksumValidator">
<Validator type="Checksum">
<Param name="Weights">2, 2, 2, 2, 2, 1</Param>
<Param name="Mod">28</Param>
<Param name="CheckDigit">2</Param> <!-- Check 2nd digit -->
<Param name="AllowAlphabets">1</Param> <!— 0 if no Alphabets -->
</Validator>
</Validators>
<Regex id="Regex_EmployeeID" validators="ChecksumValidator">(\d{5}[A-Z])</Regex>
<Entity id="675634eb7-edc8-4019-85dd-5a5c1f2bb085" patternsProximity="300" recommendedConfidence="85">
<Pattern confidenceLevel="85">
<IdMatch idRef="Regex_EmployeeID"/>
</Pattern>
</Entity>

Päivämäärän tarkistaminen

Tässä esimerkissä päivämäärän tarkistaja on määritetty RegEx-osalle, jonka päivämäärä on.

<Validators id="date_validator_1"> <Validator type="DateSimple"> <Param name="Pattern">DDMMYYYY</Param> <!—supported patterns DDMMYYYY, MMDDYYYY, YYYYDDMM, YYYYMMDD, DDMMYYYY, DDMMYY, MMDDYY, YYDDMM, YYMMDD --> </Validator> </Validators>
<Regex id="date_regex_1" validators="date_validator_1">\d{8}</Regex>

Exchange Online muutokset

Aiemmin olet ehkä käyttänyt Exchange Online PowerShelliä mukautettujen luottamuksellisten tietotyyppien tuomiseen DLP:tä varten. Mukautettuja luottamuksellisia tietotyyppejä voi nyt käyttää sekä Exchange-hallintakeskuksessa että yhteensopivuuskeskuksessa. Osana tätä parannusta sinun kannattaa käyttää Tietoturvan & yhteensopivuus PowerShelliä mukautettujen luottamuksellisten tietotyyppien tuomiseen – et voi enää tuoda niitä Exchange Online PowerShellistä. Mukautetut luottamukselliset tietotyypit toimivat edelleen samalla tavalla kuin ennenkin. Saattaa kuitenkin kestää jopa tunnin, ennen kuin yhteensopivuuskeskuksen mukautettuihin luottamuksellisiin tietotyyppeihin tehdyt muutokset näkyvät Exchange-hallintakeskuksessa.

Huomaa, että yhteensopivuuskeskuksessa käytetään Sääntöpaketin lataamiseen New-DlpSensitiveInformationTypeRulePackage cmdlet-komentoa. (Aiemmin Exchange-hallintakeskuksessa käytit LuokituksenRuleCollectionin cmdlet-komentoa.)

Sääntöpaketin lataaminen palvelimeen

Jos haluat ladata sääntöpaketin palvelimeen, toimi seuraavasti:

  1. Tallenna se .xml-tiedostona Unicode-koodauksen avulla.

  2. Yhteyden muodostaminen suojauksen & vaatimustenmukaisuuteen PowerShelliin

  3. Käytä seuraavaa syntaksia:

    New-DlpSensitiveInformationTypeRulePackage -FileData ([System.IO.File]::ReadAllBytes('PathToUnicodeXMLFile'))
    

    Tämä esimerkki lataa Unicode XML -tiedoston nimeltä MyNewRulePack.xml kohteesta C:\Omat tiedostot.

    New-DlpSensitiveInformationTypeRulePackage -FileData ([System.IO.File]::ReadAllBytes('C:\My Documents\MyNewRulePack.xml'))
    

    Lisätietoja syntaksista ja parametrista on kohdassa New-DlpSensitiveInformationTypeRulePackage.

    Huomautus

    Tuettujen sääntöpakettien enimmäismäärä on 10, mutta jokainen paketti voi sisältää useiden luottamuksellisten tietotyyppien määrityksen.

  4. Jos haluat varmistaa, että olet luonut uuden luottamuksellisen tietotyypin, toimi seuraavasti:

    • Tarkista, että uusi sääntöpaketti on luettelossa, suorittamalla komennon Get-DlpSensitiveInformationTypeRulePackage cmdlet:

      Get-DlpSensitiveInformationTypeRulePackage
      
    • Suorita Get-DlpSensitiveInformationType cmdlet- komento, jos haluat varmistaa, että luottamuksellisten tietojen tyyppi on luettelossa:

      Get-DlpSensitiveInformationType
      

      Mukautetuissa luottamuksellisissa tietotyypeissä Publisher-ominaisuuden arvo on jokin muu kuin Microsoft Corporation.

    • Korvaa <Nimi> luottamuksellisen tietotyypin Nimi-arvolla (esimerkki: Työntekijätunnus) ja suorita Get-DlpSensitiveInformationType cmdlet:

      Get-DlpSensitiveInformationType -Identity "<Name>"
      

Mahdolliset vahvistusongelmat, jotka on syytä ottaa huomioon

Kun lataat sääntöpaketin XML-tiedoston palvelimeen, järjestelmä vahvistaa XML:n ja tarkistaa tunnetut huonot mallit ja ilmeiset suorituskykyongelmat. Seuraavassa on joitakin tunnettuja ongelmia, joita validointi tarkistaa – säännöllinen lauseke:

  • Säännönmukaisen lausekkeen Lookbehind-vahvistusten tulee olla vain kiinteäpituisia. Muuttujien pituuden vahvistukset aiheuttavat virheitä.

    "(?<=^|\s|_)" Esimerkiksi vahvistusta ei läpäistä. Ensimmäinen kuvio (^) on nollapituus, kun taas seuraavien kahden kuvion (\s ja _) pituus on yksi. Vaihtoehtoinen tapa kirjoittaa tämä säännöllinen lauseke on "(?:^|(?<=\s|_))".

  • Ei voi alkaa tai päättyä alternatorilla |, joka vastaa kaikkea, koska sitä pidetään tyhjänä otteluna.

    Esimerkiksi |a tai b| ei läpäise vahvistusta.

  • Ei voi alkaa kuviolla .{0,m} , jolla ei ole toiminnallista tarkoitusta ja joka heikentää vain suorituskykyä.

    Esimerkiksi .{0,50}ASDF tai ASDF.{0,50} ei läpäise vahvistusta.

  • Ei voi sisältää .{0,m} ryhmiä tai .{1,m} ryhmiä, eikä niitä voi olla .\*.+ ryhmissä.

    (.{0,50000}) Esimerkiksi vahvistusta ei läpäistä.

  • Ryhmissä ei voi olla merkkiä {0,m} tai {1,m} toistinta.

    (a\*) Esimerkiksi vahvistusta ei läpäistä.

  • Kohteen alussa tai lopussa .{1,m}ei voi olla . Käytä sen sijaan kohdetta ..

    .{1,m}asdf Esimerkiksi vahvistusta ei läpäistä. Käytä sen sijaan kohdetta .asdf.

  • Ryhmässä ei voi olla ei-sidottua toistinta (kuten * tai +).

    Esimerkiksi ja (xx)\*(xx)+ ei läpäise vahvistusta.

  • Avainsanoissa voi olla enintään 50 merkkiä. Jos sinulla on avainsana ryhmässä, joka ylittää tämän, ehdotettu ratkaisu on luoda termiryhmä avainsanasanasanaksi ja viitata avainsanasanaston GUID-tunnukseen XML-rakenteessa osana tiedoston Match- tai idMatch-kohdetta.

  • Kunkin mukautetun luottamuksellisen tietotyypin avainsanoja voi olla yhteensä enintään 2 048.

  • Yhden vuokraajan avainsanasanastojen enimmäiskoko on 480 kilotavua, joka on pakattu AD-rakennerajoitusten mukaiseksi. Viittaa samaan sanastoon niin monta kertaa kuin on tarpeen, kun luot mukautettuja luottamuksellisia tietotyyppejä. Aloita luomalla mukautettuja avainsanaluetteloita luottamuksellisten tietojen tyypissä ja käytä avainsanasanastoja, jos avainsanaluettelossa on yli 2 048 avainsanaa tai jos avainsanan pituus on yli 50 merkkiä.

  • Vuokraajassa sallitaan enintään 50 avainsanasanasanastoon perustuvaa luottamuksellista tietotyyppiä.

  • Varmista, että jokainen Entiteetti-elementti sisältää suositellunConfidence-määritteen.

  • Käytettäessä PowerShellin cmdlet-komentoa sarjoitetut tiedot palautetaan enintään noin 1 megatavuun. Tämä vaikuttaa sääntöpaketin XML-tiedoston kokoon. Pidä ladattu tiedosto rajoitettuna enintään 770 kilotavuun yhtenäisen tuloksen ehdotettuna rajoituksena ilman virheitä käsittelyn aikana.

  • XML-rakenne ei edellytä muotoilumerkkejä, kuten välilyöntejä, välilehtiä tai rivinvaihto-/rivinsyöttömerkintöjä. Ota tämä huomioon optimoitaessa tilaa latauksille. Työkalut, kuten Microsoft Visual Code, tarjoavat liitosriviominaisuuksia XML-tiedoston tiivistämiseksi.

Jos mukautettu luottamuksellisten tietojen tyyppi sisältää ongelman, joka voi vaikuttaa suorituskykyyn, sitä ei ladata palvelimeen, ja näyttöön saattaa tulla jokin seuraavista virhesanomista:

  • Generic quantifiers which match more content than expected (e.g., '+', '*')

  • Lookaround assertions

  • Complex grouping in conjunction with general quantifiers

Indeksoi sisältösi uudelleen arkaluonteisten tietojen tunnistamiseksi

Microsoft 365 tunnistaa ja luokittelee sivuston sisällössä olevia arkaluonteisia tietoja hakuindekserin avulla. SharePoint Online- ja OneDrive for Business sivustojen sisältö indeksoidaan automaattisesti aina, kun se päivitetään. Jotta voit tunnistaa uuden mukautetun luottamuksellisten tietojen tyypin kaikessa olemassa olevassa sisällössä, sisältö on indeksoitava uudelleen.

Microsoft 365:ssä et voi manuaalisesti pyytää koko organisaation indeksointia, mutta voit pyytää sivustokokoelman, luettelon tai kirjaston indeksointia manuaalisesti. Lisätietoja on artikkelissa Sivuston, kirjaston tai luettelon indeksoinnin pyytäminen ja uudelleenindeksointi manuaalisesti.

Viite: Sääntöpaketin XML-rakenteen määritys

Voit kopioida tämän merkinnän, tallentaa sen XSD-tiedostona ja vahvistaa sääntöpaketin XML-tiedoston sen avulla.

<?xml version="1.0" encoding="utf-8"?>
<xs:schema xmlns:mce="http://schemas.microsoft.com/office/2011/mce"
           targetNamespace="http://schemas.microsoft.com/office/2011/mce"
           xmlns:xs="https://www.w3.org/2001/XMLSchema"
           elementFormDefault="qualified"
           attributeFormDefault="unqualified"
           id="RulePackageSchema">
  <!-- Use include if this schema has the same target namespace as the schema being referenced, otherwise use import -->
  <xs:element name="RulePackage" type="mce:RulePackageType"/>
  <xs:simpleType name="LangType">
    <xs:union memberTypes="xs:language">
      <xs:simpleType>
        <xs:restriction base="xs:string">
          <xs:enumeration value=""/>
        </xs:restriction>
      </xs:simpleType>
    </xs:union>
  </xs:simpleType>
  <xs:simpleType name="GuidType" final="#all">
    <xs:restriction base="xs:token">
      <xs:pattern value="[0-9a-fA-F]{8}\-([0-9a-fA-F]{4}\-){3}[0-9a-fA-F]{12}"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:complexType name="RulePackageType">
    <xs:sequence>
      <xs:element name="RulePack" type="mce:RulePackType"/>
      <xs:element name="Rules" type="mce:RulesType">
        <xs:key name="UniqueRuleId">
          <xs:selector xpath="mce:Entity|mce:Affinity|mce:Version/mce:Entity|mce:Version/mce:Affinity"/>
          <xs:field xpath="@id"/>
        </xs:key>
        <xs:key name="UniqueProcessorId">
          <xs:selector xpath="mce:Regex|mce:Keyword|mce:Fingerprint"></xs:selector>
          <xs:field xpath="@id"/>
        </xs:key>
        <xs:key name="UniqueResourceIdRef">
          <xs:selector xpath="mce:LocalizedStrings/mce:Resource"/>
          <xs:field xpath="@idRef"/>
        </xs:key>
        <xs:keyref name="ReferencedRuleMustExist" refer="mce:UniqueRuleId">
          <xs:selector xpath="mce:LocalizedStrings/mce:Resource"/>
          <xs:field xpath="@idRef"/>
        </xs:keyref>
        <xs:keyref name="RuleMustHaveResource" refer="mce:UniqueResourceIdRef">
          <xs:selector xpath="mce:Entity|mce:Affinity|mce:Version/mce:Entity|mce:Version/mce:Affinity"/>
          <xs:field xpath="@id"/>
        </xs:keyref>
      </xs:element>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="RulePackType">
    <xs:sequence>
      <xs:element name="Version" type="mce:VersionType"/>
      <xs:element name="Publisher" type="mce:PublisherType"/>
      <xs:element name="Details" type="mce:DetailsType">
        <xs:key name="UniqueLangCodeInLocalizedDetails">
          <xs:selector xpath="mce:LocalizedDetails"/>
          <xs:field xpath="@langcode"/>
        </xs:key>
        <xs:keyref name="DefaultLangCodeMustExist" refer="mce:UniqueLangCodeInLocalizedDetails">
          <xs:selector xpath="."/>
          <xs:field xpath="@defaultLangCode"/>
        </xs:keyref>
      </xs:element>
      <xs:element name="Encryption" type="mce:EncryptionType" minOccurs="0" maxOccurs="1"/>
    </xs:sequence>
    <xs:attribute name="id" type="mce:GuidType" use="required"/>
  </xs:complexType>
  <xs:complexType name="VersionType">
    <xs:attribute name="major" type="xs:unsignedShort" use="required"/>
    <xs:attribute name="minor" type="xs:unsignedShort" use="required"/>
    <xs:attribute name="build" type="xs:unsignedShort" use="required"/>
    <xs:attribute name="revision" type="xs:unsignedShort" use="required"/>
  </xs:complexType>
  <xs:complexType name="PublisherType">
    <xs:attribute name="id" type="mce:GuidType" use="required"/>
  </xs:complexType>
  <xs:complexType name="LocalizedDetailsType">
    <xs:sequence>
      <xs:element name="PublisherName" type="mce:NameType"/>
      <xs:element name="Name" type="mce:RulePackNameType"/>
      <xs:element name="Description" type="mce:OptionalNameType"/>
    </xs:sequence>
    <xs:attribute name="langcode" type="mce:LangType" use="required"/>
  </xs:complexType>
  <xs:complexType name="DetailsType">
    <xs:sequence>
      <xs:element name="LocalizedDetails" type="mce:LocalizedDetailsType" maxOccurs="unbounded"/>
    </xs:sequence>
    <xs:attribute name="defaultLangCode" type="mce:LangType" use="required"/>
  </xs:complexType>
  <xs:complexType name="EncryptionType">
    <xs:sequence>
      <xs:element name="Key" type="xs:normalizedString"/>
      <xs:element name="IV" type="xs:normalizedString"/>
    </xs:sequence>
  </xs:complexType>
  <xs:simpleType name="RulePackNameType">
    <xs:restriction base="xs:token">
      <xs:minLength value="1"/>
      <xs:maxLength value="64"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="NameType">
    <xs:restriction base="xs:normalizedString">
      <xs:minLength value="1"/>
      <xs:maxLength value="256"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="OptionalNameType">
    <xs:restriction base="xs:normalizedString">
      <xs:minLength value="0"/>
      <xs:maxLength value="256"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="RestrictedTermType">
    <xs:restriction base="xs:string">
      <xs:minLength value="1"/>
      <xs:maxLength value="100"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:complexType name="RulesType">
    <xs:sequence>
      <xs:choice maxOccurs="unbounded">
        <xs:element name="Entity" type="mce:EntityType"/>
        <xs:element name="Affinity" type="mce:AffinityType"/>
        <xs:element name="Version" type="mce:VersionedRuleType"/>
      </xs:choice>
      <xs:choice minOccurs="0" maxOccurs="unbounded">
        <xs:element name="Regex" type="mce:RegexType"/>
        <xs:element name="Keyword" type="mce:KeywordType"/>
        <xs:element name="Fingerprint" type="mce:FingerprintType"/>
        <xs:element name="ExtendedKeyword" type="mce:ExtendedKeywordType"/>
      </xs:choice>
      <xs:element name="LocalizedStrings" type="mce:LocalizedStringsType"/>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="EntityType">
    <xs:sequence>
      <xs:element name="Pattern" type="mce:PatternType" maxOccurs="unbounded"/>
      <xs:element name="Version" type="mce:VersionedPatternType" minOccurs="0" maxOccurs="unbounded" />
    </xs:sequence>
    <xs:attribute name="id" type="mce:GuidType" use="required"/>
    <xs:attribute name="patternsProximity" type="mce:ProximityType" use="required"/>
    <xs:attribute name="recommendedConfidence" type="mce:ProbabilityType"/>
    <xs:attribute name="workload" type="mce:WorkloadType"/>
  </xs:complexType>
  <xs:complexType name="PatternType">
    <xs:sequence>
      <xs:element name="IdMatch" type="mce:IdMatchType"/>
      <xs:choice minOccurs="0" maxOccurs="unbounded">
        <xs:element name="Match" type="mce:MatchType"/>
        <xs:element name="Any" type="mce:AnyType"/>
      </xs:choice>
    </xs:sequence>
    <xs:attribute name="confidenceLevel" type="mce:ProbabilityType" use="required"/>
  </xs:complexType>
  <xs:complexType name="AffinityType">
    <xs:sequence>
      <xs:element name="Evidence" type="mce:EvidenceType" maxOccurs="unbounded"/>
      <xs:element name="Version" type="mce:VersionedEvidenceType" minOccurs="0" maxOccurs="unbounded" />
    </xs:sequence>
    <xs:attribute name="id" type="mce:GuidType" use="required"/>
    <xs:attribute name="evidencesProximity" type="mce:ProximityType" use="required"/>
    <xs:attribute name="thresholdConfidenceLevel" type="mce:ProbabilityType" use="required"/>
    <xs:attribute name="workload" type="mce:WorkloadType"/>
  </xs:complexType>
  <xs:complexType name="EvidenceType">
    <xs:sequence>
      <xs:choice maxOccurs="unbounded">
        <xs:element name="Match" type="mce:MatchType"/>
        <xs:element name="Any" type="mce:AnyType"/>
      </xs:choice>
    </xs:sequence>
    <xs:attribute name="confidenceLevel" type="mce:ProbabilityType" use="required"/>
  </xs:complexType>
  <xs:complexType name="IdMatchType">
    <xs:attribute name="idRef" type="xs:string" use="required"/>
  </xs:complexType>
  <xs:complexType name="MatchType">
    <xs:attribute name="idRef" type="xs:string" use="required"/>
    <xs:attribute name="minCount" type="xs:positiveInteger" use="optional"/>
    <xs:attribute name="uniqueResults" type="xs:boolean" use="optional"/>
  </xs:complexType>
  <xs:complexType name="AnyType">
    <xs:sequence>
      <xs:choice maxOccurs="unbounded">
        <xs:element name="Match" type="mce:MatchType"/>
        <xs:element name="Any" type="mce:AnyType"/>
      </xs:choice>
    </xs:sequence>
    <xs:attribute name="minMatches" type="xs:nonNegativeInteger" default="1"/>
    <xs:attribute name="maxMatches" type="xs:nonNegativeInteger" use="optional"/>
  </xs:complexType>
  <xs:simpleType name="ProximityType">
    <xs:union>
      <xs:simpleType>
        <xs:restriction base='xs:string'>
          <xs:enumeration value="unlimited"/>
        </xs:restriction>
      </xs:simpleType>
      <xs:simpleType>
        <xs:restriction base="xs:positiveInteger">
          <xs:minInclusive value="1"/>
        </xs:restriction>
      </xs:simpleType>
    </xs:union>
  </xs:simpleType>
  <xs:simpleType name="ProbabilityType">
    <xs:restriction base="xs:integer">
      <xs:minInclusive value="1"/>
      <xs:maxInclusive value="100"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="WorkloadType">
    <xs:restriction base="xs:string">
      <xs:enumeration value="Exchange"/>
      <xs:enumeration value="Outlook"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="EngineVersionType">
    <xs:restriction base="xs:token">
      <xs:pattern value="^\d{2}\.01?\.\d{3,4}\.\d{1,3}$"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:complexType name="VersionedRuleType">
    <xs:choice maxOccurs="unbounded">
      <xs:element name="Entity" type="mce:EntityType"/>
      <xs:element name="Affinity" type="mce:AffinityType"/>
    </xs:choice>
    <xs:attribute name="minEngineVersion" type="mce:EngineVersionType" use="required" />
  </xs:complexType>
  <xs:complexType name="VersionedPatternType">
    <xs:sequence>
      <xs:element name="Pattern" type="mce:PatternType" maxOccurs="unbounded"/>
    </xs:sequence>
    <xs:attribute name="minEngineVersion" type="mce:EngineVersionType" use="required" />
  </xs:complexType>
  <xs:complexType name="VersionedEvidenceType">
    <xs:sequence>
      <xs:element name="Evidence" type="mce:EvidenceType" maxOccurs="unbounded"/>
    </xs:sequence>
    <xs:attribute name="minEngineVersion" type="mce:EngineVersionType" use="required" />
  </xs:complexType>
  <xs:simpleType name="FingerprintValueType">
    <xs:restriction base="xs:string">
      <xs:minLength value="2732"/>
      <xs:maxLength value="2732"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:complexType name="FingerprintType">
    <xs:simpleContent>
      <xs:extension base="mce:FingerprintValueType">
        <xs:attribute name="id" type="xs:token" use="required"/>
        <xs:attribute name="threshold" type="mce:ProbabilityType" use="required"/>
        <xs:attribute name="shingleCount" type="xs:positiveInteger" use="required"/>
        <xs:attribute name="description" type="xs:string" use="optional"/>
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>
  <xs:complexType name="RegexType">
    <xs:simpleContent>
      <xs:extension base="xs:string">
        <xs:attribute name="id" type="xs:token" use="required"/>
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>
  <xs:complexType name="KeywordType">
    <xs:sequence>
      <xs:element name="Group" type="mce:GroupType" maxOccurs="unbounded"/>
    </xs:sequence>
    <xs:attribute name="id" type="xs:token" use="required"/>
  </xs:complexType>
  <xs:complexType name="GroupType">
    <xs:sequence>
      <xs:choice>
        <xs:element name="Term" type="mce:TermType" maxOccurs="unbounded"/>
      </xs:choice>
    </xs:sequence>
    <xs:attribute name="matchStyle" default="word">
      <xs:simpleType>
        <xs:restriction base="xs:NMTOKEN">
          <xs:enumeration value="word"/>
          <xs:enumeration value="string"/>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
  </xs:complexType>
  <xs:complexType name="TermType">
    <xs:simpleContent>
      <xs:extension base="mce:RestrictedTermType">
        <xs:attribute name="caseSensitive" type="xs:boolean" default="false"/>
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>
  <xs:complexType name="ExtendedKeywordType">
    <xs:simpleContent>
      <xs:extension base="xs:string">
        <xs:attribute name="id" type="xs:token" use="required"/>
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>
  <xs:complexType name="LocalizedStringsType">
    <xs:sequence>
      <xs:element name="Resource" type="mce:ResourceType" maxOccurs="unbounded">
      <xs:key name="UniqueLangCodeUsedInNamePerResource">
        <xs:selector xpath="mce:Name"/>
        <xs:field xpath="@langcode"/>
      </xs:key>
      <xs:key name="UniqueLangCodeUsedInDescriptionPerResource">
        <xs:selector xpath="mce:Description"/>
        <xs:field xpath="@langcode"/>
      </xs:key>
    </xs:element>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="ResourceType">
    <xs:sequence>
      <xs:element name="Name" type="mce:ResourceNameType" maxOccurs="unbounded"/>
      <xs:element name="Description" type="mce:DescriptionType" minOccurs="0" maxOccurs="unbounded"/>
    </xs:sequence>
    <xs:attribute name="idRef" type="mce:GuidType" use="required"/>
  </xs:complexType>
  <xs:complexType name="ResourceNameType">
    <xs:simpleContent>
      <xs:extension base="xs:string">
        <xs:attribute name="default" type="xs:boolean" default="false"/>
        <xs:attribute name="langcode" type="mce:LangType" use="required"/>
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>
  <xs:complexType name="DescriptionType">
    <xs:simpleContent>
      <xs:extension base="xs:string">
        <xs:attribute name="default" type="xs:boolean" default="false"/>
        <xs:attribute name="langcode" type="mce:LangType" use="required"/>
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>
</xs:schema>

Lisätietoja