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

비밀번호

댓글 작성자
 




... 151  152  153  154  155  156  157  158  [159]  160  161  162  163  164  165  ...
NoWriterDateCnt.TitleFile(s)
1073정성태6/20/201127130오류 유형: 127. Visual Studio에서 WCF 서비스의 이름 변경 시 발생할 수 있는 오류
1072정성태6/19/201126595.NET Framework: 224. EF 4.1 Code First에서 Identity 칼럼 생성하는 방법파일 다운로드1
1071정성태6/19/201130140.NET Framework: 223. Entity Framework 4.1의 Code First를 이용한 SQL Azure 데이터베이스 생성 [3]파일 다운로드1
1070정성태6/19/201127666.NET Framework: 222. Windows Azure - VM Role 베타 프로그램 참여 [2]
1069정성태6/18/201127753.NET Framework: 221. Cache 영향을 받지 않는 DNS 이름 풀이 [2]파일 다운로드1
1068정성태6/16/201125361개발 환경 구성: 127. Portable Library - 닷넷 N-Screen용 공통 라이브러리 제작 [1]
1067정성태6/15/201124929오류 유형: 126. Windows failed to apply the Group Policy Folder Options settings. [1]
1066정성태6/14/201127936개발 환경 구성: 126. MSDN 구독자 - Windows Azure 무료 서비스 신청하는 방법 [4]
1065정성태6/13/201132759개발 환경 구성: 125. Firebird - 유니코드 기본 문자셋 지정
1064정성태6/11/201127415웹: 22. Visual Studio 2010에서 CSS 3 인텔리센스(intellisense) 지원하는 방법 [1]
1063정성태6/10/201129006웹: 21. Sysnet 웹 사이트의 CSS 2.1 변환 기록 [1]
1062정성태6/9/201129185웹: 20. Sysnet 웹 사이트의 HTML5 변환 기록 [1]
1061정성태6/8/201127424오류 유형: 125. 인터넷 익스플로러 - 개발자 도구에서 정지점(BP: Breakpoint) 설정이 안 되는 경우 [1]
1060정성태6/8/201123992VC++: 51. PHP 모듈의 F5 디버깅
1059정성태6/6/201129113VC++: 50. PHP 모듈 - php_mysql 빌드하는 방법파일 다운로드1
1058정성태6/5/201132747개발 환경 구성: 124. .NET 개발자가 처음 해보는 PHP + MySQL 연동 [2]
1057정성태6/4/201130123VC++: 49. 소스 코드로부터 php5apache2_2.dll 생성하는 방법파일 다운로드1
1056정성태6/2/201128285VC++: 48. 윈도우에서 Apache Module - Content Handler 컴파일파일 다운로드1
1055정성태6/1/201125509오류 유형: 124. MVC 프로젝트의 Site.Master 관련 오류 정리
1054정성태5/31/201129742.NET Framework: 220. ASP.NET MVC Web Site 프로젝트 - 단위 테스트 작성파일 다운로드1
1053정성태5/31/201132278VC++: 47. Apache Module에 대한 'F5 디버그 (Start with debugging)' [2]
1052정성태5/30/201129916.NET Framework: 219. ASP.NET MVC Web Site 프로젝트 구성하기파일 다운로드1
1051정성태5/28/201138395VC++: 46. 윈도우에서 Apache Module 컴파일 (VC++)파일 다운로드1
1050정성태5/28/201124589오류 유형: 123. Firebird - Exception of type 'FirebirdSql.Data.Common.IscException' was thrown.
1049정성태5/28/201130275.NET Framework: 218. WCF REST 서비스 - 웹 브라우저 측 Ajax 호출 캐시 [1]
1048정성태5/27/201132206개발 환경 구성: 123. Apache 소스를 윈도우 환경에서 빌드하기
... 151  152  153  154  155  156  157  158  [159]  160  161  162  163  164  165  ...