Esporta (0) Stampa
Espandi tutto

Esempio di codice: autenticazione dei certificati tramite OAuth 2.0

Pubblicato: maggio 2011

Aggiornamento: febbraio 2014

Si applica a: Azure

In questo esempio viene illustrato come eseguire l'autenticazione in Microsoft Azure Active Directory Access Control (anche noto come Servizio di controllo di accesso o ACS) tramite il protocollo OAuth 2.0 presentando un token SAML firmato da un certificato X.509. Questo certificato corrisponde a un'entità ServiceIdentity configurata in ACS. ACS rilascia un token SWT con un'attestazione di tipo nameidentifier dell'entità ServiceIdentity. Il token SWT viene utilizzato per l'autenticazione in una risorsa protetta OAuth 2.0. Questo esempio è conforme alla specifica Draft 13 del protocollo OAuth 2.0. Il codice relativo a questo esempio è disponibile nella cartella OAuth2 del pacchetto contenente esempi e documentazione del Servizio di controllo di accesso (http://go.microsoft.com/fwlink/?LinkId=213167).

Per eseguire questo esempio, sarà necessario:

  1. Creare un account dalla home page di Windows Azure (http://go.microsoft.com/fwlink/?LinkId=130560) e creare uno spazio dei nomi del Servizio di controllo di accesso

  2. Visual Studio 2010 (qualsiasi versione)

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

Per effettuare la configurazione di ACS richiesta per questo esempio, è possibile utilizzare il portale di gestione ACS o il servizio di gestione ACS. In questo argomento vengono descritte entrambe le opzioni.

  1. Opzione 1 - Configurazione dell'esempio mediante il portale di gestione ACS

  2. Opzione 2 - Configurazione dell'esempio mediante il servizio di gestione ACS

  1. Aprire un browser, passare alla home page di Windows Azure (http://go.microsoft.com/fwlink/?LinkId=130560) ed eseguire l'accesso. Passare alla sezione Service Bus, Access Control, and Caching per configurare lo spazio dei nomi del servizio ACS. Dopo aver creato uno spazio dei nomi, selezionarlo e fare clic su Manage > Access Control Service nella parte superiore della pagina. La pagina verrà aperta in una nuova finestra.

  2. Per registrare l'applicazione con ACS, fare clic sul collegamento Relying party applications nella pagina principale, fare clic su Add, quindi immettere nel modulo le seguenti informazioni:

    • Nel campo Name immettere OAuth2 RP.

    • Nel campo Realm 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.

  3. Fare clic su Save, quindi tornare alla pagina principale.

  4. Una volta registrata la relying party, è possibile creare le regole per determinare le attestazioni che verranno rilasciate da ACS all'applicazione. In questo esempio verrà creata una regola che consente il passaggio di qualsiasi attestazione generata da ACS. Per creare la regola, accedere alla pagina principale del portale, selezionare Rule Groups, quindi Default Rule Group for OAuth2 RP. 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 Pass through input claim type.

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

  5. A differenza degli esempi relativi al sito Web, questo esempio si basa su credenziali gestite da ACS. Per configurare un nuovo certificato client per l'utilizzo da parte dell'applicazione client, selezionare il collegamento Service Identities nella pagina principale del portale. Fare clic sul collegamento Add e digitare 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 Save, quindi tornare alla pagina principale del portale.

  6. Dopo aver configurato ACS, aprire Visual Studio.

La soluzione di esempio di Visual Studio contiene un'applicazione console denominata ConfigureSample che utilizza il servizio di gestione ACS e gli helper comuni definiti nella libreria di classi Common. È possibile utilizzare questa applicazione per configurare lo spazio dei nomi del servizio ACS da utilizzare con questo esempio.

  1. Aggiornare la libreria di classi Common con le informazioni relative allo spazio dei nomi del servizio. Aprire SamplesConfiguration.cs, quindi immettere le seguenti informazioni:

    • ServiceNamespace - Spazio dei nomi utilizzato con ACS.

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

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

    • AcsHostUrl - Nome host di ACS.

  2. Eseguire l'applicazione ConfigureSample in Visual Studio. Verrà configurato ACS per l'esecuzione dell'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.

  1. Aprire l'esempio in Visual Studio. Oltre a ConfigureSample e Common, la soluzione è costituita da due progetti: ProtectedResourceWebApp e Client.

  2. Immettere i dettagli dello spazio dei nomi del servizio in Common\SamplesConfiguration.cs se questa operazione non è stata ancora effettuata. Per ulteriori informazioni, vedere il passaggio 1 della precedente sezione Opzione 2 - Configurazione dell'esempio mediante il servizio di gestione ACS. Questo file viene utilizzato 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 ACS è stato configurato mediante il servizio di gestione, la chiave corrisponde al 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:

    <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 di ACS.

Aggiunte alla community

AGGIUNGI
Microsoft sta conducendo un sondaggio in linea per comprendere l'opinione degli utenti in merito al sito Web di MSDN. Se si sceglie di partecipare, quando si lascia il sito Web di MSDN verrà visualizzato il sondaggio in linea.

Si desidera partecipare?
Mostra:
© 2014 Microsoft