Erstellen von verwalteten Karten

Download sample

Eine verwaltete Karte ist eine von einem Identitätsanbieter ausgegebene Informationskarte. Sie enthält folgende Informationen:

  • Informationen zur Entität, die die Karte ausgibt:

  • Kartenname.

  • Zertifikat.

  • Die Endpunkte STS (Security Token Service, Sicherheitstokendienst) und MEX (Metadata Exchange, Metadatenaustausch).

  • Ein auf der Karte angezeigtes Bild.

  • Die Liste von Ansprüchen über den Benutzer, die der Identitätsanbieter bestätigt.

  • Informationen dazu, wie sich der Benutzer mit dem Sicherheitstokendienst des Identitätsanbieters authentifiziert, damit die Informationskarte mit den angeforderten Anspruchswerten ausgefüllt wird. Bei diesem Authentifizierungsfaktor kann es sich um ein Zertifikat, ein Kerberos-Token, eine selbst ausgestellte Karte oder in bestimmten Fällen um ein Benutzername/Kennwort-Paar handeln.

    Tipp

    Um Karten für die Verwendung mit CardSpace zu erstellen, muss der Identitätsanbieter eine signierte XML-Datei erstellen, die die Kartendaten enthält. Der Dateiname der Informationskarte erhält die Erweiterung .CRD.

Für die Verwendung dieses Beispiels muss die Website konfiguriert werden. Die Website wird mithilfe der im Beispielordner enthaltenen Installationsbatchdatei konfiguriert:

Setup.bat

Weitere Informationen zur Installation der Website sowie Tipps für die Fehlerbehandlung finden Sie unter Installieren von CardSpace-Beispielzertifikaten.

Kompilieren des Kartenschreibers

Der Quellcode für den Kartenschreiber befindet sich im Ordner CardWriter (in C#).

ManagedCardWriter.cs

Der Quellcode für den Kartenschreiber befindet sich im Ordner CardWriter (in VB.NET):

ManagedCardWriter.vb

Laden Sie die Projektdatei (CardWriter.csproj) in Visual Studio 2005 und kompilieren Sie sie, oder geben Sie msbuild in die Befehlszeile ein (an der Stelle, an der Sie das Beispiel entpackt haben).

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

Auf diese Weise wird der Kartenschreiber in den Ordner \bin kompiliert und kann nun über die Befehlszeile ausgeführt werden.

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

Verwenden des Kartenschreibers

Der Kartenschreiber verwendet eine INI-Datei als Eingabe zum Generieren einer CRD-Datei.

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

Tipp

Die Ausgabekarte wird im gleichen Verzeichnis wie die INI-Quelldatei gespeichert.

Grundlegendes zu den Daten in einer CardSpace-Karte

In der INI-Quelldatei befinden sich mehrere Abschnitte mit Daten, die zum Generieren von Karten zu einem bestimmten Zweck geändert werden können.

Typ des Kartenbeispiels

[CARD]
TYPE=UserNamePassword

Jede Karte kann mithilfe des Kartenerstellers einen Authentifizierungstyp verwenden, um sich am Sicherheitstokendienst des Identitätsanbieters zu authentifizieren. Folgende Kartentypen können verwendet werden: UserNamePassword, KerberosAuth, SelfIssuedAuth oder SmartCard.

Beispiel für Informationen zur Karte

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

Im Abschnitt Details gibt es vier Pflichtfelder.

Name

Der Anzeigename der Karte, den der Benutzer sieht. Der Benutzer kann den Namen nach dem Importieren in seine Identitätsauswahl ändern.

ID

Hierbei handelt es sich um die ID der Karte. Wenn Karten mit derselben ID importiert werden, wird der Benutzer aufgefordert, die ältere Karte durch die neue zu ersetzen. Die IDs von Karten müssen nach einer Überarbeitung des Schemas beibehalten werden.

Version

Jede neue Version einer Karte muss eine um eine Nummer erhöhte Versionsnummer erhalten.

Image

Das Bild, das der Benutzer auf der Karte sieht, wenn diese in die Identitätsauswahl importiert wird. Dieses kann vom Benutzer nicht geändert werden.

Beispiel für Informationen zum Aussteller

[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

Im Abschnitt Aussteller gibt es vier Pflichtfelder.

Address

Die Endpunkt-URL des Sicherheitstokendiensts des Identitätsanbieters.

MexAddress

Der MEX-Endpunkt für den Sicherheitstokendienst. Bei CardSpace wird für den MEX-Endpunkt HTTPS benötigt.

PrivacyPolicy

Die URL für den Speicherort der Datenschutzrichtlinie des Identitätsanbieters.

Certificate

Der Speicherort des Zertifikats, dessen öffentlicher Schlüssel zum Signieren der Kartendatei verwendet wird. Dieser muss folgendes Format Speichort/Speichername/allgemeiner Name (z. B. localmachine/My/www.fabrikam.com) aufweisen oder den Pfad einer PFX-Datei enthalten, die das Zertifikat und den privaten Schlüssel enthält. Wenn die PFX-Datei kennwortgeschützt ist, müssen Sie zudem ein CertificatePassword=-Feld in die INI-Datei einfügen.

Beispiel für Informationen zu Ansprüchen

[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

Im Abschnitt Ansprüche werden einzelne Anspruchs-URIs aufgelistet, die vom Identitätsanbieter unterstützt werden. Wenn Sie den Standardsatz von Anspruchs-URIs verwenden, sind keine zusätzlichen Informationen erforderlich. Wenn Sie jedoch benutzerdefinierte Anspruchs-URIs verwenden, wird für jeden benutzerdefinierten Anspruch ein Abschnitt benötigt.

Beispiel für Informationen zu benutzerdefinierten Anspruchs-URIs

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

Jeder benutzerdefinierte Anspruchs-URI muss den Anzeigenamen und die Beschreibung für jeden erstellten Anspruch enthalten. Diese werden dem Benutzer in der CardSpace-Identitätsauswahl angezeigt.

Beispiel für unterstützte Tokentypen

[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

Der Identitätsanbieter deklariert die Typen der Token, die vom Sicherheitstokendienst unterstützt werden. Diese werden im Abschnitt für Tokentypen als URNs (Uniform Resource Names) aufgelistet. Jeder URN wird in einer eigenen Zeile angegeben, wobei eine Indexnummer als Feldname dient (wie z. B. 1,2,3…).

Beispiel für Informationen zu Token

[Token Details]
RequiresAppliesTo=false

Der Identitätsanbieter kann entscheiden, ob er einer abhängigen Seite Token ausstellt oder ob die abhängige Seite beim Anfordern der Identität angeben muss, wer sie ist.

Anmeldeinformationen

In diesem Abschnitt können alle Hinweise zu Anmeldeinformationen aufgelistet und in der Karte codiert werden. Für andere Authentifizierungstypen gelten andere mögliche Anforderungen:

  • Bei der Authentifizierung mittels selbst ausgestellter Karte entspricht der Wert dem PPID-Anspruch von der Karte, der dem Identitätsanbieter mit dem Zertifikat angegeben wurde.

    [Credentials]
         value=eiavryEeugtsZibaD0moDOiIE+106HbYhYIbst73x5A=
         Hint=Enter your username and password
    
  • Bei der Authentifizierung mittels Benutzername/Kennwort-Paar entspricht der Wert dem Benutzernamen (und ist optional), der für den Benutzer angezeigt wird.

    [Credentials]
         value=FrankLee
         Hint=Enter your username and password
    
  • Bei der Authentifizierung mittels Zertifikat müssen Sie das Zertifikat mit einer von drei Methoden identifizieren:

    • Der Fingerabdruck des Zertifikats.

    • Ein Verweis auf das Zertifikat im zugehörigen Speicher im Format Speicherort/Speichername/allgemeiner Name (currentUser/My/FrankLee)

    • Der Hashcode des Zertifikats.

Beispiel für ein Zertifikat

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

Anzeigen der generierten Karte

Beim CRD-Format handelt es sich um ein XML-Dokument, das die oben genannten Informationen enthält. Es wird vom Identitätsanbieter verwendet, um all diese Informationen präzise anzugeben, und es wird vom Benutzer verwendet, um die Karte in die eigene Auflistung zu importieren.

Für dieses Beispiel wird vorausgesetzt, dass ein Identitätsanbieter eine Karte ausstellt, die die Mitgliedschaft in einem Autoclub bescheinigt und Zugriff auf Dienste oder Angebote auf verschiedenen Websites ermöglicht.

Die Signatur

Beim Stammelement der CRD-Datei handelt es sich um einen Signatur-Envelope.

<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>

Auf diese Weise wird sichergestellt, dass die Karte nach der Ausstellung vor Manipulation geschützt wird. Dies wird mithilfe der Signatur erreicht. Zudem vermittelt dies die eigenartige Gewissheit, dass die Karte tatsächlich vom Autoclub ausgestellt wurde, da die Nutzung des privaten Schlüssels verdeutlicht wird.

Die beiden X509Certificate-Elemente enthalten das Zertifikat des Identitätsanbieters (des Autoclubs) sowie das Zertifikat der Zertifizierungsstelle, die dem Autoclub das Zertifikat ausgestellt hat.

Nach der Signatur wird das InformationCard-Element erstellt, das die eigentlichen Metadaten der Karte enthält. Im folgenden Beispiel werden die XML-Elemente der Karte dargestellt.

<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> enthält die Karten-ID und die Version. Wird in nachfolgenden Importvorängen zum Aktualisieren oder Überschreiben von Karten verwendet.

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

<CardName> enthält den kosmetischen Kartennamen, den der Benutzer nach dem Import ändern darf.

<CardName>My Card</CardName>

<CardImage> enthält ein base64-codiertes Bild, für das der Identitätsanbieter die gewünschte Darstellung auswählen kann. Diese wird in der Karte codiert. Zudem verweist keine URL auf diese Darstellung, um dem Anbieter der Marke Konsistenz zu gewährleisten, ohne darauf angewiesen zu sein, dass der Client Links auflösen kann.

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

<Issuer> stellt den URI des Sicherheitstokendiensts dar, also die Adresse, an die RST-Nachrichten (Request Security Token, Anforderungssicherheitstoken) gesendet werden, wenn die verwaltete Karte verwendet wird. <IssuerName> ist der zugehörige kosmetische Name.

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

<TimeIssued> und <TimeExpires> enthalten das Datum der Ausstellung bzw. das Datum, an dem die Karte abläuft. Beim Ablaufdatum handelt es sich um ein Datum, an dem die Unterstützung des Metadatenvertrags abläuft, nicht um ein Kontoablaufdatum, das als Kontodaten am Sicherheitstokendienst behandelt werden muss.

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

<TokenServiceList> enthält eine Liste mit <TokenService>-Elementen, bei denen es sich um die Daten zum Abrufen der Metadaten des Sicherheitstokendiensts, zum Herstellen einer sicheren Verbindung sowie zum Authentifizieren eingehender Anforderungen handelt.

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

<EndpointReference> ist ein WS-Adressierungsendpunktverweis, der wiederum den STS-Endpunkt enthält. Der Metadatenabschnitt enthält die Adresse des WS-MetadataExchange-Endpunkts.

<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> enthält das zum Sicherheitstokendienst gehörige Zertifikat, in der Regel dasselbe wie das, das in der ersten Signatur verwendet wird.

    <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>

Das <UserCredential>-Element ändert sich abhängig vom Typ der Authentifizierung:

  • Das <PrivatePersonalIdentifier>-Element wird für von einer persönlichen Karte unterstützte Informationskarten zum Speichern der PPID verwendet.

    <UserCredential>
                <SelfIssuedCredential>
                  <PersonalPrivateIdentifier>
                     eiavryEeugtsZibaD0moDOiIE+106HbYhYIbst73x5A=
                   </PersonalPrivateIdentifier> 
                </ SelfIssuedCredential >
              </UserCredential>
    
  • Bei einer zertifikatunterstützten Karte wird das <X509V3Credential>-Element von einer verwalteten Karte verwendet. Das <KeyIdentifier>-Element enthält den Hashcode des SmartCard-Zertifikats. Beim <DisplayCredentialHint>-Element handelt es sich um die Aufforderung, die dem Benutzer angezeigt wird, bevor die SmartCard angezeigt wird.

    <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>
    
  • Im <UsernamePasswordCredential> ist der Standardbenutzername für die Karte für Benutzername/Kennwort-unterstützte Karten gespeichert.

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

Die <SupportedTokenTypeList> enthält eine Liste mit <TokenType>-Elementen mit Tokentypen, die vom Sicherheitstokendienst unterstützt werden.

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

Die <SupportedClaimTypeList> enthält die Liste mit Ansprüchen, die von der Karte unterstützt werden. Einzelne Ansprüche werden vom <SupportedClaimType>-Element beschrieben, dessen Elemente selbsterklärend sind (DisplayTag und Description). Im Beispiel werden vordefinierte Anspruchs-URIs verwendet, die im selbstausstellenden Satz verfügbar sind, sowie benutzerdefinierte Anspruchs-URIs, wie z. B. 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>

Die Datenschutzrichtlinien-URL befindet sich im <PrivacyNotice>-Element:

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

Glossar

  • Verwaltete Karte: Eine von einem Identitätsanbieter ausgegebene Informationskarte. Die Informationskarte enthält Metadaten über den Sicherheitstokenserver und die Ansprüche, die der Identitätsanbieter unterstützt.

  • Identitätsanbieter: Der Identitätsanbieter stellt für Benutzer digitale Identitäten aus, die Ansprüche auf Daten über den Benutzer enthalten.

  • Sicherheitstokendienst (STS, Security Token Service): Der Sicherheitstokendienst tauscht Token gegeneinander aus. Der Sicherheitstokendienst gewährt ein Token mit Ansprüchen basierend der Authentifizierung der Benutzer auf dem Server. Im Grunde der Server, der digitale Identitätsinformationen an den Benutzer ausgibt.

Siehe auch

Weitere Ressourcen

Installieren von CardSpace-Beispielzertifikaten

Footer image

Senden Sie Kommentare zu diesem Thema an Microsoft.

Copyright © 2007 by Microsoft Corporation. Alle Rechte vorbehalten.