2012-10-12 4 views
2

저는 REST API를 사용하는 웹 사이트를 제공하는 웹 앱 서버와 별도의 REST API 서버를 개발하여 '서비스로서의 API'를 만들고 있습니다. 웹 응용 프로그램은 API의 클라이언트 역할을합니다. web-app는 사용자가 로그인하여 API 사용법을보고 API 보안 및 키를 볼 수있는 간단한 대시 보드이므로 API에 안전하게 액세스 할 수 있습니다.사용자가 로그인 한 경우 REST API는 어떻게 알 수 있습니까?

AWS와 비슷한 공유 암호를 사용하여 API 클라이언트가 보호 된 리소스에 액세스 할 수 있도록 할 계획입니다.

하지만 혼란스러운 점은 사용자가 대시 보드 웹 사이트에 로그인 할 때, REST API 또는 웹 앱 서버에서 처리해야한다는 것입니다.

REST API 끝점에서 처리하는 경우 API 서버가 요청간에 세션 상태를 어떻게 유지 관리합니까? 사용자가 로그인했는지 여부를 API가 어떻게 알 수 있습니까? 상태가 유지되지 않아도 API 서버에 세션 상태를 저장해도 괜찮습니까? 트위터 같은 나머지 API와 어떻게 다른가?

답변

2

ReSTful 보안은 서버 측에서 처리됩니다. 기본적으로 : 클라이언트가

  • 모든 클라이언트 호출을 인증 된없는 자원에 대해이 헤더 스토어 클라이언트가 될 수
  • WWW 인증 헤더를 통해 인증을 제공해야 요청할 때

    • 서버는 401 상태 코드를 반환 쿠키가 성공적으로 로그인 한 후

    ReSTful WebServices Cookbook에 관한 중요한 도움말을 찾을 수 있습니다. 기본/다이제스트 인증에 대한 설명을 찾으십시오.

    여기에 라이브 작업 샘플이 포함 된 a good introduction입니다.

  • +0

    답장을 보내 주셔서 감사합니다.하지만 API가 세션에서 사용자 로그인을 처리하는 방법 또는 이것이 API의 일부가 아니어야하며 대시 보드 사이트에 구현 된 것인지 여부에 대한 질문이 더 많습니다. – cjroebuck

    +0

    API에 세션이 필요하지 않습니다. 클라이언트가 보안 리소스를 요청하면 인증 관리자 (사용자가 원하는대로 구현 된 예/아니요 메커니즘)를 호출하여 액세스 권한을 부여하거나 거부합니다. –

    +0

    차가움. 네, 제가 읽고있는 책입니다. 고마워요. 기본적으로 로그인/로그 아웃은 API 서버가 아니라 애플리케이션 서버에서 처리됩니까? – cjroebuck

    관련 문제