Creazione di schede gestite

Download sample

Una scheda gestita è una scheda informazioni emessa da un provider di identità. Essa contiene:

  • Informazioni dettagliate sull'entità che emette la scheda:

  • Nome della scheda.

  • Certificato.

  • Endpoint del Servizio token di protezione e del MEX (Metadata Exchange).

  • Un'immagine visualizzata sulla scheda.

  • L'elenco di attestazioni sull'utente avvalorate dal provider di identità.

  • Informazioni sul’autenticazione dell’utente con il servizio token di protezione del provider di identità per avere la scheda informazioni popolata con i valori di attestazione obbligatori. Questo fattore di autenticazione può essere nella forma di certificato, token Kerberos, scheda autocertificata o, in alcuni casi, una coppia di nome utente/password.

    Nota

    Per creare schede da utilizzare con CardSpace, il provider di identità deve generare un file XML firmato contenente i dati della scheda. Questa scheda informazioni è denominata con un file con estensione CRD.

Per utilizzare questo esempio, è necessario configurare il sito Web. La configurazione viene eseguita utilizzando il file batch di installazione fornito nella cartella di esempio:

Setup.bat

Per ulteriori informazioni sull’installazione del sito Web e sulla risoluzione dei problemi, vedere Installazione dei certificati di esempio di CardSpace.

Compilazione del writer della scheda

Il codice sorgente del writer della scheda si trova nella Cartella CardWriter (in C#).

ManagedCardWriter.cs

Il codice sorgente del writer della scheda si trova nella Cartella CardWriter (in VB.NET):

ManagedCardWriter.vb

Caricare il file di progetto (CardWriter.csproj) in Visual Studio 2005 e compilarlo o utilizzare msbuild dalla riga di comando (dove è stato decompresso l’esempio).

msbuild /nologo /v:quiet CardWriter\CardWriter.csproj

In questo modo il writer della scheda viene compilato nella cartella \bin che a questo punto può essere eseguita dalla riga di comando.

bin\cardwriter.exe
Usage:
    ManagedCardWriter carddetails.ini [outputfilename.crd]

Utilizzo del writer della scheda

Il writer della scheda utilizza un file INI come input per la generazione di un file con estensione CRD.

bin\cardwriter.exe SampleCards\FabrikamUP.ini
Reading card config from
   <install path >\FabrikamUP.ini
Card written to
   <install path>\SampleCards\FabrikamUP.crd

Nota

La scheda di output è posizionata nella stessa directory del file INI di origine.

Informazioni sui dati della scheda CardSpace

Nel file INI di origine sono presenti molte sezioni contenenti dati che possono essere modificati per generare schede per un scopo specifico.

Tipo di esempio della scheda

[CARD]
TYPE=UserNamePassword

Utilizzando il creatore della scheda, ogni scheda può utilizzare un tipo di autenticazione per autenticare con il servizio token di protezione del provider di identità. Il tipo di scheda può essere uno tra UserNamePassword, KerberosAuth, SelfIssuedAuth o SmartCard.

Esempio di informazioni presenti nella scheda

[Details]
Name=My Card (U/P backed)
ID=http://www.fabrikam.com/card/unpw/randomnnumber123
version=1
image=images\fabrikam.jpg

La sezione informazioni comprende quattro campi obbligatori.

Name

Il nome della scheda visualizzato dall’utente. L'utente può modificare il nome dopo averlo importato nel selettore di identità.

ID

Questo è l’ID della scheda. In caso di importazione di schede con lo stesso ID, viene richiesto all'utente di sostituire la scheda precedente con la nuova. L’ID delle schede deve restare coerente tra le revisioni dello schema.

Version

Ogni nuova versione della stessa scheda deve ottenere un numero di versione incrementato.

Image

L'immagine che l'utente visualizza sulla scheda quando viene importata nel selettore di identità. Non può essere modificato dall'utente.

Esempio dei dettagli relativi all’autorità emittente

[Issuer]
     Address=http://www.fabrikam.com:3074/sts
     MexAddress=https://www.fabrikam.com:4074/sts/mex
     PrivacyPolicy=http://www.fabrikam.com/PrivacyPolicy.xml
     Certificate=LOCALMACHINE/MY/www.fabrikam.com

La sezione dedicata all’autorità emittente comprende quattro campi obbligatori.

Address

L’URL di endpoint del provider di identità del servizio token di protezione.

MexAddress

L’endpoint MEX per il servizio token di protezione. In CardSpace, l’HTTPS è obbligatorio per l'endpoint MEX.

PrivacyPolicy

L'URL per il percorso dell’informativa sulla privacy del provider di identità.

Certificate

La posizione del certificato, la cui chiave pubblica viene utilizzata per firmare il file della scheda. Deve essere nel formato percorso/nome dell’archivio/nome comune (ad esempio, localmachine/My/www.fabrikam.com) o un percorso a un file PFX contenente certificato e chiave privata. Se il file PFX è protetto da password, si deve inserire anche un campo CertificatePassword= nel file INI.

Esempio delle informazioni relative alle attestazioni

[Claims]
1=https://schemas.microsoft.com/ws/2005/05/identity/claims/givenname
2=https://schemas.microsoft.com/ws/2005/05/identity/claims/surname   3=https://schemas.microsoft.com/ws/2005/05/identity/claims/emailaddress
4=https://www.contoso.com/myuritest

Nella sezione dedicata alle attestazioni è presente un elenco di URI di attestazioni specifiche supportati dal provider di identità. L’utilizzo dell’insieme standard di URI di attestazione non richiede informazioni aggiuntive, mentre l'utilizzo di URI di attestazione personalizzati richiede una sezione per ogni attestazione personalizzata.

Esempio delle informazioni relative all'URI di attestazione personalizzato

[https://www.contoso.com/myuritest]
     display=My Super Claim
     description=A claim for all to see

Ogni URI di attestazione personalizzato deve indicare con precisione il nome visualizzato e la descrizione per ogni attestazione creata. L’utente può visualizzarli nel selettore di identità CardSpace.

Esempio di tipi di token supportati

[TokenTypes]
     1=urn:oasis:names:tc:SAML:1.0:assertion
     2=http://docs.oasis-open.org/wss/oasis-wss-saml-token-profile-1.1#SAMLV1.1

Il provider di identità dichiara i tipi di token supportati dal servizio token di protezione. Questi sono elencati come URN nella sezione dei tipi di token. Ogni URN viene inserito in una riga separata, con un numero di indice come nome campo (ad esempio, 1,2,3.).

Esempio delle informazioni relative ai token

[Token Details]
RequiresAppliesTo=false

Il provider di identità può decidere se emettere token a qualsiasi componente o può richiedere al componente di dichiarare la propria identità al momento della richiesta dell'identità stessa.

Credenziali

In questa sezione, qualsiasi informazione relativa alle credenziali può essere elencata e codificata nella scheda. Per tipi di autenticazione diversi, esistono diversi requisiti possibili:

  • per l'autenticazione della scheda autocertificata, il valore è l’attestazione PPID della scheda, così come è stato fornito al provider di identità nell’utilizzo del certificato.

    [Credentials]
         value=eiavryEeugtsZibaD0moDOiIE+106HbYhYIbst73x5A=
         Hint=Enter your username and password
    
  • Per l’autenticazione di nome utente/password, il valore è il nome utente (ed è facoltativo), visualizzato dall’utente.

    [Credentials]
         value=FrankLee
         Hint=Enter your username and password
    
  • Per l’autenticazione del certificato, è necessario identificare il certificato per mezzo di uno dei tre metodi seguenti:

    • Identificazione personale del certificato.

    • Un riferimento al certificato nell'archivio nel formato percorso/nome dell’archivio/nome comune (currentUser/Mio/FrankLee)

    • L’hash del certificato.

Esempio di certificato

[Credentials]
     value=3ce25c9ef8b2d5d99a227e1ea1a28d7f001a3355
     Hint=Insert your smartcard now

Visualizzazione della scheda generata

Il formato con estensione CRD formato è un documento XML contenente le informazioni precedenti. Viene utilizzato dal provider di identità per esprimere tali informazioni in forma concisa e viene utilizzato dall'utente per importare la scheda nell'insieme.

In questo esempio si presuppone che un provider di identità stia emettendo una scheda certificante l’appartenenza ad un club automobilistico e che concede servizi o sconti su diversi siti Web.

La firma

L'elemento radice del file con estensione CRD è una firma di protezione.

<Signature xmlns="http://www.w3.org/2000/09/xmldsig#">
  <SignedInfo>
    <CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" />
    <SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1" />
    <Reference URI="#_Object_InfoCard">
      <Transforms>
        <Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" />
      </Transforms>
      <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
      <DigestValue>3x/Op7j/BUjCskLqMHNdfCyI/H8=</DigestValue>
    </Reference>
  </SignedInfo>
  <SignatureValue>
      NT...0w==
  </SignatureValue>
  <KeyInfo>
    <X509Data>
      <X509Certificate>
         MIIG…uEd
      </X509Certificate>
      <X509Certificate>
         MIIE...Q==
      </X509Certificate>
    </X509Data>
  </KeyInfo>
  <Object Id="_Object_InfoCard">
      ...
  </Object>
</Signature>

Ciò assicura che, una volta emessa, la scheda sia protetta da manomissioni. Ciò viene eseguito con l’utilizzo di una firma. Ciò fornisce inoltre la certezza, per mezzo della crittografia, che la scheda sia stata realmente emessa dal club automobilistico, in quanto mostra l’utilizzo della chiave privata.

I due elementi X509Certificate contengono il certificato del provider di identità (il club automobilistico) e il certificato dell'Autorità di certificazione che ha emesso il certificato al club automobilistico.

Dopo la firma, esiste un elemento chiamato InformationCard, contenente i metadati effettivi della scheda. Nell'esempio seguente vengono visualizzati gli elementi XML della scheda.

<InformationCard xml:lang="en-us" xmlns="https://schemas.microsoft.com/ws/2005/05/identity">
      <InformationCardReference />
      <CardName />
      <CardImage />
      <Issuer />
      <IssuerName />
      <TimeIssued />
      <TimeExpires />
      <TokenServiceList />
      <SupportedTokenTypeList />
      <SupportedClaimTypeList />
      <PrivacyNoticeAt />
    </InformationCard>

<InformationCardReference> contiene ID e versione della scheda; usato nelle operazioni di importazione successive in modo da consentire l’aggiornamento o la sovrascrittura delle schede.

<InformationCardReference>
    <CardId>
       http://www.fabrikam.com/card/unpw/randomnnumber123        
    </CardId>
    <CardVersion>1</CardVersion>
 </InformationCardReference>

<CardName> contiene il nome descrittivo della scheda che l'utente può modificare dopo l'importazione.

<CardName>My Card</CardName>

<CardImage> contiene un'immagine con codifica in base 64 che consente al provider di identità di selezionare l'aspetto preferito. È codificato nella scheda e non vi fa riferimento alcun URL, per assicurare al provider la coerenza del marchio a prescindere dalla capacità del client di risolvere i collegamenti.

<CardImage MimeType="image/jpeg">
</CardImage>

<Issuer> rappresenta l’URI del servizio token di protezione - l'indirizzo al quale vengono inviati i messaggi RST (Request Security Token) ogni volta che viene utilizzata la scheda gestita. <IssuerName> è il nome descrittivo ad esso associato.

<Issuer>http://www.fabrikam.com:3074/sts</Issuer>

<TimeIssued> e <TimeExpires> contengono rispettivamente l'ora dell'operazione di emissione e la data di scadenza della scheda. La data di scadenza deve essere considerata come “data di scadenza supportata esclusivamente da questo contratto dei metadati” e non come una data di scadenza dell'account che deve essere gestita come data dell'account per il servizio token di protezione.

<TimeIssued>2006-08-07T23:37:42.3533826Z</TimeIssued>
      <TimeExpires>9999-12-31T23:59:59.9999999Z</TimeExpires>

<TokenServiceList> contiene un elenco degli elementi <TokenService> corrispondenti ai dati per l'ottenimento dei metadati del servizio token di protezione, contattandolo in modo protetto, e per l'autenticazione delle richieste in ingresso.

<TokenServiceList>
        <TokenService>
          <EndpointReference >
            <Address />
            <Metadata />
            <Identity />
          <UserCredential />
        </TokenService>
      </TokenServiceList>

<EndpointReference> è un riferimento all’endpoint di WS-Addressing contenente nuovamente l'endpoint del servizio token di protezione; la sezione di metadati contiene l'indirizzo dell'endpoint di WS-MetadataExchange.

<EndpointReference xmlns="http://www.w3.org/2005/08/addressing">
        <Address>http://www.fabrikam.com:3074/sts</Address>
        <Metadata>
          <Metadata xmlns="https://schemas.xmlsoap.org/ws/2004/09/mex"
                 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                 xmlns:xsd="http://www.w3.org/2001/XMLSchema"
                 xmlns:wsx="https://schemas.xmlsoap.org/ws/2004/09/mex">
           <wsx:MetadataSection >
               <wsx:MetadataReference>
                 <Address xmlns="http://www.w3.org/2005/08/addressing">
                    https://www.fabrikam.com:4074/sts/mex
                  </Address>
               </wsx:MetadataReference>
           </wsx:MetadataSection>
           </Metadata>
           </Metadata>

<Identity> contiene il certificato associato al servizio token di protezione, in genere equivalente a quello utilizzato nella firma iniziale.

    <Identity xmlns="https://schemas.xmlsoap.org/ws/2006/02/addressingidentity">
      <KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#">
        <X509Data>
          <X509Certificate>
            MIIGR…uEd
          </X509Certificate>
        </X509Data>
      </KeyInfo>
    </Identity>
</EndpointReference>

L'elemento <UserCredential> cambia a seconda del tipo di autenticazione:

  • Per schede informazioni supportate da una scheda personale, viene utilizzato l'elemento <PrivatePersonalIdentifier> per archiviare il PPID.

    <UserCredential>
                <SelfIssuedCredential>
                  <PersonalPrivateIdentifier>
                     eiavryEeugtsZibaD0moDOiIE+106HbYhYIbst73x5A=
                   </PersonalPrivateIdentifier> 
                </ SelfIssuedCredential >
              </UserCredential>
    
  • Per una scheda supportata da certificato, l'elemento <X509V3Credential> viene utilizzato dalla scheda gestita; l'elemento <KeyIdentifier> contiene l’hash del certificato della smart card. L'elemento <DisplayCredentialHint> è il prompt che l'utente riceve prima di visualizzare la smart card.

    <UserCredential>
          <X509V3Credential>
              <X509Data xmlns="http://www.w3.org/2000/09/xmldsig#">
                  <KeyIdentifier 
                  ValueType="http://docs.oasis-open.org/wss/2004/xx/oasis-2004xx-wss-soap-message-security-1.1#ThumbprintSHA1" 
                  xmlns="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd"> 
                         3ce25c9ef8b2d5d99a227e1ea1a28d7f001a3355
                  </KeyIdentifier> 
             </ X509Data >
        </X509V3Credential>
    </UserCredential>
    
  • <UsernamePasswordCredential> contiene il nome utente predefinito per la scheda, per schede supportate da nome utente/password.

    <UserCredential>
        <DisplayCredentialHint>
            Enter your username and password
        </DisplayCredentialHint>
        <UsernamePasswordCredential>
            <Username>FrankLee</Username>
        </UsernamePasswordCredential>
    </UserCredential>
    

<SupportedTokenTypeList> contiene un elenco di elementi <TokenType> che descrive in dettaglio l'elenco di tipi di token supportati dal servizio token di protezione.

<SupportedTokenTypeList>
    <TokenType xmlns="https://schemas.xmlsoap.org/ws/2005/02/trust">
          urn:oasis:names:tc:SAML:1.0:assertion
    </TokenType>
</SupportedTokenTypeList>

<SupportedClaimTypeList> contiene l'elenco di attestazioni supportate dalla scheda. Le attestazioni specifiche vengono descritte dall'elemento <SupportedClaimType>, i cui elementi sono di facile comprensione (DisplayTag e Description). Nell’esempio vengono utilizzati URI di attestazione predefiniti disponibili nell’insieme autocertificato, nonché URI di attestazione personalizzati, ad esempio https://www.contoso.com/myuritest.

<SupportedClaimTypeList>
    <SupportedClaimType
uri="https://schemas.microsoft.com/ws/2005/05/identity/claims/givenname">
        <DisplayTag>Given Name</DisplayTag>
        <Description>Given Name</Description>
    </SupportedClaimType>
    <SupportedClaimType 
Uri="https://schemas.microsoft.com/ws/2005/05/identity/claims/surname">
          <DisplayTag>Last Name</DisplayTag>
          <Description>Last Name</Description>
        </SupportedClaimType>
    <SupportedClaimType Uri="https://schemas.microsoft.com/ws/2005/05/identity/claims/emailaddress">
         <DisplayTag>Email Address</DisplayTag>
         <Description>Email Address</Description>
    </SupportedClaimType>
    <SupportedClaimType Uri=" https://www.contoso.com/myuritest">
          <DisplayTag>My Super Claim</DisplayTag>
          <Description>A claim for all to see</Description>
    </SupportedClaimType>
</SupportedClaimTypeList>

L’informativa sulla privacy dell’URL è disponibile nell’elemento <PrivacyNotice>:

<PrivacyNotice>
        http://www.fabrikam.com/PrivacyPolicy.xml
</PrivacyNotice>

Glossario

  • Scheda gestita – Scheda informazioni emessa da un provider di identità. La scheda informazioni contiene metadati sul server di token di protezione e le attestazioni supportate dal provider di identità.

  • Provider di identità - Il provider di identità emette identità digitali a utenti, contenenti attestazioni di dati sull'utente.

  • Servizio token di protezione – Il servizio token esegue lo scambio di token. Il servizio token di protezione concede un token con attestazioni basate sull'autenticazione degli utenti con il server. Essenzialmente, il server che distribuisce informazioni di identità digitali all'utente.

Vedere anche

Altre risorse

Installazione dei certificati di esempio di CardSpace

Footer image

Invia commenti su questo argomento a Microsoft.

Copyright © 2007 Microsoft Corporation. Tutti i diritti riservati.