2014-09-12 5 views
3

이 프로젝트에서 가장 좋은 전략에 대한 제안을 찾고 있습니다.API에서 가져온 AngularJS 보안 사이트에 oAuth2 권한을 사용해야합니다.

클라이언트 (임차인)가 iPad 앱 또는 서비스 웹 사이트를 사용하여 서비스에 액세스 할 수있는 SaaS 서비스를 구축 중입니다. 서비스 웹 사이트는 AngularJS 및 laravel로 작성해야합니다. 권한 부여는 oAuth 2. 웹 사이트에 로그인하는 사용자는 다른 기능과 다른 기능을 갖습니다. 앞으로는 동일한 사용자 계정을 사용하여 서비스와 앱을 확장 할 수 있습니다.

서비스 웹 사이트에 대한 인증 및 권한 부여 전략을 잘 수행하는 데 문제가 있습니다. 웹 사이트가 AngularJS를 실행하고 자체 서비스 API에 연결할 것이므로 사용자를 위해 AUTH를 처리하는 것이 가장 좋은 방법인지, AngularJS를 처리 할 것인지는 확실하지 않습니다. 나는 iPad 응용 프로그램이 아마도 "Resource Owners Grant"와 같은 것을 사용할 것이라고 생각하지만, AngularJS 웹 사이트 및 코드는 어떻게됩니까? "Implicit Grant", "JWT"또는 다른 것을 사용해야합니까? 사용자가 로그인하면 AngularJS 웹 사이트의 모든 페이지를 인증하는 TOKEN을 부여해야합니까? 그렇다면 "Authorization Code Grant"와 같은 것을 사용하고 사용자에게 일종의 리디렉션을하지 않고 요청을 자동으로 승인합니까?

사용자를 인증하고 토큰을 제공하는 "login.php"페이지가 있다고 생각합니다. "anglesjs"페이지에 사용자 프로필을 포함시킬 수 있으며 AngularJS 페이지에 포함 된 프로필이 없으면 login으로 리디렉션됩니다. 그러나이 솔루션을 사용하여 AngularJS 페이지를 API에 가장 안전하게 연결하는 방법을 파악하려고합니다.

AngularJS 웹 사이트가 Google API를위한 인터페이스이기 때문에 상당히 혼란 스럽습니다. 하지만, 어떤 제안이나 방향

감사합니다 .. 서비스의 웹 사이트를위한 요한 복음

답변

0

.. 사용자가, 그들은 단지에 로그인해야 "요청 인증 '과정을 통과해야한다고 생각하지 않습니다 Implicit Grant Type을 사용해야합니다. 이 부여 유형은 브라우저의 스크립트에 최적화되어 있으며 AngularJS는 API 요청을 보내도록 설계되었습니다 (http 및 자원 모듈 참조).

iPad 앱에서 인증 코드 부여 유형 또는 자원 소유자 비밀번호 인증 부여 유형을 사용할 수 있습니다.

OAuth2가 인증 프로토콜이 아니라 인증 프로토콜임을 잊지 마십시오. OAuth2를 사용하여 사용자를 인증하려면 OpenID Connect (http://openid.net/connect/)를 구현하는 것이 좋습니다. 사실, 인증은 쿠키 또는 로컬 스토리지에 저장된 JWT를 사용하여 수행됩니다.

다음 페이지를 참조하십시오. 구글은 사용자와 권한이 부여 된 API 호출을 인증하기 위해 동일한 프로토콜을 사용 : 당신이 AngularJS와 내에서 사용하기 OAuth는 2.0 모듈을 찾고 있다면

1

Implicit Grant Type은 가장 안전한 것으로서 많은 사람들 (lucadegasperi의 oauth2-server-laravel 중 일부)이보고 있습니다. OAuth2 보조금 유형이 있으므로 JWT를 대신 사용하는 것이 좋습니다.

JWT를 Laravel과 통합하려면 다음 라이브러리를 살펴보십시오.그것은 아주 잘 작동하고, 또한 지원하는 인기 아웃 - 오브 - 박스 Laravel을위한 API 패키지 딩고 (https://github.com/dingo/api) : 응용 프로그램 (들)에 관해서는

, 경우 앱이 자사 앱 인 경우 Florens Morselli가 언급 한 OAuth2 비밀번호 인증을 받아야합니다. 타사 앱인 경우 인증 코드 부여를 대신 사용하십시오.