JEA SessieconfiguratiesJEA Session Configurations

Van toepassing op: Windows PowerShell 5.0Applies to: Windows PowerShell 5.0

Een eindpunt JEA is geregistreerd op een systeem door het maken en registreren van een configuratiebestand van de PowerShell-sessie in een bepaalde manier.A JEA endpoint is registered on a system by creating and registering a PowerShell session configuration file in a specific way. Bepalen van sessieconfiguraties die het eindpunt JEA kunt gebruiken, en welke rollen hebben 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 sessie JEA.They also define global settings that apply to users of any role in the JEA session.

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

Een configuratiebestand sessie makenCreate a session configuration file

Om een eindpunt JEA registreren, moet u opgeven hoe dat 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 hier, de belangrijkste welke is die toegang moeten hebben tot het eindpunt JEA, welke functies worden ze worden toegewezen, welke identiteit JEA gebruiken onder de dekt en wat de naam van het eindpunt JEA zal zijn.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 geraamte sessie-configuratiebestand voor 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 het geraamte bestand.Only the most common configuration options are included in the skeleton file by default. Gebruik de -Full switch in de gegenereerde voor alle toepasselijke instellingen wilt opnemen.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 beveiligde management.The -SessionType RestrictedRemoteServer field indicates that the session configuration will be used by JEA for secure management. Sessies is geconfigureerd op deze manier wordt uitgevoerd NoLanguage modus en hebt u alleen de volgende standaardopdrachten uit 8-(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)
  • Exit-PSSession (exsn, afsluiten)Exit-PSSession (exsn, exit)
  • Get-Command (gcm)Get-Command (gcm)
  • Get-FormatDataGet-FormatData
  • Help ontvangenGet-Help
  • Meetobject (maatregel)Measure-Object (measure)
  • Uitgaande standaardOut-Default
  • Select-Object (geselecteerd)Select-Object (select)

Geen PowerShell-providers beschikbaar zijn en worden dat alle 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 sessie JEA.There are several other fields you will want to configure for the JEA session. Ze worden in de volgende secties besproken.They are covered in the following sections.

Kies de identiteit JEAChoose the JEA identity

JEA moet achter de schermen wordt een identiteit (account) moet worden gebruikt wanneer een gebruiker verbonden opdrachten uit te voeren.Behind the scenes, JEA needs an identity (account) to use when running a connected user's commands. U besluiten welke identiteit JEA wordt gebruikt in het configuratiebestand van de sessie.You decide which identity JEA will use in the session configuration file.

Lokale virtuele-AccountLocal Virtual Account

Als de rollen die worden ondersteund door dit eindpunt JEA worden gebruikt voor het beheren van de lokale computer en een lokaal beheerdersaccount volstaat om de opdrachten succes is uitgevoerd, moet u 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 groeperen en hebben toegang 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 brede bevoegdheden vereist, kunt u eventueel de beveiligingsgroepen waartoe het 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. De opgegeven beveiligingsgroepen moet op een lidserver of werkstation 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 wordt opgegeven, wordt niet langer virtueel account aan de beheerdersgroep lokaal of domeinbeheerder 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

Een beheerd serviceaccount (gMSA) is voor scenario's vereisen dat de gebruiker JEA voor toegang tot netwerkbronnen zoals andere machines of webservices, een geschiktere identiteit moet worden gebruikt.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 de identiteit van een domein dat kan worden gebruikt voor verificatie op basis van bronnen 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 bronnen 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 beheerder van de machine-service 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'

accounts van gMSA mag 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 te traceren terug acties voor een gebruiker wanneer u een beheerd serviceaccount 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 Raadpleeg Logboeken correleren van gebruikers met hun acties en transcripties van PowerShell-sessie.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 tot nodig.The gMSA account may have access to many network resources which the connecting user does not need access to. Probeert altijd effectieve machtigingen beperken in een sessie JEA 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 nieuwere en op computers die lid zijn van een domein.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

Meer informatie over uitvoeren als identiteiten en hoe ze rekening te houden in de beveiliging van een sessie JEA vindt u 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.

Sessie transcriptiesSession transcripts

Het verdient aanbeveling dat u een configuratiebestand voor JEA sessie automatisch vastleggen uitgeschreven gebruikerssessies configureert.It is recommended that you configure a JEA session configuration file to automatically record transcripts of users' sessions. PowerShell-sessie transcripties bevatten informatie over de gebruiker verbinding maakt, het run as-identiteit is toegewezen, en de opdrachten 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 controle team wil weten wie een bepaalde wijziging in een systeem 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 schrijffouten in het configuratiebestand van de sessie, Geef een pad naar een map waar de transcripties 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 wijzigen of verwijderen van alle gegevens in dit.The specified folder should be configured to prevent users from modifying or deleting any data in it. Transcripties worden geschreven naar de map door het lokale systeemaccount, waarvoor lees- en schrijftoegang 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 moeten hebben geen toegang tot de map en een beperkt aantal Beveiligingsbeheerders moet toegang hebben tot de transcripties 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 gebruikers verbinding moeten voor het kopiëren van bestanden naar het eindpunt JEA om een opdracht wordt uitgevoerd, 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 van het systeem zonder zodat ze toegang hebben tot het volledige bestandssysteem of de provider bestandssysteem blootstellen.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 permanent over de sessies voor situaties waarin de verbinding met het netwerk mag 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 met gebruiken kunt 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 de gegevens in het station gebruiker permanent zijn wilt, kunt u een geplande taak op het systeem automatisch opschonen van de map elke nacht configureren.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 configuratiebestand sessie definiëren 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 worden gemachtigd voor het eindpunt JEA 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 de sleutel in de hash-tabel slechts één keer, maar kan meerdere functies 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 de 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 de roldefinitie van de behoort, krijgen ze 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 verlenen, wordt de meest strikte parameterset worden 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 rol-definities, moet u de naam van de computer gebruikt (geen localhost of .) voordat u de backslash.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 te inspecteren 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, rol mogelijkheden zijn waarnaar wordt verwezen door de platte domeinnaam (bestandsnaam zonder de 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 rol 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 niet toegang geven tot alle rol capability-bestanden met dezelfde naam.It will not give access to all role capability files with the same name.

JEA gebruikt de $env:PSModulePath omgevingsvariabele om te bepalen welke paden om te scannen op rol capability-bestanden.JEA uses the $env:PSModulePath environment variable to determine which paths to scan for role capability files. In elk van die 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 het importeren van modules, verkiest JEA rol mogelijkheden die worden geleverd met Windows tot 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 somt (niet noodzakelijkerwijs 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 rol mogelijkheid bestand gevonden die overeenkomt met de gewenste naam voor de gebruiker die de verbinding wordt gebruikt.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 mogelijkheden van de functie dezelfde naam delen, is het sterk aanbevolen Zorg ervoor dat functie-mogelijkheden 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 krijgen automatisch toegang tot 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 gebruikers moeten behoren tot meer beveiligingsgroepen die hebben geen invloed op de rollen die ze 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 van een 'just-in tijd wilt' bevoegde toegang tot oplossing voor het beheer, smartcardverificatie of een andere oplossing multifactor-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 u uw regels samenstelt.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 alles die een rol mogelijkheid bestand uitvoeren kunt, maar wel zonder de mogelijkheid om te verbinden gebruikerstoegang geven tot andere opdrachten ook doen.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 dat alle gebruikers toegang tot bepaalde cmdlets, functies of providers wilt, 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. Voer voor een volledige lijst met ondersteunde eigenschappen in het configuratiebestand van de sessie Get-Help New-PSSessionConfigurationFile -Full.For a full list of supported properties in the session configuration file, run Get-Help New-PSSessionConfigurationFile -Full.

Een configuratiebestand sessie testenTesting a session configuration file

U kunt testen met een sessie configuratie met de Test PSSessionConfigurationFile cmdlet.You can test a session configuration using the Test-PSSessionConfigurationFile cmdlet. Het is raadzaam dat u uw configuratiebestand sessie testen als u de voor-bestand handmatig met een teksteditor om te controleren of dat de syntaxis is juist hebt 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 is op het systeem worden geregistreerd.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 voorbeeld van een volledige 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 de 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

Sessie-configuratiebestanden bijwerkenUpdating session configuration files

Als u wijzigen van de eigenschappen van een sessieconfiguratie JEA wilt, met inbegrip van de toewijzing van gebruikers aan rollen, moet u registratie en opnieuw registreren de sessieconfiguratie JEA.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. Wanneer u de configuratie van de sessie JEA opnieuw registreren, gebruikt u een bijgewerkte PowerShell-sessie configuratiebestand 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