기존 ID 관리 방식의 단점을 극복하기 위해
오픈 아이디의 사용이 조금씩 퍼져나가고 있는데,
표준 자체에 헛점이 보여 쓸모에 대한 논란이 많다.

(오픈 아이디의 개념은 앞선 포스트[http://initialw.tistory.com/56)]에 설명하였다.)

심지어 지금의 오픈 아이디는
(흔히 논란이 되는) 보안의 위험성 뿐만 아니라
사용성 측면에서도 문제가 있다.

보안의 문제야 어느 방식이건 안고 있는 것이지만
사용성의 문제는 서비스로서 치명적이다.

엔드 유저가 alice 이고 ID 제공자는 alice.com 이며,
alice는 id.alice.com 이라는 ID 를 사용하여
bob.com, carol.com, dave.com 에 회원으로 등록되어 있다고 하면,

문제는 다음과 같다.
  1. alice.com 이 여타의 이유로 서비스를 할 수 없을 경우,
    alice 는 bob.com, carol.com, dave.com 모두에 접속할 수 없다.
  2. alice 가 자신의 오픈 아이디를 id2.alice.com 으로 변경했다면
    bob.com, carol.com, dave.com 모두에게 그것을 인지시켜야 한다.
    : 결국 예전에 각각의 ID를 관리하던 때와 같은 복잡성이 생긴다.
    : delegate 라는 개념이 있기는 하지만
      이것은 ID를 하나 더 만드는 것이지 변경하는 것이 아니다.
  3. bob.com 에 로그인을 하고 있음에도 불구하고
    dave.com 에 접속하고자 하면 다시 로그인 과정을 거쳐야 한다.
    : 사용의 편의성 측면에서 예전의 방식보다 나을 것이 없다.
그래서 오픈 아이디의 표준은 완전히 다른 개념으로 바뀔 필요가 있다.

우선은 3번 문제에 대한 해결책을 제시해 본다.

지금의 오픈 아이디는
인증 서버를 서비스 서버의 밖으로 분리시킨 것에 불과하다.
그러니 여기에서 인증 주체를 맞바꾸면 편의성이 훨씬 증대될 수 있다.

위의 예와 같은 조건에서 alice 가 bob.com 에 로그인 하고자 한다면,
다음의 방식으로 인증을 진행하는 것이다.
  1. alice 는 alice.com 에 id.alice.com 의 id 로 로그인을 한다.
    : id.alice.com 은 alice.com 에 속해있으므로 외부 인증이 필요없다.
  2. alice 는 alice.com 에서 자신이 원하는 서비스를 모두 연다.
    : 예를들어, bob.com, carol.com 은 열고 dave.com 은 닫힌 채로 둔다.
  3. alice 가 bob.com 에 접속한다.
  4. bob.com 은 alice.com 과 통신하여 id.alice.com 의 세션 정보를 받아온다.
    : bob.com 이 alice 를 인증하는 것이 아니라
      alice 를 인증한 alice.com 에게
      bob.com 이 자신이 bob.com 임을 인증하는 것이다.
  5. bob.com 은 alice.com 으로부터 받아온 세션 정보로 alice 를 인증한다.
    : 앞의 과정은 bob.com 과 alice.com 간의 통신으로만 이루어지므로
      alice 는 별도의 로그인 과정을 거칠 필요가 전혀 없다.
  6. 이번에는 alice 가 carol.com 에 접속한다.
  7. carol.com 도 bob.com 과 같은 방식으로 alice.com 에 접근하여
    id.alice.com 의 세션을 얻어와 alice 를 인증한다.
  8. 이번에는 alice 가 dave.com 에 접속한다.
  9. 그러나 id.alice.com 설정에 dave.com 은 닫혀 있다.
    그러므로 dave.com 은 alice.com 에 인증을 받지 못하고
    id.alice.com 의 세션을 얻어올 수 없다.
    : 이것은 alice 에게 아무런 득도 되지 않지만 보안을 위한 옵션이다.
이 방식은
인증 주체를 relying party 에서 ID provider 쪽으로 옮김으로써
SSO(Single Sign On) 의 기능을 구현한 것이다.
이 방식으로 위의 1번, 2번 문제는 해결하지 못하지만
3번 문제인 오픈 아이디의 사용성은 크게 증대시킬 수 있다.

만약 메신저의 아이디를 오픈 아이디로 사용한다면
일상적으로 겪는 메신저 로그인 과정만으로
귀찮은 로그인 과정을 모두 피할 수 있다.

오픈 아이디의 정책에서는
안정성 문제가 매우 중대하지만
사용의 편의성 또한 간과해서는 안된다.

지금의 오픈 아이디는 많은 개선이 필요하다.


Trackbacks  | Comments