어떻게 작동하나?
여기 큰 그림을 소개합니다: (자세한 것은 스펙이나 인증흐름도를 보세요.)
- 당신이 블로그를 하나 가지고 있다고 합시다, 이를테면, livejournal.com (물론 어떤것도 된다) 그리고 당신은 보통 거기에 로그인 해 있습니다.
- 당신은 someblog.com에 코멘트를 남기러 갑니다 (아마도 그것은 태터툴즈, 이글루스, Tistory, Movable Type, Wordpress 등이 될 수 있습니다.) 하지만 당신은 아직 거기에 계정이 없습니다. 그래서 인증된 코멘트는 남길 수가 없습니다. 그러나 만약 그들의 블로그툴이 OpenID 를 지원한다면 (Wordpress 는 지원합니다.), 당신은 다음과 같은 것을 보게됩니다: (물론 이보다는 좀더 이쁜)
- 당신은 "brad.livejournal.com" 라고 치고 로긴을 누릅니다, 그러면 그 페이지를 떠나거나 당신의 코멘트를 없애버리지 않은채 someblog.com 서버는 다음과 같은 일을 합니다:
- 당신의 블로그를 읽고, 당신의 OpenID 서버를 알아냅니다. 물론 당신은 OpenID 가 뭔지도 모릅니다, 당신의 블로그툴이 알아서 할 뿐입니다.
- someblog.com 서버는 당신의 브라어저에게 알아낸 OpenID 제공 서버를 알려줍니다.
- 그러면 당신의 브라우저는 그 OpenID 제공 서버에게 접속하고 (상세스펙을 참고) 아래 2 경우중 하나...
- 만약 당신이 당신의 홈사이트 (당신의 identity 제공자 LiveJournal) 에 someblog.com 가 당신의 identity 를 알도록 아직 승인하지 않았다면, 당신의 홈사이트는 이사실을 알리고(물론 당신이 누구인지 밝히지 않은채) UI 가 아래와 비슷하게 바뀝니다 (물론 UI 는 방문중인 사이트에 계속 머물러 있는 채로):
- 일단 당신의 홈사이트에 당신이 방문중인 사이트를 승인한다고 말하면, 당신의 identity 를 검증하기 위해서 필요한 모든 절차는 서버끼리 알아서 처리되며 당신은 그냥 다음과 같은 메시지를 보게될 것입니다:
Brad 님 안녕하세요! 당신은 이제 LiveJournal 에서 온 Brad 로 someblog.com 에 로그인 하셨습니다.
- 만약 당신이 당신의 홈사이트 (당신의 identity 제공자 LiveJournal) 에 someblog.com 가 당신의 identity 를 알도록 아직 승인하지 않았다면, 당신의 홈사이트는 이사실을 알리고(물론 당신이 누구인지 밝히지 않은채) UI 가 아래와 비슷하게 바뀝니다 (물론 UI 는 방문중인 사이트에 계속 머물러 있는 채로):
- 이제 당신은 당신의 코멘트를 다쓰고 보내면 someblog.com 서버가, 스펙에 설명된 적절한 암호화 기법들을 동원해서, 당신의 identity 를 검증합니다. someblog.com 가 규칙을 따른다면 아무도 당신의 identity 를 위장할 수 없습니다. 물론 어떤 사이트나 거짓말할 수 있습니만, 수천명이 빌게이츠라고 말하고 게시판이 그것을 허용한다면 얼마나 웃기겠습니까? 따라서 (당신이 믿고 항상 이용하는) 좋은 사이트라면 규칙을 지킬것 입니다.
신뢰 문제는 ?
이것은 신뢰시스템이 아닙니다. 신뢰는 먼저 identity 를 필요로 합니다.
스팸 문제는 ?
다시 말하지만, 이것은 신뢰시스템이 아닙니다.
누군가 자신의 ID 제공서버를 돌리면서 http://spammer.example.com/000001/ 부터 http://spammer.example.com/999999/ 까지의 모든 URL 을 ID 로 사용할 수도 있습니다. 이것을 막는 것은 이 시스템의 일이 아닙니다. URL spammer.example.com/*, 어떤 ID 서버, 또 특정 identity 등이 스팸 URL 이다라고 말하는 것은 다른 쪽 (layer) 의 일입니다.
다만 선량한 일반인들이 그 스팸 URL 을 사용하지는 못 합니다. 설령 일반인이 그들의 ID 서버를 통해서 그들이 http://spammer.example.com/000001/ 라고 하는 경우 첫째) 그럴 이유가 뭐죠 ?, 그리고 둘째) 그들이 그 스팸 서버 (spammer.example.com) 를 통제하지 않는 이상 <link rel=..> 태그가 그들의 악의적인 identity server 를 가리키도록 할 수는 없습니다.
코멘트 서명은 ?
이 시스템은 코멘트를 서명하지 않습니다. 만약 어떤 악의적인 사이트가 실제로는 아니지만 OpenID 를 지원한다고 하면서 당신의 identity 로 코멘트을 올리도록 한다해도, 쓸모 없는 짓입니다. 이 시스템은 그것을 방지하게 되있지는 않습니다. 이것의 목적은 사이트들로 하여금, 악의적인 커멘트나 identity 들이 계속 되는 경우에, 더이상의 장난은 방지할 수 있게 하는 것 입니다.
사실, 누구나 지금 당장 어떤 싸이 페이지에 '대통령귀는 당나귀귀 라고 말했다'라고 쓸수 있습니다만, 당신은 그것을 곧이곧대로 믿으십니까?
그러나 분명 코멘트 서명기능을 충분히 넣을 수는 있으며, 그래서 이 스펙의 향후 버전에는 identity 서버가 영구링크(permalink) 나 서명을 코멘트에 제공함으로써 우연히 방문한 사이트라도, 그 코멘트의 원본에 방문해서 검증할 수 있게 될 것 같습니다.