> For the complete documentation index, see [llms.txt](https://docs.devolutions.net/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.devolutions.net/powershell-universal/it/sicurezza/enterprise-security/windows-sso.md).

# Windows SSO

Abiliti l'autenticazione Windows single sign-on in PowerShell Universal utilizzando Kerberos o NTLM, con le configurazioni di hosting IIS e non IIS.

L'autenticazione Windows, nota anche come autenticazione Negotiate, utilizza Kerberos o NTLM per autenticare senza richiedere una password all'utente. È supportata principalmente nei domini Windows, ma può essere configurata in Linux e Mac OS.

### appsettings.json

L'autenticazione Windows fornisce il supporto single sign-on per i browser e gli ambienti che lo supportano. Per abilitare l'autenticazione Windows, imposti su true l'impostazione `WindowsAuthentication` in `appsettings.json`.

{% code collapsedlinecount="10" %}

```javascript
"Windows": {
  "Enabled": "true"
},
```

{% endcode %}

### Authentication.ps1

È possibile abilitare l'autenticazione Windows aggiungendo un nuovo provider di autenticazione in Secure > Authentication. Selezioni Windows e abiliti l'autenticazione.

Una volta impostato Windows come autenticato, l'autenticazione Windows può essere utilizzata con Universal. Dovrà disconnettersi per poter utilizzare l'autenticazione Windows.

### Autenticazione Windows in IIS

Per abilitare l'autenticazione Windows in IIS, si assicuri di abilitare l'autenticazione Windows e di disabilitare l'autenticazione anonima.

Nel file web.config incluso in PowerShell Universal, si assicuri di aver impostato `forwardWindowsAuthToken` su `true`.

{% code collapsedlinecount="10" %}

```
<aspNetCore processPath="Universal.Server.exe" arguments="" forwardWindowsAuthToken="true" stdoutLogEnabled="true" stdoutLogFile=".\logs\log" hostingModel="OutOfProcess"/>
```

{% endcode %}

### Autenticazione Windows al di fuori di IIS

L'autenticazione Windows è supportata al di fuori di IIS, ma richiede la configurazione dell'account che esegue il servizio Universal.

#### Windows

Su Windows, è necessario installare PowerShell Universal come [servizio Windows](/powershell-universal/it/getting-started.md#windows). Una volta installato il servizio, dovrà creare un [utente account di servizio](/powershell-universal/it/config/running-as-a-service-account.md#application-service-account) e impostare il servizio affinché venga eseguito con l'account di tale utente. L'[impostazione ](/powershell-universal/it/config/settings.md)dell'autenticazione Windows deve essere impostata su true.

{% code collapsedlinecount="10" %}

```javascript
"Windows": {
  "Enabled": "true"
},
```

{% endcode %}

L'account di servizio deve avere un Service Principal Name (spn) configurato per l'account del computer. È possibile farlo utilizzando il comando `setspn`. Il nome del computer deve essere il nome completo della macchina che esegue Universal.

{% code collapsedlinecount="10" %}

```
setspn -S HTTP/myservername.mydomain.com myuser
```

{% endcode %}

Per maggiori informazioni, può consultare la documentazione Microsoft per la configurazione dell'autenticazione Windows in ASP.NET Core: [Configuring a Windows machine for Windows Authentication](https://docs.microsoft.com/en-us/aspnet/core/security/authentication/windowsauth?view=aspnetcore-3.1\&tabs=visual-studio#windows-environment-configuration)

#### Linux

[Configuring a Linux or Mac OS machine for Windows Authentication](https://docs.microsoft.com/en-us/aspnet/core/security/authentication/windowsauth?view=aspnetcore-3.1\&tabs=visual-studio#linux-and-macos-environment-configuration)

### Claim memorizzati nella cache

PowerShell Universal memorizza nella cache i claim di appartenenza ai gruppi quando si utilizza l'autenticazione Windows. I claim vengono memorizzati nella cache per il valore di timeout della sessione configurato (il valore predefinito è 25 minuti).

Per svuotare manualmente la cache, si porti su Secure > Roles e faccia clic sul pulsante Clear Cached Claims.

## Configurazione del browser

In base al suo ambiente locale, potrebbe essere necessario configurare il browser affinché trasmetta correttamente le credenziali a PowerShell Universal.

* [Google Chrome](https://chromeenterprise.google/policies/#HTTPAuthentication)
* [Microsoft Edge](https://learn.microsoft.com/en-us/deployedge/microsoft-edge-policies#http-authentication-policies)


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.devolutions.net/powershell-universal/it/sicurezza/enterprise-security/windows-sso.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
