OpenID의 delegate 문제, 그리고 해결책

고무남님의 덧글(http://ayo79.egloos.com/3127587#9231109)에 대한 포스팅입니다.

궁금증1. "오픈아이디 서버가 죽어버리면 제가 가입한 모든 서비스를 다 이용하지 못하게 된다는게 가장 답답한 문제 같습니다."
제가 가입한 오픈아이디 서비스 A사의 서버가 Single point failure 가 일어난경우 다른 오픈 아이디 사이트 B 사에 가입후 B사의 오픈아이디를 이용해서 제가 가입한 서비스를 이용하면 되지 않나요? Authentication을 오픈아이디 서비스에서 대행하는 것이기 때문에 서비스를 제공하는 곳에서 특정 오픈 아이디만을 받는다면 오픈 아이디를 쓰는 의미가 있나 모르겠습니다. 이렇게 되면 승현님 말대로 오픈 아이디의 기본 컨셉을 뒤집는게 아닐까요?

다른 오픈아이디 서버로 변경하더라도 동일한 id를 유지하기 위해서 openid에는 delegate라는 기능이 있죠. 지금 제 블로그(http://ayo79.egloos.com)의 소스를 참고하시면 쉽게 이해하실 겁니다.

<meta http-equiv="X-XRDS-Location" content="http://ayo.myid.net/xrds" />
<link rel="openid.server" href="http://www.myid.net/server" />
<link rel="openid.delegate" href="http://ayo.myid.net" />

그런데 delegate 기능에는 또다른 문제가 있습니다. openid로 사용하는 url이 동작하지 않을 경우에는 openid 서비스를 전혀 사용할 수 없습니다. 간단히 예를 들어 설명하죠. 제가 사용하는 openid는 http://ayo79.egloos.com/ 입니다. 가끔씩 egloos.com이 정기점검을 할 때가 있죠. 그럴 경우에는 http://ayo79.egloos.com/ 이라는 id를 전혀 사용할 수 없게 됩니다. 최근에 제가 즐겨 사용하는 http://springnote.com/ 에 제 openid로 로그인할 수 없는 것이죠. 비록 openid 서버인 http://myid.net 이 제대로 동작하더라고 말입니다. 요즘 openid 서버의 가용성에 대한 내용이 문제가 되고 있는데, delegate 기능의 문제는 openid 서버의 가용성 문제와는 전혀 다른 차원입니다.

이 문제를 해결하기 위해서는, 한 사용자가 여러 openid를 사용하더라도 동일한 서비스를 제공받을 수 있어야 합니다. http://ayo79.egloos.com 을 주로 쓰더라도 http://ayo.myid.net, http://kimseunghyun.pip.verisignlabs.com, http://ayo79.idtail.com/ 라는 id 또한 같은 사용자로 인식할 수 있으면 됩니다. 하지만 사용자나 서비스 제공자 입장에서는 귀찮은 작업이죠. 사용자는 매번 가입하기 귀찮아서 openid를 사용하는데, 안정성을 위해서 여러 개의 id를 만들어야 합니다. 서비스 제공자는 사용자의 id 정보를 관리하기 귀찮아했거나 사용자로부터 회원 가입의 불편함을 줄이기 위해서 openid를 도입했지만, 사용자로부터 openid 목록을 별도로 요청하여 유지해야 하는 번거로움이 있습니다. 좀 더 효과적인 방법 없을까요??

궁금증 2. "그런데 오픈아이디라도 남의 서버에 내 정보를 넣어둔 이상 불안하기는 마찬가지더라고요."
내 정보를 넣어 두고도 불안하지 않을 만한 서비스가 현재 있나요? 아니면 만들수 있다고 생각하십니까?(제가 확실히 몰라서...) 만들수 있다면 어떤 조건들이 필요할까요? 요새 Identity Repository 를 이용한 서비스를 구상중인데...신뢰도가 제일 고민거리네요.

그렇죠. HSM(High Security Module or Hardware Security Module)이 주목받는 이유도 신뢰도 때문이라고 생각합니다. 지금까지는 사용자의 비밀키가 안전한 장소에 보관되어야 한다는 '가정(assumption)'에 기반하여 보안 기술들이 발전했지만, 가정은 가정일 뿐이죠.
100%의 신뢰도를 보장한다고 해도, 믿을지 여부는 사용자의 판단 문제라고 생각합니다. 어떤 사용자는 Trusted 3rd Party에 보관하는 방식을 선호할 수 있고, 다른 어떤 사용자는 직접 usb에 정보를 보관하는 방식을 선호할 수도 있죠. 만약 저라면 Idnetity repository로 선택 가능한 여러가지 방안을 마련한 뒤에, 사용자의 취향에 맞는 기술을 제공할 것 같네요^^;

by S_H_Kim | 2007/04/26 11:00 | CardSpace | 트랙백(1) | 덧글(4)

Tracked from 실버리버의 이야기 at 2007/04/30 17:55

제목 : OpenID, 너무 좋아서 힘든 서비스
비단 제레미 리프킨의 '소유의 종말'을 인용하지 않더라도 이미 우리가 살고 있는 세상이 '소유'의 시대를 넘어서 '접속'의 시대로 접어들고 있다는 것은 부정할 수 없는 사실입니다. 어쩌면 이미 접어들었다고 표현하는 것이 맞을지도 모르죠. 이러한 시대상 속에서 일상적으로 벌어지는 '접속'이라는 행위의 흐름을 한곳으로 모을 수 있다면 그 영향력이 얼마나 엄청날까요? 그런 철학을 가지고 있는 분야가 제가 생각하는 Identity Management ......more

Commented by Moo Nam Ko at 2007/04/26 23:05
승현님 좋은글 감사합니다. 승현님의 예를 통해서 제가 이해한 것으로 적자면, 이글루의 승현님 계정에 로그인을 할때 지정된 OpenID 서비스 (myid.net)으로 부터 발급된 Credential 통해서만 로그인이 된다는 말이군요. 서버에서 지정되지 않은 OponID서비스들(pip.verisinglabs.com, idtail.com)을 통해서는 제 OpenID가 있더라고 로그인을 할수 없다는 말이군요. 제가 1번 궁금증을 적은 이유는, 제가 사용해 봤던 OpenID의 경험은 블로그에 덧글을 달때 주로 사용했는데, 이경우에는 블러그 서버에서 특정 OpenID서비스를 구분하지 않고 any OpenID 서비스로 부터 발급받은 Credential 만 있으면 글쓰기를 허용하는것 같아서 적게 되었습니다. 덧글쓸때와 개인 개정에 로그인을 할때의 OpenID Credential에 대한 처리 방법이 다른가요? 그리고 이글루는 개인 개정에 로그인에 대해서는 openID의 사용을 허하면서 덧글사용자에게는 OpenID 서비스를 제공하지 않나요? 별안간 궁금해 지네요. 이건 이글루 측에 물어봐야겠군요. ㅋㅋ 다시한번 좋은 답변 감사 드립니다.
Commented by S_H_Kim at 2007/04/27 09:07
/고무남님, 제가 애매하게 설명을 했군요. OpenID 서버에서 만들어낸 id를 사용할 경우, 다른 OpenID 서버를 사용하고 싶다면 다른 id를 사용해야 합니다. OpenID 서버를 바꾸어도 동일한 id를 사용하기 위해서, delegate 기능이 등장한 것이구요. 즉, 저는 http://ayo79.egloos.com/ 을 id로 사용하면서 openid 서버는 myid.net, verisignlab.com, idtail.com 을 마음대로 고를 수 있다는 것입니다.
블로그에 덧글다는 경우도 마찬가지입니다. openID를 허용하는 블로그는 myid의 id를 쓰던지 idtail의 id를 쓰던지 상관없이 허용하죠. 하지만 myid의 id와 idtail의 id가 다르기 때문에 다른 사용자로 인식을 하는 것입니다. delegate 기능을 사용한다면 http://ayo79.eloogs.com/ 이라는 id를 항상 사용할 수 있죠.
이글루는 openid 로그인을 허가하는 것은 아니고, 현재는 단순히 openid 스펙에 있는 delegate 기능을 지원하는 것 뿐입니다. openid 덧글 또한 향후에는 지원한다고 합니다. http://ayo79.egloos.com/3041046 의 덧글을 참고하세요^^
Commented by Moo Nam Ko at 2007/04/27 22:36
아~ OpenID서버를 바꾸어도 동일한 ID 의 사용이 delegation을 통해 가능하군요. OpenID 서비스들이 제가 선택한 아이디에 자신들의 도메인을 붙이는 식으로(komunamu.pip.verisinglab.com) 제 OpenID를 주길래 동일한 ID사용을 가능케 하는 Delegation기능에 있는지는 몰랐습니다. 아무래도 기말고사 끝나면 OpenID스펙에 대해서공부를 해봐야겠습니다. 명쾌한 답변 다시 한번 감사합니다. 그런데....OpenID는 어떤식으로 수익모델을 창출 할수 있나요? 혹, 아시나 해서 또 꼬리를 남김니다. 귀찮게 해서 죄송합니다. ^^
Commented by S_H_Kim at 2007/04/30 09:43
/고무남님, 저도 그게 의문이었습니다^^; OpenID 서버는 아무나 만들 수 있으니까요. 나중에 OpenID 서비스 하시는 분들께 여쭈어봐야겠어요.
※ 이 포스트는 더 이상 덧글을 남길 수 없습니다.

◀ 이전 페이지다음 페이지 ▶