Condividi tramite


Esempio di federazione

L'esempio di federazione illustra la sicurezza federata.

Dettagli di esempio

Windows Communication Foundation (WCF) fornisce supporto per la distribuzione di architetture di sicurezza federate tramite wsFederationHttpBinding. wsFederationHttpBinding fornisce un'associazione sicura, affidabile e interoperativa che implica l'uso di HTTP come meccanismo di trasporto sottostante per la comunicazione di richiesta/risposta e Text/XML come formato di trasmissione per la codifica. Per altre informazioni sulla federazione in WCF, vedere Federazione.

Lo scenario è costituito da 4 pezzi:

  • Servizio BookStore

  • Servizio token di sicurezza bookstore

  • HomeRealm STS

  • BookStore Client

Il servizio BookStore supporta due operazioni, BrowseBooks e BuyBook. Consente l'accesso anonimo all'operazione BrowseBooks , ma richiede l'accesso autenticato per accedere all'operazione BuyBooks . L'autenticazione ha la forma di un token emesso dal BookStore STS. Il file di configurazione per il servizio BookStore indirizza i client al servizio STS del BookStore usando wsFederationHttpBinding.

<wsFederationHttpBinding>
<!-- This is the Service binding for the BuyBooks endpoint. It redirects clients to the BookStore STS -->
    <binding name='BuyBookBinding'>
        <security mode="Message">
            <message>
                <issuerMetadata
  address='http://localhost/FederationSample/BookStoreSTS/STS.svc/mex' >
                    <identity>
                        <dns value ='BookStoreSTS.com'/>
                    </identity>
                </issuerMetadata>
            </message>
        </security>
    </binding>
</wsFederationHttpBinding>

Il BookStore STS richiede quindi che i client eseguano l'autenticazione usando un token rilasciato dall'HomeRealm STS. Anche in questo caso, il file di configurazione per il BookStore STS punta i client al HomeRealm STS usando wsFederationHttpBinding.

<wsFederationHttpBinding>
 <!-- This is the binding for the clients requesting tokens from this STS. It redirects clients to the HomeRealm STS -->
    <binding name='BookStoreSTSBinding'>
        <security mode='Message'>
            <message>
                <issuerMetadata
address='http://localhost/FederationSample/HomeRealmSTS/STS.svc/mex' >
                    <identity>
                        <dns value ='HomeRealmSTS.com' />
                    </identity>
                </issuerMetadata>
            </message>
        </security>
    </binding>
</wsFederationHttpBinding>

La sequenza di eventi durante l'accesso all'operazione BuyBook è la seguente:

  1. Il client esegue l'autenticazione al servizio token di sicurezza HomeRealm usando le credenziali di Windows.

  2. Il servizio token di sicurezza HomeRealm rilascia un token che può essere usato per eseguire l'autenticazione al BookStore STS.

  3. Il client si autentica al BookStore STS usando il token rilasciato dall'HomeRealm STS.

  4. Il BookStore STS emette un token che può essere usato per autenticarsi al servizio BookStore.

  5. Il client si autentica al servizio BookStore utilizzando il token emesso dal BookStore STS.

  6. Il client accede all'operazione BuyBook .

Vedere le istruzioni seguenti su come configurare ed eseguire questo esempio.

Annotazioni

Per eseguire questo esempio, è necessario disporre delle autorizzazioni di scrittura per la directory wwwroot .

Per configurare, compilare ed eseguire l'esempio

  1. Aprire la finestra di comando dell'SDK. Nel percorso di esempio eseguire Setup.bat. In questo modo vengono create le directory virtuali necessarie per l'esempio e vengono installati i certificati necessari con le autorizzazioni appropriate.

    Annotazioni

    Il Setup.bat file batch è progettato per l'esecuzione da un prompt dei comandi di Windows SDK. Richiede che la variabile di ambiente MSSDK punti alla directory in cui è installato l'SDK. Questa variabile di ambiente viene impostata automaticamente all'interno di un prompt dei comandi di Windows SDK. In Windows Vista è necessario assicurarsi che la compatibilità della gestione IIS 6.0 sia installata perché la configurazione usa script di amministratore IIS. L'esecuzione dello script di configurazione in Windows Vista richiede privilegi di amministratore.

  2. Aprire FederationSample.sln in Visual Studio e selezionare Compila soluzione dal menu Compila . Vengono compilati i file progetto comuni, il servizio Bookstore, il Bookstore STS, l'HomeRealm STS e li distribuiscono su IIS. Questa operazione compila anche l'applicazione Client Bookstore e inserisce l'eseguibile BookStoreClient.exe nella cartella FederationSample\BookStoreClient\bin\Debug.

  3. Fare doppio clic su BookStoreClient.exe. Viene visualizzata la finestra BookStoreClient.

  4. È possibile sfogliare i libri disponibili nel bookstore facendo clic su Sfoglia libri.

  5. Per acquistare un libro specifico, selezionare il libro nell'elenco e fare clic su Acquista libro. L'applicazione viene avviata e autenticata usando l'autenticazione di Windows con il servizio token di sicurezza HomeRealm.

    L'esempio è configurato per consentire agli utenti di acquistare libri che costano $ 15 o meno. Se si tenta di acquistare libri che costano più di $15, il client riceve un messaggio di accesso negato dal servizio Book Store.

    Annotazioni

    L'esempio non aggiorna il limite di credito dell'utente dopo un acquisto. È possibile acquistare ripetutamente libri entro il limite di credito fisso dell'utente.

Per pulire

Eseguire Cleanup.bat. In questo modo vengono eliminate le directory virtuali create durante la configurazione e vengono rimossi anche i certificati installati durante l'installazione.