Share via


Esempio di codice: Autenticazione certificato OAuth 2.0

Aggiornamento: 19 giugno 2015

Si applica a: Azure

Questo esempio illustra come eseguire l'autenticazione a Microsoft Azure Active Directory Controllo di accesso (noto anche come servizio Controllo di accesso o ACS) usando il protocollo OAuth 2.0 presentando un token SAML firmato da un certificato X.509. Questo certificato corrisponde a un serviceIdentity configurato in ACS e ACS genera un'attestazione SWT con un'attestazione nameidentifier del ServizioIdentity. Il token SWT viene usato per l'autenticazione in una risorsa protetta OAuth 2.0. Questo esempio è conforme alla specifica Draft 13 del protocollo OAuth 2.0. Il codice per questo esempio si trova nella sottodirectory OAuth2 (C#\OAuth2) del pacchetto di esempi di codice Microsoft Azure Active Directory Controllo di accesso (ACS).

Prerequisiti

Ecco i prerequisiti per eseguire questo esempio:

  1. Un account nel portale di Azure e uno spazio dei nomi Controllo di accesso.

  2. Visual Studio 2010 (qualsiasi versione)

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

Configurazione dell'esempio

È possibile eseguire la configurazione ACS necessaria per questo esempio usando 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 di ACS

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

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

Per configurare l'esempio usando il portale di gestione di 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: l'elemento "Active Directory" non è disponibile o meno)

  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 digitare le informazioni seguenti nel modulo:

    • Nel campo Name immettere OAuth2 RP.

    • Nel campo Area di autenticazione immettere https://oauth2relyingparty/

    • Nel campo Token format selezionare SWT.

    • Fare clic su Generate per creare una nuova chiave.

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

  5. Fare clic su Salva.

  6. Con la relying party registrata, è ora il momento di creare le regole che determinano le attestazioni che ACS emetterà all'applicazione. In questo esempio verrà creata una regola che concede a qualsiasi attestazione generata da ACS di passare.

    Per creare questa regola, fare clic su Rule Groups, quindi su Default Rule Group for OAuth2 RP. Per aggiunge una nuova regola, usare 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 Pass through input claim type.

    • Nella sezione Output claim value selezionare Pass through input claim value.

  7. Questo esempio si basa sulle credenziali gestite da ACS.

    Per configurare un nuovo certificato client per l'uso da parte dell'applicazione client, selezionare Service Identities, fare clic su Add, quindi immettere un nome. Aggiungere il tipo di credenziali X.509 Certificate e selezionare il file ACS2ClientCertificate.cer nella cartella Certificates di questo esempio. Fare clic su Salva.

  8. Ora che ACS è configurato, aprire Visual Studio.

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 lo spazio dei nomi Controllo di accesso da usare con questo esempio.

Per configurare l'esempio usando il servizio di gestione ACS

  1. Aggiornare la libreria di classi Common con informazioni sullo spazio dei nomi Controllo di accesso. Aprire SamplesConfiguration.cs, quindi immettere le seguenti informazioni:

    • ServiceNamespace: nome dello spazio dei nomi Controllo di accesso

    • ManagementServiceIdentityName - Nome dell'account del servizio di gestione.

    • ManagementServiceIdentityKey - Password associata all'account del servizio di gestione.

    • AcsHostUrl : questo è il nome host di ACS

  2. Eseguire l'applicazione ConfigureSample in Visual Studio. Verrà configurato ACS per eseguire 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. Oltre a ConfigureSample e Common, la soluzione è costituita da due progetti: ProtectedResourceWebApp 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 precedente. Questo file viene usato anche dal progetto Client.

  3. Aprire il file web.config nel progetto ProtectedResourceWebApp.

  4. Immettere la chiave per la firma dei token negli elementi AppSettings appropriati. Se è stato usato il servizio di gestione per configurare ACS, si tratta del valore copiato negli Appunti. Per ottenere la chiave di firma del token, nel portale di ACS fare clic su Certificati e chiavi. Di seguito è riportato un frammento di codice contenente questa sezione del file web.config:

    <appSettings>
       <add key="SigningKey" value="...Copy Signing Key..."/>
    </appSettings>
    
  5. Per eseguire l'esempio, avviare ProtectedResourceWebApp. Verrà avviato un Web browser, ma la casella di testo risulterà vuota perché il Web browser non è autenticato.

  6. Eseguire il progetto Client. Il codice HTML verrà visualizzato in una finestra della console. Si noti che il codice HTML indica che l'utente è autenticato e visualizza le attestazioni da ACS.