2012-06-07 3 views
0

나는 내 RESTful 서비스를 보호하기 위해 OAuth 2.0을 사용 중이다. 나는 소비자와 공급자 측면을 소유하고 있으므로 공급자의 데이터에 액세스 할 수 있도록 최종 사용자가 필요하지 않습니다. 클라이언트 자격 증명 흐름을 실험했지만 클라이언트 전체에 대한 토큰 만 얻을 수 있지만 개별 사용자에게는 토큰을 제공하지 못하는 것 같습니다. Javascript에서 내 클라이언트 용 토큰을 사용한 경우 사용자가 다른 모든 사용자의 데이터를 가져올 수 있으므로 모든 사용자에게 제공되며 매우 안전하지는 않습니다.자바 스크립트에서 사용하기 위해 사용자 별 데이터를 얻기 위해 2 다리 OAuth 구현

2-legged (클라이언트 자격 증명)를 사용하여 Ajax/Javascript에서 사용할 수있는 사용자 별 토큰을 얻을 수있는 방법이 있습니까 (암시 적 플로우가 제공하는 것과 유사하지만 사용자 승인없이)?

감사합니다.

+0

적어도 답변에 대한 의견을 말하십시오. 감사. –

답변

0

클라이언트를 자동 승인하는 기능을 발견 했으므로 특정 클라이언트가 데이터에 액세스 할 때 사용자가 인증 할 필요가 없습니다. 이 시나리오는 두 웹 사이트 모두에 동일한 단일 로그온 메커니즘을 사용하고 있기 때문에 작동하며 공급자에 대한 로그인은 사용자에게 투명합니다.

0

맞습니다. 표준에서는 "클라이언트 자격 증명 부여"시나리오의 사용자 자격 증명에 대해 아무 것도 말하지 않습니다. 그러나 보호 된 리소스가 사용자에게 속한 경우 각 토큰은 특정 사용자와 관련되어야합니다. 귀하의 질문에 따라, 나는 이것이 사실이라고 생각합니다.

OAuth 서버를 구현하는 경우에도 쉽게 할 수 있습니다. "클라이언트 자격 증명 부여"시나리오에서 "user_id"매개 변수를 인증 요청에 추가하기 만하면됩니다. 서버 측에서 요청을 처리하면 지정된 사용자에게 토큰을 연결할 수 있습니다. 이것을 프로토콜에 대한 약간의 확장으로 간주 할 수 있습니다.

또한 표준을 준수하고 돌이켜 보지 않은 것도 없거나 OAuth 서버 구현에 액세스하지 못할 수도 있습니다. 이 경우 사용자가 인식 할 수없는 토큰 (또는 질문에서 호출 할 때 "전체 클라이언트"토큰)을 사용하려고 할 수 있습니다. 그러나 보호 된 리소스에 액세스하려면 토큰 자체에서 추론 할 수 없으므로 사용자를 명시 적으로 지정해야합니다 (예 : 리소스 경로의 일부 또는 HTTP를 사용하는 쿼리 매개 변수).

+0

이 작업은 가능할 수 있지만 클라이언트 자격 증명 사용 사례의 의도 된 용도를 다소 재 작성해야합니다. 클라이언트와 공급자가 동일한 인증 서버를 사용하기 때문에 (즉, 사용자가 공급자에 액세스 할 때 다시 로그인 할 필요가 없기 때문에) 특정 클라이언트의 자동 승인이 내 시나리오에서 더 잘 작동한다고 생각합니다. – acvcu

관련 문제