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.
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="http://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="http://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="http://schemas.xmlsoap.org/ws/2004/09/mex">
<wsx:MetadataSection xmlns="">
<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="http://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="http://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. http://www.contoso.com/myuritest.
<SupportedClaimTypeList>
<SupportedClaimType
uri="http://schemas.microsoft.com/ws/2005/05/identity/claims/givenname">
<DisplayTag>Given Name</DisplayTag>
<Description>Given Name</Description>
</SupportedClaimType>
<SupportedClaimType
Uri="http://schemas.microsoft.com/ws/2005/05/identity/claims/surname">
<DisplayTag>Last Name</DisplayTag>
<Description>Last Name</Description>
</SupportedClaimType>
<SupportedClaimType Uri="http://schemas.microsoft.com/ws/2005/05/identity/claims/emailaddress">
<DisplayTag>Email Address</DisplayTag>
<Description>Email Address</Description>
</SupportedClaimType>
<SupportedClaimType Uri=" http://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>