오픈아이디는 URL(정확히는URI와 해당 Dispatcher조합)로 표현된다는 관점에서 우리는 재밌는 것을 실험해 볼 수가 있습니다. 이 실험에 대한 아이디어는 OpenID 세미나로 방문했던  David Recordon(블로그)으로부터 소개 받은 것입니다.

첫번째 실험은 앵커를 이용한 오픈아이디 사용입니다.

http://coolengineer.idtail.com/
이라는 아이디가 있을 때, 보통 한 페이지에 여러 섹션을 두고 그 섹션을 찾아가기 위해애 앵커라는 표현 방식으로 다음과 같이 사용할 수 있습니다.
http://coolengineer.idtail.com/#2
http://coolengineer.idtail.com/#3
http://coolengineer.idtail.com/#private
http://coolengineer.idtail.com/#public
위 URL은 모두 다른 것을나타내지만, 결국 http://coolengineer.idtail.com/ 을 가져오도록되어있습니다. 일종의 위임(delegation)이 일어나는 것으로 생각할 수 있습니다. (물론 link tag에 의한 위임은 일어나지 않습니다.)

위와같이 로그인시도를 할 경우 RP(Relying Party, Consumer site)에서는 각각을 다른아이디로 인식하게 됩니다. 하지만, IdP 쪽에는같은 아이디로 로그인을 하게 됩니다. 물론 IdP에서도 RP에 어떤 식으로 로그인하고 있는지 #뒤의 정보를 포함한 전체 URL이 전달됩니다. 따라서, 서버쪽 라이브러리가 #뒤의 내용을 무시하고 잘 처리해주어야하는데요, 제가 간단히 테스트한 상황으로, php 라이브러리를 사용하는 idtail.com과 ruby 라이브러리를 사용하는 myid.net은 정상적으로 처리하는것을 보았습니다. java나 .net은 살펴보지 않았습니다. (누가 테스트해서 댓글을 좀.)

두번째 실험은 전체 URL 대신 일부만으로 가능하냐입니다.

즉,
coolengineer.idtail.com#2
coolengineer.idtail.com#me2dayonly
이렇게 앞의 'http://'을 떼고, .com 뒤의 # 앞에 '/'을 빼도 되느냐하는 것입니다. 이것은 클라이언트의 URL 정규화 함수의 기능에 들어 있어야하는것입니다. php 라이브러리에서는 예상대로 잘 되는 군요. (누가 다른 클라이언트 라이브러리에서도 테스트해서 댓글을 좀. 부탁합니다.)

세번째 실헝믄 위임주소에서도 가능한가 입니다.

저와 같이 블로그 주소를 오픈아이디로위임하여 사용하는 것에서 실험해볼 수 있습니다.
http://coolengineer.com/#2
잘 됩니다. 즉, RP에서는 다른 오픈아이디로 인식하는 것을 확인하였습니다. 하지만, 제 블로그의 경우에는, 위임을 http://coolengineer.idtail.com/ 에 하기 때문에, IdP 입장에서는 블로그 주소뒤에 #XXX가 어떤 내용인지 알 수가 없더군요. 만약, IdP에서 #을 기반으로하는 기능 확장을 고려한다면, 주소를 위임받아 로그인하는 사람들에게는 어찌할 수 없어보입니다.

정리하자면...

이 기능을 고려하여 사용할 수 있는 것은, IdP의 입장에서는 여러 Persona에 대해서 URL을 부여할 수가 있으며, 각 URL이 다른 오픈아이디로 인식되게 할 수 있다는 것입니다. 또한 사용자도 IdP가 이런 확장을 지원하지 않아도 #XXX를 통해 달라지는 URL을 통해 많은 OpenID를 만들어낼 수가 있다는 것입니다.


신고
크리에이티브 커먼즈 라이선스
Creative Commons License
  1. Kay 2007.07.20 01:26 신고

    재밌어요. 어디에 쓰면 유용할지 생각을 좀 많이 해야 겠네요. ^^; myID.net 에서는 IDP 차원에서 유용한 ID variation 을 제공할까 합니다. 생각하고 있는 재밌는게 많은데요, 한가지만 소개드리겠습니다. 최근에, myid.net 에 새로 추가된 주소록, 그룹 아이디 기능이 있는데요, 재밌는 것은 모두 '관계' 인증이 공통적인 점입니다.
    이를테면 제가 coolengieer 님을 제 주소록에 등록하고, 'community-friend' 라는 제 개인그룹에 분류하게 되면, coolengieer 님은 'kayflow.myid.net/list/community-friend' 라는 URL 에 소속된 권한이 부여된 것으로 볼 수 있구요. 이 페이지를 openid 화 시키면, openid 로 쓸 수 있습니다. 물론 myid.net 그룹-멤버쉽 인증기능을 쓸 수도 있지만, 오픈아이디만 지원하는 사이트에서는, 제가 위의 분류로 넣어 드린 분들은 모두 위의 아이디로 로그인이 가능해 지는 것이지요 ^^; 일종의 아이디 공유가 됩니다. 게다가 이 url 이 마음에 안들면, delegation 걸면 되지요.
    물론, 아직 제공되는 기능은 아닙니다.

    • 최호진 2007.07.21 02:49 신고

      비슷비슷한 생각들이 자라고 있는 것 같습니다. 별로 사용하지 않을 기능 만드는 엔지니어들만의 생각이 아니어야할텐데요... ;)

    • Kay 2007.07.24 01:17 신고

      태터캠프 후기를 보니 '그룹 오픈아이디' 언급이 있으시던데... ^^; myID.net 그룹도 물론 지원해 주실거죠. --; API 수정의향도 있사오니... 꼭 지원해 주세요. ㅎㅎ

    • 최호진 2007.07.24 10:14 신고

      제 개념을 설명하면서, myid를 언급했었습니다. ^^; 아니면, 설명할때 myid가 제 머리속에 있었던지, 둘중 하나이어요.
      플러그인으로 가능한 방법을 텍스트 큐브에 도입하여 그룹id를 제공하고자하는 서비스들을 만족시켜가는 방향으로 잡으면 될 것 같습니다. 이 논의는 Textcube 2.0에서.. ;)

    • kay 2007.07.25 00:24 신고

      아무려면 어떻습니까. 기왕에 쓸만한 아이디어가, 실제로 세상에 쓰이기만 한다면, 불편한 부분은 다 뜯어 고치겠습니다. ^^;

  2. // 2007.09.14 17:52 신고

    환영

  3. 최호진 2008.01.15 10:27 신고

    본 기능은 OpenID 2.0 스펙에서 ID Recycling 기법에 사용되어 더이상 유효하지 않게 되었음을 알려드립니다.

  4. carpediem 2008.02.22 10:54 신고

    불편한 오픈아이디... 회원관리하기도 짜증 -_-;;

    • 최호진 2008.02.23 01:10 신고

      보안이 들어가면 원래 좀 불편해집니다.

+ Recent posts