JEA SessieconfiguratiesJEA Session Configurations

Is van toepassing op: Windows PowerShell 5.0Applies to: Windows PowerShell 5.0

Een JEA-eindpunt is op een systeem door het maken en registreren van een configuratiebestand van de PowerShell-sessie op een specifieke manier geregistreerd.A JEA endpoint is registered on a system by creating and registering a PowerShell session configuration file in a specific way. Sessieconfiguraties bepalen die de JEA-eindpunt kunt gebruiken en welke rollen hebben ze toegang tot.Session configurations determine who can use the JEA endpoint, and which role(s) they will have access to. Ze bepalen ook algemene instellingen die van toepassing op gebruikers van een rol in de JEA-sessie.They also define global settings that apply to users of any role in the JEA session.

In dit onderwerp wordt beschreven hoe u een PowerShell-sessie-configuratiebestand maken en registreren van een JEA-eindpunt.This topic describes how to create a PowerShell session configuration file and register a JEA endpoint.

Een sessie-configuratiebestand makenCreate a session configuration file

Als u wilt een JEA-eindpunt registreren, moet u opgeven hoe dit eindpunt moet worden geconfigureerd.In order to register a JEA endpoint, you need to specify how that endpoint should be configured. Er zijn veel opties om te overwegen, de belangrijkste van welke wordt die toegang moeten hebben tot de JEA-eindpunt, welke functies worden ze worden toegewezen, welke identiteit JEA gebruikt op de achtergrond en wat is de naam van de JEA-eindpunt.There are many options to consider here, the most important of which being who should have access to the JEA endpoint, which roles will they be assigned, which identity will JEA use under the covers, and what will be the name of the JEA endpoint. Deze worden alle gedefinieerd in een configuratiebestand voor PowerShell-sessie die is een PowerShell-gegevensbestand eindigt met de extensie .pssc.These are all defined in a PowerShell session configuration file, which is a PowerShell data file ending with a .pssc extension.

Voer de volgende opdracht voor het maken van een minimale sessie-configuratiebestand voor de JEA-eindpunten.To create a skeleton session configuration file for JEA endpoints, run the following command.

New-PSSessionConfigurationFile -SessionType RestrictedRemoteServer -Path .\MyJEAEndpoint.pssc

Tip

Alleen de meest voorkomende configuratieopties zijn standaard opgenomen in de minimale bestand.Only the most common configuration options are included in the skeleton file by default. Gebruik de -Full overschakelen naar alle toepasselijke instellingen worden opgenomen in de gegenereerde voor.Use the -Full switch to include all applicable settings in the generated PSSC.

U kunt het configuratiebestand van de sessie openen in een teksteditor.You can open the session configuration file in any text editor. De -SessionType RestrictedRemoteServer veld geeft aan dat de sessieconfiguratie van de wordt gebruikt door JEA voor veilig beheer.The -SessionType RestrictedRemoteServer field indicates that the session configuration will be used by JEA for secure management. Sessies die is geconfigureerd op deze manier wordt uitgevoerd NoLanguage modus en hebt u alleen de volgende 8 standaardopdrachten (en aliassen) beschikbaar:Sessions configured this way will operate in NoLanguage mode and only have the following 8 default commands (and aliases) available:

  • Clear-Host (cls, wissen)Clear-Host (cls, clear)
  • Afsluiten PSSession (exsn, afsluiten)Exit-PSSession (exsn, exit)
  • Get-Command (gcm)Get-Command (gcm)
  • Get-FormatDataGet-FormatData
  • Help ontvangenGet-Help
  • Meting-Object (eenheid)Measure-Object (measure)
  • Uitgaande standaardOut-Default
  • Select-Object (selecteren)Select-Object (select)

Er zijn geen PowerShell-providers zijn beschikbaar, noch zijn dat externe programma's (uitvoerbare bestanden, scripts, enzovoort).No PowerShell providers are available, nor are any external programs (executables, scripts, etc.).

Er zijn diverse andere velden die u wilt configureren voor de JEA-sessie.There are several other fields you will want to configure for the JEA session. Ze worden behandeld in de volgende secties.They are covered in the following sections.

Kies de JEA-identiteitChoose the JEA identity

Achter de schermen moet JEA een identiteit (account) om te gebruiken bij het uitvoeren van de gebruiker van een verbonden-opdrachten.Behind the scenes, JEA needs an identity (account) to use when running a connected user's commands. U bepalen welke identiteit JEA wordt gebruikt in het configuratiebestand van de sessie.You decide which identity JEA will use in the session configuration file.

Lokale virtueel AccountLocal Virtual Account

Als de rollen die worden ondersteund door dit JEA-eindpunt worden gebruikt voor het beheren van de lokale computer en een lokale administrator-account voldoende is om de opdrachten succes is uitgevoerd, moet u de JEA voor het gebruik van een lokale virtuele-account configureren.If the roles supported by this JEA endpoint are all used to manage the local machine, and a local administrator account is sufficient to run the commands succesfully, you should configure JEA to use a local virtual account. Virtuele accounts zijn tijdelijke accounts die uniek is voor een specifieke gebruiker en alleen de laatste voor de duur van de PowerShell-sessie.Virtual accounts are temporary accounts that are unique to a specific user and only last for the duration of their PowerShell session. Op een lidserver of werkstation virtuele accounts deel uitmaken van de lokale computer beheerders groep en toegang hebben tot de meeste systeembronnen.On a member server or workstation, virtual accounts belong to the local computer's Administrators group, and have access to most system resources. Op een Active Directory-domeincontroller virtuele accounts deel uitmaken van het domein Domeinadministrators groep.On an Active Directory Domain Controller, virtual accounts belong to the domain's Domain Admins group.

# Setting the session to use a virtual account
RunAsVirtualAccount = $true

Als de rollen die worden ondersteund door de sessieconfiguratie geen dergelijke uitgebreide bevoegdheden vereist, kunt u eventueel de beveiligingsgroepen die de virtuele-account behoort.If the roles supported by the session configuration do not require such broad privileges, you can optionally specify the security groups to which the virtual account will belong. Op een lidserver of werkstation zijn de opgegeven beveiligingsgroepen lokale groepen, niet voor groepen van een domein.On a member server or workstation, the specified security groups must be local groups, not groups from a domain.

Wanneer een of meer beveiligingsgroepen is opgegeven, wordt niet langer de virtuele account aan de beheerdersgroep lokaal of domein behoren.When one or more security groups is specified, the virtual account will no longer belong to the local or domain administrators group.

# Setting the session to use a virtual account that only belongs to the NetworkOperator and NetworkAuditor local groups
RunAsVirtualAccount = $true
RunAsVirtualAccountGroups = 'NetworkOperator', 'NetworkAuditor'

Door groep beheerd serviceaccountGroup Managed Service Account

Voor scenario's vereisen dat de JEA-gebruiker voor toegang tot netwerkbronnen, zoals andere computers of webservices, is een groep beheerd serviceaccount (gMSA) een geschiktere identiteit te gebruiken.For scenarios requiring the JEA user to access network resources such as other machines or web services, a group managed service account (gMSA) is a more appropriate identity to use. gMSA-accounts bieden u een domein-id die kan worden gebruikt voor verificatie op basis van resources op elke computer in het domein.gMSA accounts give you a domain identity which can be used to authenticate against resources on any machine within the domain. De rechten van het gMSA-account biedt u wordt bepaald door de resources die u wilt openen.The rights the gMSA account gives you is determined by the resources you are accessing. U wordt automatisch geen beheerdersrechten op alle machines of services, tenzij de machine/service-beheerder heeft expliciet verleend voor het gMSA-account beheerdersbevoegdheden.You will not automatically have admin rights on any machines or services unless the machine/service administrator has explicitly granted the gMSA account admin privileges.

# Configure JEA sessions to use the gMSA account in the local computer's domain with the sAMAccountName of 'MyJEAgMSA'
GroupManagedServiceAccount = 'Domain\MyJEAgMSA'

gMSA-accounts moeten alleen worden gebruikt wanneer toegang tot netwerkbronnen zijn vereist voor een aantal oorzaken hebben:gMSA accounts should only be used when access to network resources are required for a few reasons:

  • Is het moeilijker om te traceren terug acties aan een gebruiker bij het gebruik van een gMSA-account, omdat elke gebruiker dezelfde run as-id deelt.It is harder to trace back actions to a user when using a gMSA account since every user shares the same run-as identity. U moet moet u de PowerShell-sessie transcripties en logboeken correleren van gebruikers met hun acties.You will need to consult PowerShell session transcripts and logs to correlate users with their actions.

  • Het gMSA-account hebben mogelijk toegang tot veel netwerkbronnen die de gebruiker die de verbinding heeft geen toegang nodig tot.The gMSA account may have access to many network resources which the connecting user does not need access to. Probeer altijd aan de effectieve machtigingen beperken in een JEA-sessie te volgen het principe van minimale bevoegdheden.Always try to limit effective permissions in a JEA session to follow the principle of least privilege.

Notitie

Groep beheerde serviceaccounts zijn alleen beschikbaar in Windows PowerShell 5.1 of hoger en op domein systemen.Group managed service accounts are only available in Windows PowerShell 5.1 or newer and on domain-joined machines.

Meer informatie over run as-gebruikersMore information about run as users

Als u meer informatie over uitvoeren als-id's en hoe ze factor in de beveiliging van een JEA-sessie te vinden in de beveiligingsoverwegingen artikel.Additional information about run as identities and how they factor into the security of a JEA session can be found in the security considerations article.

Transcripten van sessieSession transcripts

Het is raadzaam dat u een JEA-sessie-configuratiebestand op automatisch vastleggen Transcripten van gebruikerssessies configureert.It is recommended that you configure a JEA session configuration file to automatically record transcripts of users' sessions. PowerShell-sessie Transcripten bevatten informatie over de gebruiker verbinding maakt, het uitvoeren als-identiteit is toegewezen, en de opdrachten worden uitgevoerd door de gebruiker.PowerShell session transcripts contain information about the connecting user, the run as identity assigned to them, and the commands run by the user. Ze kunnen nuttig zijn voor een beoordelingsteam die nodig heeft om te begrijpen wie een specifieke wijziging in een systeem hebt uitgevoerd.They can be useful to an auditing team who needs to understand who performed a specific change to a system.

Voor het configureren van automatische transcriptie in het configuratiebestand van de sessie, Geef een pad naar een map waar de Transcripten moeten worden opgeslagen.To configure automatic transcription in the session configuration file, provide a path to a folder where the transcripts should be stored.

TranscriptDirectory = 'C:\ProgramData\JEAConfiguration\Transcripts'

De opgegeven map moet worden geconfigureerd om te voorkomen dat gebruikers van wijzigt of verwijdert alle gegevens in het.The specified folder should be configured to prevent users from modifying or deleting any data in it. Transcripten worden geschreven naar de map met het lokale systeemaccount, waarvoor lezen en schrijven toegang tot de map is vereist.Transcripts are written to the folder by the Local System account, which requires read and write access to the directory. Standaardgebruikers kunnen geen toegang moeten hebben tot de map en een beperkte set van administrators voor rapportbeveiliging moet toegang hebben tot de Transcripten controleren.Standard users should have no access to the folder, and a limited set of security administrators should have access to audit the transcripts.

Schijf van de gebruikerUser drive

Als uw verbindende gebruikers moeten het kopiëren van bestanden naar/van de JEA-eindpunt om uit te voeren van een opdracht, kunt u de schijf van de gebruiker in het configuratiebestand van de sessie inschakelen.If your connecting users will need to copy files to/from the JEA endpoint in order to run a command, you can enable the user drive in the session configuration file. De schijf van de gebruiker is een PSDrive die is toegewezen aan een unieke map voor elke gebruiker die verbinding maakt.The user drive is a PSDrive that is mapped to a unique folder for each connecting user. Deze map fungeert als een ruimte voor deze bestanden te kopiëren naar/van het systeem zonder zodat ze toegang hebben tot het volledige systeem of de provider bestandssysteem om vrij te geven.This folder serves as a space for them to copy files to/from the system, without giving them access to the full file system or exposing the FileSystem provider. De inhoud van de gebruiker stations zijn persistent in verschillende sessies voor situaties waar de verbinding met het netwerk kan worden onderbroken.The user drive contents are persistent across sessions to accommodate situations where network connectivity may be interrupted.

MountUserDrive = $true

Standaard kunt de schijf van de gebruiker u voor het opslaan van een maximum van 50MB aan gegevens per gebruiker.By default, the user drive allows you to store a maximum of 50MB of data per user. U kunt de hoeveelheid gegevens die een gebruiker kan worden gebruikt met beperken de UserDriveMaximumSize veld.You can limit the amount of data a user can consume with the UserDriveMaximumSize field.

# Enables the user drive with a per-user limit of 500MB (524288000 bytes)
MountUserDrive = $true
UserDriveMaximumSize = 524288000

Als u niet dat gegevens in de schijf van de gebruiker permanent zijn wilt, kunt u een geplande taak configureren op het systeem voor het automatisch opschonen van de map elke nacht.If you do not want data in the user drive to be persistent, you can configure a scheduled task on the system to automatically clean up the folder every night.

Notitie

De schijf van de gebruiker is alleen beschikbaar in Windows PowerShell 5.1 of hoger.The user drive is only available in Windows PowerShell 5.1 or newer.

RoldefinitiesRole definitions

Roldefinities in een sessie-configuratiebestand definieert de toewijzing van gebruikers naar rollen.Role definitions in a session configuration file define the mapping of users to roles. Elke gebruiker of groep die zijn opgenomen in dit veld wordt automatisch een machtiging verleend de JEA-eindpunt wanneer deze is geregistreerd.Every user or group included in this field will automatically be granted permission to the JEA endpoint when it is registered. Elke gebruiker of groep kan worden opgenomen als een sleutel in de hash-tabel slechts één keer, maar meerdere rollen kan worden toegewezen.Each user or group can be included as a key in the hashtable only once, but can be assigned multiple roles. De naam van de mogelijkheid van de rol moet de naam van het bestand van een rol mogelijkheid, zonder de extensie .psrc.The name of the role capability should be the name of the role capability file, without the .psrc extension.

RoleDefinitions = @{
    'CONTOSO\JEA_DNS_ADMINS'    = @{ RoleCapabilities = 'DnsAdmin', 'DnsOperator', 'DnsAuditor' }
    'CONTOSO\JEA_DNS_OPERATORS' = @{ RoleCapabilities = 'DnsOperator', 'DnsAuditor' }
    'CONTOSO\JEA_DNS_AUDITORS'  = @{ RoleCapabilities = 'DnsAuditor' }
}

Als een gebruiker tot meer dan één groep in het roldefinitie van de behoort, krijgt zij toegang tot de functies van elk.If a user belongs to more than one group in the role definition, they will get access to the roles of each. Als twee rollen toegang tot de dezelfde cmdlets verleent, worden de meest strikte parameterset wordt toegekend aan de gebruiker.If two roles grant access to the same cmdlets, the most permissive parameter set will be granted to the user.

Bij het opgeven van lokale gebruikers en groepen in het veld van de definities rol, zorg ervoor dat u de naam van de computer (niet localhost of .) voor de backslash opgeeft.When specifying local users or groups in the role definitions field, be sure to use the computer name (not localhost or .) before the backslash. U kunt de naam van de computer controleren door het inspecteren van de $env:computername variabele.You can check the computer name by inspecting the $env:computername variable.

RoleDefinitions = @{
    'MyComputerName\MyLocalGroup' = @{ RoleCapabilities = 'DnsAuditor' }
}

Zoekvolgorde van rol mogelijkheidRole capability search order

Zoals u in het bovenstaande voorbeeld, rolmogelijkheden zijn waarnaar wordt verwezen door de platte domeinnaam (bestandsnaam zonder extensie) van het bestand van de mogelijkheid rol.As shown in the example above, role capabilities are referenced by the flat name (filename without the extension) of the role capability file. Als meerdere functie-mogelijkheden beschikbaar op het systeem met dezelfde naam platte zijn, kunnen PowerShell de impliciete zoekvolgorde wordt gebruikt om de effectieve rol mogelijkheid-bestand te selecteren.If multiple role capabilities are available on the system with the same flat name, PowerShell will use its implicit search order to select the effective role capability file. Het wordt niet toegang geven tot alle rol mogelijkheid bestanden met dezelfde naam.It will not give access to all role capability files with the same name.

JEA maakt gebruik van de $env:PSModulePath omgevingsvariabele om te bepalen welke paden om te scannen op rol mogelijkheid bestanden.JEA uses the $env:PSModulePath environment variable to determine which paths to scan for role capability files. Binnen elk van deze paden zoekt JEA naar geldige PowerShell-modules die een submap 'RoleCapabilities' bevatten.Within each of those paths, JEA will look for valid PowerShell modules that contain a "RoleCapabilities" subfolder. Net als bij importeren van modules, verkiest JEA rolmogelijkheden die worden geleverd met Windows op de mogelijkheden van de aangepaste rol met dezelfde naam.As with importing modules, JEA prefers role capabilities that are shipped with Windows to custom role capabilities with the same name. Voor alle andere naamconflicten wordt prioriteit bepaald door de volgorde waarin Windows de bestanden in de map inventariseert (niet noodzakelijkerwijs worden alfabetisch).For all other naming conflicts, precedence is determined by the order in which Windows enumerates the files in the directory (not guaranteed to be alphabetically). Het eerste bestand van de rol-mogelijkheid gevonden die overeenkomt met de gewenste naam wordt gebruikt voor de gebruiker die verbinding maakt.The first role capability file found that matches the desired name will be used for the connecting user.

Aangezien de zoekvolgorde van rol mogelijkheid is niet deterministisch wanneer twee of meer rolmogelijkheden dezelfde naam delen, is het sterk aanbevolen Zorg ervoor dat rolmogelijkheden unieke namen hebben op uw computer.Since the role capability search order is not deterministic when two or more role capabilities share the same name, it is strongly recommended that you ensure role capabilities have unique names on your machine.

Regels voor voorwaardelijke toegangConditional access rules

Alle gebruikers en groepen die zijn opgenomen in het veld RoleDefinitions worden automatisch verleend voor toegang tot de JEA-eindpunten.All users and groups included in the RoleDefinitions field are automatically granted access to JEA endpoints. Regels voor voorwaardelijke toegang kunnen u deze toegang verfijnen en vereisen dat gebruikers deel uitmaken van aanvullende beveiligingsgroepen die niet van invloed op de rollen die zijn toegewezen.Conditional access rules allow you to refine this access and require users to belong to additional security groups which do not impact the roles which they are assigned. Dit is handig als u integreren een 'just in time wilt' in beschermde modus toegang krijgen tot de oplossing voor het beheer, smartcardverificatie of andere oplossing voor meervoudige verificatie met JEA.This can be useful if you want to integrate a "just in time" privileged access management solution, smartcard authentication, or other multifactor authentication solution with JEA.

Regels voor voorwaardelijke toegang worden gedefinieerd in het veld RequiredGroups in een sessie-configuratiebestand.Conditional access rules are defined in the RequiredGroups field in a session configuration file. Daar kunt u een hash-tabel (eventueel geneste) die gebruikmaakt van bieden 'En' en 'Of' sleutels te maken van uw regels.There, you can provide a hashtable (optionally nested) that uses 'And' and 'Or' keys to construct your rules. Hier volgen enkele voorbeelden van hoe u dit veld:Here are some examples of how to leverage this field:

# Example 1: Connecting users must belong to a security group called "elevated-jea"
RequiredGroups = @{ And = 'elevated-jea' }

# Example 2: Connecting users must have signed on with 2 factor authentication or a smart card
# The 2 factor authentication group name is "2FA-logon" and the smart card group name is "smartcard-logon"
RequiredGroups = @{ Or = '2FA-logon', 'smartcard-logon' }

# Example 3: Connecting users must elevate into "elevated-jea" with their JIT system and have logged on with 2FA or a smart card
RequiredGroups = @{ And = 'elevated-jea', @{ Or = '2FA-logon', 'smartcard-logon' }}

Notitie

Regels voor voorwaardelijke toegang zijn alleen beschikbaar in Windows PowerShell 5.1 of hoger.Conditional access rules are only available in Windows PowerShell 5.1 or newer.

Andere eigenschappenOther properties

Sessie-configuratiebestanden kunnen ook doen alles wat die een bestand van de mogelijkheid rol doen kunt, maar wel zonder de mogelijkheid om te verbinden gebruikerstoegang geven tot andere opdrachten.Session configuration files can also do everything a role capability file can do, just without the ability to give connecting users access to different commands. Als u wilt dat alle gebruikers toegang tot bepaalde cmdlets, functies of -providers, kunt u doen rechts in het configuratiebestand van de sessie.If you want to allow all users access to specific cmdlets, functions, or providers, you can do so right in the session configuration file. Voor een volledige lijst van ondersteunde eigenschappen in het configuratiebestand van de sessie, voert u Get-Help New-PSSessionConfigurationFile -Full.For a full list of supported properties in the session configuration file, run Get-Help New-PSSessionConfigurationFile -Full.

Testen van een sessie-configuratiebestandTesting a session configuration file

U kunt testen met een sessie configureren met behulp van de Test PSSessionConfigurationFile cmdlet.You can test a session configuration using the Test-PSSessionConfigurationFile cmdlet. Het is raadzaam dat u het configuratiebestand van de sessie testen als u hebt de voor-bestand handmatig met behulp van een teksteditor om te controleren of dat de syntaxis juist is bewerkt.It is strongly recommended that you test your session configuration file if you have edited the pssc file manually using a text editor to ensure the syntax is correct. Als een sessie-configuratiebestand deze test niet slaagt, is het niet mogelijk om te worden geregistreerd op het systeem.If a session configuration file does not pass this test, it will not be able to be successfully registered on the system.

Voorbeeldconfiguratiebestand sessieSample session configuration file

Hieronder volgt een compleet voorbeeld waarin wordt getoond hoe maakt en valideert de sessieconfiguratie van een voor JEA.Below is a complete example showing how to create and validate a session configuration for JEA. Houd er rekening mee dat de definities van gebruikersrollen worden gemaakt en opgeslagen in de $roles variabele voor uw gemak en leesbaarheid.Note that the role definitions are created and stored in the $roles variable for convenience and readability. Het is niet vereist om dit te doen.It is not a requirement to do so.

$roles = @{
    'CONTOSO\JEA_DNS_ADMINS'    = @{ RoleCapabilities = 'DnsAdmin', 'DnsOperator', 'DnsAuditor' }
    'CONTOSO\JEA_DNS_OPERATORS' = @{ RoleCapabilities = 'DnsOperator', 'DnsAuditor' }
    'CONTOSO\JEA_DNS_AUDITORS'  = @{ RoleCapabilities = 'DnsAuditor' }
}

New-PSSessionConfigurationFile -SessionType RestrictedRemoteServer -Path .\JEAConfig.pssc -RunAsVirtualAccount -TranscriptDirectory 'C:\ProgramData\JEAConfiguration\Transcripts' -RoleDefinitions $roles -RequiredGroups @{ Or = '2FA-logon', 'smartcard-logon' }
Test-PSSessionConfigurationFile -Path .\JEAConfig.pssc # should yield True

Bijwerken van de sessie-configuratiebestandenUpdating session configuration files

Als u wijzigen eigenschappen van een JEA-sessieconfiguratie wilt, met inbegrip van de toewijzing van gebruikers aan rollen, moet u registratie en opnieuw registreren de JEA-sessieconfiguratie.If you need to change properties of a JEA session configuration, including the mapping of users to roles, you must unregister and re-register the JEA session configuration. Als u de JEA-sessieconfiguratie opnieuw registreert, een bijgewerkte PowerShell-sessie configuratiebestand gebruiken met de gewenste wijzigingen.When you re-register the JEA session configuration, use an updated PowerShell session configuration file that includes your desired changes.

Volgende stappenNext steps