지도 토큰이 CouchDB를 사용자가 존재3210 [oauth_token_users]
token1 = joe
그게 전부입니다! 우리는 우리의 사용자 조에 대한 설정의 OAuth 인증을 거라고 때, 이제
{
"_id": "org.couchdb.user:joe",
"type": "user",
"name": "joe",
"password_sha": "fe95df1ca59a9b567bdca5cbaf8412abd6e06121",
"salt": "4e170ffeb6f34daecfd814dfb4001a73"
"roles": ["foo", "bar"],
"oauth": {
"consumer_keys": {
"example.org": "sekr1t",
"consumerKey2": "key2Secret"
},
"tokens": {
"token1": "tokensekr1t",
"token2": "token2Secret"
}
}
}
을의 우리의 복제를 시작하자 : 당신이 CouchDB를 버전 1.2 이상이있는 경우, 당신은 또한 _users
데이터베이스 내부 사용자의 문서 내에서의 OAuth 인증 정보를 정의 할 수 있습니다. _replicate
자원
{
"source": "mailbox",
"target": {
"url": "https://secure.example.org/mailbox",
"auth": {
"oauth": {
"consumer_secret": "sekr1t",
"consumer_key": "example.org",
"token_secret": "tokensekr1t",
"token": "token1"
}
}
}
}
및 POST
이 데이터를하거나 _replicator
데이터베이스에 대한 문서를 만들 : CouchDB를 사용하여 OAuth 인증을하도록하려면, 우리는 우리의 사용자에게 권한을 부여 할 측면에 따라, source
또는 target
필드를 확장해야합니다. SSL 프로토콜 암호화를 사용하여 로컬 서버에서 원격 secure.example.org
으로 복제가 시작되며 로그인은 joe
인 원격 사용자에 대한 모든 작업이 수행됩니다.
요약 : SSL (Secure Socket Layer)과 OAuth의 결합으로 사용자 자격 증명뿐만 아니라 전송 된 데이터를 보호하고 대상 서버가 위조되지 않았 음을 확인하고 실제 사용자 로그인 이름과 암호를 우발적 인 노출로부터 보호하고, 예를 들어 example.org
이 유출 될 경우 소비자 토큰을 삭제할 수는 있지만 사용자가 암호를 변경하도록 강요 할 수는 없으며 MiTM 공격에 대한 추가 보호 요청에 서명 할 수 있습니다.
업데이트 : : 귀하의 경우 일반 SSL 인증서 루틴은 정상입니다 : 귀하가 직접 서명 한 개인 인증서를 작성하고 CouchDB와의 추가 작업을 위해 클라이언트를 설정해야합니다. CouchDB 측에서 요구되는 유일한 것은 연결을 처리하기 전에 인증서의 유효성을 검사하는 것이다. 그러나 사용자 지정 개인 SSL 인증서 설치는 특히 모바일 클라이언트의 경우 not trivial 일 수 있습니다.
CouchDB 은 비밀을위한 일종의 개인 인증서를 사용하는 RSA-SHA1 인증 방법을 사용합니다. 그러나이 방법의 잠금을 해제하려면 먼저 소스를 패치해야합니다. 기본적으로 비활성화되어 있습니다.
** 설명 ** : 저는 SSL 전송 보안을 찾고 있지 않습니다. 실제로는 그렇게 복잡하지는 않지만 [Apache HTTP] (http://httpd.apache.org/docs/2.2/ssl/ssl_faq .html) 및 CouchDB. 내가 찾고있는 것은 SSH에서 할 수있는 것과 비슷한 인증 **을 사용하는 ** 인증입니다. OAuth에서 볼 수있는 잠재적 인 문제 : 관리자가 자격 증명 (?)에 대한 전체 액세스 권한을가집니다. 인증서 접근 방식을 사용하면 개인 키가 관리자가 제어 할 수 없으므로 사용자를 가장 할 수 없습니다. 설명을 위해 – stwissel