Condividi tramite


Esempio di codice: Servizio Web ASP.NET

Aggiornamento: 19 giugno 2015

Si applica a: Azure

Questo esempio illustra come integrare Microsoft Azure Active Directory Controllo di accesso (noto anche come servizio Controllo di accesso o ACS) in un semplice servizio Web. Vengono usati ASP.NET come host del servizio Web e un client della riga di comando. Il servizio Web ASP.NET richiede un token SWT emesso da ACS. Il client richiede un token da ACS con un nome utente e una password registrati con ACS. Il codice per questo esempio si trova nella sottodirectory ASPNETSimpleService (C#\WebServices\ASPNETSimpleService) del pacchetto di esempi di codice Microsoft Azure Active Directory Controllo di accesso (ACS).

Prerequisiti

Ecco i prerequisiti per eseguire questo esempio:

  1. Per creare un account nella home page di Azure e creare uno spazio dei nomi Controllo di accesso.

  2. Visual Studio 2010 (qualsiasi versione)

Per altre informazioni, vedere Prerequisiti ACS (https://go.microsoft.com/fwlink/?LinkId=221065).

Configurazione dell'esempio

La configurazione ACS necessaria per questo esempio può essere eseguita tramite il portale di gestione ACS o il servizio di gestione ACS. Questo argomento descrive entrambe le opzioni.

  1. Opzione 1: Configurazione dell'esempio tramite il portale di gestione ACS

  2. Opzione 2: Configurazione dell'esempio tramite il servizio di gestione ACS

Opzione 1: Configurazione dell'esempio tramite il portale di gestione ACS

Per configurare l'esempio tramite il portale di gestione ACS

  1. Passare al portale di gestione Microsoft Azure (https://manage.WindowsAzure.com), accedere e quindi fare clic su Active Directory. (Suggerimento per la risoluzione dei problemi: elemento "Active Directory" mancante o non disponibile)

  2. Per creare uno spazio dei nomi di Controllo di accesso, fare clic su Nuovo, Servizi app, Controllo di accesso, quindi su Creazione rapida. Altrimenti, fare clic su Spazi dei nomi controllo di accesso prima di scegliere Nuovo.

  3. Per gestire uno spazio dei nomi di Controllo di accesso, selezionare lo spazio dei nomi, quindi fare clic su Gestisci. Altrimenti, fare clic su Spazi dei nomi controllo di accesso, selezionare lo spazio dei nomi, quindi fare clic su Gestisci.

    Questa azione consente di visualizzare il portale di gestione ACS.

  4. Per registrare l'applicazione con ACS, fare clic su Applicazioni relying party, fare clic su Aggiungi e quindi immettere le informazioni seguenti nel modulo:

    • Nel campo Name immettere ASPNET Simple Service.

    • Nel campo Area di autenticazione immettere https://localhost:8000/Service/

    • Nel campo URL restituito immettere https://localhost:8000/Service/

    • Selezionare SWT dall'elenco a discesa Token format.

    • Nel campo Token Signing Key fare clic su Generate per creare una chiave per la firma dei token. Copiare questa chiave per usarla successivamente nella configurazione.

    • Nel campo Expiration Date immettere una data di scadenza appropriata per la chiave. A partire da questa data la chiave non sarà più valida.

    • Mantenere i valori predefiniti negli altri campi.

  5. Fare clic su Save, quindi su Home per tornare alla pagina iniziale del portale di gestione ACS.

  6. Dopo aver registrato la relying party, è ora possibile creare le regole che determinano le attestazioni che ACS emetterà all'applicazione. In questo esempio viene creata una regola che concede a qualsiasi nome utente e password registrati un'attestazione di tipo action con valore reverse. Per creare questa regola, fare clic su Home per tornare alla home page del portale di gestione del servizio Controllo di accesso, fare clic su Gruppi di regole e quindi su Gruppo di regole predefinito per ASP.NET servizio semplice. Aggiungere un nuova regola con le seguenti impostazioni:

    • Nella sezione Claim issuer selezionare Access Control Service.

    • Nella sezione Input claim type selezionare Any.

    • Nella sezione Input claim value selezionare Any.

    • Nella sezione Output claim type selezionare Enter type e digitare action nel campo.

    • Nella sezione Output claim value selezionare Enter value e digitare reverse nel campo.

  7. A differenza degli esempi del sito Web, questo esempio si basa sulle credenziali gestite da ACS. L'ultimo passaggio nella configurazione di ACS consiste nel registrare il nome utente e la password per l'applicazione client da usare. Per configurare un nuovo nome utente e una nuova password, fare clic su Home per tornare alla home page del portale di gestione dei servizi Controllo di accesso, fare clic su Identità del servizio, fare clic su Aggiungi e compilare il modulo. Per questo esempio usare il nome utente acssample, il tipo di credenziali Password e la password pass@word1.

  8. Fare clic su Save, quindi su Home per tornare alla pagina iniziale del portale di gestione ACS.

Opzione 2: Configurazione dell'esempio tramite il servizio di gestione ACS

La soluzione di esempio Visual Studio include un'applicazione console denominata ConfigureSample che usa il servizio di gestione ACS e gli helper comuni definiti nella libreria di classi Comuni. Questa applicazione può essere usata per configurare uno spazio dei nomi Controllo di accesso da usare con questo esempio.

Per configurare l'esempio tramite il servizio di gestione ACS

  1. Per configurare l'esempio, aprire SamplesConfiguration.cs (acs\Management\ManagementService\Common). Sostituire i segnaposto nella classe SamplesConfiguration nella libreria di classi Common con informazioni sullo spazio dei nomi Controllo di accesso. È possibile trovare le informazioni nel portale di gestione ACS.

    Per passare al portale di gestione ACS: passare al portale di gestione Microsoft Azure (https://manage.WindowsAzure.com), accedere e quindi fare clic su Active Directory. (Suggerimento per la risoluzione dei problemi: elemento "Active Directory" mancante o non disponibile) Per gestire uno spazio dei nomi Controllo di accesso, selezionare lo spazio dei nomi e quindi fare clic su Gestisci. Altrimenti, fare clic su Spazi dei nomi controllo di accesso, selezionare lo spazio dei nomi, quindi fare clic su Gestisci.

    • ServiceNamespace: immettere il nome dello spazio dei nomi Controllo di accesso.

    • ManagementServiceIdentityName : immettere il nome di un account del servizio di gestione ACS. Il valore predefinito è ManagementClient.

      Per trovare il nome dell'account del servizio di gestione, nel portale di gestione ACS fare clic su Servizio di gestione. Gli account sono elencati in base al nome in Management Service Accounts.

    • ManagementServiceIdentityKey - Immettere la password dell'account del servizio di gestione.

      Per trovare la password dell'account del servizio di gestione, nel portale di gestione ACS fare clic su Servizio di gestione. Selezionare il nome di un account del servizio di gestione, quindi in Credentials fare clic su Password. Nel campo Password viene visualizzata la password. Per copiare la password, fare clic su Show Password.

  2. Eseguire l'applicazione ConfigureSample in Visual Studio. Verrà configurato ACS per l'esecuzione di questo esempio.

  3. Al termine dell'esecuzione dell'applicazione ConfigureSample, la chiave di firma della relying party generata verrà visualizzata nella console. Copiare la chiave negli Appunti.

Esecuzione dell'esempio

Per eseguire l'esempio

  1. Aprire l'esempio in Visual Studio. La soluzione è costituita da due progetti: Servizio e Client.

  2. Se non è già stato fatto, immettere i dettagli dello spazio dei nomi Controllo di accesso in Common\SamplesConfiguration.cs. Per altre informazioni, vedere il passaggio 1 dell'opzione 2: Configurazione tramite il servizio di gestione ACS. Questo file viene usato anche dai progetti Service e Client.

  3. Aprire il file web.config nel progetto Service. Immettere la chiave per la firma dei token negli elementi AppSettings appropriati. Se ACS è stato configurato usando il servizio di gestione, si tratta del valore copiato negli Appunti. Per ottenere la chiave per la firma dei token, fare riferimento alla sezione Certificates and Keys del portale. Di seguito è riportato un frammento di codice contenente questa parte del file web.config del servizio.

    <appSettings>
        <add key="IssuerSigningKey" value="...update to your signing key..."/>
      </appSettings>
    
  4. Aprire il file app.config nel progetto Client. Immettere il nome utente e la password negli elementi AppSettings appropriati. Per ottenere il nome utente e la password registrati in precedenza, fare riferimento alla sezione Service Identities del portale. Di seguito è riportato un frammento di codice contenente questa parte del file app.config del client (opportunamente aggiornata).

      <appSettings>
        <add key="OAuthUserName" value="acssample" />
        <add key="OAuthPassword" value="pass@word1" />
        <add key="ServiceAddress" value="https://localhost:8000/Service/Default.aspx" />   
      </appSettings>
    
  5. Per eseguire l'esempio, avviare il servizio, quindi il client. Nel client immettere una stringa da invertire. La finestra della console client dovrebbe quindi visualizzare l'output che indica che ha ricevuto un token da ACS.