Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
O acesso anônimo a dados permite que um aplicativo Fabric exponha operações selecionadas de dados para usuários que não estão logados. Você controla esse acesso no nível do tenant Fabric e em cada modelo de dados. O acesso anônimo é uma opção de autorização, não um substituto da autenticação. O mesmo aplicativo pode fornecer acesso público a algumas entidades, exigindo que os usuários façam login em outras entidades ou operações.
Importante
Qualquer pessoa que consiga acessar a URL do app pode usar as operações atribuídas à anonymous função. Não exponha dados pessoais, confidenciais, financeiros ou internos de negócios por meio dessa função.
Casos de uso
Considere o acesso anônimo a dados quando um aplicativo precisa fornecer funcionalidades limitadas sem exigência de login.
| Scenario | Acesso de exemplo | Escopo recomendado |
|---|---|---|
| Dados de referência pública | Veja catálogos de produtos, agendas ou conjuntos de dados públicos | read |
| Coleção de comentários | Envie comentários ou respostas a pesquisas | create |
O acesso anônimo não é apropriado quando um aplicativo precisa identificar o usuário, impor a propriedade ou fornecer acesso com base em reivindicações de identidade. Use papéis autenticados para esses cenários.
Como funciona o acesso anônimo
O acesso anônimo a dados utiliza controles independentes:
- Configuração do inquilino: Um administrador de locatários Fabric concede acesso anônimo a dados para a organização ou grupos de segurança selecionados.
-
Papel do modelo de dados: Uma entidade usa o
anonymouspapel para definir as operações que usuários não autenticados podem realizar.
O contexto do inquilino é o limite em toda a organização. A configuração do app permite que solicitações anônimas cheguem ao serviço de dados do app. O papel da entidade determina quais dados e operações essas requisições podem acessar. Ativar apenas um ou dois desses controles não concede acesso anônimo.
Ativar a configuração do inquilino
Um administrador de tenant Fabric deve habilitar o acesso anônimo a dados antes que desenvolvedores de aplicativos possam usá-lo. A configuração é desabilitada por padrão.
Entre no portal de administração do Fabric.
Selecione Configurações de locatário.
Em aplicativos Fabric (prévia), encontre Acesso a dados anônimos.
Defina o alternador para Habilitado.
Aplique a configuração a toda a organização ou a grupos de segurança específicos.
Selecione Aplicar.
As mudanças podem levar alguns minutos para fazer efeito. Quando você limitar a configuração a grupos de segurança, confirme que o desenvolvedor ou dono do app está incluído em um grupo permitido.
Defina acesso anônimo em um modelo de dados
Use o @role decorador em uma entidade e especifique anonymous como nome do papel. O segundo argumento define as operações de dados permitidas: create, read, update, ou delete.
Parameters
| Parâmetro | Tipo | Descrição |
|---|---|---|
roleName |
string |
O nome da função, como authenticated ou uma função de aplicativo personalizada |
actions |
string \| string[] |
Ação ou matriz única: create, , read, update, deleteou * para todos |
options |
object |
Objeto opcional com check, includee exclude propriedades |
O exemplo a seguir permite que usuários não autenticados leiam anúncios públicos:
import { entity, role, uuid, text } from '@microsoft/rayfin-core';
@entity()
@role('anonymous', 'read')
export class Announcement {
@uuid() id!: string;
@text() title!: string;
@text() content!: string;
}
A anonymous função não usa reivindicações de identidade porque não há identidade logada disponível. Defina o conjunto mais restrito de operações que apoie seu cenário.
Permitir que os usuários enviem dados
Para um formulário de feedback, conceda create acesso sem conceder read, update, ou delete acesso:
import { entity, role, uuid, text } from '@microsoft/rayfin-core';
@entity()
@role('anonymous', 'create')
export class Feedback {
@uuid() id!: string;
@text() comment!: string;
}
Esse modelo permite que os usuários enviem feedback, mas não permite que vejam ou alterem as entradas enviadas.
Permitir múltiplas operações
Passe um array quando um cenário requer mais de uma operação:
import { boolean, entity, role, text, uuid } from '@microsoft/rayfin-core';
@entity()
@role('anonymous', ['create', 'read', 'update'])
export class SharedTodo {
@uuid() id!: string;
@text() title!: string;
@boolean({ default: false }) completed!: boolean;
}
Qualquer pessoa com acesso a este app pode criar, visualizar e atualizar todas as tarefas compartilhadas. Eles não podem apagar tarefas porque delete não está incluído. Use permissões amplas como essas apenas para dados públicos ou temporários, onde os usuários devem compartilhar acesso.
Combine papéis anônimos e autenticados
Aplicar ambos os papéis a uma entidade quando usuários públicos e logados exigirem permissões diferentes. Por exemplo, qualquer pessoa pode ler uma postagem no blog, mas apenas o dono logado pode alterá-la:
import { entity, role, uuid, text } from '@microsoft/rayfin-core';
@entity()
@role('anonymous', 'read')
@role('authenticated', ['create', 'update', 'delete'], {
policy: (claims, item) => claims.sub.eq(item.createdBy),
})
export class BlogPost {
@uuid() id!: string;
@text() title!: string;
@text() content!: string;
@text() createdBy!: string;
}
O papel anônimo permite leituras públicas sem avaliar as reivindicações de identidade. A função autenticada utiliza as alegações do usuário logado para restringir alterações no conteúdo que o usuário possui.
Diretrizes de segurança
- Conceda o acesso mínimo exigido. Prefira
readoucreateesteja sozinho. Conceda subsídioupdateoudeletesomente quando o fluxo de trabalho público exigir. - Limite os campos expostos. Use
includeouexcludeopções para impedir o acesso a campos que usuários anônimos não precisam. Para mais informações, veja Definir permissões de dados. - Não confie na interface do app para proteção. As permissões devem ser definidas no modelo de dados porque os chamadores podem enviar requisições sem usar seu frontend.
- Planeje para opiniões não confiáveis. Validar os dados enviados e projetar operações públicas de escrita para spam, automação e tráfego inesperado.
- Operação negada pelo teste. Confirme que as operações omitidas da função são rejeitadas para usuários sem sessão.
Desabilitar o acesso anônimo
Para remover o acesso público de um aplicativo:
- Remova o
anonymouspapel de cada modelo de dados. - Reimplante o aplicativo rodando
npx rayfin upo arquivo .
Um administrador de tenant também pode desativar a configuração de tenant para bloquear o acesso anônimo a dados de todos os apps dentro de um tenant e limitar o acesso a grupos de segurança selecionados.