2013-11-15 2 views
1

Apigee를 내 데이터베이스에서 기본 CRUD 작업을 허용하는 개인 REST API의 프록시로 사용하고 있습니다. 프런트 엔드 개발자는 JavaScript/Ajax에서 직접 API를 호출하기를 원하므로 누구나 JS 소스를보고 내 API에서 잠재적으로 파괴적인 메서드를 호출 할 수 있으므로 기본 API 키 인증을 사용할 수 없습니다. 브라우저의 정책을 사용하지만 누군가가 말리거나 브라우저 외부에서 내 API를 호출하는 것을 막지는 못합니다.JavaScript/Ajax 클라이언트 [apigee]에서 사용되는 API를 보호하려면 어떻게해야합니까?

최상의 접근 방법은 무엇입니까? UI 개발자가 OAUTH를 사용하여 사용자가 인증되고 Ajax 호출에서이를 사용하면 세션마다 액세스 토큰을 얻을 수 있습니까? 그런데도 그 사용자는 JS 소스를보고 컬을 통해 더러운 것을 할 수 없었습니까?

미리 감사드립니다.

+0

브라우저에서 수행 할 수있는 모든 작업을 사용자가 수행 할 수도 있습니다. – SLaks

답변

0

타사 사이트 방문자에게 권한을 부여하고 악의적 인 행동을 할 수 없도록 하시겠습니까?

보안 모델은 없습니다. 일단 무료 게임 인 사용자/세션/브라우저를 승인하면 원하는 모든 것을 할 수 있습니다.


여기에서 조치를 취하십시오. 무엇을 남용하고 싶습니까? 어쩌면 알 수없는 제 3자가 귀하의 서비스를 사용하지 못하도록하고 싶을 수도 있습니다. 이 경우 임시 키를 제공하는 수중 API 키 인증을 설정할 수 있습니다.

3 명의 당사자가 있습니다. 사용자 (u), API를 사용하는 제 3 자 (3), 귀하 (y).

  • u

    3
  • 3에서 세션 키를 요청
  • y 키 자신의 API와 y에 수중 요청이 API 키를 확인 수행하고 3
  • 3 손 세션에 세션 키를 다시 전송 키를 u
  • uy

3은 세션 키를 얻을 수 없다면 알 수없는 제 3 자에 대한 서비스가 안전합니다.

1

OAuth v2가 문제를 해결해야합니다. Apigee 웹 사이트에는 OAuth v1 대 OAuth v2를 사용하는 것이 가장 좋은시기에 대해 논의하는 여러 기사와 자료가 있습니다. http://apigee.com/docs/content/apigee-oauth-frequently-asked-questions, 3 개의 다리가있는 OAuth 전략이 가장 적합 할 수 있습니다 : http://apigee.com/docs/gateway-services/content/oauth. Apigee 웹 사이트에 그 예가 있습니다.

+0

내 API는 최종 사용자를 대신하여 리소스가 요청되는 Facebook과 같은 API 종류가 아닙니다. 내 제품 모델과 고객 모델 모두에서 CRUD 작업을 수행하는 원격 백엔드 데이터 액세스 레이어와 같습니다. 한 가지 작업은 데이터베이스에서 고객과 관련이없는 참조 데이터를 얻는 것일 수 있습니다. Ajax 코드에 대한 이러한 서비스에 대한 액세스를 안전하게 유지할 수 있습니까? 아니면 개발자에게 Ajax와 API 사이에 레이어를 만들어 API 키를 페이지 소스에서 가져올 수 없도록 요청해야합니까? – user2997003

관련 문제