레일 웹 서비스를 작성 중이며 인증을 위해 authlogic을 사용하고 싶습니다. 이것은 가장 많이 사용되는 활성 인증 gem 중 하나 인 것 같습니다. 우리의 클라이언트는 자신의 사용자 자격 증명으로 인증하기 위해 abled해야합니다. 그래서 은 SSL 기본 인증 (authenticate_or_request_with_http_basic)을 SSL로 사용하도록 결정했습니다.HTTP 기본 인증 - 추가 날짜 매개 변수 (레일즈)
비밀 번호, url 및 요청 시간의 해시로 인증을 위해 원래 비밀번호를 교체하여 짧은 시간 창에서만 요청을 사용할 수 있도록 보안을 추가하고 싶습니다. webservice와 클라이언트 시간이 동기화되지 않았기 때문에 로그인 자격 증명 외에도 클라이언트 시간을 보내야합니다. 인증 헤더에 클라이언트 날짜를 추가하고 authenticate_or_request_with_http_basic 메소드를 사용하여 읽으려면 어떻게해야합니까?
안녕하세요, 귀하의 답변에 감사드립니다. 나는 레일스와 인증에있어서 아주 새로운데, 나의 생각은 모든 단일 API 호출마다 새로운 인증과 고유 한 암호를 요구하는 것이었다. 암호는 타임 스탬프, 원래 암호 및 요청 URL 해시가 될 수 있습니다. 해시에서 timestamp를 사용하면 crendentials와 함께 동일한 API 호출을 한 번만 사용하거나 짧은 시간 창에서만 말할 수 있습니다. 날짜가 늦은 클라이언트 날짜를 방지하기 위해 몇 분 정도의 허용 오차로 현재 서버 날짜를 사용하여 클라이언트 타임 스탬프를 확인할 수 있습니다. – trackmate
하지만 결국에는 서버 측에서 유효성 검사를 위해 해시를 다시 작성해야하므로 정확한 클라이언트 날짜가 필요합니다. 모든 요청 uri에 get 매개 변수로 클라이언트 날짜를 전달할 수 있지만 모든 api 메서드에 대해이 솔루션을 사용하고 싶지는 않습니다. 기본 인증 헤더에 타임 스탬프를 추가 할 수 있습니까? – trackmate