2009-05-08 8 views
3

현재 새 웹 프로젝트를 계획 중입니다. 클라이언트는 일반 웹 브라우저를 사용하여 연결하고 일반 Java 지원 휴대 전화의 경우 j2me 클라이언트를 사용하여 연결합니다. OpenID 인증을 사용하고 싶습니다. 일반 웹 브라우저의 경우에는 매우 간단합니다. 상당히 제한 :설치된 응용 프로그램의 OpenID 인증

입니다 - 일반 오픈 ID 인증이 특히 오픈 ID 공급자의 웹 페이지에 사용자 이름/암호를 입력하여 수행됩니다 - 그러나, 나는 정말 (예 : 모바일 장치에 설치 J2ME 클라이언트로) 설치 응용 프로그램에 대한 확실하지 않다

그런 상황에 대처 한 사람이 있습니까? 모바일 J2ME 클라이언트에서 OpenID를 사용하는 사이트에 인증 메커니즘을 생성 할 수 있습니까?

현재, 나는 그들의 휴대폰에서 연결하고자하는 사용자가 자신을 인증 한 후 서버 웹 사이트에서 필요한 J2ME 응용 프로그램 (일반 브라우저 인증)을 다운로드 솔루션 생각합니다. 모바일 클라이언트 응용 프로그램은 특정 로그인 된 OpenID 사용자와 연결된 SSL 인증서가 포함 된 서버에서 동적으로 어셈블 할 수 있습니다. 그 후, j2me 클라이언트는 사용자 이름/비밀번호를 입력하지 않고 서버를 인증 할 수 있습니다. 서버에 저장 될 것입니다 데이터는 구분하지 않습니다 - 등 휴대 전화 절도의 고려 경우

사람이 더 나은 솔루션을 가지고 올 수 있습니까?

답변

3

최선의 해결책은 OpenID와 결합 된 OAuth를 사용하는 것입니다. RP에서 OpenID를 사용하는 것이 좋습니다. 그러나 해당 웹 사이트에 액세스해야하는 설치된 응용 프로그램의 경우 OAuth를 사용하여 인증을 받아야합니다. 흐름은 다음과 같이 작동합니다 :

  1. 사용자 응용 프로그램은 "나에게 권한 부여"버튼이 설치하는 동안 또는 처음 실행에 자신의 기기
  2. 에 응용 프로그램을 설치합니다.
  3. 사용자가 버튼을 누르면 클라이언트 응용 프로그램이 데이터에 액세스해야하는 웹 사이트가 웹 브라우저에서 팝업됩니다.
  4. 사용자가 OpenID를 사용하여 해당 사이트에 로그인합니다.
  5. 사이트에서 "클라이언트 응용 프로그램 X를 승인 하시겠습니까?"라고 묻습니다.
  6. 사용자가 예라고 말하고 브라우저를 닫습니다.
  7. 클라이언트 응용 프로그램이 다시 나타나고 "감사합니다."라고 말합니다. 이제는 사용자가 다시 로그인하지 않아도 사용자의 데이터에 액세스하는 데 필요한 OAuth 토큰을 갖게됩니다.
+0

대단히 감사합니다. 나는 OAuth에 대해 아무것도 몰랐다. 나는 그것을 조사 할 것이다. 아직도, 그것은 매우 promissing 보인다. 다시 한 번 – martinsb

+0

클라이언트 측에서 웹 브라우저를 열 수없는 경우는 어떻게됩니까? 예 : https://dev.twitter.com/discussions/3455를 참조하십시오. –

+0

OpenID에는 웹 브라우저가 필요합니다. 따라서 OpenID에 관한이 질문은 브라우저가 아닌 시나리오에 대해 토론하기에 부적절한 것 같습니다. 그러나 브라우저가없는 장치/클라이언트가 네트워크에 연결되어 있고 PIN을 입력 할 수있는 방법이 있다면 OAuth에 대해 설명한 링크와 비슷한 기능을 수행 할 수 있습니다. –

관련 문제