Ich bin mit CouchDB auf Cloudant eingerichtet, und ich bin verwirrt, weil Cloudant scheint Auth anders als normale CouchDB zu tun. Insbesondere scheint Cloudant eine _users
Datenbank zu fehlen.Cloudant Auth: fehlt _users Datenbank
las ich die Cloudant Auth FAQ here, und es wurden die folgenden Anweisungen:
Can I use CouchDB security features (_users database, security objects, validation functions) on Cloudant?
Yes you can. If you want to use the _users database you must first turn off Cloudant's own security for the roles you want to manage via _users. To do this you need to PUT a JSON document like the following to the _security endpoint of the database (for example https://USERNAME.cloudant.com/DATABASE/_security):
{ "cloudant": { "nobody": ["_reader", "_writer", "_admin"] }, "readers": { "names":["demo"],"roles":[] } }
Diese Anleitung hat gut funktioniert, und mir erlaubt, das _Sicherheit Objekt einer Datenbank zu aktualisieren.
Was nicht klar war, war, wie die _users-Datenbank eingerichtet wurde. Es existierte nicht automatisch, also habe ich versucht zu schaffen es mit einem normalen:
curl -X PUT $COUCH/_users
Das funktionierte gut, aber wenn ich einen neuen Benutzer _users hinzuzufügen versuchen, wie folgt:
curl -HContent-Type:application/json \
-vXPUT $COUCH/_users/org.couchdb.user:me \
--data-binary '{"_id": "org.couchdb.user:me","name": "me","roles": [],"type": "user","password": "pwd"}'
es scheint, das Dokument korrekt zu erstellen:
{"ok":true,"id":"org.couchdb.user:me","rev":"3-86c3801fdb8c32331f5f2580e861a765"}
Aber den neuen Benutzer in _users auf Cloudant fehlt ein Hash-Passwort: So
{
"_id": "org.couchdb.user:me",
"_rev": "3-86c3801fdb8c32331f5f2580e861a765",
"name": "me",
"roles": [
],
"type": "user",
"password": "pwd"
}
, wenn ich an diesem Benutzer zu authentifizieren versuchen, erhalte ich folgende Fehlermeldung:
{"error":"bad_request","reason":"missing password_sha property in user doc"}
Auf meiner lokalen CouchDB Installation, einen neuen Benutzers in _users Erstellung würde automatisch erstellen Sie die Hash-Passwort:
{
"_id": "org.couchdb.user:test",
"_rev": "1-9c1c4360eba168468a37d7f623782d23",
"password_scheme": "pbkdf2",
"iterations": 10,
"name": "test",
"roles": [
],
"type": "user",
"derived_key": "4a122a20c1a8fdddb5307c29078e2c4269abffa5",
"salt": "36c0c05cf2a3ee321eabd10c46a8aa2a"
}
ich habe versucht, die "_Design/_auth" Dokument von meinem lokalen CouchDB Installation Cloudant Kopieren, b ut die Ergebnisse sind gleich - kein gehashtes Passwort.
Ich bin anscheinend von den Schienen gegangen, aber ich bin mir nicht sicher, wo das passiert ist. Wie kann ich Cloudant so einrichten, dass er dieselbe Art von Authentifizierung verwendet wie die normale CouchDB?
Jetzt, 8 Monate später cloudant noch nicht über Hash-Passwort. @ Jbeard4 Warum nicht deine eigene Antwort akzeptieren? :) – Wei
November? '{" _id ":" org.couchdb.user: me "," _ rev ":" 1-5a723e0fb15bb4e0d61e56797ebd8df7 "," Name ":" mich "," Rollen ": []," Typ ":" Benutzer "," passwort ":" pwd "}' – MrYellow