2013-03-09 4 views
6

Play와 함께 개인 REST API를 작성 중입니다. 내가 모바일 응용 프로그램에서 전화를 걸면 보안 유지 방법에 대해 혼란스러워합니다.Play with Security! 외부 애플리케이션

Play!의 설명서에있는 또 다른 블로그 엔진 예제를 통해 작업 할 때 나는 authentication example을 통해 작업했으며 브라우저를 통해 로그인하는 것을 다룹니다. Play!의 Secure 모듈에 대한 이해에서부터 브라우저 세션에 도움이됩니다. 또한 내가 본 모든 StackOverflow 질문은 웹의 관리 모듈과 관련되어 있으며 질문은 세션과 관련되어 있습니다. 웹 응용 프로그램에

을 유지하기 위해 HTTPS를 사용하는 것이 가능 제거, r은 "로그 아웃"또는 토큰이 만료 Play를 사용하여 만드는 웹 응용 프로그램! 프레임 워크를 안전하게 유지하면서?

전체 상황에 잘못 접근하고 있습니까?

이것은 첫 번째 게임입니다! app를 만들었으며 Heroku를 처음 사용했습니다. 나는이 문제를 해결하는 데 훨씬 더 쉽고 효율적/더 적합한 경우 다른 것으로 전환하는 것에 반대한다는 점에서 너무 멀지 않았습니다.

편집 : 또한 Play!의 YABE 튜토리얼에서는 일반 텍스트로 암호를 확인하는 것처럼 보입니다. 일반적인 관점에서 볼 때 보안 문제가 아닌 것은 무엇입니까?

EDIT 2 : OAuth 제공 업체 정보를 살펴본 결과 문제가 해결 된 것으로 보입니다. v2.0이 보안 결함을 알고 있었고 v1.0이 필요한 것은 모바일 앱과 웹 앱 간의 보안 연결이 필요한 상황에 구현하기가 복잡해 보였다는 점만이 내 걱정입니다. 모든 호출에 SSL을 요구하게 만들려면 각 Play 메소드가 사용자 이름과 비밀번호를 매개 변수로 사용하고 OAuth를 완전히 무시하도록 할 수 있습니까?

+2

", 보인다 :

여기 (this forum post에서 참조) 누군가가 플레이와 함께 몇 가지의 OAuth 제공자 물건을 넣어 것 프로젝트의 "- 일반 텍스트의 의미에 따라 다릅니다. HTTPS를 초과하는 경우 요청시 비밀번호를 보내는 것이 문제가 아닙니다. 데이터베이스에 암호를 일반 텍스트로 저장하는 경우 문제가 발생합니다. 튜토리얼이 기본 보안을 "단순성을 위해"완전히 무시할 때 부끄러움. – Nick

+0

사용한 링크에서 Play 1.x를 사용하는 것처럼 보입니다. 2.x를 사용하지 않는 이유는 무엇입니까? – Nick

+0

Heroku는 기본적으로 Play 1.2.4를 사용합니다. 지금 당장 업그레이드해야 할 이유는 모르지만 모바일 앱과 관련하여 가장 중요한 사항은 시간입니다. – eliot

답변

2

모바일 응용 프로그램을 웹 응용 프로그램으로 승인하는 예는 OAuth과 같은 인증 프레임 워크를 사용하여 수행됩니다. 이를 통해 웹 앱은 사용자가 로그인 한 다음 모바일 앱이 사용자의 비밀번호를 처리하지 않고도 해당 사용자로 요청하기 위해 모바일 앱에 대한 액세스 토큰을 발급 할 수 있습니다.

Play 모듈을 참조하십시오. Google의 경우 Play 용 OAuth 클라이언트 모듈을 찾을 수 있지만 OAuth의 반대편 인 경우 웹 앱이 타사 제공 업체의 인증을받을 수 있습니다. 그런 다음 모바일 앱에서 OAuth 클라이언트 라이브러리를 사용하여 액세스 토큰 획득을 처리합니다.

심지어 OAuth 용 일반 Java 라이브러리 일 수도 있습니다. Play 2.0 documentation for OAuth은 라이브러리가 필요하지 않을 정도로 간단하기 때문에 OAuth 2.0 모듈을 제공하지 않는다고 명시합니다. 그러나 a few Java libraries available이 있습니다. !가 일반 텍스트 암호를 확인 같은

가 재생의 야베 튜토리얼에서

https://github.com/mashup-fm/playframework-oauthprovider

+0

처음에는 OAuth를 보았습니다.하지만 클라이언트 모듈 정보 만 찾았 기 때문에 낙담 한 것 같습니다. 그리고 마지막 문장에서, 모바일 앱을 말하는 것입니다, 그렇죠? 웹 앱 (Play!)에 OAuth 제공 업체가 있고 모바일 앱에 OAuth 클라이언트가 있나요? – eliot

+0

예, 죄송합니다. 또한 내 추가 사항을 참조하십시오. 자신이 롤오버 할 수있는 매우 간단한 워크 플로이기 때문에 반드시 재생 모듈 일 필요는 없습니다. – Nick

+0

OAuth 제공 업체 정보를 검토 한 결과 문제가 해결 된 것으로 보입니다. v2.0이 보안 결함을 알고 있었고 v1.0이 필요한 것은 모바일 앱과 웹 앱 간의 보안 연결이 필요한 상황에 구현하기가 복잡해 보였다는 점만이 내 걱정입니다. 모든 호출에 SSL을 요구하게 만들려면 각 Play 메소드가 사용자 이름과 비밀번호를 매개 변수로 사용하고 OAuth를 완전히 무시하도록 할 수 있습니까? – eliot

관련 문제