2007년 04월 26일
OpenID의 delegate 문제, 그리고 해결책
고무남님의 덧글(http://ayo79.egloos.com/3127587#9231109)에 대한 포스팅입니다.
다른 오픈아이디 서버로 변경하더라도 동일한 id를 유지하기 위해서 openid에는 delegate라는 기능이 있죠. 지금 제 블로그(http://ayo79.egloos.com)의 소스를 참고하시면 쉽게 이해하실 겁니다.
그런데 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 목록을 별도로 요청하여 유지해야 하는 번거로움이 있습니다. 좀 더 효과적인 방법 없을까요??
그렇죠. HSM(High Security Module or Hardware Security Module)이 주목받는 이유도 신뢰도 때문이라고 생각합니다. 지금까지는 사용자의 비밀키가 안전한 장소에 보관되어야 한다는 '가정(assumption)'에 기반하여 보안 기술들이 발전했지만, 가정은 가정일 뿐이죠.
100%의 신뢰도를 보장한다고 해도, 믿을지 여부는 사용자의 판단 문제라고 생각합니다. 어떤 사용자는 Trusted 3rd Party에 보관하는 방식을 선호할 수 있고, 다른 어떤 사용자는 직접 usb에 정보를 보관하는 방식을 선호할 수도 있죠. 만약 저라면 Idnetity repository로 선택 가능한 여러가지 방안을 마련한 뒤에, 사용자의 취향에 맞는 기술을 제공할 것 같네요^^;
궁금증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로 선택 가능한 여러가지 방안을 마련한 뒤에, 사용자의 취향에 맞는 기술을 제공할 것 같네요^^;
이 글과 관련있는 글을 자동검색한 결과입니다 [?]
- 이글루스에서 OpenID 제공 by S_H_Kim
- 오픈아이디(OpenID)가 무엇인가요? by crew
- 내이글루 주소를 OpenID로 사용하기 by jely
- 새로운 OpenID 서버: idtail.com by S_H_Kim
- 어느 블로거의 생각; OpenID는 이것이 필요하다! by S_H_Kim
# by | 2007/04/26 11:00 | CardSpace | 트랙백(1) | 덧글(4)





제목 : OpenID, 너무 좋아서 힘든 서비스
비단 제레미 리프킨의 '소유의 종말'을 인용하지 않더라도 이미 우리가 살고 있는 세상이 '소유'의 시대를 넘어서 '접속'의 시대로 접어들고 있다는 것은 부정할 수 없는 사실입니다. 어쩌면 이미 접어들었다고 표현하는 것이 맞을지도 모르죠. 이러한 시대상 속에서 일상적으로 벌어지는 '접속'이라는 행위의 흐름을 한곳으로 모을 수 있다면 그 영향력이 얼마나 엄청날까요? 그런 철학을 가지고 있는 분야가 제가 생각하는 Identity Management ......more
블로그에 덧글다는 경우도 마찬가지입니다. openID를 허용하는 블로그는 myid의 id를 쓰던지 idtail의 id를 쓰던지 상관없이 허용하죠. 하지만 myid의 id와 idtail의 id가 다르기 때문에 다른 사용자로 인식을 하는 것입니다. delegate 기능을 사용한다면 http://ayo79.eloogs.com/ 이라는 id를 항상 사용할 수 있죠.
이글루는 openid 로그인을 허가하는 것은 아니고, 현재는 단순히 openid 스펙에 있는 delegate 기능을 지원하는 것 뿐입니다. openid 덧글 또한 향후에는 지원한다고 합니다. http://ayo79.egloos.com/3041046 의 덧글을 참고하세요^^