OpenID 적용 서비스 Best Practice
점차 국내에도 오픈아이디 적용서비스들(RP) 이 늘어가고 있습니다.
오픈아이디의 강점은, 표준을 통해 사용자 중심 원칙을 확보하는 데 있습니다. 하지만, 결국, 표준을 업체들이 얼마나 준수해 주느냐에 따라 실제 사용자 경험상의 일관성이 구현된다고 생각합니다.
현재 스펙상의 프로토콜 표준은 따르지 않을 경우, 작동이 안되기 때문에 거의 지켜진다고 봅니다. 하지만, 지원서비스나 제공업체가 같이 지키면 좋을 Best Practice 같은 것은 그 가치를 알고 신경써서 지키지 않으면 쉽게 문제점이 드러나지 않는 것들, 결국, 사용자의 불편이나 불이익으로만 드러나는 것들이 있을 수 있습니다.
오픈마루에서는 내부서비스들의 인증 기반이 모두 오픈아이디이기때문에 이부분에 대해서 간단하지만 내부적으로 정리된 것이 좀 있어서 공유드리고, 함께 발전시켰으면 합니다.
여기 소개드리는 BP 는 거의 스펙 http://openid.net/specs.bml 에서 발췌된 것들입니다.
OpenID ID 입력폼 / 인증창
프로토콜로 강제되지 않지만, 사용자 경험상 매우 중요한 부분입니다.
- 권장 스타일 http://www.openidenabled.com/openid/openid-login-box-css-class/
- 특히 입력란의 오픈아이디 로고이미지는 거의 필수입니다.
- OpenID ID 입력콘트롤 표준 이름 (input name)
- 'openid_identifier'
- 브라우저 자동 완성 등 automation 지원을 받을 수 있습니다.
- myopenid.com affiliate program 등을 활용하려면 필수 입니다.
- 'openid_identifier'
- ID Canonicalization - 입력시 생략된 정보 완성
- 'http://' 등 문맥에 따라서 생략가능한 부분을 완성시켜 주어야 합니다.
- 마지막으로 모든 서버쪽 redirection 을 따라간 최종 URL 을 claimed ID 로 사용합니다.
- (보안) 전통적인 ID 와 password 를 함께 쓰는 폼을 지양합니다.
- 특히, 기존 인증기반이 있는 서비스의 경우에, 로칼아이디와 오픈아이디를 한 입력란에 받는 UI 는 매우 안좋은 패턴입니다.
- 오픈아이디 본질상, ID 입력과 인증(password 입력등) 이 분리되는 것을 사용자에게 학습시켜야 합니다.
- (보안) 인증제공자의 페이지는 반드시 URL 이 확인되도록 해야 합니다.
- iframe, 약식-새창, layer 등으로 인증 URL 이 감추어 지면 안됩니다.
- 이러한 UI 는 피싱사이트로 오해받을 수 있습니다.
특히 위의 (보안) 관련 항목은 악의적인 사이트들에 의한 ID 도용을 방지하기 위해서 선의의 적용사이트들이 위와같은 Best Practice 등의 공동노력도 많이 필요합니다.
일단은, 사용자의 편의를 위한 최소한의 내용들만 정리해 보았습니다. 향후, 적용서비스들의 피드백과 함께 발전시키겠습니다.
아, 최근에 다른 분이 더욱 잘 정리 하셨네요.
http://openid.net/wiki/index.php/Relying_Party_Best_Practices
번역시작하겠습니다. 다른분들도 같이 하시지요 ^^;
중요한 정리인 것 같습니다.
(보안)과 관련하여 ID/Password 입력 분리가 가지는 UI에 대해서 기존 방식에 비해 가지는 장점이 많은 것에 공감합니다. ID를 먼저 제출하였을 경우 그 ID에 미리 할당해놓은 그림을 보여주는 방식과 같이 머리속의 뭔가를 인증에 참여시키는 것은 중요한 개선이라 할 수 있습니다.
또, 저도 그러한 태터툴즈 플러그인을 만들때, 요청을 받은 적이 있고 나름 생각도 했는데, ID Provider의 화면을 Ajax를 통해 조그만 영역에서 인증하거나 iframe 등으로 인증하는 것은 화려한(?) 인증 창에 대한 유혹이라는 생각을 알려야할 듯합니다.
http://coolengineer.com/tt/407
저는 고민이라고 적었지만, Best practice가 벌써 만들어져 나왔군요.

