Przygotowuję CouchDB na Cloudant i jestem zdezorientowany, ponieważ Cloudant wydaje się robić auth inaczej niż zwykły CouchDB. W szczególności, Cloudant wydaje się brakować bazy danych _users
.Autoryzacja chmur: brak bazy danych użytkownika
czytam Cloudant auth nas here, i to pod warunkiem następujące instrukcje:
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":[] } }
Te instrukcje pracował w porządku, i pozwolił mi zaktualizować obiekt _security bazy danych.
Nie było jasne, jak skonfigurować bazę danych użytkowników. Nie istnieją automatycznie, więc próbowałem go tworzyć przy użyciu zwykłego:
curl -X PUT $COUCH/_users
To działało w porządku, ale gdy próbuję dodać nowego użytkownika do _users następująco:
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"}'
wydaje się, aby utworzyć dokument poprawnie:
{"ok":true,"id":"org.couchdb.user:me","rev":"3-86c3801fdb8c32331f5f2580e861a765"}
ale nowego użytkownika w _users na Cloudant brakuje zaszyfrowaną hasło:
{
"_id": "org.couchdb.user:me",
"_rev": "3-86c3801fdb8c32331f5f2580e861a765",
"name": "me",
"roles": [
],
"type": "user",
"password": "pwd"
}
Więc kiedy próbują uwierzytelnić na tego użytkownika, pojawia się następujący błąd:
{"error":"bad_request","reason":"missing password_sha property in user doc"}
na mojej instalacji lokalnej couchdb, tworzenie nowego użytkownika w _users automatycznie utworzyć zaszyfrowany hasło:
{
"_id": "org.couchdb.user:test",
"_rev": "1-9c1c4360eba168468a37d7f623782d23",
"password_scheme": "pbkdf2",
"iterations": 10,
"name": "test",
"roles": [
],
"type": "user",
"derived_key": "4a122a20c1a8fdddb5307c29078e2c4269abffa5",
"salt": "36c0c05cf2a3ee321eabd10c46a8aa2a"
}
Próbowałem kopiowanie "_design/_auth" dokument z mojej instalacji lokalnej couchdb do Cloudant, b ut wyniki są takie same - nie ma haszowanego hasła.
Wygląda na to, że w pewnym momencie zjechałem z torów, ale nie jestem pewien, gdzie to się stało. Jak mogę skonfigurować Cloudant tak, aby korzystał z tego samego rodzaju uwierzytelniania co zwykły CouchDB?
Teraz 8 miesięcy później, cloudant nadal nie zostały zakodowane hasło. @ jbeard4 dlaczego nie zaakceptować własnej odpowiedzi? :) – Wei
Listopad? '{" _id ":" org.couchdb.user: me "," _ rev ":" 1-5a723e0fb15bb4e0d61e56797ebd8df7 "," name ":" me "," role ": []," type ":" user "," password ":" pwd "}' – MrYellow