Come autenticare gli utenti Web con il Servizio di controllo di accesso di Azure usando EclipseHow to Authenticate Web Users with Azure Access Control Service Using Eclipse

In questa guida verrà descritto come usare il Servizio di controllo di accesso di Azure (ACS) nel plug-nel Toolkit di Azure per Eclipse.This guide will show you how to use the Azure Access Control Service (ACS) within the Azure Toolkit for Eclipse. Per altre informazioni su ACS, vedere la sezione Passaggi successivi .For more information on ACS, see the Next steps section.

Nota

Il filtro dei Servizi di controllo di accesso di Azure è una Community Technology Preview.The Azure Access Services Control Filter is a community technology preview. Come versione preliminare, non è formalmente supportata da Microsoft.As pre-release software, it is not formally supported by Microsoft.

Informazioni su ACSWhat is ACS?

La maggior parte degli sviluppatori non ha esperienza nell'ambito delle identità e in genere non desidera dedicare tempo a sviluppare meccanismi di autenticazione e autorizzazione per le applicazioni e i servizi.Most developers are not identity experts and generally do not want to spend time developing authentication and authorization mechanisms for their applications and services. ACS è un servizio di Azure tramite cui viene fornito un metodo semplice per autenticare gli utenti che devono accedere alle applicazioni e ai servizi Web, senza dover includere nel codice una logica di autenticazione complessa.ACS is an Azure service that provides an easy way of authenticating users who need to access your web applications and services without having to factor complex authentication logic into your code.

In ACS sono disponibili le funzionalità seguenti:The following features are available in ACS:

  • Integrazione con Windows Identity Foundation (WIF).Integration with Windows Identity Foundation (WIF).
  • Supporto per i provider di identità Web più diffusi, tra cui Windows Live ID, Google, Yahoo! e Facebook.Support for popular web identity providers (IPs) including Windows Live ID, Google, Yahoo!, and Facebook.
  • Supporto per Active Directory Federation Services (ADFS) 2.0.Support for Active Directory Federation Services (AD FS) 2.0.
  • Un servizio di gestione basato sul protocollo OData che offre accesso programmatico alle impostazioni di ACS.An Open Data Protocol (OData)-based management service that provides programmatic access to ACS settings.
  • Un portale di gestione che consente l'accesso amministrativo alle impostazioni di ACS.A Management Portal that allows administrative access to the ACS settings.

Per altre informazioni sul servizio di controllo di accesso, vedere Servizio di controllo di accesso 2.0.For more information about ACS, see Access Control Service 2.0.

ConcettiConcepts

Il servizio ACS di Azure usa l'identità basata sulle attestazioni, un approccio coerente alla creazione di meccanismi di autenticazione per le applicazioni in esecuzione locale o nel cloud.Azure ACS is built on the principals of claims-based identity - a consistent approach to creating authentication mechanisms for applications running on-premises or in the cloud. L'identità basata sulle attestazioni offre un metodo comune che le applicazioni e i servizi possono usare per acquisire le informazioni di identità necessarie sugli utenti interni o esterni all'organizzazione oppure su Internet.Claims-based identity provides a common way for applications and services to acquire the identity information they need about users inside their organization, in other organizations, and on the Internet.

Per completare le attività in questa guida è necessario comprendere i concetti illustrati di seguito:To complete the tasks in this guide, you should understand the following concepts:

Client : nel contesto di questa guida alle procedure si tratta di un browser che tenta di ottenere l'accesso a un'applicazione Web.Client - In the context of this how-to guide, this is a browser that is attempting to gain access to your web application.

Applicazione relying party (RP) : un'applicazione relying party è un sito Web o un servizio che affida l'autenticazione a un'autorità esterna.Relying party (RP) application - An RP application is a website or service that outsources authentication to one external authority. In gergo tecnico, si dice che considera attendibile tale autorità.In identity jargon, we say that the RP trusts that authority. In questa guida viene illustrato come configurare un'applicazione per considerare attendibile ACS.This guide explains how to configure your application to trust ACS.

Token : un token è una raccolta di dati di sicurezza rilasciata quando un utente viene autenticato.Token - A token is a collection of security data that is usually issued upon successful authentication of a user. Contiene un set di attestazioni, attributi dell'utente autenticato.It contains a set of claims, attributes of the authenticated user. Un'attestazione può corrispondere al nome dell'utente, a un identificatore del ruolo svolto dall'utente, alla sua età e così via.A claim can represent a user's name, an identifier for a role a user belongs to, a user's age, and so on. I token sono di norma firmati digitalmente, pertanto è sempre possibile risalire all'emittente e non è possibile alterarne il contenuto.A token is usually digitally signed, which means it can always be sourced back to its issuer, and its content cannot be tampered with. Un utente ottiene accesso a un'applicazione relying party presentando un token valido, rilasciato da un'autorità che l'applicazione RP considera attendibile.A user gains access to a RP application by presenting a valid token issued by an authority that the RP application trusts.

Provider di identità (IP) : un provider di identità è un'autorità che autentica le identità degli utenti e rilascia token di sicurezza.Identity Provider (IP) - An IP is an authority that authenticates user identities and issues security tokens. L'effettivo rilascio di token è implementato tramite un servizio speciale denominato Servizio token di sicurezza (STS).The actual work of issuing tokens is implemented though a special service called Security Token Service (STS). Esempi tipici di provider di identità comprendono Windows Live ID, Facebook, archivi di utenti business (come Active Directory) e così via.Typical examples of IPs include Windows Live ID, Facebook, business user repositories (like Active Directory), and so on. Quando ACS viene configurato in modo da considerare attendibile un provider di identità, il sistema accetta e convalida i token rilasciati da tale provider.When ACS is configured to trust an IP, the system will accept and validate tokens issued by that IP. ACS può considerare attendibili più provider di identità contemporaneamente, quindi se un'applicazione considera attendibile ACS è possibile consentire agli utenti di eseguire l'autenticazione tramite uno qualsiasi degli IP considerati attendibili da ACS.ACS can trust multiple IPs at once, which means that when your application trusts ACS, you can instantly offer your application to all the authenticated users from all the IPs that ACS trusts on your behalf.

Provider di federazione (FP) : i provider di identità (IP) hanno una conoscenza diretta degli utenti, li autenticano usando le relative credenziali e rilasciano attestazioni sulle informazioni disponibili sugli utenti.Federation Provider (FP) - IPs have direct knowledge of users, and authenticate them using their credentials and issue claims about what they know about them. Un provider di federazione è un'autorità di tipo diverso, in quanto anziché autenticare gli utenti direttamente, funge da intermediario di autenticazione tra una relying party e uno o più indirizzi IP.A Federation Provider (FP) is a different kind of authority: rather than authenticating users directly, it acts as an intermediary and brokers authentication between one RP and one or more IPs. Provider di identità e provider di federazione rilasciano token di sicurezza, quindi usano entrambi il Servizio token di sicurezza (STS).Both IPs and FPs issue security tokens, hence they both use Security Token Services (STS). ACS è un provider di federazione.ACS is one FP.

Motore di regole ACS : la logica adottata per trasformare i token in ingresso da IP attendibili a token destinati all'utilizzo da parte dell'applicazione relying party è codificata sotto forma di semplici regole di trasformazione delle attestazioni.ACS Rule Engine - The logic used to transform incoming tokens from trusted IPs to tokens meant to be consumed by the RP is codified in form of simple claims transformation rules. ACS è dotato di un motore di regole che applica qualsiasi logica di trasformazione specificata per la relying party.ACS features a rule engine that takes care of applying whatever transformation logic you specified for your RP.

Spazio dei nomi ACS : lo spazio dei nomi costituisce la partizione di primo livello di ACS da usare per organizzare le impostazioni.ACS Namespace - A namespace is a top level partition of ACS that you use for organizing your settings. Lo spazio dei nomi contiene un elenco di provider di identità attendibili, le applicazioni RP da servire, le regole con cui il motore delle regole elaborerà i token in arrivo e così via.A namespace holds a list of IPs you trust, the RP applications you want to serve, the rules that you expect the rule engine to process incoming tokens with, and so on. Lo spazio dei nomi espone vari endpoint che verranno usati dall'applicazione e dallo sviluppatore affinché ACS svolga la sua funzione.A namespace exposes various endpoints that will be used by the application and the developer to get ACS to perform its function.

Nella figura seguente viene illustrato il funzionamento dell'autenticazione ACS con un'applicazione Web:The following figure shows how ACS authentication works with a web application:

Diagramma di flusso di ACS

  1. Il client, in questo caso un browser, richiede una pagina dalla relying party.The client (in this case a browser) requests a page from the RP.
  2. Poiché la richiesta non è stata ancora autenticata, l'applicazione RP reindirizza l'utente all'autorità che considera attendibile, ovvero ACS.Since the request is not yet authenticated, the RP redirects the user to the authority that it trusts, which is ACS. ACS presenta all'utente l'elenco dei provider di identità specificati per questa applicazione RP.The ACS presents the user with the choice of IPs that were specified for this RP. L'utente seleziona il provider di identità appropriato.The user selects the appropriate IP.
  3. Il client passa alla pagina di autenticazione del provider di identità e chiede all'utente di eseguire l'accesso.The client browses to the IP's authentication page, and prompts the user to log on.
  4. Dopo l'autenticazione del client, ad esempio dopo l'immissione delle credenziali di identità, il provider di identità rilascia un token di sicurezza.After the client is authenticated (for example, the identity credentials are entered), the IP issues a security token.
  5. Dopo il rilascio del token di sicurezza, il provider di identità reindirizza il client ad ACS e il client invia ad ACS il token di sicurezza rilasciato dal provider di identità.After issuing a security token, the IP redirects the client to ACS and the client sends the security token issued by the IP to ACS.
  6. ACS convalida il token di sicurezza rilasciato dal provider di identità, inserisce le attestazioni di identità contenute nel motore regole ACS, calcola le attestazioni di identità di output e rilascia un nuovo token di sicurezza che contiene tali attestazioni di identità di output.ACS validates the security token issued by the IP, inputs the identity claims in this token into the ACS rules engine, calculates the output identity claims, and issues a new security token that contains these output claims.
  7. ACS reindirizza il client all'applicazione RP.ACS redirects the client to the RP. Il client invia il nuovo token di sicurezza rilasciato da ACS all'applicazione relying party.The client sends the new security token issued by ACS to the RP. L'applicazione relying party convalida la firma nel token di sicurezza rilasciato da ACS, convalida le attestazioni contenute nel token e restituisce la pagina richiesta.The RP validates the signature on the security token issued by ACS, validates the claims in this token, and returns the page that was originally requested.

PrerequisitiPrerequisites

Per completare le attività in questa guida è necessario quanto segue:To complete the tasks in this guide, you will need the following:

  • Java Developer Kit (JDK) v 1.6 o versione successiva.A Java Developer Kit (JDK), v 1.6 or later.
  • IDE Eclipse per sviluppatori Java EE, Indigo o versione successiva.Eclipse IDE for Java EE Developers, Indigo or later. È possibile scaricare il pacchetto all'indirizzo http://www.eclipse.org/downloads/.This can be downloaded from http://www.eclipse.org/downloads/.
  • La distribuzione di un server Web basato su Java o un server applicazioni, come Apache Tomcat, GlassFish, JBoss Application Server o Jetty.A distribution of a Java-based web server or application server, such as Apache Tomcat, GlassFish, JBoss Application Server, or Jetty.
  • Una sottoscrizione di Azure, che può essere ottenuta all'indirizzo http://www.microsoft.com/windowsazure/offers/.an Azure subscription, which can be acquired from http://www.microsoft.com/windowsazure/offers/.
  • Il Toolkit di Azure per Eclipse, versione di aprile 2014 o successive.The Azure Toolkit for Eclipse, April 2014 release or later. Per altre informazioni, vedere Installazione di Azure Toolkit per Eclipse.For more information, see Installing the Azure Toolkit for Eclipse.
  • Un certificato X.509 da usare con l'applicazione.An X.509 certificate to use with your application. Questo certificato è necessario in entrambi i formati di certificato pubblico (.cer) e certificato di scambio di informazioni personali (.PFX).You will need this certificate in both public certificate (.cer) and Personal Information Exchange (.PFX) format. Le opzioni per la creazione di questo certificato verranno descritte più avanti in questa esercitazione.(Options for creating this certificate will be described later in this tutorial).
  • Familiarità con l'emulatore di calcolo di Azure e le tecniche di distribuzione illustrate in Creazione di un'applicazione Hello World per Azure in Eclipse.Familiarity with the Azure compute emulator and deployment techniques discussed at Creating a Hello World Application for Azure in Eclipse.

Creare uno spazio dei nomi ACSCreate an ACS Namespace

Per iniziare a usare il Servizio di controllo di accesso (ACS) in Azure, è necessario creare uno spazio dei nomi ACS.To begin using Access Control Service (ACS) in Azure, you must create an ACS namespace. Lo spazio dei nomi offre un ambito univoco per fare riferimento alle risorse di ACS dall'interno dell'applicazione.The namespace provides a unique scope for addressing ACS resources from within your application.

  1. Accedere al portale di gestione di Azure.Log into the Azure Management Portal.
  2. Fare clic su Active Directory.Click Active Directory.
  3. Per creare un nuovo spazio dei nomi di Controllo di accesso, fare clic su Nuovo, Servizi app, Controllo di accesso e quindi su Creazione rapida.To create a new Access Control namespace, click New, click App Services, click Access Control, and then click Quick Create.
  4. Immettere un nome per lo spazio dei nomi.Enter a name for the namespace. Azure verificherà che il nome sia univoco.Azure verifies that the name is unique.
  5. Selezionare l'area in cui viene usato lo spazio dei nomi.Select the region in which the namespace is used. Per prestazioni ottimali, usare l'area in cui si sta distribuendo l'applicazione.For the best performance, use the region in which you are deploying your application.
  6. Se sono disponibili più sottoscrizioni, selezionare quella che si vuole usare per lo spazio dei nomi ACS.If you have more than one subscription, select the subscription that you want to use for the ACS namespace.
  7. Fare clic su Create.Click Create.

Azure creerà e attiverà lo spazio dei nomi.Azure creates and activates the namespace. Prima di continuare, attendere che lo stato del nuovo spazio dei nomi sia Active .Wait until the status of the new namespace is Active before continuing.

Aggiunta di un provider di identitàAdd identity providers

In questa attività si aggiungeranno provider di identità da usare con l'applicazione relying party per l'autenticazione.In this task, you add IPs to use with your RP application for authentication. A scopo dimostrativo, questa attività illustra come aggiungere Windows Live come provider di identità, ma è possibile usare uno qualsiasi dei provider di identità elencati nel portale di gestione ACS.For demonstration purposes, this task shows how to add Windows Live as an IP, but you could use any of the IPs listed in the ACS Management Portal.

  1. Nel portale di gestione di Azure fare clic su Active Directory, scegliere uno spazio dei nomi di Controllo di accesso e quindi fare clic su Gestisci.In the Azure Management Portal, click Active Directory, select an Access Control namespace, and then click Manage. Verrà visualizzato il portale di gestione ACS.The ACS Management Portal opens.
  2. Nel riquadro di spostamento sinistro del portale di gestione ACS fare clic su Identity providers.In the left navigation pane of the ACS Management Portal, click Identity providers.
  3. Windows Live ID è abilitato per impostazione predefinita e non può essere eliminato.Windows Live ID is enabled by default, and cannot be deleted. Ai fini di questa esercitazione, verrà usato solo Windows Live ID.For purposes of this tutorial, only Windows Live ID is used. In questa schermata è tuttavia possibile aggiungere altri provider di identità, facendo clic sul pulsante Add .This screen, however, is where you could add other IPs, by clicking the Add button.

Windows Live ID è abilitato come provider di identità per lo spazio dei nomi ACS.Windows Live ID is now enabled as an IP for your ACS namespace. Nel passaggio successivo verrà specificata l'applicazione Web Java (che verrà creata in seguito) come applicazione relying party.Next, you specify your Java web application (to be created later) as an RP.

Aggiungere un'applicazione relying partyAdd a relying party application

In questa attività, ACS verrà configurato affinché riconosca l'applicazione Web Java come applicazione relying party valida.In this task, you configure ACS to recognize your Java web application as a valid RP application.

  1. Nel portale di gestione ACS fare clic su Relying party applications.On the ACS Management Portal, click Relying party applications.
  2. Nella pagina Relying Party Applications (Applicazioni relying party) fare clic su Add (Aggiungi).On the Relying Party Applications page, click Add.
  3. Nella pagina Add Relying Party Application eseguire le operazioni seguenti:On the Add Relying Party Application page, do the following:

    1. Nel campo Namedigitare il nome dell'applicazione relying party.In Name, type the name of the RP. Ai fini di questa esercitazione, digitare Azure Web App.For purposes of this tutorial, type Azure Web App.
    2. In Mode (Modalità) selezionare Enter settings manually (Immettere le informazioni manualmente).In Mode, select Enter settings manually.
    3. In Realmdigitare l'URI cui si riferisce il token di sicurezza rilasciato da ACS.In Realm, type the URI to which the security token issued by ACS applies. Per questa attività digitare http://localhost:8080/.For this task, type http://localhost:8080/. Area di autenticazione dell'applicazione relying party nell'emulatore di calcoloRelying party realm for use in compute emulator
    4. In Return URL digitare l'URL a cui ACS restituisce il token di sicurezza.In Return URL, type the URL to which ACS returns the security token. Per questa attività, digitare http://localhost:8080/MyACSHelloWorld/index.jsp URL restituito dell'applicazione relying party nell'emulatore di calcoloFor this task, type http://localhost:8080/MyACSHelloWorld/index.jsp Relying party return URL for use in compute emulator
    5. Accettare i valori predefiniti nei campi rimanenti.Accept the default values in the rest of the fields.
  4. Fare clic su Salva.Click Save.

L'applicazione Web Java è configurata correttamente quando viene eseguita nell'emulatore di calcolo di Azure (all'indirizzo http://localhost:8080/) e costituisce un'applicazione relying party nello spazio dei nomi ACS.You have now successfully configured your Java web application when it is run in the Azure compute emulator (at http://localhost:8080/) to be an RP in your ACS namespace. Il passaggio successivo prevede la creazione di regole usate da ACS per elaborare attestazioni per l'applicazione relying party.Next, create the rules that ACS uses to process claims for the RP.

Creazione di regoleCreate rules

In questa attività verranno definite le regole in base alle quali le attestazioni vengono passate dai provider di identità all'applicazione relying party.In this task, you define the rules that drive how claims are passed from IPs to your RP. Ai fini di questa guida, ACS verrà semplicemente configurato per copiare i tipi di attestazione e i valori in ingresso direttamente nella categoria token di output senza filtrarli o modificarli.For the purpose of this guide, we will simply configure ACS to copy the input claim types and values directly in the output token, without filtering or modifying them.

  1. Nella pagina principale del portale di gestione ACS fare clic su Rule groups.On the ACS Management Portal main page, click Rule groups.
  2. Nella pagina Rule groups (Gruppi di regole) fare clic su Default Rule Group for Azure Web App (Gruppo di regole predefinito per app Web di Azure).On the Rule Groups page, click Default Rule Group for Azure Web App.
  3. Nella pagina Edit Rule Group (Modifica gruppo di regole) fare clic su Generate (Genera).On the Edit Rule Group page, click Generate.
  4. Nella pagina Generate Rules: Default Rule Group for Azure Web App (Generazione regole: gruppo di regole predefinito per app Web di Azure) assicurarsi che l'opzione Windows Live ID sia selezionata e quindi fare clic su Generate (Genera).On the Generate Rules: Default Rule Group for Azure Web App page, ensure Windows Live ID is checked and then click Generate.
  5. Nella pagina Edit Rule Group (Modifica gruppo di regole) fare clic su Save (Salva).On the Edit Rule Group page, click Save.

Caricamento di un certificato nello spazio dei nomi ACSUpload a certificate to your ACS namespace

In questa attività verrà caricato un certificato .PFX che verrà utilizzato per firmare le richieste di token create dallo spazio dei nomi ACS.In this task, you upload a .PFX certificate that will be used to sign token requests created by your ACS namespace.

  1. Nella pagina principale del portale di gestione ACS fare clic su Certificates and keys.On the ACS Management Portal main page, click Certificates and keys.
  2. Nella pagina Certificates and keys (Chiavi e certificati) fare clic su Add (Aggiungi) sopra Token Signing (Firma di token).On the Certificates and Keys page, click Add above Token Signing.
  3. Nella pagina Add Token-Signing Certificate or Key :On the Add Token-Signing Certificate or Key page:
    1. Nella sezione Used for (Usato per) fare clic su Relying Party Application (Applicazione relying party) e selezionare Azure Web App (App Web di Azure), impostato in precedenza come nome dell'applicazione relying party.In the Used for section, click Relying Party Application and select Azure Web App (which you previously set as the name of your relying party application).
    2. Nella sezione Type (Tipo) selezionare X.509 Certificate (Certificato X.509).In the Type section, select X.509 Certificate.
    3. Nella sezione Certificate fare clic sul pulsante Browse e passare al file del certificato X.509 che si intende usare.In the Certificate section, click the browse button and navigate to the X.509 certificate file that you want to use. Si tratta di un file .PFX.This will be a .PFX file. Selezionare il file, fare clic su Open (Apri) e quindi immettere la password del certificato nella casella di testo Password.Select the file, click Open, and then enter the certificate password in the Password text box. Si noti che a fini di test è possibile utilizzare un certificato autofirmato.Note that for testing purposes, you may use a self-signed-certificate. Per creare un certificato autofirmato, fare clic sul pulsante New (Nuovo) nella finestra di dialogo ACS Filter Library (Libreria di filtri ACS) illustrata più avanti oppure usare l'utilità encutil.exe dal sito Web del progetto di Azure Starter Kit per Java.To create a self-signed certificate, use the New button in the ACS Filter Library dialog (described later), or use the encutil.exe utility from the project website of the Azure Starter Kit for Java.
    4. Assicurarsi che Make Primary sia selezionato.Ensure that Make Primary is checked. La pagina Add Token-Signing Certificate or Key dovrebbe essere simile alla seguente.Your Add Token-Signing Certificate or Key page should look similar to the following. Aggiungere un certificato di firma di tokenAdd token-signing certificate
    5. Fare clic su Save (Salva) per salvare le impostazioni e chiudere la pagina Add Token-Signing Certificate or Key (Aggiungi certificato o chiave di firma token).Click Save to save your settings and close the Add Token-Signing Certificate or Key page.

A questo punto, rivedere le informazioni nella pagina di integrazione applicazioni e copiare l'URI necessario per configurare l'applicazione Web Java per l'uso di ACS.Next, review the information in the Application Integration page and copy the URI that you will need to configure your Java web application to use ACS.

Rivedere la pagina di integrazione applicazioniReview the Application Integration page

Nella pagina di integrazione applicazioni del portale di gestione ACS è possibile trovare tutte le informazioni e il codice necessario per configurare l'applicazione Web Java (applicazione relying party) in modo che funzioni con ACS.You can find all the information and the code necessary to configure your Java web application (the RP application) to work with ACS on the Application Integration page of the ACS Management Portal. Queste informazioni sono necessarie per la configurazione dell'applicazione Web Java per l'autenticazione federata.You will need this information when configuring your Java web application for federated authentication.

  1. Nel portale di gestione ACS fare clic su Application integration.On the ACS Management Portal, click Application integration.
  2. Nella pagina Application Integration (Integrazione applicazioni) fare clic su Login Pages (Pagine di accesso).In the Application Integration page, click Login Pages.
  3. Nella pagina Login Page Integration (Integrazione pagine di accesso) fare clic su Azure Web App (App Web di Azure).In the Login Page Integration page, click Azure Web App.

Nella pagina Login Page Integration: Azure Web App (Integrazione pagine di accesso: App Web di Azure), per l'applicazione Web Java verrà usato l'URL visualizzato in Option 1: Link to an ACS-hosted login page (Opzione 1: Collegamento a una pagina di accesso ospitata in ACS).In the Login Page Integration: Azure Web App page, the URL listed in Option 1: Link to an ACS-hosted login page will be used in your Java web application. Questo valore è necessario per aggiungere la libreria dei filtri dei Servizi di controllo di accesso di Azure all'applicazione Java.You will need this value when you add the Azure Access Control Services Filter library to your Java application.

Creazione di un'applicazione Web JavaCreate a Java web application

  1. Nel menu di Eclipse fare clic su File, New (Nuovo) e quindi su Dynamic Web Project (Progetto Web dinamico).Within Eclipse, at the menu click File, click New, and then click Dynamic Web Project. Se Dynamic Web Project (Progetto Web dinamico) non è elencato tra i progetti disponibili dopo aver fatto clic su File, New (Nuovo), fare clic su File, New (Nuovo), Project (Progetto), espandere Web, fare clic su Dynamic Web Project (Progetto Web dinamico) e su Next (Avanti). Ai fini di questa esercitazione, denominare il progetto MyACSHelloWorld.(If you don't see Dynamic Web Project listed as an available project after clicking File, New, then do the following: click File, click New, click Project, expand Web, click Dynamic Web Project, and click Next.) For purposes of this tutorial, name the project MyACSHelloWorld. Assicurarsi di usare questo nome, poiché i passaggi successivi dell'esercitazione prevedono che il file WAR sia denominato MyACSHelloWorld.(Ensure you use this name, subsequent steps in this tutorial expect your WAR file to be named MyACSHelloWorld). L'aspetto della schermata sarà simile al seguente:Your screen will appear similar to the following:

    Creazione di un progetto Hello World a titolo di esempio per ACS

    Fare clic su Finish.Click Finish.

  2. Nella visualizzazione Project Explorer di Eclipse espandere MyACSHelloWorld.Within Eclipse's Project Explorer view, expand MyACSHelloWorld. Fare clic con il pulsante destro del mouse su WebContent, scegliere New e quindi fare clic su JSP File.Right-click WebContent, click New, and then click JSP File.
  3. Nella finestra di dialogo New JSP File (Nuovo file JSP) assegnare al file il nome index.jsp.In the New JSP File dialog, name the file index.jsp. Mantenere il nome MyACSHelloWorld/WebContent per la cartella padre, come illustrato di seguito:Keep the parent folder as MyACSHelloWorld/WebContent, as shown in the following:

    Aggiunta di un file JSP a titolo di esempio per ACS

    Fare clic su Avanti.Click Next.

  4. Nella finestra di dialogo Select JSP Template (Seleziona modello JSP) selezionare New JSP File (html) (Nuovo file JSP (html)) e fare clic su Finish (Fine).In the Select JSP Template dialog, select New JSP File (html) and click Finish.
  5. Quando in Eclipse viene aperto il file index.jsp, aggiungere il testo in modo da visualizzare Hello ACS World!When the index.jsp file opens in Eclipse, add in text to display Hello ACS World! all'interno dell'elemento <body> esistente.within the existing <body> element. Il contenuto <body> aggiornato risulterà simile al seguente:Your updated <body> content should appear as the following:

     <body>
       <b><% out.println("Hello ACS World!"); %></b>
     </body>
    

    Salvare index.jsp.Save index.jsp.

Aggiungere una libreria di filtri ACS all'applicazioneAdd the ACS Filter library to your application

  1. In Project Explorer di Eclipse fare clic con il pulsante destro del mouse su MyACSHelloWorld, scegliere Build Path (Percorso di compilazione) e quindi fare clic su Configure Build Path (Configura il percorso di compilazione).In Eclipse's Project Explorer, right-click MyACSHelloWorld, click Build Path, and then click Configure Build Path.
  2. Nella finestra di dialogo Java Build Path (Percorso compilazione Java) fare clic sulla scheda Libraries (Librerie).In the Java Build Path dialog, click the Libraries tab.
  3. Fare clic su Add Library.Click Add Library.
  4. Fare clic su Azure Access Control Services Filter (by MS Open Tech) (Filtro servizi di controllo di accesso di Azure - di MS Open Tech) e quindi su Next (Avanti).Click Azure Access Control Services Filter (by MS Open Tech) and then click Next. Verrà visualizzata la finestra di dialogo Azure Access Control Services Filter .The Azure Access Control Services Filter dialog is displayed. Il campo Location può avere un percorso diverso, a seconda del percorso in cui è stato installato Eclipse e il numero della versione potrebbe variare a seconda degli aggiornamenti del software.(The Location field may have a different path, depending on where you installed Eclipse, and the version number could be different, depending on software updates.)

    Aggiunta di una libreria di filtri ACS

  5. Con il browser aperto alla pagina Login Page Integration (Integrazione pagine di accesso) del portale di gestione, copiare l'URL riportato nel campo Option 1: Link to an ACS-hosted login page (Opzione 1: Collegamento a una pagina di accesso ospitata in ACS) e incollarlo nel campo ACS Authentication Endpoint (Endpoint di autenticazione ACS) della finestra di dialogo di Eclipse.Using a browser opened to the Login Page Integration page of the Management Portal, copy the URL listed in the Option 1: Link to an ACS-hosted login page field and paste it into the ACS Authentication Endpoint field of the Eclipse dialog.
  6. Con il browser aperto alla pagina Edit Relying Party Application (Modifica applicazione relying party) del portale di gestione, copiare l'URL riportato nel campo Realm (Area autenticazione) e incollarlo nel campo Relying Party Realm (Area autenticazione relying party) della finestra di dialogo di Eclipse.Using a browser opened to the Edit Relying Party Application page of the Management Portal, copy the URL listed in the Realm field and paste it into the Relying Party Realm field of the Eclipse dialog.
  7. Per usare un certificato esistente, nella sezione Security (Sicurezza) della finestra di dialogo di Eclipse fare clic su Browse (Sfoglia), passare al certificato che si intende usare, selezionarlo e fare clic su Open (Apri).Within the Security section of the Eclipse dialog, if you want to use an existing certificate, click Browse, navigate to the certificate you want to use, select it, and click Open. In caso contrario, se si intende creare un certificato nuovo, fare clic su New (Nuovo) per visualizzare la finestra di dialogo New Certificate (Nuovo certificato) e quindi specificare la password, il nome del file CER e il nome del file PFX per il nuovo certificato.Or, if you want to create a new certificate, click New to display the New Certificate dialog, then specify the password, name of the .cer file, and name of the .pfx file for the new certificate.
  8. Selezionare Embed the certificate in the WAR file.Check Embed the certificate in the WAR file. Quando si incorpora il certificato in questo modo, viene incluso nella distribuzione senza che sia necessario aggiungerlo manualmente come un componente.Embedding the certificate in this manner includes it in your deployment without requiring you to manually add it as a component. Se invece è necessario archiviare il certificato all'esterno del file WAR, è possibile aggiungere il certificato come componente del ruolo e deselezionare Embed the certificate in the WAR file.(If instead you must store your certificate externally from your WAR file, you could add the certificate as a role component and uncheck Embed the certificate in the WAR file.)
  9. [Facoltativo] Mantenere l'opzione Require HTTPS connections selezionata.[Optional] Keep Require HTTPS connections checked. Se viene visualizzata questa opzione, è necessario accedere all'applicazione utilizzando il protocollo HTTPS.If you set this option, you'll need to access your application using the HTTPS protocol. Se non si desidera richiedere connessioni HTTPS, deselezionare questa opzione.If you don't want to require HTTPS connections, uncheck this option.
  10. Per la distribuzione nell'emulatore di calcolo, le impostazioni di Azure ACS Filter avranno un aspetto simile a quanto illustrato di seguito.For a deployment to the compute emulator, your Azure ACS Filter settings will look similar to the following.

    Impostazioni del filtro ACS di Azure per una distribuzione nell'emulatore di calcolo.

  11. Fare clic su Finish.Click Finish.
  12. Fare clic su Yes nella finestra di dialogo che conferma la creazione di un file web.xml.Click Yes when presented with with a dialog box stating that a web.xml file will be created.
  13. Fare clic su OK per chiudere la finestra di dialogo Java Build Path (Percorso compilazione Java).Click OK to close the Java Build Path dialog.

Distribuire l'emulatore di calcoloDeploy to the compute emulator

  1. In Project Explorer di Eclipse fare clic con il pulsante destro del mouse su MyACSHelloWorld, scegliere Azure e quindi fare clic su Package for Azure (Pacchetto per Azure).In Eclipse's Project Explorer, right-click MyACSHelloWorld, click Azure, and then click Package for Azure.
  2. In Project name (Nome progetto) digitare MyAzureACSProject e fare clic su Next (Avanti).For Project name, type MyAzureACSProject and click Next.
  3. Selezionare un JDK e un server applicazioni.Select a JDK and application server. Questi passaggi vengono descritti in dettaglio nell'esercitazione Creazione di un'applicazione Hello World per Azure in Eclipse .(These steps are covered in detail in the Creating a Hello World Application for Azure in Eclipse tutorial).
  4. Fare clic su Finish.Click Finish.
  5. Fare clic sul pulsante Run in Azure Emulator .Click the Run in Azure Emulator button.
  6. Dopo l'avvio dell'applicazione Web Java nell'emulatore di calcolo, chiudere tutte le istanze del browser (per evitare che sessioni correnti del browser interferiscano con il test di accesso di ACS.After your Java web application starts in the compute emulator, close all instances of your browser (so that any current browser sessions do not interfere with your ACS login test).
  7. Eseguire l'applicazione aprendo nel browser http://localhost:8080/MyACSHelloWorld/ o https://localhost:8080/MyACSHelloWorld/, se è stata selezionata l'opzione Require HTTPS connections (Richiedi connessioni HTTPS).Run your application by opening http://localhost:8080/MyACSHelloWorld/ in your browser (or https://localhost:8080/MyACSHelloWorld/ if you checked Require HTTPS connections). Verrà richiesto di immettere un account di accesso Windows Live ID, quindi si verrà reindirizzati all'URL restituito specificato per l'applicazione relying party.You should be prompted for a Windows Live ID login, then you should be taken to the return URL specified for your relying party application.
  8. Terminata la visualizzazione dell'applicazione, fare clic sul pulsante Reset Azure Emulator .When you have finished viewing your application, click the Reset Azure Emulator button.

Distribuzione in AzureDeploy to Azure

Per la distribuzione in Azure è necessario modificare l'area di autenticazione dell'applicazione relying party e dell'URL restituito per lo spazio dei nomi ACS.To deploy to Azure, you'll need to change the relying party realm and return URL for your ACS namespace.

  1. Nella pagina Edit Relying Party Application (Modifica applicazione relying party) del portale di gestione di Azure modificare Realm (Area autenticazione) per far sì che corrisponda all'URL del sito distribuito.Within the Azure Management Portal, in the Edit Relying Party Application page, modify Realm to be the URL of your deployed site. Sostituire example con il nome DNS specificato per la distribuzione.Replace example with the DNS name you specified for your deployment.

    Area di autenticazione dell'applicazione relying party da utilizzare in produzione

  2. Modificare Return URL affinché corrisponda all'URL dell'applicazione.Modify Return URL to be the URL of your application. Sostituire example con il nome DNS specificato per la distribuzione.Replace example with the DNS name you specified for your deployment.

    URL restituito dell'applicazione relying party da usare in produzione

  3. Fare clic su Save per salvare le modifiche apportate all'area di autenticazione dell'applicazione relying party e all'URL restituito.Click Save to save your updated replying party realm and return URL changes.
  4. Tenere aperta la pagina Login Page Integration nel browser poiché in seguito verrà richiesto di copiare alcuni dati.Keep the Login Page Integration page open in your browser, you'll need to copy from it shortly.
  5. In Project Explorer di Eclipse fare clic con il pulsante destro del mouse su MyACSHelloWorld, scegliere Build Path (Percorso di compilazione) e quindi fare clic su Configure Build Path (Configura il percorso di compilazione).In Eclipse's Project Explorer, right-click MyACSHelloWorld, click Build Path, and then click Configure Build Path.
  6. Fare clic sulla scheda Libraries (Librerie), su Azure Access Control Services Filter (Filtro servizi di controllo di accesso di Azure ) e quindi su Edit (Modifica).Click the Libraries tab, click Azure Access Control Services Filter, and then click Edit.
  7. Con il browser aperto alla pagina Login Page Integration (Integrazione pagine di accesso) del portale di gestione, copiare l'URL riportato nel campo Option 1: Link to an ACS-hosted login page (Opzione 1: Collegamento a una pagina di accesso ospitata in ACS) e incollarlo nel campo ACS Authentication Endpoint (Endpoint di autenticazione ACS) della finestra di dialogo di Eclipse.Using a browser opened to the Login Page Integration page of the Management Portal, copy the URL listed in the Option 1: Link to an ACS-hosted login page field and paste it into the ACS Authentication Endpoint field of the Eclipse dialog.
  8. Con il browser aperto alla pagina Edit Relying Party Application (Modifica applicazione relying party) del portale di gestione, copiare l'URL riportato nel campo Realm (Area autenticazione) e incollarlo nel campo Relying Party Realm (Area autenticazione relying party) della finestra di dialogo di Eclipse.Using a browser opened to the Edit Relying Party Application page of the Management Portal, copy the URL listed in the Realm field and paste it into the Relying Party Realm field of the Eclipse dialog.
  9. Per usare un certificato esistente, nella sezione Security (Sicurezza) della finestra di dialogo di Eclipse fare clic su Browse (Sfoglia), passare al certificato che si intende usare, selezionarlo e fare clic su Open (Apri).Within the Security section of the Eclipse dialog, if you want to use an existing certificate, click Browse, navigate to the certificate you want to use, select it, and click Open. In caso contrario, se si intende creare un certificato nuovo, fare clic su New (Nuovo) per visualizzare la finestra di dialogo New Certificate (Nuovo certificato) e quindi specificare la password, il nome del file CER e il nome del file PFX per il nuovo certificato.Or, if you want to create a new certificate, click New to display the New Certificate dialog, then specify the password, name of the .cer file, and name of the .pfx file for the new certificate.
  10. Mantenere l'opzione Embed the certificate in the WAR file selezionata, nel caso in cui si intenda incorporare il certificato nel file WAR.Keep Embed the certificate in the WAR file checked, assuming you want to embed the certificate in the WAR file.
  11. [Facoltativo] Mantenere l'opzione Require HTTPS connections selezionata.[Optional] Keep Require HTTPS connections checked. Se viene visualizzata questa opzione, è necessario accedere all'applicazione utilizzando il protocollo HTTPS.If you set this option, you'll need to access your application using the HTTPS protocol. Se non si desidera richiedere connessioni HTTPS, deselezionare questa opzione.If you don't want to require HTTPS connections, uncheck this option.
  12. Per la distribuzione in Azure, le impostazioni del filtro ACS di Azure avranno un aspetto simile a quelle illustrate di seguito.For a deployment to Azure, your Azure ACS Filter settings will look similar to the following.

    Impostazioni del filtro ACS di Azure per la distribuzione in produzione

  13. Fare clic su Finish (Fine) per chiudere la finestra di dialogo Edit Library (Modifica libreria).Click Finish to close the Edit Library dialog.
  14. Fare clic su OK per chiudere la finestra di dialogo Properties for MyACSHelloWorld (Proprietà per MyACSHelloWorld).Click OK to close the Properties for MyACSHelloWorld dialog.
  15. In Eclipse fare clic sul pulsante Publish to Azure Cloud .In Eclipse, click the Publish to Azure Cloud button. Rispondere alle richieste visualizzate, come nella sezione Per distribuire l'applicazione in Azure dell'argomento Creazione di un'applicazione Hello World per Azure in Eclipse .Respond to the prompts, similar as done in the To deploy your application to Azure section of the Creating a Hello World Application for Azure in Eclipse topic.

Dopo la distribuzione dell'applicazione Web, chiudere le sessioni del browser aperte ed eseguire l'applicazione Web. Verrà richiesto di accedere con le credenziali di Windows Live ID e si verrà reindirizzati all'URL restituito dell'applicazione relying party.After your web application has been deployed, close any open browser sessions, run your web application, and you should be prompted to sign in with Windows Live ID credentials, followed by being sent to the return URL of your relying party application.

Al termine dell'utilizzo dell'applicazione ACS Hello World, ricordare di eliminare la distribuzione (per ulteriori informazioni sull'eliminazione di una distribuzione, vedere l'esercitazione Creazione di un'applicazione Hello World per Azure in Eclipse ).When you are done using your ACS Hello World application, remember to delete the deployment (you can learn how to delete a deployment in the Creating a Hello World Application for Azure in Eclipse topic).

Passaggi successiviNext steps

Per un esame del linguaggio Security Assertion Markup Language (SAML) restituito da ACS all'applicazione, vedere Come visualizzare il codice SAML restituito dal Servizio di controllo di accesso di Azure.For an examination of the Security Assertion Markup Language (SAML) returned by ACS to your application, see How to view SAML returned by the Azure Access Control Service. Per continuare a esplorare le funzionalità di ACS ed esercitarsi con scenari più complessi, vedere Servizio di controllo di accesso 2.0.To further explore ACS's functionality and to experiment with more sophisticated scenarios, see Access Control Service 2.0.

In questo esempio è stata usata l'opzione Embed the certificate in the WAR file .Also, this example used the Embed the certificate in the WAR file option. Questa opzione semplifica la distribuzione del certificato.This option makes it simple to deploy the certificate. Se invece si desidera mantenere il certificato di firma separato dal file WAR, è possibile applicare la tecnica seguente:If instead you want to keep your signing certificate separate from your WAR file, you can use the following technique:

  1. Nella sezione Security (Sicurezza) della finestra di dialogo Azure Access Control Services Filter (Filtro servizi di controllo di accesso di Azure) digitare ${env.JAVA_HOME}/mycert.cer e deselezionare Embed the certificate in the WAR file (Incorpora il certificato nel file WAR).Within the Security section of the Azure Access Control Services Filter dialog, type ${env.JAVA_HOME}/mycert.cer and uncheck Embed the certificate in the WAR file. Se il nome del certificato in uso è diverso, modificare il nome del file mycert.cer di conseguenza. Fare clic su Finish (Fine) per chiudere la finestra di dialogo.(Adjust mycert.cer if your certificate file name is different.) Click Finish to close the dialog.
  2. Copiare il certificato come componente nella distribuzione: in Project Explorer di Eclipse espandere MyAzureACSProject, fare clic con il pulsante destro del mouse su WorkerRole1, scegliere Properties (Proprietà), espandere Azure Role (Ruolo di Azure), quindi fare clic su Components (Componenti).Copy the certificate as a component in your deployment: In Eclipse's Project Explorer, expand MyAzureACSProject, right-click WorkerRole1, click Properties, expand Azure Role, and click Components.
  3. Fare clic su Aggiungi.Click Add.
  4. Nella finestra di dialogo Add Component :Within the Add Component dialog:

    1. Nella sezione Import :In the Import section:
      1. usare il pulsante File per passare al certificato che si intende usare.Use the File button to navigate to the certificate you want to use.
      2. In Method (Metodo) selezionare copy (Copia).For Method, select copy.
    2. In As Namefare clic sulla casella di testo e accettare il nome predefinito.For As Name, click on the text box and accept the default name.
    3. Nella sezione Deploy :In the Deploy section:
      1. In Method (Metodo) selezionare copy (Copia).For Method, select copy.
      2. In To directory (Directory di destinazione) digitare %JAVA_HOME%.For To directory, type %JAVA_HOME%.
    4. La finestra di dialogo Add Component avrà un aspetto analogo al seguente:Your Add Component dialog should look similar to the following.

      Aggiunta di un componente certificato

    5. Fare clic su OK.Click OK.

A questo punto, il certificato verrà incluso nella distribuzione.At this point, your certificate would be included in your deployment. Si noti che a prescindere dal fatto che il certificato sia incorporato nel file WAR o aggiunto alla distribuzione come componente, è necessario caricare il certificato nello spazio dei nomi come descritto nella sezione Caricamento di un certificato nello spazio dei nomi ACS.Note that regardless of whether you embed the certificate in the WAR file or add it as a component to your deployment, you need to upload the certificate to your namespace as described in the Upload a certificate to your ACS namespace section.