
Do anterior Café no Couchbase Série Sync Gateway, exploramos como autenticar usuários e também Como usar Channels no Sync Gateway. O Sync Gateway fornece a camada de orquestração de dados para o Couchbase Mobile e, anteriormente, vimos como o roteamento de dados pode ser feito por validação dos tipos de documentos de dentro da função Sync.
No vídeo abaixo, estamos novamente acompanhados por Chris Anderson que discutirão juntos sobre o Sync Gateway e se aprofundarão em como proteger seus aplicativos móveis usando Channels. Continuaremos a usar o Stackoverflow e as tags que importamos.
O administrador pode especificar o canal que deseja ver na porta de administração, que é protegida por um firewall. A porta pública é a porta à qual os usuários finais se conectam por meio dos privilégios definidos na chave "users". Isso é definido como:
|
1 |
"administrador_canais" : ["androide"] |
em que o usuário pode ver o canal "android"; essas são as perguntas do Stackoverflow que contêm todas as tags android que estarão disponíveis para o usuário se a tag específica estiver contida na chave "admin_channels". Se um determinado usuário acessar um canal para o qual não foi concedido, o usuário final verá um conjunto vazio de volta. Essa é uma configuração de canal no lado do servidor em que os usuários/clientes não precisam especificar o canal em que estão interessados.
API do administrador
Se quisermos que nossos usuários tenham acessos a canais diferentes, além dos definidos explicitamente no lado do servidor, uma maneira de definir isso é usar o API do administrador. A API REST do Admin é executada na porta 4985 e podemos atualizar o registro do usuário com um JSON, como :
|
1 2 3 4 |
{ "desativado" : falso, "administrador_canais" : ["html"] } |
e, por meio da API REST do Admin, podemos dar ao usuário GUEST acesso a um conjunto diferente de canais executando o comando:
|
1 |
enrolar -X PUT -H conteúdo-tipo:aplicativo/json -d '{"desativado": falso, "administrador_canais":["html"]}' http://localhost:4985/db/_user/GUEST |
O envio da solicitação acima para o Sync Gateway permitirá que o usuário GUEST também tenha acesso ao canal "html". Há um ponto de extremidade da API que é GET/{db}/_alterações o que nos permitiria ver todas as solicitações de alteração de documentos feitas no banco de dados a partir da porta 4984. Do ponto de vista de um administrador, isso permite que você forneça permissões para o que seus usuários podem ver e, portanto, controle o acesso READ aos seus dados.
Se agora fornecermos os nomes das tags 'html' e 'android' para os canais no comando abaixo:
|
1 |
enrolar -X PUT -H conteúdo-tipo:aplicativo/json -d '{"desativado": falso, "administrador_canais":["html","android"]}' http://localhost:4985/db/_user/GUEST |
o usuário GUEST agora terá acesso a ambos os canais e o conjunto de dados será expandido de acordo com os documentos "android" e "html" no ponto de extremidade "_changes". Isso controla quais canais um usuário tem permissão para ver e controla o acesso de leitura ao banco de dados. O modelo de segurança do canal pode ser controlado com a API REST do administrador e, por meio dos requisitos do usuário, você, como desenvolvedor, pode incorporar o controle de nível de granulação fina ao banco de dados.
Gateway de sincronização
Na série Café sobre o Couchbase Sync Gateway, falamos sobre Canais e como você pode proteger ou restringir as proporções do seu banco de dados por meio de vários recursos habilitados na função Sync. Exploraremos Gateway de sincronização e também se aprofundar na criptografia de dados em nossa série com ForestDB como nosso novo mecanismo de armazenamento no Couchbase Lite.
Não deixe de se conectar conosco em nosso Fóruns de desenvolvedores móveis em caso de dúvidas ou em Stackoverflow.