Configurare l'accesso HTTP ad Analysis Services in Internet Information Services (IIS) 7.0
È possibile abilitare l'accesso HTTP ad Analysis Services configurando MSMDPUMP.dll, un'estensione ISAPI che viene eseguita in IIS (Internet Information Services) e che consente di eseguire attività di data pump da applicazioni client a un server Analysis Services e viceversa. Questo approccio fornisce un'alternativa per la connessione ad Analysis Services se per le soluzioni Business Intelligence in uso sono richieste le funzionalità seguenti:
L'accesso client viene eseguito tramite connessioni Internet o Extranet, con restrizioni relativamente alle porte che è possibile abilitare.
Le connessioni client hanno origine da domini non attendibili nella stessa rete.
Le applicazioni client vengono eseguite in un ambiente di rete che consente connessioni HTTP ma non TCP/IP.
Sono richiesti metodi di autenticazione diversi dalla sicurezza integrata di Windows. In particolare, è possibile utilizzare le connessioni anonime e l'autenticazione di base quando si configura Analysis Services per l'accesso HTTP. Le autenticazioni Digest, basate sui modelli e ASP.NET non sono supportate.
Nelle applicazioni client non è possibile utilizzare le librerie client di Analysis Services (ad esempio, un'applicazione Java in esecuzione in un server UNIX). Se non è possibile utilizzare le librerie client di Analysis Services per l'accesso ai dati, è possibile utilizzare SOAP e XML/A in una connessione HTTP diretta a un'istanza di Analysis Services.
In questo argomento verrà illustrato come configurare l'accesso HTTP per un'istanza di Analysis Services utilizzando IIS 7.0. Queste istruzioni sono valide per qualsiasi versione o edizione di un'istanza di Analysis Services supportata che si interfacci con IIS 7.0, inclusi SQL Server 2012, SQL Server 2008 R2, SQL Server 2008 e SQL Server 2005. L'accesso HTTP è supportato sia per i server in modalità tabulare sia per quelli in modalità multidimensionale.
[!NOTA]
Il supporto per le metodologie di autenticazione varia in base alle applicazioni client e server nello stack di Business Intelligence. Per ulteriori informazioni sugli scenari abilitati tramite l'accesso HTTP ad Analysis Services, vedere il documento riguardante la delega dell'identità e l'autenticazione di Business Intelligence di Microsoft.
In questo argomento sono incluse le sezioni seguenti:
Panoramica
Prerequisiti
Copiare il file MSMDPUMP.dll in una cartella sul server Web
Creare un pool di applicazioni e una directory virtuale in IIS
Configurare l'autenticazione IIS e aggiungere l'estensione
Modificare il file MSMDPUMP.INI per impostare il server di destinazione
Testare la configurazione
Panoramica
MSMDPUMP è un'estensione ISAPI che viene caricata in IIS e mediante la quale viene fornito il reindirizzamento a un'istanza di Analysis Services che si trova nello stesso computer o in un computer remoto all'interno dello stesso dominio. Configurando l'estensione ISAPI, viene creato un endpoint HTTP a un'istanza di Analysis Services.
Per ogni endpoint HTTP è necessario creare e configurare una directory virtuale. A ogni endpoint dovrà essere associato un proprio set di file MSMDPUMP, per ogni istanza di Analysis Services a cui si desidera effettuare la connessione. In un file di configurazione in questo set di file viene specificato il nome dell'istanza di Analysis Services utilizzata per ciascun endpoint HTTP.
In IIS la connessione di MSMDPUMP ad Analysis Services viene eseguita tramite il provider OLE DB di Analysis Services su TCP/IP. Per la riuscita della connessione nativa, Analysis Services e IIS devono essere nello stesso dominio o in domini attendibili.
Per la connessione di MSMDPUMP ad Analysis Services, viene utilizzata un'identità utente di Windows. Questo account sarà un account anonimo se è stata configurata la directory virtuale per le connessioni anonime o un account utente di Windows. L'account deve disporre dei diritti di accesso ai dati adatti per il database e il server Analysis Services.
[!NOTA]
Ricordarsi di sbloccare le porte in Windows Firewall per consentire le connessioni client a un server Analysis Services remoto. Per ulteriori informazioni, vedere Configurare Windows Firewall per consentire l'accesso ad Analysis Services.
Nella tabella seguente vengono elencate ulteriori considerazioni relative all'abilitazione dell'accesso HTTP per scenari diversi.
Scenario |
Configurazione |
---|---|
IIS e Analysis Services nello stesso computer |
Si tratta della configurazione più semplice in quanto consente all'utente di utilizzare la configurazione predefinita (dove il nome del server è localhost), il provider OLE DB locale per Analysis Services e la sicurezza integrata di Windows con NTLM. Presupponendo che anche il client si trovi nello stesso dominio, l'autenticazione è visibile all'utente, senza la necessità di lavoro aggiuntivo. |
IIS e Analysis Services in computer diversi |
Per questa topologia, è necessario installare il provider OLE DB di Analysis Services nel server Web. È inoltre necessario modificare il file msmdpump.ini per specificare il percorso dell'istanza di Analysis Services nel computer remoto. In questa topologia viene aggiunto un passaggio di autenticazione a doppio hop, nel quale le credenziali devono essere propagate dal client al server Web e al server Analysis Services back-end. Se si utilizzano le credenziali di Windows e NTLM, viene restituito un errore perché NTLM non consente la delega delle credenziali del client a un secondo server. La soluzione più comune consiste nell'utilizzare l'autenticazione di base con SSL (Secure Sockets Layer), ma ciò richiede che gli utenti forniscano un nome utente e una password al momento dell'accesso alla directory virtuale MSMDPUMP. Un approccio più diretto potrebbe consistere nell'abilitare Kerberos e configurare la delega vincolata di Analysis Services per consentire agli utenti di accedere ad Analysis Services in modo trasparente. Considerare quali porte sbloccare in Windows Firewall. Sarà necessario sbloccare le porte su entrambi i server per consentire l'accesso all'applicazione Web in IIS e ad Analysis Services in un server remoto. |
Origine delle connessioni client rappresentata da un dominio non attendibile o da una connessione Extranet |
Le connessioni client con origine in un dominio non attendibile introducono ulteriori restrizioni relativamente all'autenticazione. Per impostazione predefinita, in Analysis Services viene utilizzata l'autenticazione integrata di Windows, per la quale è necessario che gli utenti si trovino nello stesso dominio del server. Agli eventuali utenti di una Extranet che eseguono la connessione a IIS dall'esterno del dominio verrà restituito un errore di connessione se il server è configurato per l'utilizzo delle impostazioni predefinite. Le soluzioni alternative includono la possibilità, per gli utenti che si trovano in una Extranet, di eseguire la connessione tramite una rete VPN utilizzando le credenziali di dominio. Tuttavia, un approccio migliore potrebbe consistere nell'abilitare l'autenticazione di base e SSL nel sito Web IIS in uso. |
Prerequisiti
Nel server Web IIS assicurarsi di installare il provider OLE DB di Analysis Services (MSOLAP) per SQL Server 2012. Il provider può essere scaricato dalla pagina Feature Pack di SQL Server 2012.
Passaggio 1: Copiare i file MSMDPUMP in una cartella sul server Web
A ogni endpoint HTTP creato deve essere associato un proprio set di file MSMDPUMP. In questo passaggio si esegue la copia del file eseguibile MSMDPUMP, del file di configurazione e dei file di risorse dalle cartelle di programma di Analysis Services in una cartella della directory virtuale IIS che verrà creata nel file system del computer in cui è in esecuzione IIS.
È necessario formattare l'unità per il file system NTFS. Il percorso della cartella creata non deve contenere spazi.
Individuare i file da copiare, MSMDPUMP.DLL e MSMDPUMP.INI, e una cartella Resources contenente i file di risorse della lingua. Questi file si trovano in <unità>:\Programmi\Microsoft SQL Server\<istanza>\OLAP\bin\isapi.
[!NOTA]
Si noti che il formato del nome dell'istanza è cambiato nelle versioni recenti di SQL Server. Se si utilizza SQL Server 2012, il nome dell'istanza predefinita è MSAS11.MSSQLSERVER.
Copiare tutti i file all'interno della cartella \OLAP\bin\isapi, incluso il contenuto della sottocartella Resources.
Nel server Web creare una nuova cartella: <unità>:\inetpub\wwwroot\OLAP
Incollare i file copiati in precedenza in questa nuova cartella.
Verificare che nella cartella \inetpub\wwwroot\OLAP nel server Web siano contenuti i file MSMDPUMP.DLL, MSMDPUMP.INI e una cartella Resources. La struttura di cartelle dovrebbe essere simile alla seguente:
<unità>:\inetpub\wwwroot\OLAP\MSMDPUMP.dll
<unità>:\inetpub\wwwroot\OLAP\MSMDPUMP.ini
<unità>:\inetpub\wwwroot\OLAP\Resources
Passaggio 2: Creare un pool di applicazioni e una directory virtuale in IIS
Successivamente, creare un pool di applicazioni e una directory virtuale mediante la quale viene fornito un endpoint al data pump.
Creare un pool di applicazioni
Avviare Gestione IIS. Fare clic su Start, scegliere Esegui, quindi digitare Inetmgr.
Fare clic con il pulsante destro del mouse su Pool di applicazioni, quindi scegliere Aggiungi pool di applicazioni. Creare un pool di applicazioni denominato OLAP, utilizzando .NET Framework v2.0.50727, con la modalità pipeline gestita impostata su Classica.
Per impostazione predefinita, in IIS vengono creati pool di applicazioni utilizzando Servizio di rete come identità di sicurezza. Per modificare l'identità del pool di applicazioni appena creato, fare clic con il pulsante destro del mouse su OLAP, quindi selezionare Impostazioni avanzate.
In Identità fare clic sull'account predefinito specificato da IIS. A seconda della versione di Windows in uso, si può trattare di Servizio di rete (mostrato nella schermata) o di ApplicationPoolIdentity. Fare clic sul pulsante Cambia di questa proprietà per sostituire l'account predefinito con quello personalizzato che si desidera utilizzare.
Per impostazione predefinita, in un sistema operativo a 64 bit, tramite IIS la proprietà Attiva applicazioni a 32 bit viene impostata su false. Se il file msmdpump.dll è stato copiato da un'installazione a 64 bit di Analysis Services, questa è l'impostazione corretta per l'estensione MSMDPUMP in un server IIS a 64 bit. Se i file binari MSMDPUMP sono stati copiati da un'installazione a 32 bit, utilizzare l'impostazione true. Controllare questa proprietà adesso per assicurarsi che sia impostata correttamente.
Creare una directory virtuale
In Gestione IIS aprire Siti, fare clic con il pulsante destro del mouse su Sito Web predefinito (o sul sito Web in uso per accedere al data pump), quindi fare clic su Aggiungi directory virtuale.
In Alias digitare OLAP.
In Percorso fisico fare clic sul pulsante sfoglia e passare a C:\inetpub\wwwroot\OLAP. Scegliere OK.
Fare clic con il pulsante destro del mouse sulla directory virtuale OLAP appena creata, quindi fare clic su Converti in applicazione.
Accanto a Pool di applicazioni nella finestra di dialogo Aggiungi applicazione fare clic su Seleziona, quindi scegliere il pool di applicazioni OLAP creato nella sezione precedente.
Fare clic su OK due volte per accettare le modifiche e convertire l'applicazione.
Passaggio 3: Configurare l'autenticazione IIS e aggiungere l'estensione
In questo passaggio viene configurata ulteriormente la directory virtuale SSAS appena creata. Viene specificato un metodo di autenticazione e quindi aggiunto un mapping di script. Tra i metodi di autenticazione supportati per Analysis Services tramite HTTP sono inclusi:
Autenticazione di Windows (Kerberos o NTLM)
Autenticazione anonima
Autenticazione di base
L'autenticazione anonima viene spesso utilizzata durante il test iniziale perché la relativa semplicità di configurazione consente di convalidare rapidamente la connettività HTTP ad Analysis Services. In soli pochi passaggi è possibile assegnare un account utente univoco come identità, concedere all'account le autorizzazioni in Analysis Services, utilizzare l'account per verificare l'accesso ai dati in un'applicazione client e infine disabilitare l'autenticazione anonima al completamento del test.
È anche possibile usare l'autenticazione anonima in un ambiente di produzione se gli utenti non hanno account utente di Windows, ma si attengono alle procedure consigliate bloccando le autorizzazioni nel sistema host, come illustrato nell'articolo Abilitare l'autenticazione anonima (IIS 7). Assicurarsi che l'autenticazione sia impostata nella directory virtuale e non nel sito Web padre, per ridurre ulteriormente il livello di accesso dell'account.
Quando è abilitata l'autenticazione anonima, la connessione come utente anonimo è consentita per qualsiasi connessione utente all'endpoint HTTP. Non sarà possibile controllare le singole connessioni utente né utilizzare l'identità utente per selezionare i dati da un modello. Come è possibile vedere, l'utilizzo dell'autenticazione anonima ha impatto su vari aspetti, dalla progettazione dei modelli, all'aggiornamento dei dati e all'accesso a questi ultimi. Tuttavia, se gli utenti non dispongono di un account di accesso di Windows con cui iniziare, è possibile che l'unica opzione disponibile sia l'account anonimo.
L'autenticazione di Windows viene considerata la più sicura; inoltre, consente di utilizzare l'infrastruttura esistente per le reti in cui viene utilizzato Active Directory. Per utilizzare l'autenticazione di Windows in modo efficiente, tutti i browser e le applicazioni client e server devono supportarla. Si tratta della modalità più sicura e consigliata, per la quale è tuttavia necessario che IIS abbia accesso a un controller di dominio Windows in grado di autenticare l'identità dell'utente che richiede una connessione.
Per le topologie in cui Analysis Services e IIS vengono installati in computer diversi, sarà necessario risolvere i problemi di doppio hop che si verificano quando un'identità utente deve essere delegata a un secondo servizio in un computer remoto, in genere abilitando Analysis Services per la delega vincolata Kerberos. Per ulteriori informazioni, vedere Configurare Analysis Services per la delega vincolata Kerberos.
L'autenticazione di base viene utilizzata quando si dispone di identità di Windows, ma le connessioni utente hanno origine da domini non attendibili, che non consentono l'utilizzo di connessioni rappresentate o delegate. L'autenticazione di base consente di specificare un'identità utente e una password in una stringa di connessione. Anziché utilizzare il contesto di sicurezza dell'utente corrente, per effettuare la connessione ad Analysis Services vengono utilizzate le credenziali nella stringa di connessione. Poiché Analysis Services supporta solo l'autenticazione di Windows, tutte le credenziali che gli vengono passate devono rappresentare un utente o gruppo di Windows che sia un membro del dominio in cui Analysis Services è ospitato.
Impostare il tipo di autenticazione e aggiungere un mapping di script
In Gestione IIS aprire Siti, aprire Sito Web predefinito, quindi selezionare la directory virtuale OLAP.
Fare doppio clic su Autenticazione nella sezione IIS della pagina principale.
Se si utilizza la sicurezza integrata di Windows, abilitare Autenticazione di Windows.
In alternativa, abilitare Autenticazione di base se le applicazioni client e server in uso si trovano in domini diversi. Per poter utilizzare questa modalità, l'utente dovrà immettere un nome utente e una password. Il nome utente e la password vengono trasmessi a IIS mediante connessione HTTP. Tramite IIS si tenterà di rappresentare l'utente che utilizza le credenziali specificate durante la connessione a MSMDPUMP, ma le credenziali in questione non verranno delegate ad Analysis Services. Sarà invece necessario passare un nome utente e una password validi in una connessione, come descritto nel Passaggio 6 del presente documento.
Nota sulla sicurezza Si noti che chiunque compili un sistema in cui viene trasmessa la password deve disporre di modalità per la sicurezza del canale di comunicazione. In IIS è disponibile un set di strumenti che consente di proteggere il canale. Per ulteriori informazioni, vedere la pagina relativa alla modalità di impostazione di SSL in IIS 7.
Disabilitare Autenticazione anonima se si utilizza l'autenticazione di Windows o di base. Quando abilitata, l'autenticazione anonima viene sempre utilizzata per prima in IIS, persino se si abilitano altri metodi di autenticazione.
Con l'autenticazione anonima, il data pump (msmdpump.dll) viene eseguito come account utente stabilito per l'utente anonimo. Non esiste alcuna distinzione tra l'utente connesso a IIS e quello connesso ad Analysis Services. Per impostazione predefinita, in IIS viene utilizzato l'account IUSR, ma è possibile impostarlo su un account utente di dominio con autorizzazioni di rete. Sarà necessaria questa funzionalità se IIS e Analysis Services si trovano in computer diversi.
Per istruzioni su come configurare le credenziali per l'autenticazione anonima, vedere la pagina relativa all'autenticazione anonima.
Nota sulla sicurezza L'autenticazione anonima risulta disponibile con maggiore probabilità in un ambiente estremamente controllato, in cui l'accesso viene concesso o negato in base agli elenchi di controllo di accesso nel file system. Per le procedure consigliate, vedere Abilitare l'autenticazione anonima (IIS 7).
Fare clic sulla directory virtuale OLAP per aprire la pagina principale. Fare doppio clic su Mapping gestori.
Fare clic con il pulsante destro del mouse in un punto qualsiasi della pagina e selezionare Aggiungi mapping di script. Nella finestra di dialogo Aggiungi mapping di script specificare *.dll come percorso della richiesta e c:\inetpub\wwwroot\OLAP\msmdpump.dll come file eseguibile, quindi digitare OLAP come nome.
Fare clic su Restrizioni richieste.
Nella scheda Verbi verificare che sia selezionato Tutti i verbi. Fare clic su OK, quindi fare di nuovo clic su OK per completare l'aggiunta del mapping di script.
Quando viene richiesto di consentire l'estensione ISAPI, fare clic su Sì.
Passaggio 4: Modificare il file MSMDPUMP.INI per impostare il server di destinazione
Nel file MSMDPUMP.INI viene specificata l'istanza di Analysis Services a cui MSMDPUMP.DLL effettua la connessione. Questa istanza può essere locale o remota, installata come quella predefinita o come istanza denominata.
Aprire il file msmdpump.ini posizionato nella cartella C:\inetpub\wwwroot\OLAP ed esaminare il relativo contenuto. Il risultato sarà simile al seguente:
<ConfigurationSettings>
<ServerName>localhost</ServerName>
<SessionTimeout>3600</SessionTimeout>
<ConnectionPoolSize>100</ConnectionPoolSize>
</ConfigurationSettings>
Se l'istanza di Analysis Services per la quale si configura l'accesso HTTP si trova sul computer locale e viene installata come predefinita, non esiste alcun motivo per modificare questa impostazione. In caso contrario, è necessario specificare il nome del server (ad esempio, <NomeServer>ADWRKS-SRV01</NomeServer>). Per un server installato come un'istanza denominata, assicurarsi di aggiungere il nome dell'istanza, ad esempio <NomeServer>ADWRKS-SRV01\Tabular</NomeServer>).
Per impostazione predefinita, Analysis Services è in ascolto sulla porta TCP/IP 2383. Se Analysis Services è stato installato come istanza predefinita, non è necessario specificare alcuna porta in <NomeServer> perché Analysis Services è in grado di restare in ascolto automaticamente sulla porta 2383. Tuttavia, è necessario consentire connessioni in ingresso per tale porta in Windows Firewall. Per ulteriori informazioni, vedere Configurare Windows Firewall per consentire l'accesso ad Analysis Services.
Se è stata configurata un'istanza denominata o predefinita di Analysis Services in modo da essere in ascolto su una porta fissa, è necessario aggiungere al nome del server il numero di porta (ad esempio, <NomeServer>AW-SRV01:55555</NomeServer>) e consentire connessioni in ingresso per la porta in questione in Windows Firewall.
Passaggio 5: Concedere le autorizzazioni di accesso ai dati
Come indicato in precedenza, sarà necessario concedere le autorizzazioni di accesso ai dati nell'istanza di Analysis Services. A ogni oggetto di database verranno assegnati ruoli mediante i quali viene fornito un livello specificato di autorizzazioni (lettura o lettura/scrittura) e ogni ruolo disporrà di membri costituiti da identità utente di Windows.
Per impostare le autorizzazioni è possibile utilizzare SQL Server Management Studio. Nella cartella Database | Ruoli è possibile creare ruoli, specificare le autorizzazioni del database, assegnare l'appartenenza agli account di gruppo o utente di Windows, nonché concedere le autorizzazioni di lettura o scrittura per oggetti specifici. In genere, le autorizzazioni Lettura su un cubo sono sufficienti per le connessioni client mediante le quali vengono utilizzati, ma non aggiornati, i dati del modello.
L'assegnazione dei ruoli varia a seconda della modalità con cui è stata configurata l'autenticazione.
Anonima |
Aggiungere all'elenco Appartenenza l'account specificato in Modifica credenziali di autenticazione anonima in IIS. Per ulteriori informazioni, vedere la pagina relativa all'autenticazione anonima. |
Autenticazione di Windows |
Aggiungere all'elenco Appartenenza gli account di gruppo o utente di Windows che richiedono i dati di Analysis Services mediante la rappresentazione o la delega. |
Autenticazione di base |
Aggiungere all'elenco Appartenenza gli account di gruppo o utente di Windows che vengono passati nella stringa di connessione. |
Per ulteriori informazioni sull'impostazione delle autorizzazioni, vedere Autorizzazione dell'accesso a oggetti e operazioni (Analysis Services).
Passaggio 6: Testare la configurazione
La sintassi della stringa di connessione per MSMDPUMP è l'URL del MSMDPUMP.dll.
Se l'applicazione Web è in ascolto su una porta fissa, aggiungere il numero della porta al nome del server oppure all'indirizzo IP (ad esempio, http://my-web-srv01:8080/OLAP/msmdpump.dll or http://123.456.789.012:8080/OLAP/msmdpump.dll).
Per testare la connessione in modo rapido, è possibile aprirne una utilizzando Microsoft Excel o SQL Server Management Studio.
Verificare le connessioni tramite Excel
In Carica dati esterni della scheda Dati in Excel fare clic su Da altre origini, quindi scegliere Da Analysis Services per avviare la Connessione guidata dati.
In Nome server immettere l'indirizzo HTTP dell'estensione msmdpump: http://my-web-srv01/OLAP/msmdpump.dll.
Per le credenziali di accesso, selezionare Usa autenticazione di Windows, se si utilizza la sicurezza integrata di Windows o l'autenticazione NTLM o un utente anonimo.
Per l'autenticazione di base, scegliere Usa nome utente e password seguenti, quindi specificare le credenziali utilizzate per l'accesso. Le credenziali immesse verranno passate nella stringa di connessione ad Analysis Services.
Verificare le connessioni tramite SQL Server Management Studio
Nella finestra di dialogo Connetti al server di Management Studio selezionare Analysis Services come tipo di server. In Nome server immettere l'indirizzo HTTP dell'estensione msmdpump: http://my-web-srv01/OLAP/msmdpump.dll.
L'autenticazione deve essere quella di Windows e l'utente che utilizza Management Studio deve essere un amministratore di Analysis Services.
Verificare le connessioni tramite AMO
È possibile verificare l'accesso HTTP a livello di codice tramite AMO, sostituendo l'URL dell'endpoint per il nome del server. Per informazioni dettagliate, vedere il post del forum relativo alla modalità di sincronizzazione di database di SSAS 2008 R2 tramite HTTPS nei limiti di dominio, foresta e firewall.
Di seguito è riportata una stringa di connessione di esempio che illustra la sintassi per l'accesso HTTP(S) tramite l'autenticazione di base:
Data Source=https://<servername>/olap/msmdpump.dll; Initial Catalog=AdventureWorksDW2012; Integrated Security=Basic; User ID=XXXX; Password=XXXXX;
Per ulteriori informazioni sulla configurazione della connessione a livello di codice, vedere Implementazione di connessioni protette in ADOMD.NET.
Come passaggio finale, accertarsi di eseguire successivamente un test più rigido utilizzando un computer client in esecuzione nell'ambiente di rete dal quale hanno origine le connessioni.
Vedere anche
Concetti
Configurare Windows Firewall per consentire l'accesso ad Analysis Services
Autorizzazione dell'accesso a oggetti e operazioni (Analysis Services)
Altre risorse
Post del forum relativo all'accesso HTTP tramite MSMDPUMP e l'autenticazione di base