FastComments.com

Controle de Acesso SSO

O que é Controle de Acesso? Internal Link

Com o Controle de Acesso SSO do FastComments, às vezes chamado de RBAC, usuários podem ser restritos a acessar apenas certas páginas ou threads de comentários. Além disso, os usuários só podem @mention uns aos outros no mesmo grupo.

Em Detalhe

Podemos colocar Users e, opcionalmente, Pages em grupos.

Quando Users são colocados em grupos, e Limit Comments by SSO User Groups está ativado em Configurações do Widget, então os usuários verão apenas comentários de usuários em seus mesmos grupos e só poderão @mention usuários nos mesmos grupos.

Além disso, Pages podem ser colocadas em grupos, e então os usuários só poderão acessar comentários de páginas às quais eles têm acesso.

Chamamos isso de grupos "User-Level" versus grupos "Page-Level".

Então, qual é o certo para você?

Use Grupos no nível do usuário se...

  • Você quer usar o mesmo urlId (URL da página ou ID do artigo), mas restringir comentários por grupo.
  • Por exemplo, você quer ter grupos "Novo Usuário" e "Usuário Veterano", e eles nunca devem ver os comentários uns dos outros nas mesmas páginas.

Use Grupos no nível da página se...

  • Seus grupos têm páginas específicas.
  • Por exemplo, usuários no grupo "Páginas Públicas" nunca devem ver artigos "Top Secret".

Como Funciona Internal Link

FastComments Controle de Acesso funciona atribuindo Pages e Users aos grupos desejados.

Um grupo é simplesmente um identificador de string, como GREEN ou abc-123.

Users e Pages não estão limitados a um único grupo. Eles são limitados a 100 e 1000 grupos, respectivamente.

Acesso a Páginas Não Autorizadas

Se um usuário tentar acessar uma página à qual não tem acesso, verá uma mensagem de erro, como abaixo:

Exemplo de Falha de Autorização
Authorization Failure Example

O texto da mensagem pode ser personalizado.

A Especificação Internal Link

Definir como vários usuários interagem e testá-lo é complicado. Aqui está a especificação que seguimos para controle de acesso, que você pode usar para testar sua implementação:

Página com IDs de grupo null, usuário com IDs de grupo null - deve ter acesso.
Página com IDs de grupo null, usuário com IDs de grupo definidos - deve ter acesso.
Página com IDs de grupo, usuário com IDs de grupo null - deve ter acesso.
Página com IDs de grupo, usuário com lista vazia - NÃO deve ter acesso.
Página com IDs de grupo, usuário com IDs de grupo - interseção existe - deve ter acesso.
Página com IDs de grupo, usuário com IDs de grupo - interseção não existe - NÃO deve ter acesso.
Página com lista vazia de IDs de grupo (ninguém tem acesso), usuário com null - NÃO deve ter acesso.

SSO User A = Nenhum ID de grupo definido (null = acesso total).
SSO User B = Nenhum ID de grupo definido (null = acesso total).
A pode @B.

SSO User A = Nenhum ID de grupo definido (null = acesso total).
SSO User B = IDs de grupo definidos.
A pode @B.

SSO User A = IDs de grupo definidos.
SSO User B = Nenhum ID de grupo definido (null = acesso total).
A pode @B.

SSO User A = IDs de grupo = [a].
SSO User B = IDs de grupo = [b].
A NÃO pode @B.

SSO User A = IDs de grupo = [a].
SSO User B = IDs de grupo = [a, b].
A pode @B.

Implementação Internal Link

Mencionando Usuários em Outros Grupos

Se dois usuários pertencem a dois conjuntos de grupos diferentes, e não há interseção entre eles, não poderão se @mencionar mutuamente.

Se um usuário digita manualmente uma @menção e envia seu comentário, ela permanecerá como texto simples. O outro usuário não será marcado.

Mantendo os Grupos

Os Groups são definidos usando os recursos de API Pages e SSOUsers, respectivamente.

A API Pages pode ser invocada para definir o conjunto de grupos com permissão para acessar a página. Por padrão, todos os grupos, e usuários que não pertencem a um grupo, têm acesso.

Da mesma forma, a API SSOUsers pode ser invocada para definir os grupos associados a cada usuário.

Para ambos os recursos, não há limitações quanto a quando os grupos podem ser definidos ou atualizados.

Se o objetivo for apenas limitar que os usuários se @mencionem mutuamente, então não é necessário levar os Pages em consideração.

Nota!

Definir e atualizar os grupos de usuários SSO não requer o uso da API, e pode ser feito automaticamente definindo os ids dos grupos no payload SSO passado para o widget de comentários. No entanto, para listas grandes de grupos, isso não é recomendado, pois o usuário teria que enviar esse payload a cada carregamento de página.