첫번째 실험은 앵커를 이용한 오픈아이디 사용입니다.
http://coolengineer.idtail.com/이라는 아이디가 있을 때, 보통 한 페이지에 여러 섹션을 두고 그 섹션을 찾아가기 위해애 앵커라는 표현 방식으로 다음과 같이 사용할 수 있습니다.
http://coolengineer.idtail.com/#2위 URL은 모두 다른 것을나타내지만, 결국 http://coolengineer.idtail.com/ 을 가져오도록되어있습니다. 일종의 위임(delegation)이 일어나는 것으로 생각할 수 있습니다. (물론 link tag에 의한 위임은 일어나지 않습니다.)
http://coolengineer.idtail.com/#3
http://coolengineer.idtail.com/#private
http://coolengineer.idtail.com/#public
위와같이 로그인시도를 할 경우 RP(Relying Party, Consumer site)에서는 각각을 다른아이디로 인식하게 됩니다. 하지만, IdP 쪽에는같은 아이디로 로그인을 하게 됩니다. 물론 IdP에서도 RP에 어떤 식으로 로그인하고 있는지 #뒤의 정보를 포함한 전체 URL이 전달됩니다. 따라서, 서버쪽 라이브러리가 #뒤의 내용을 무시하고 잘 처리해주어야하는데요, 제가 간단히 테스트한 상황으로, php 라이브러리를 사용하는 idtail.com과 ruby 라이브러리를 사용하는 myid.net은 정상적으로 처리하는것을 보았습니다. java나 .net은 살펴보지 않았습니다. (누가 테스트해서 댓글을 좀.)
두번째 실험은 전체 URL 대신 일부만으로 가능하냐입니다.
즉,coolengineer.idtail.com#2이렇게 앞의 'http://'을 떼고, .com 뒤의 # 앞에 '/'을 빼도 되느냐하는 것입니다. 이것은 클라이언트의 URL 정규화 함수의 기능에 들어 있어야하는것입니다. php 라이브러리에서는 예상대로 잘 되는 군요. (누가 다른 클라이언트 라이브러리에서도 테스트해서 댓글을 좀. 부탁합니다.)
coolengineer.idtail.com#me2dayonly
세번째 실헝믄 위임주소에서도 가능한가 입니다.
저와 같이 블로그 주소를 오픈아이디로위임하여 사용하는 것에서 실험해볼 수 있습니다.http://coolengineer.com/#2잘 됩니다. 즉, RP에서는 다른 오픈아이디로 인식하는 것을 확인하였습니다. 하지만, 제 블로그의 경우에는, 위임을 http://coolengineer.idtail.com/ 에 하기 때문에, IdP 입장에서는 블로그 주소뒤에 #XXX가 어떤 내용인지 알 수가 없더군요. 만약, IdP에서 #을 기반으로하는 기능 확장을 고려한다면, 주소를 위임받아 로그인하는 사람들에게는 어찌할 수 없어보입니다.
언젠가는 쉬는 날이 오겠지요. 그때까지는 달리렵니다.