Share via


관리 카드 만들기

Download sample

관리 카드는 ID 공급자가 발급하는 정보 카드입니다. 관리 카드에는 다음이 포함되어 있습니다.

  • 카드를 발급하는 엔터티에 대한 정보

  • 카드 이름

  • 인증서

  • STS(보안 토큰 서비스) 및 MEX(메타데이터 교환) 끝점

  • 카드에 표시되는 이미지

  • ID 공급자가 확증하는 사용자에 대한 클레임 목록

  • 정보 카드를 필요한 클레임 값으로 채우기 위해 ID 공급자의 STS를 사용하여 사용자가 인증되는 방법에 대한 정보. 이 인증 요소는 인증서, Kerberos 토큰, 자체 발급된 카드 또는 특정한 경우에는 사용자 이름/암호 쌍의 형태일 수 있습니다.

    참고

    CardSpace에서 사용할 카드를 만들려면 ID 공급자가 카드 데이터를 포함하는 서명된 XML 파일을 생성해야 합니다. 이 정보 카드의 이름은 .CRD 파일 확장명을 사용하여 지정됩니다.

이 샘플로 작업하려면 웹 사이트 구성이 필요합니다. 샘플 폴더에 제공된 설치 배치 파일을 사용하여 구성이 수행됩니다.

Setup.bat

웹 사이트 설치에 대한 자세한 내용과 문제 해결 팁은 CardSpace 샘플 인증서 설치를 참조하십시오.

카드 작성기 컴파일

C#의 경우 CardWriter 폴더에 카드 작성기의 다음 소스 코드가 있습니다.

ManagedCardWriter.cs

VB.NET의 경우 CardWriter 폴더에 카드 작성기의 다음 소스 코드가 있습니다.

ManagedCardWriter.vb

Visual Studio 2005에서 프로젝트 파일(CardWriter.csproj)을 로드하고 컴파일하거나 명령줄에서 msbuild를 사용합니다(샘플의 압축을 푼 위치에서).

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

카드 작성기가 \bin 폴더에 컴파일되며 이제 명령줄에서 실행될 수 있습니다.

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

카드 작성기 사용

카드 작성기는 .INI 파일을 .CRD 파일을 생성하기 위한 입력으로 사용합니다.

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

참고

출력 카드는 소스 .INI 파일과 동일한 디렉터리에 배치됩니다.

CardSpace 카드의 데이터 이해

소스 .INI 파일에는 특정 목적을 위한 카드를 생성하기 위해 수정할 수 있는 데이터가 포함된 몇 가지 섹션이 있습니다.

카드 형식 샘플

[CARD]
TYPE=UserNamePassword

카드 작성기를 사용하는 경우 각 카드는 한 가지 인증 형식을 사용하여 ID 공급자의 STS를 통해 인증될 수 있습니다. 카드 형식은 UserNamePassword, KerberosAuth, SelfIssuedAuth 또는 SmartCard 중 하나일 수 있습니다.

카드 정보 샘플

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

Details 섹션에는 네 가지 필수 필드가 있습니다.

Name

사용자에게 표시되는 카드의 표시 이름. 사용자는 ID 선택기로 카드를 가져온 후 이름을 수정할 수 있습니다.

ID

카드의 ID입니다. ID가 동일한 카드를 가져오면 이전 카드를 최신 카드로 바꿀지 묻는 메시지가 표시됩니다. 카드의 ID는 스키마의 수정 버전 간에 일치하도록 유지되어야 합니다.

Version

동일한 카드의 새 버전이 생성될 때마다 버전 번호를 증가시켜 지정해야 합니다.

Image

ID 선택기로 카드를 가져올 때 사용자에게 표시되는 카드의 이미지. 이 이미지는 사용자가 변경할 수 없습니다.

발급자 정보 샘플

[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

Issuer 섹션에는 네 가지 필수 필드가 있습니다.

Address

ID 공급자 STS의 끝점 URL

MexAddress

STS에 대한 MEX 끝점. CardSpace에서는 HTTPS가 MEX 끝점에 필요합니다.

PrivacyPolicy

ID 공급자의 개인 정보 보호 정책 위치에 대한 URL

Certificate

카드 파일에 서명하는 데 사용되는 공개 키가 포함된 인증서의 위치. 위치/저장소 이름/일반 이름(예: localmachine/My/www.fabrikam.com)의 형식이나 인증서와 개인 키가 포함된 PFX 파일의 경로여야 합니다. .PFX 파일이 암호로 보호되는 경우 CertificatePassword= 필드도 .INI 파일에 배치해야 합니다.

클레임 정보 샘플

[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

Claims 섹션에는 ID 공급자가 지원하는 개별 클레임 URI가 표시됩니다. 클레임 URI의 표준 집합을 사용하는 데는 추가 정보가 필요하지 않지만 사용자 지정 클레임 URI를 사용하려면 각 사용자 지정 클레임에 대한 섹션이 필요합니다.

사용자 지정 클레임 URI 정보 샘플

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

각 사용자 지정 클레임 URI는 만들어진 각 클레임에 대한 표시 이름과 설명을 나타내야 합니다. 이러한 정보는 CardSpace ID 선택기에서 사용자에게 표시됩니다.

지원되는 토큰 형식 샘플

[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

ID 공급자는 STS에서 지원하는 토큰의 형식을 선언합니다. 이러한 형식은 TokenTypes 섹션에서 URN으로 표시됩니다. 각 URN은 별도의 줄에 배치되고 인덱스 번호(예: 1,2,3…)가 필드 이름으로 사용됩니다.

토큰 정보 샘플

[Token Details]
RequiresAppliesTo=false

ID 공급자는 신뢰하는 상대에게 토큰을 발급할지 여부를 결정하거나 신뢰하는 상대가 ID를 요청할 때 자신이 누구인지 나타내도록 요청할 수 있습니다.

자격 증명

이 섹션에는 자격 증명 힌트 정보가 표시되고 카드로 인코딩될 수 있습니다. 인증 형식에 따라 다른 요구 사항이 있을 수 있습니다.

  • 자체 발급된 카드 인증의 경우, 값은 인증서를 사용하여 ID 공급자에게 제공된 카드의 PPID 클레임입니다.

    [Credentials]
         value=eiavryEeugtsZibaD0moDOiIE+106HbYhYIbst73x5A=
         Hint=Enter your username and password
    
  • 사용자 이름/암호 인증의 경우, 값은 사용자에 대해 표시되는 사용자 이름이며 선택 항목입니다.

    [Credentials]
         value=FrankLee
         Hint=Enter your username and password
    
  • 인증서 인증의 경우, 세 방법 중 하나로 인증서를 식별해야 합니다.

    • 인증서의 지문

    • 위치/저장소 이름/일반 이름(currentUser/My/FrankLee) 형식으로 된 저장소의 인증서에 대한 참조

    • 인증서 자체의 해시

인증서 샘플

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

생성된 카드 보기

.CRD 형식은 앞의 정보가 포함된 XML 문서입니다. 이 형식은 ID 공급자가 이러한 모든 정보를 간결한 형태로 표현하는 데 사용되며 사용자가 카드를 컬렉션으로 가져오는 데 사용됩니다.

이 예제에서는 ID 공급자가 자동차 클럽의 회원 자격을 인증하고 다양한 웹 사이트에서 서비스나 할인에 액세스할 수 있도록 하는 카드를 발급한다고 가정합니다.

서명

.CRD 파일의 루트 요소는 엔벌로핑 서명입니다.

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

이렇게 하면 카드가 발급된 후 변조될 위험에서 보호됩니다. 카드는 서명을 사용하여 보호됩니다. 또한 개인 키의 사용을 보여 주므로 카드가 정말로 자동차 클럽에서 발급되었다는 확인을 암호화 방식으로 제공합니다.

X509Certificate 요소에는 ID 공급자(자동차 클럽)의 인증서와 이 인증서를 자동차 클럽에 발급한 인증 기관의 인증서가 포함되어 있습니다.

서명 뒤에는 카드의 실제 메타데이터가 포함된 InformationCard라는 요소가 있습니다. 다음 예제에서는 카드의 XML 요소를 보여 줍니다.

<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>에는 카드를 업데이트하거나 덮어쓰기 위해 이후 가져오기 작업에서 사용되는 카드 ID와 버전이 포함되어 있습니다.

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

<CardName>에는 가져온 후 사용자가 수정할 수 있는 외부에 표시되는 카드 이름이 포함되어 있습니다.

<CardName>My Card</CardName>

<CardImage>에는 ID 공급자가 원하는 모양을 선택할 수 있는 base64로 인코딩된 이미지가 포함되어 있습니다. 이 이미지는 클라이언트의 링크 확인 기능에 의존하지 않고 공급자에게 브랜드 일치를 보장하기 위해 카드 안에 인코딩되며 URL에서 참조되지 않습니다.

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

<Issuer>는 STS의 URI를 나타냅니다. 이 URI는 관리 카드가 사용될 때마다 RST(요청 보안 토큰) 메시지가 전송되는 주소입니다. <IssuerName>은 이 URI와 연결된 외부에 표시되는 이름입니다.

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

<TimeIssued><TimeExpires>에는 각각 발급 작업의 시간과 카드 만료 날짜가 포함되어 있습니다. 만료 날짜는 '이 메타데이터 계약이 지원되는 최종 날짜'로 간주되어야 하며 STS에서 계정 데이터로 처리되어야 하는 계정 만료 날짜가 아닙니다.

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

<TokenServiceList>에는 STS 메타데이터를 얻어 STS에 안전하게 연결하고 들어오는 요청을 인증하기 위한 데이터인 <TokenService> 요소의 목록이 포함되어 있습니다.

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

<EndpointReference>는 STS 끝점이 포함된 WS-Addressing 끝점 참조입니다. Metadata 섹션에는 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>에는 STS와 연결된 인증서가 포함되어 있습니다. 이 인증서는 일반적으로 초기 서명에서 사용된 것과 동일합니다.

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

<UserCredential> 요소는 인증 형식에 따라 변경됩니다.

  • 개인 카드로 지원되는 정보 카드의 경우 <PrivatePersonalIdentifier> 요소는 PPID를 저장하는 데 사용됩니다.

    <UserCredential>
                <SelfIssuedCredential>
                  <PersonalPrivateIdentifier>
                     eiavryEeugtsZibaD0moDOiIE+106HbYhYIbst73x5A=
                   </PersonalPrivateIdentifier> 
                </ SelfIssuedCredential >
              </UserCredential>
    
  • 인증서 지원 카드의 경우 <X509V3Credential> 요소는 관리 카드에서 사용됩니다. <KeyIdentifier> 요소에는 스마트 카드 인증서의 해시가 포함되어 있습니다. <DisplayCredentialHint> 요소는 스마트 카드를 표시하기 전에 사용자가 받는 프롬프트입니다.

    <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>에는 사용자 이름/암호 지원 카드의 카드에 대한 기본 사용자 이름이 포함되어 있습니다.

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

<SupportedTokenTypeList>에는 STS에서 지원하는 토큰 형식의 목록을 나타내는 <TokenType> 요소의 목록이 포함되어 있습니다.

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

<SupportedClaimTypeList>에는 카드에서 지원하는 클레임의 목록이 포함되어 있습니다. <SupportedClaimType> 요소는 단일 클레임에 대해 설명하며 이 요소에 포함된 요소는 이름만으로도 해당 의미를 이해할 수 있습니다(DisplayTagDescription). 이 예제에서는 https://www.contoso.com/myuritest와 같은 사용자 지정 클레임 URI뿐만 아니라 자체 발급된 집합에서 사용할 수 있는 미리 정의된 클레임 URI를 사용합니다.

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

개인 정보 보호 정책 URL은 <PrivacyNotice> 요소에 있습니다.

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

용어

  • 관리 카드 - ID 공급자가 발급하는 정보 카드입니다. 정보 카드에는 보안 토큰 서버에 대한 메타데이터와 ID 공급자가 지원하는 클레임이 포함되어 있습니다.

  • ID 공급자 - ID 공급자는 사용자에 대한 데이터 클레임이 포함된 디지털 ID를 사용자에게 발급합니다.

  • STS(보안 토큰 서비스) - 보안 토큰 서비스는 한 토큰을 다른 토큰과 교환합니다. STS는 사용자의 서버를 통한 인증을 기반으로 토큰에 클레임을 부여합니다. 결국 서버에서 디지털 ID 정보를 사용자에게 제공합니다.

참고 항목

기타 리소스

CardSpace 샘플 인증서 설치

Footer image

이 항목에 대한 의견을 Microsoft에 보내 주십시오.

Copyright © 2007 by Microsoft Corporation. All rights reserved.