Questa documentazione è stata archiviata e non viene gestita.

Distribuzioni di applicazioni e servizi federati di ACS in Azure

Aggiornamento: giugno 2015

  • Microsoft Azure Active Directory Access Control (anche noto come Servizio di controllo di accesso o ACS)

  • Windows Identity Foundation (WIF)

  • Microsoft Azure

In questo argomento vengono riassunte le linee guida da tenere presenti per lo sviluppo di applicazioni e servizi che usano ACS e che verranno distribuiti in Azure.

  1. Ovviare al problema delle porte generate in modo dinamico nell'emulatore di calcolo.

  2. Distribuire il runtime Windows Identity Foundation (WIF) in Azure.

  3. Crittografare i cookie mediante RSA.

  4. Configurare assembly richiamati tramite reflection per la distribuzione in Azure.

Le informazioni contenute in questa sezione si riferiscono alla creazione di applicazioni Web, non alla creazione di servizi Web. L'emulatore di calcolo fa parte degli strumenti SDK di Azure. Può essere usato per l'esecuzione, il test, il debug e l'ottimizzazione dell'applicazione prima di distribuirla come servizio ospitato in Azure. Nell'emulatore di calcolo non è possibile allocare un indirizzo IP univoco. L'emulatore di calcolo prova ad assegnare la porta richiesta. Se la porta non è disponibile, alloca il successivo numero di porta disponibile appropriato. Questo significa che, all'interno dell'emulatore di calcolo, al servizio potrebbe essere assegnato un numero di porta diverso da quello specificato nel file di definizione. Per altre informazioni sull'emulatore di calcolo, vedere Panoramica dell'emulatore di calcolo di Windows Azure (http://go.microsoft.com/fwlink/?LinkId=221212).

Se l'emulatore di calcolo alloca un indirizzo IP diverso da quello configurato come URL restituito nel portale di gestione ACS, ACS reindirizzerà le richieste autenticate all'URL configurato nel campo URL restituito della configurazione della relying party, nonostante non esista alcuna pagina corrispondente in questo URL. Di conseguenza, l'utente visualizzerà una pagina vuota.

Per ovviare a questo comportamento, impostare la porta pubblica dell'endpoint dell'applicazione Web cloud su una porta disponibile nel computer. In questo modo, l'emulatore di calcolo non assegnerà una porta casuale per evitare una collisione.

  1. Per aprire il prompt dei comandi, fare clic sul pulsante Start, digitare cmd, quindi premere INVIO.

  2. Eseguire il comando seguente per visualizzare l'elenco degli indirizzi IP dell'host locale con le porte usate: netstat –a –n | findstr 127.0.0.1

  3. Esaminare l'elenco e individuare una porta attualmente non in uso. Questa porta verrà usata nei passaggi successivi.

  4. In Esplora soluzioni fare doppio clic sul proprio ruolo nella cartella Ruoli del progetto cloud. Viene aperta la pagina contenente le proprietà del ruolo.

  5. Nella pagina Proprietà del ruolo Web fare clic sulla scheda Endpoint.

  6. In Porta pubblica specificare il valore della porta identificato nel Passaggio 3.

  7. Per salvare il lavoro svolto, premere CTRL+S.

Windows Identity Foundation (WIF) è un runtime fuori banda che è necessario installare nel computer affinché possa essere usato da applicazioni in grado di riconoscere attestazioni. Per impostazione predefinita, WIF non viene installato nelle istanze di Azure. Per eseguire l'applicazione cloud in grado di riconoscere attestazioni, è necessario rendere disponibile il runtime WIF nell'istanza di Azure. Il modo più semplice per eseguire questa operazione consiste nell'includere l'assembly WIF nel pacchetto di distribuzione.

  1. In Esplora soluzioni individuare l'applicazione in grado di riconoscere attestazioni.

  2. Espandere la cartella Riferimenti.

  3. Individuare l'assembly Microsoft.IdentityModel nella cartella Riferimenti.

  4. Fare clic con il pulsante destro del mouse sull'assembly e quindi scegliere Proprietà.

  5. Nella finestra delle proprietà impostare Copia localmente su True e Versione specifica su False.

Le informazioni contenute in questa sezione si riferiscono alla creazione di applicazioni Web. Per impostazione predefinita, WIF protegge i cookie a livello di crittografia usando interfacce DPAPI (Data Protection Application Programming Interface). DPAPI non è disponibile in Azure. Per verificare che l'applicazione Web cloud in grado di riconoscere attestazioni funzioni correttamente quando viene distribuita in Azure, è necessario aggiungere le funzionalità di crittografia dei cookie usando RSA.

  1. In Esplora soluzioni individuare l'applicazione Web cloud in grado di riconoscere attestazioni.

  2. Aprire il file global.asax.cs, che contiene il code-behind di global.asax, nell'editor di Visual Studio.

  3. Aggiungere le dichiarazioni seguenti:

    using Microsoft.IdentityModel.Tokens;
    using Microsoft.IdentityModel.Web;
    using Microsoft.IdentityModel.Web.Configuration;
    
  4. Aggiungere il codice seguente:

    void OnServiceConfigurationCreated(object sender, ServiceConfigurationCreatedEventArgs e)
    {
        //
        // Use the <serviceCertificate> to protect the cookies that are
        // sent to the client.
        //
        List<CookieTransform> sessionTransforms =
            new List<CookieTransform>(new CookieTransform[] {
            new DeflateCookieTransform(), 
            new RsaEncryptionCookieTransform(e.ServiceConfiguration.ServiceCertificate),
            new RsaSignatureCookieTransform(e.ServiceConfiguration.ServiceCertificate)  });
        SessionSecurityTokenHandler sessionHandler = new SessionSecurityTokenHandler(sessionTransforms.AsReadOnly());
        e.ServiceConfiguration.SecurityTokenHandlers.AddOrReplace(sessionHandler);
    }
    
    void Application_Start(object sender, EventArgs e)
    {
        FederatedAuthentication.ServiceConfigurationCreated += OnServiceConfigurationCreated;
    
    noteNota
    Se è già stato aggiunto il gestore dell'evento Application_Start, è possibile aggiornarlo in modo da includere questo codice.

  5. Salvare il lavoro svolto.

In alcuni casi gli assembly vengono richiamati tramite reflection, ad esempio quando si sviluppano servizi WCF REST (Representational State Transfer) o moduli HTTP che controllano i token SWT in ingresso. Per verificare che questi assembly vengano distribuiti in Azure, è necessario eseguire alcuni passaggi aggiuntivi in modo da includerli nel pacchetto di distribuzione.

  1. Espandere la cartella bin del servizio o dell'applicazione Web cloud in grado di riconoscere attestazioni.

  2. Fare clic con il pulsante destro del mouse sull'assembly e quindi scegliere Includi nel progetto.

  3. Fare clic con il pulsante destro del mouse sulla stessa libreria e quindi scegliere Proprietà.

  4. Nella finestra Proprietà fare clic su Copia se più recente per Copia nella directory di output.

Vedere anche

Mostra: