Voorwaardelijke toegang: Beveiliging van tokens (preview)

Tokenbeveiliging (ook wel tokenbinding genoemd in de branche) probeert aanvallen met behulp van tokendiefstal te verminderen door ervoor te zorgen dat een token alleen kan worden gebruikt vanaf het beoogde apparaat. Wanneer een aanvaller een token kan stelen door een token te kapen of opnieuw af te spelen, kunnen ze hun slachtoffer imiteren totdat het token verloopt of wordt ingetrokken. Tokendiefstal wordt beschouwd als een relatief zeldzame gebeurtenis, maar de schade van het kan aanzienlijk zijn.

Met tokenbeveiliging wordt een cryptografisch veilige koppeling gemaakt tussen het token en het apparaat (clientgeheim) waarnaar het wordt uitgegeven. Zonder het clientgeheim is het afhankelijke token nutteloos. Wanneer een gebruiker een Windows 10- of hoger apparaat in Microsoft Entra ID registreert, is de primaire identiteit gebonden aan het apparaat. Wat dit betekent: een beleid kan ervoor zorgen dat alleen afhankelijke aanmeldingssessietokens (of vernieuwingstokens), ook wel primaire vernieuwingstokens (PRT's genoemd) worden gebruikt door toepassingen bij het aanvragen van toegang tot een resource.

Belangrijk

Tokenbeveiliging is momenteel beschikbaar als openbare preview. Zie Universele licentievoorwaarden voor onlineservices voor meer informatie over previews. Met deze preview kunt u een beleid voor voorwaardelijke toegang maken om tokenbeveiliging te vereisen voor aanmeldingstokens (vernieuwingstokens) voor specifieke services. We ondersteunen tokenbeveiliging voor aanmeldingstokens in voorwaardelijke toegang voor bureaubladtoepassingen die toegang hebben tot Exchange Online en SharePoint Online op Windows-apparaten.

Belangrijk

De volgende wijzigingen zijn aangebracht in Token Protection sinds de eerste openbare preview-versie:

  • Uitvoer van aanmeldingslogboeken: de waarde van de tekenreeks die wordt gebruikt in 'enforcedSessionControls' en 'sessionControlsNotSatisfied' is gewijzigd van 'Binding' in 'SignInTokenProtection' eind juni 2023. Query's voor aanmeldingslogboekgegevens moeten worden bijgewerkt om deze wijziging weer te geven.

Notitie

We kunnen aanmeldingstokens uitwisselen en tokens vernieuwen in deze inhoud. Deze preview biedt momenteel geen ondersteuning voor toegangstokens of webcookies.

Screenshot showing a Conditional Access policy requiring token protection as the session control

Vereisten

Deze preview ondersteunt de volgende configuraties voor toegang tot resources met beleid voor voorwaardelijke toegang tot tokenbeveiliging toegepast:

  • Windows 10- of nieuwere apparaten die zijn toegevoegd aan Microsoft Entra, microsoft Entra hybride gekoppeld of Microsoft Entra geregistreerd.
  • OneDrive-synchronisatie clientversie 22.217 of hoger
  • Systeemeigen Teams-clientversie 1.6.00.1331 of hoger
  • Power BI Desktop versie 2.117.841.0 (mei 2023) of hoger
  • Visual Studio 2022 of hoger wanneer u de aanmeldingsoptie 'Windows Authentication Broker' gebruikt
  • Office Perpetual-clients worden niet ondersteund

Bekende beperkingen

  • Externe gebruikers (Microsoft Entra B2B) worden niet ondersteund en mogen niet worden opgenomen in uw beleid voor voorwaardelijke toegang.
  • De volgende toepassingen bieden geen ondersteuning voor aanmelden met beveiligde tokenstromen en gebruikers worden geblokkeerd bij toegang tot Exchange en SharePoint:
    • PowerShell-modules die toegang hebben tot Exchange-, SharePoint- of Microsoft Graph-bereiken die worden geleverd door Exchange of SharePoint
    • PowerQuery-extensie voor Excel
    • Extensies voor Visual Studio Code die toegang hebben tot Exchange of SharePoint
    • De nieuwe Preview-client van Teams 2.1 wordt geblokkeerd na afmelden vanwege een fout. Deze fout moet worden opgelost in een toekomstige service-update.
  • De volgende Windows-clientapparaten worden niet ondersteund:
    • Windows Server
    • Surface Hub
    • MTR-systemen (Windows-gebaseerde Microsoft Teams-ruimten)

Licentievereisten

Voor het gebruik van deze functie zijn Microsoft Entra ID P2-licenties vereist. Zie Algemeen beschikbare functies van Microsoft Entra ID vergelijken als u een licentie zoekt die bij uw vereisten past.

Notitie

Afdwingen van tokenbeveiliging maakt deel uit van Microsoft Entra ID Protection en maakt deel uit van de P2-licentie op algemene beschikbaarheid.

Implementatie

Voor gebruikers moet de implementatie van beleid voor voorwaardelijke toegang om tokenbeveiliging af te dwingen onzichtbaar zijn bij het gebruik van compatibele clientplatforms op geregistreerde apparaten en compatibele toepassingen.

We raden u ten zeerste aan om de kans op gebruikersonderbreking vanwege incompatibiliteit van apps of apparaten te minimaliseren:

  • Begin met een testgroep van gebruikers en vouw in de loop van de tijd uit.
  • Maak een beleid voor voorwaardelijke toegang in de modus Alleen-rapporten voordat u overgaat op het afdwingen van tokenbeveiliging.
  • Leg zowel interactieve als niet-interactieve aanmeldingslogboeken vast.
  • Analyseer deze logboeken lang genoeg om normaal gebruik van toepassingen te dekken.
  • Bekende goede gebruikers toevoegen aan een afdwingingsbeleid.

Dit proces helpt bij het beoordelen van de compatibiliteit van de client en app van uw gebruikers voor het afdwingen van tokenbeveiliging.

Beleid voor voorwaardelijke toegang maken

Gebruikers die gespecialiseerde rollen uitvoeren, zoals die worden beschreven in beveiligingsniveaus voor bevoegde toegang, zijn mogelijke doelen voor deze functionaliteit. We raden u aan om te beginnen met een kleine subset.

Screenshot of a configured Conditional Access policy and its components.

De stappen die volgen bij het maken van een beleid voor voorwaardelijke toegang om tokenbeveiliging voor Exchange Online en SharePoint Online op Windows-apparaten te vereisen.

  1. Meld u aan bij het Microsoft Entra-beheercentrum als ten minste een Beheer istrator voor voorwaardelijke toegang.
  2. Blader naar voorwaardelijke toegang voor beveiliging>.
  3. Selecteer Nieuw beleid.
  4. Geef uw beleid een naam. We raden organisaties aan een zinvolle standaard te maken voor de namen van hun beleidsregels.
  5. Onder Toewijzingen selecteert u Gebruikers- of workload-identiteiten.
    1. Selecteer onder Opnemen de gebruikers of groepen die dit beleid testen.
    2. Selecteer bij Uitsluiten de optie Gebruikers en groepen en selecteer de accounts voor toegang bij noodgevallen van uw organisatie.
  6. Onder Doelresources>omvatten Cloud-apps>>Apps selecteren
    1. Selecteer onder Selecteren de volgende toepassingen die door de preview worden ondersteund:

      1. Office 365 Exchange Online
      2. Office 365 SharePoint Online

      Waarschuwing

      Uw beleid voor voorwaardelijke toegang mag alleen worden geconfigureerd voor deze toepassingen. Als u de Office 365-toepassingsgroep selecteert, kan dit leiden tot onbedoelde fouten. Dit is een uitzondering op de algemene regel dat de Office 365-toepassingsgroep moet worden geselecteerd in een beleid voor voorwaardelijke toegang.

    2. Kies Selecteren.

  7. Onder voorwaarden:
    1. Onder Apparaatplatforms:
      1. Stel Configureren in op Ja.
      2. Neem>apparaatplatforms>selecteren op windows.
      3. Selecteer Gereed.
    2. Onder Client-apps:
      1. Stel Configureren in op Ja.

        Waarschuwing

        Als u de voorwaarde Client-apps niet configureert of browser niet selecteert, kan dit ertoe leiden dat toepassingen die gebruikmaken van MSAL.js, zoals Teams Web, worden geblokkeerd.

      2. Selecteer onder Clients met moderne verificatie alleen mobiele apps en desktopclients. Laat andere items uitgeschakeld.
      3. Selecteer Gereed.
  8. Selecteer onder Sessie voor toegangsbeheer> tokenbeveiliging vereisen voor aanmeldingssessies en selecteer Selecteren.
  9. Controleer uw instellingen en stel Beleid inschakelen in op Alleen rapporteren.
  10. Selecteer Maken om het beleid te kunnen inschakelen.

Nadat beheerders de instellingen hebben bevestigd met de modus Alleen-rapport, kunnen ze de wisselknop Beleid inschakelen van alleen rapport naar Aan verplaatsen.

Logboeken vastleggen en analyseren

Bewaking van het afdwingen van voorwaardelijke toegang van tokenbeveiliging vóór en na afdwinging.

Aanmeldingslogboeken

Gebruik het aanmeldingslogboek van Microsoft Entra om het resultaat van een afdwingingsbeleid voor tokenbeveiliging te controleren in de rapportmodus of in de ingeschakelde modus.

  1. Meld u aan bij het Microsoft Entra-beheercentrum als ten minste een Beheer istrator voor voorwaardelijke toegang.
  2. Blader naar aanmeldingslogboeken voor identiteitsbewaking>en -status>.
  3. Selecteer een specifieke aanvraag om te bepalen of het beleid al dan niet wordt toegepast.
  4. Ga naar het deelvenster Voorwaardelijke toegang of het deelvenster Alleen rapport, afhankelijk van de status en selecteer de naam van uw beleid waarvoor tokenbeveiliging is vereist.
  5. Controleer onder Sessiebesturingselementen of aan de beleidsvereisten is voldaan of niet.

Screenshot showing an example of a policy not being satisfied.

Log Analytics

U kunt Log Analytics ook gebruiken om query's uit te voeren op de aanmeldingslogboeken (interactief en niet-interactief) voor geblokkeerde aanvragen vanwege een mislukte afdwinging van tokenbeveiliging.

Hier volgt een voorbeeld van een Log Analytics-query voor het doorzoeken van de niet-interactieve aanmeldingslogboeken voor de afgelopen zeven dagen, waarbij geblokkeerde versus toegestane aanvragen door de toepassing worden gemarkeerd. Deze query's zijn alleen voorbeelden en kunnen worden gewijzigd.

Notitie

Uitvoer van aanmeldingslogboeken: de waarde van de tekenreeks die wordt gebruikt in 'enforcedSessionControls' en 'sessionControlsNotSatisfied' is gewijzigd van 'Binding' in 'SignInTokenProtection' eind juni 2023. Query's voor aanmeldingslogboekgegevens moeten worden bijgewerkt om deze wijziging weer te geven. In de voorbeelden worden beide waarden behandeld om historische gegevens op te nemen.

//Per Apps query 
// Select the log you want to query (SigninLogs or AADNonInteractiveUserSignInLogs ) 
//SigninLogs 
AADNonInteractiveUserSignInLogs 
// Adjust the time range below 
| where TimeGenerated > ago(7d) 
| project Id,ConditionalAccessPolicies, Status,UserPrincipalName, AppDisplayName, ResourceDisplayName 
| where ConditionalAccessPolicies != "[]" 
| where ResourceDisplayName == "Office 365 Exchange Online" or ResourceDisplayName =="Office 365 SharePoint Online" 
//Add userPrinicpalName if you want to filter  
// | where UserPrincipalName =="<user_principal_Name>" 
| mv-expand todynamic(ConditionalAccessPolicies) 
| where ConditionalAccessPolicies ["enforcedSessionControls"] contains '["Binding"]' or ConditionalAccessPolicies ["enforcedSessionControls"] contains '["SignInTokenProtection"]' 
| where ConditionalAccessPolicies.result !="reportOnlyNotApplied" and ConditionalAccessPolicies.result !="notApplied" 
| extend SessionNotSatisfyResult = ConditionalAccessPolicies["sessionControlsNotSatisfied"] 
| extend Result = case (SessionNotSatisfyResult contains 'SignInTokenProtection' or SessionNotSatisfyResult contains 'SignInTokenProtection', 'Block','Allow')
| summarize by Id,UserPrincipalName, AppDisplayName, Result 
| summarize Requests = count(), Users = dcount(UserPrincipalName), Block = countif(Result == "Block"), Allow = countif(Result == "Allow"), BlockedUsers = dcountif(UserPrincipalName, Result == "Block") by AppDisplayName 
| extend PctAllowed = round(100.0 * Allow/(Allow+Block), 2) 
| sort by Requests desc 

Het resultaat van de vorige query moet er ongeveer uitzien als in de volgende schermopname:

Screenshot showing example results of a Log Analytics query looking for token protection policies

In het volgende queryvoorbeeld wordt gekeken naar het niet-interactieve aanmeldingslogboek voor de afgelopen zeven dagen, waarbij geblokkeerde en toegestane aanvragen door de gebruiker worden gemarkeerd.

//Per users query 
// Select the log you want to query (SigninLogs or AADNonInteractiveUserSignInLogs ) 
//SigninLogs 
AADNonInteractiveUserSignInLogs 
// Adjust the time range below 
| where TimeGenerated > ago(7d) 
| project Id,ConditionalAccessPolicies, UserPrincipalName, AppDisplayName, ResourceDisplayName 
| where ConditionalAccessPolicies != "[]" 
| where ResourceDisplayName == "Office 365 Exchange Online" or ResourceDisplayName =="Office 365 SharePoint Online" 
//Add userPrincipalName if you want to filter  
// | where UserPrincipalName =="<user_principal_Name>" 
| mv-expand todynamic(ConditionalAccessPolicies) 
| where ConditionalAccessPolicies ["enforcedSessionControls"] contains '["Binding"]' or ConditionalAccessPolicies ["enforcedSessionControls"] contains '["SignInTokenProtection"]'
| where ConditionalAccessPolicies.result !="reportOnlyNotApplied" and ConditionalAccessPolicies.result !="notApplied" 
| extend SessionNotSatisfyResult = ConditionalAccessPolicies.sessionControlsNotSatisfied 
| extend Result = case (SessionNotSatisfyResult contains 'SignInTokenProtection' or SessionNotSatisfyResult contains 'SignInTokenProtection', 'Block','Allow')
| summarize by Id, UserPrincipalName, AppDisplayName, ResourceDisplayName,Result  
| summarize Requests = count(),Block = countif(Result == "Block"), Allow = countif(Result == "Allow") by UserPrincipalName, AppDisplayName,ResourceDisplayName 
| extend PctAllowed = round(100.0 * Allow/(Allow+Block), 2) 
| sort by UserPrincipalName asc   

Volgende stappen