2016-11-06 2 views
2

CouchDB Proxy Authentication 문서에 표시된 것처럼 내 couchdb 서버에 http 요청을 보내면 응답이 문서에 표시되지 않고 단지 빈 데이터 만 표시됩니다. 내가 도대체 ​​뭘 잘못하고있는 겁니까?CouchDB 프록시 인증이 작동하지 않습니다.

또한이 프록시 인증을 사용하여 세션을 시작할 수 있습니까? POST/_session을 시도하면 500 오류 코드가 표시됩니다.

GET/_SESSION HTTP/1.1
호스트 : 127.0.0.2:5984
사용자 에이전트 : 수락/7.51.0
말림 : 응용 프로그램/JSON
콘텐츠 형식 : 응용 프로그램/JSON; 문자셋 = UTF-8
X-인증-CouchDB를-사용자 이름 : 존
X-인증-CouchDB를-역할 : 블로거

< HTTP/1.1 200 OK
< 캐시 제어 : - 검증해야합니다
< 콘텐츠 길이 : 132
< 콘텐츠 형식 : 응용 프로그램/JSON
< 날짜 : 2016년 (일) 11월 6일 그리니치 표준시 01시 10분 58초
< 서버 : CouchDB를/2.0.0 (얼랑 OTP/17)
{ "ok": true,
"userCtx": { "name": null, "roles": []},
"info": { "authentication_db": "_ 사용자", "authentication_handlers" 쿠키 ","기본값 "]}}

답변

4

CouchDB 문제 추적기에서 버전 2.0.0에서 프록시 인증이 깨졌습니다. 그것 또는 문서는 클러스터 또는 일부에서만 작동한다는 것을 나타 내기 위해 업데이트되지 않습니다. 나는 버전 1.6.1로 돌아 왔고 모든 것이 잘 작동한다. 프록시 인증 작동 방식에 대한 설명서가 매우 부족하다고 말해야합니다.

"[couch_httpd_auth] secret"을 사용하려면 타사 인증 서버가 필요하며 클라이언트가 인증하면 사용자 이름과 암호를 결합하여 HMAC-SHA1 토큰을 생성해야합니다. 당신은 모든 헤더를 포함하는 경우 그리고, 어떤 HTTP 요청에 당신은 CouchDB를 서버에 클라이언트에서 확인하십시오으로 인증됩니다 요청할

  • X-Auth-CouchDB-Roles
  • X-Auth-CouchDB-UserName
  • X-Auth-CouchDB-Token

사용자 클라이언트

또한이 항목은 문서에 언급되어 있지 않지만이 헤더를 사용하는 /_session API의 POST은 아무 작업도 수행하지 않습니다.

+1

2.1.0에서 수정 된 것 같습니다 - https://issues.apache.org/jira/browse/COUCHDB-3203 –

+1

2.1.0에서 수정되었지만 문서가 이전 [httpd] 섹션을 잘못 참조했습니다. 이제 [chttpd] 아래에서 구성해야합니다. –

+0

사용자가 헤더에서 자신의 역할을 통과 할 수 있도록하는 것이 보안에 위배되지 않습니까? 왜 그는 '관리자'를 통과 할 수 없습니까? 고마워요 –

3

CouchDB 2.0에서 깨진 프록시 인증 자체가 아니기 때문에 현재 릴리스에서는 1.6 일 이전처럼 인증 처리기를 구성 할 방법이 없습니다.

인증 처리기 목록에 프록시 인증을 추가하는 문제 추적기에서 언급 된 일부 패치가 있습니다. 또한 CouchDB 2.0에 설정 기능을 다시 가져 오는 통합 요청이 받아 들여지고 병합되었습니다.

그러나 나는 다음 릴리스가 나올 때까지 기다려야하거나 소스에서 직접 CouchDB 2.0을 빌드해야 할 것을 두려워합니다.

+0

설명을 주셔서 감사합니다. 나는 local.ini에 어떤 인증 처리기를 넣든 항상 쿠키와 기본값으로 응답했기 때문에 그만큼 생각했습니다. –

+2

구성 가능성을 가져 오는 언급 된 끌어 오기 요청은 최근 공식 2.1 릴리스의 일부입니다. – dmunch

+0

@dmunch는 프록시 인증이 기본적으로 비밀을 요구합니까? – joeforker

관련 문제