Где я могу получить полностью пример конфигурации шлюза синхронизации для OAuth2? - PullRequest
0 голосов
/ 24 декабря 2018

Я настраиваю синхронизирующий шлюз с Auth0.

Моя конфигурация: { "interface":":4984", "log": ["*"], "databases": { "graps": { "username": "sync_gateway", "password": "sync_gateway", "num_index_replicas": 0, "server": "<a href="http://couchbase_server:8091" rel="nofollow noreferrer">http://couchbase_server:8091</a>", "bucket": "test_bucket", "enable_shared_bucket_access": true, "import_docs": "continuous", "oidc": { "providers": { "Auth0": { "issuer": "<a href="https://my_tenant.eu.auth0.com" rel="nofollow noreferrer">https://my_tenant.eu.auth0.com</a>", "client_id": "secret_client_id", "validation_key": "long_validation_key", "register": true } } }, "import_filter": <code>function(doc) { if (doc.type != "mobile") { return false } return true }, "sync": function (doc, oldDoc) { if (doc.sdk) { channel(doc.sdk); } }}}}

Мой запрос скручивания: curl -vX POST -H 'Content-Type: application/json' <a href="http://sync_geteway_server:4984/graps/_session" rel="nofollow noreferrer">http://sync_geteway_server:4984/graps/_session</a> --header 'Authorization: Bearer AUTH0_JWT_TOKEN' -d '{"name": "test","ttl":0}'

И журналы синхронизации: 2018-12-24T13:05:12.727Z [INF] HTTP: #001: POST /graps/_session 2018-12-24T13:05:12.727Z [INF] HTTP: #001: --> 401 Invalid login (0.4 ms)

Итак, мой вопрос: что не так?Почему синхронизация не воспринимает токен JWT как сеанс oauth?

1 Ответ

0 голосов
/ 24 декабря 2018

Для аутентификации OIDC через Sync Gateway вам необходимо позвонить GET /{db}/_oidc, который перенаправит вас к вашему провайдеру OIDC (auth0) для аутентификации.Затем Auth0 будет использовать настроенный обратный вызов для перенаправления пользователя обратно в Sync Gateway.Это обычно называется неявным потоком Open ID Connect.

Это сложно сделать через CURL, так как ваш поставщик OpenID, вероятно, имеет пользовательский интерфейс для входа в систему.Рекомендуется делать это через браузер или использовать веб-представление в мобильном приложении.После выполнения шага обратного вызова устанавливается cookie сеанса, и вы можете продолжать использовать вызовы API, используя этот cookie.

...