Microsoft MVP성태의 닷넷 이야기
글쓴 사람
정성태 (techsharer at outlook.com)
홈페이지
첨부 파일
 
부모글 보이기/감추기
(연관된 글이 4개 있습니다.)

3.1 Managed Card 발행에 대한 Microsoft 예제 실습 (1) - CardWriter


"Windows CardSpace"에서는 2가지 종류의 "카드"가 있습니다. 하나는 "1. 개인 발행 카드에 대한 Microsoft 예제 실습"에서 살펴 본 "개인이 스스로 발행"한 카드이고, 나머지 하나는 "Identity Provider"를 두고 그곳에서 발행이 되는 카드가 있습니다. 개인이 발행하는 카드 예제를 살펴봤으니, 순서상으로 이젠 "Managed Card" 유형에 대한 실습도 해봐야 겠지요. ^^

일단, 실습을 계속하기에 앞서, 여러분들이 다음의 "Introduction to CardSpace" 자료를 다운로드 받으셔서 꼭 읽어보시기를 바라겠습니다. 왜냐하면, "Managed Card"를 설명하면서부터는 "Relying Party"나 "Identity Provider"라는 단어를 사용하게 될 텐데, 이러한 부분에 대한 개략적인 관계는 알고 계셔야 이해하실 때 도움이 될 것이기 때문입니다. (물론, 필요하다고 생각하는 정도만큼은 부분적으로 제가 설명을 하겠지만.)

PDF와 PPT 2007 포맷 각각 다운로드 받을 수 있습니다.

 Introduction to CardSpace
 ; http://cardspace.netfx3.com/files/folders/powerpoint/default.aspx




말씀드린 것처럼 "Managed Card"에서는 자신이 스스로 발행하는 카드가 아니기 때문에 별도로 "Identity Provider(이하, IP라고 부름 - 혼동하지 마십시오.)"가 운영되게 됩니다. 그런데, 이 IP 운영이 생각보다 그리 간단하지 않습니다. 그래서, 예제도 2 단계로 나누어서 살펴볼 텐데요. 첫 번째는 새로운 "Card"를 만들어 내는 예제이고, 두 번째는 그 카드 만드는 예제를 통합해서 실제 IP가 제공해야 할 "Security Token Service"를 구현하는 예제입니다.

지난번 예제와 마찬가지로 이번에도 "Microsoft"에서 제공하는 예제를 대상으로 실습해 볼 텐데요. 먼저, "Managed Card"를 만드는 것에 대한 예제를 살펴보겠습니다. 해당 예제는 다음의 경로에서 다운로드 받을 수 있습니다.

Creating Managed Cards (C#)
; http://cardspace.netfx3.com/files/folders/samples_rc_1/entry5996.aspx

Creating Managed Cards (in VB.NET)
; http://cardspace.netfx3.com/files/folders/samples_rc_1/entry5997.aspx

둘다 동일한 예제인데, 단지 내부에 사용된 언어가 VB.NET 또는 C#인지에 따라서만 달라질 뿐이니 선호하는 언어를 대상으로 다운로드 받으시면 됩니다. 다운로드 받은 "Creating Managed Cards.zip" 파일이 오늘의 실습 대상입니다.



[Creating Managed Cards.zip 실습]

한 가지 미리 말씀드리는데요. 만약 아래의 내용을 읽지 않고 스스로 위의 ZIP 파일에 들어 있는 "Installation-Instructions.doc"을 이용해서 예제를 이해하시겠다고 생각하신 분이라면, "웹 사이트 설정"에 관한 부분은 하지 말라고 말씀드리고 싶군요. 이 예제서는 웹 사이트 접근이 하나도 없습니다.

1. 다운로드 받은 "Creating Managed Cards.zip" 파일의 압축을 "C:\Net30\Managed" 폴더에 풀어 놓습니다. 다음과 같은 구조를 예로 들겠습니다.

예제 디렉터리 구조

2. "C:\Net30\Managed\scripts" 폴더에 있는 "Install-certificates.vbs" 파일을 두 번 눌러서 실행시킵니다. 실행하고 난 후, 약간 시간이 걸리므로 "Certificate Installation Script executed successfully"라는 메시지가 나올 때까지 기다려 주십시오.

3. "C:\Net30\Managed\CardWriter" 폴더에 있는 "CardWriter.sln" 파일을 VS.NET 2005에서 열어서 프로젝트를 빌드합니다. 빌드 후 결과물은 "C:\Net30\Managed\bin"에 놓이게 됩니다.

4. 아래와 같이 실행해서 "C:\Net30\Managed\SampleCards" 폴더에 있는 INI 파일을 CRD 파일로 변경합니다.

C:\Net30\Managed>.\bin\cardwriter.exe .\samplecards\FabrikamUP.ini
Reading card config from
   C:\Net30\Managed\samplecards\FabrikamUP.ini
Card written to
   C:\Net30\Managed\samplecards\FabrikamUP.crd



자, 여기까지가 "Creating Managed Cards (C#)"에서 소개하는 실습의 전부입니다. 음... 좀 썰렁한가요? ^^; 어쨌든, 핵심은 바로 "CardWriter" 프로젝트인데요. INI 파일에 담긴 설정을 이용해서 "Windows CardSpace"에 추가될 수 있는 "CRD" 확장자의 카드 파일을 생성해 내는 것입니다. 지정된 "FabrikamUP.ini"에 대한 대략적인 설정값들은 "C:\Net30\Managed\documents\Creating Managed Cards.doc" 파일 안에 "Understanding the data in an Information Card" 절에서 설명하고 있으므로 꼭 한번 읽어보시기 바랍니다.

참고로, 부가적인 설명을 드리자면. 실제로 위와 같이 CRD 파일을 출력하는 것이 "Identity Provider"의 할 일입니다. IP는 이처럼 CRD 파일을 출력해 주고, 출력된 CRD 파일은 사용자의 컴퓨터에 있는 "Windows CardSpace" 저장소에 저장되게 됩니다. 실제로, 위의 과정을 통해서 만들어진 "C:\Net30\Managed\samplecards\FabrikamUP.crd" 파일을 두 번 클릭하게 되면 다음과 같이 "Windows CardSpace"가 구동되어서 해당 카드를 설치할 거냐고 물어보게 됩니다.

Managed 카드 설치

설치를 하고 나면, 다음과 같은 카드가 생성되어져 있는 것을 볼 수 있는데요.

설치된 Managed 카드

특이한 것은 "Given Name, Last Name..." 등의 필드에 어떠한 정보도 없다는 것입니다. 바로 이점이 "1. 개인 발행 카드에 대한 Microsoft 예제 실습"에서 살펴본 "Personal Card"와의 주된 차이점입니다. "Managed Card"는 그러한 정보를 카드에 직접 담고 있지 않고 "IP"에서 관리하도록 하는 것입니다. 위와 같이 카드가 선택되어 실제로 데이터가 필요한 경우에는 "Window CardSpace"가 해당 카드의 "Security Token Service(이하, STS라고 부름)"로부터 정보를 가져오게 됩니다. 지금은 위의 Card에 대한 STS가 구현되어져 있지 않기 때문에 정보를 가져올 수가 없어서 빈칸이 나오게 되는 것입니다.

좀 더 직접적으로 설명을 드리면, "Managed Card"는 카드 내부에 "해당 카드를 식별하는 고유 ID" 값과 그 ID 값으로 정보를 조회할 수 있는 STS의 주소만이 들어있는 것입니다. 실제로도 이러한 내용들은 "C:\Net30\Managed\samplecards\FabrikamUP.ini" 파일 설정 안에도 들어있습니다.

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

위의 값이 바로 카드를 식별하는 "고유 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

위의 주소가 바로, "고유 ID" 값으로 정보를 조회해 올 수 있는 "Security Token Service"의 URL입니다.



좀 이해가 되셨는지 모르겠습니다. 설명이 좀 빈약한 것 같기도 하고. ^^; 다음 토픽에서는, STS 구현을 실제로 해보는 것으로 좀 더 IP에 대한 이해를 높여 보도록 하겠습니다.



[이 토픽에 대해서 여러분들과 의견을 공유하고 싶습니다. 틀리거나 미흡한 부분 또는 의문 사항이 있으시면 언제든 댓글 남겨주십시오.]

[연관 글]






[최초 등록일: ]
[최종 수정일: 6/25/2021]

Creative Commons License
이 저작물은 크리에이티브 커먼즈 코리아 저작자표시-비영리-변경금지 2.0 대한민국 라이센스에 따라 이용하실 수 있습니다.
by SeongTae Jeong, mailto:techsharer at outlook.com

비밀번호

댓글 작성자
 




... 181  182  183  [184]  185  186  187  188  189  190  191  192  193  194  195  ...
NoWriterDateCnt.TitleFile(s)
354정성태10/23/200635835    답변글 개발 환경 구성: 18.1. 윈도우즈 인증서 서비스 설치
372정성태12/31/200637669    답변글 개발 환경 구성: 18.2. 웹 사이트에 SSL을 적용 [3]
373정성태10/24/200629055    답변글 개발 환경 구성: 18.3. 사용자 입장에서의 HTTPS 접근 (1)
374정성태10/25/200626333    답변글 개발 환경 구성: 18.4. 사용자 입장에서의 HTTPS 접근 (2)
391정성태11/7/200630457    답변글 개발 환경 구성: 18.5. 사용자 인증서 발급
392정성태11/11/200643732    답변글 개발 환경 구성: 18.6. 인증서 관리 (1) - 내보내기/가져오기
394정성태11/9/200628222    답변글 개발 환경 구성: 18.7. 인증서 관리 (2) - 개인키를 내보낼 수 있는 유형의 인증서 발급 [1]
395정성태11/9/200640322    답변글 개발 환경 구성: 18.8. 인증서 관리 (3) - 인증서 MMC 관리자 사용
414정성태12/23/200632011    답변글 개발 환경 구성: 18.9. CRL(Certificate Revocation List) 관리
428정성태12/31/200644934    답변글 개발 환경 구성: 18.10. IIS 7 - SSL 사이트 설정하는 방법 [4]
429정성태12/31/200630856    답변글 개발 환경 구성: 18.11. 서비스를 위한 인증서 설치
352정성태10/2/200620545개발 환경 구성: 17. VPC에 Linux 설치하는 방법 [1]
351정성태10/8/200623092개발 환경 구성: 16. 성태의 무식한(!) 리눅스 탐방기. [4]
349정성태9/26/200621890디버깅 기술: 10. C++/CLI에서 제공되는 명시적인 파괴자의 비밀
347정성태10/6/200625647디버깅 기술: 9. .NET IDisposable 처리 정리 [1]
346정성태9/23/200619177개발 환경 구성: 15. 툴박스에 컨트롤이 자동으로 나타나도록 해주는 옵션 설정
345정성태9/20/200618342오류 유형: 12. WCF 오류 메시지 - Error while trying to reflect on attribute 'MessageContractAttribute'
343정성태10/18/200630193개발 환경 구성: 14. SandCastle 사용법 (NDoc을 대체하는 문서화 도구) [1]파일 다운로드1
344정성태9/20/200620456    답변글 개발 환경 구성: 14.1. 오류 유형 - GAC 에 등록된 DLL 에 대한 문서화 시 오류
340정성태9/15/200619620개발 환경 구성: 13. ISO 파일을 가상 CD-ROM으로 매핑해주는 프로그램
339정성태9/14/200619104오류 유형: 11. ProtocolsSection?
338정성태2/4/200727347개발 환경 구성: 12. BUG: 웹 서비스에서 DataTable 사용하기 [2]파일 다운로드1
350정성태10/2/200620560    답변글 개발 환경 구성: 12.1. ASMX 2.0 and SchemaImporterExtensions파일 다운로드1
335정성태8/20/200628297디버깅 기술: 8. COM+ 서버 응용 프로그램에 대한 F5 디버깅 방법
334정성태8/20/200623525디버깅 기술: 7. VS.NET 2003/2005의 다중 프로젝트 디버깅
333정성태8/20/200624017개발 환경 구성: 11. COM+ 서버 활성화 보안 설정
... 181  182  183  [184]  185  186  187  188  189  190  191  192  193  194  195  ...