Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Os agentes de IA geralmente precisam se autenticar em outros recursos para concluir tarefas. Por exemplo, um agente implementado pode precisar de aceder a um índice de Pesquisa Vetorial para consultar dados não estruturados, um endpoint de serviço para chamar um modelo de fundação, ou funções do Unity Catalog para executar lógica personalizada.
Esta página aborda métodos de autenticação para agentes implementados nas aplicações Databricks. Para agentes implementados em endpoints Model Serving, veja Autenticação para agentes de IA (Model Serving).
O Databricks Apps fornece dois métodos de autenticação para agentes. Cada método serve diferentes casos de uso:
| Método | Description | Quando utilizar |
|---|---|---|
| Autorização da aplicação | O agente autentica-se usando um principal de serviço criado automaticamente com permissões consistentes. Anteriormente chamado de autenticação de Service Principal. | O caso de uso mais comum. Use quando todos os utilizadores deveriam ter o mesmo acesso aos recursos. |
| Autorização do utilizador | O agente autentica-se usando a identidade do utilizador que faz o pedido. Anteriormente denominado autenticação "Em Nome De" (OBO). | Use quando precisar de permissões específicas do utilizador, registos de auditoria ou controlo de acesso detalhado com o Unity Catalog. |
Pode combinar ambos os métodos num único agente. Por exemplo, use a autorização da aplicação para aceder a um índice partilhado de Pesquisa Vetorial enquanto usa a autorização do utilizador para consultar tabelas específicas do utilizador.
Configurar autenticação usando a UI do workspace ou pacotes de automação declarativa
Pode configurar todas as definições de autenticação de duas formas:
- Interface do Espaço de Trabalho: Edite a aplicação e gere recursos e escopos a partir do passo Configurar . Recomendado quando estás a iterar numa única aplicação no espaço de trabalho.
-
Pacotes de Automação Declarativa: Declare recursos, escopos e variáveis de ambiente num
databricks.ymlficheiro e implemente comdatabricks bundle deploy. Recomendado quando quiseres versionamento baseado em Git, CI/CD, ou para enviar o mesmo agente entre espaços de trabalho. Todos os modelos de agentes são enviados com umdatabricks.yml.
Ambos os caminhos produzem a mesma configuração em tempo de execução. O resto desta página mostra cada instrução em ambos os formulários para que possas escolher uma e manter a consistência dentro do teu projeto.
Para adicionar um recurso à aplicação por qualquer um dos caminhos, deve ter Can Manage permissão tanto para o recurso como para a aplicação.
Para a referência completa do pacote, veja app resource e app.resources. Para um guia completo de bundles, consulte Gerenciar aplicações Databricks usando Declarative Automation Bundles.
Autorização do aplicativo
Por defeito, as aplicações Databricks autenticam-se usando autorização de aplicação. O Databricks cria automaticamente um principal de serviço quando cria a aplicação, que atua como a identidade da aplicação.
Todos os utilizadores que interagem com a aplicação partilham as mesmas permissões definidas para o principal do serviço. Este modelo funciona bem quando se quer que todos os utilizadores vejam os mesmos dados ou quando a aplicação realiza operações partilhadas que não estão ligadas a controlos de acesso específicos do utilizador.
Para informações detalhadas sobre autorização de aplicações, consulte autorização de aplicação.
Conceder permissões ao experimento MLflow
O seu agente precisa de acesso a uma experiência MLflow para registar traços e resultados de avaliação. Conceda permissão ao principal de serviço Can Edit no experimento.
Interface do usuário do espaço de trabalho
- Clique em Editar na página inicial da sua aplicação.
- Vai para a etapa Configurar .
- Na secção recursos da app, adicione o recurso de experimentação MLflow com
Can Editpermissão.
Veja Adicionar um recurso de experiência MLflow a uma aplicação Databricks.
Pacotes de Automação Declarativa
Declare o experimento na lista
resourcesda aplicação emdatabricks.yml. Onameque você atribuir ao recurso será referenciado mais tarde quando configurar variáveis de ambiente.resources: apps: my_agent: name: 'my-agent' source_code_path: ./ resources: - name: 'experiment' experiment: experiment_id: '<experiment-id>' permission: 'CAN_EDIT'Redistribuir o pacote:
databricks bundle deploy databricks bundle run my_agent
Consulte app.resources.experiment para todas as áreas.
Conceder permissões a outros recursos Databricks
Se o seu agente usar outros recursos Databricks, como espaços Genie, índices de Pesquisa Vetorial ou armazéns SQL, conceda permissões principais ao serviço em cada um deles.
Para aceder ao registro de prompt, conceda as permissões CREATE FUNCTION, EXECUTE e MANAGE no esquema do Catálogo Unity para armazenar prompts.
Ao conceder acesso aos recursos do Unity Catalog, deve também atribuir permissões a todos os recursos dependentes subsequentes. Por exemplo, se conceder acesso a um espaço Genie, também deve conceder acesso às suas tabelas subjacentes, armazéns SQL e funções do Unity Catalog.
Interface do usuário do espaço de trabalho
Adicione recursos à aplicação através da secção de recursos da aplicação quando criar ou editar a aplicação no espaço de trabalho Databricks.
- Clique em Editar na página inicial da sua aplicação.
- Vai para a etapa Configurar .
- Nos recursos da App, clique + Adicionar recurso para cada recurso que o agente utiliza e defina a permissão.
Consulte Adicionar recursos a uma aplicação Databricks para a lista completa de recursos suportados e capturas de ecrã.
Pacotes de Automação Declarativa
Declare todos os recursos que o agente usa na lista
resourcesna sua aplicação emdatabricks.yml. O exemplo abaixo mostra um agente que utiliza um experimento MLflow, um endpoint de serviço, um espaço Genie, um warehouse SQL, um índice de Pesquisa Vetorial, uma função Unity Catalog e uma instância Lakebase. Cada recursonameé referenciado a partir deconfig.envpor meio devalue_frompara que o agente receba o identificador resolvido em tempo de execução.bundle: name: my_agent resources: apps: my_agent: name: 'my-agent' description: 'Custom agent deployed on Databricks Apps' source_code_path: ./ config: command: ['uv', 'run', 'start-app'] env: - name: MLFLOW_EXPERIMENT_ID value_from: 'experiment' - name: LAKEBASE_INSTANCE_NAME value_from: 'database' resources: - name: 'experiment' experiment: experiment_id: '<experiment-id>' permission: 'CAN_EDIT' - name: 'llm' serving_endpoint: name: 'databricks-claude-sonnet-4-5' permission: 'CAN_QUERY' - name: 'sales-genie' genie_space: space_id: '<genie-space-id>' permission: 'CAN_RUN' - name: 'warehouse' sql_warehouse: id: '<warehouse-id>' permission: 'CAN_USE' - name: 'docs-index' uc_securable: securable_full_name: 'main.docs.chunks_index' securable_type: 'TABLE' permission: 'SELECT' - name: 'lookup-function' uc_securable: securable_full_name: 'main.tools.order_lookup' securable_type: 'FUNCTION' permission: 'EXECUTE' - name: 'database' database: instance_name: '<lakebase-instance-name>' database_name: 'databricks_postgres' permission: 'CAN_CONNECT_AND_CREATE' targets: dev: mode: development default: trueImportante
Cada
value_fromvalor emconfig.envdeve corresponder a umnamecampo naresourceslista. As incompatibilidades fazem com que a variável de ambiente se resolva paraNonena aplicação implementada.Lançar e iniciar o pacote:
databricks bundle validate databricks bundle deploy databricks bundle run my_agentbundle deploycarrega a fonte e configura os recursos.bundle runInicia ou reinicia a aplicação com a fonte mais recente. O argumento parabundle runé a chave YAML emresources.apps(aquimy_agent), não o camponameda aplicação implementada.
Para o esquema completo de cada subtipo de recurso, veja app.resources.
A tabela seguinte lista as permissões mínimas usadas nos exemplos acima e o valor equivalente dos Pacotes de Automação Declarativa para cada tipo de recurso:
| Tipo de recurso | Permissão de UI do Workspace | A Automação Declarativa Agrupa recursos e permissões |
|---|---|---|
| Armazém SQL | Can Use |
sql_warehouse com CAN_USE |
| Endpoint de serviço do modelo | Can Query |
serving_endpoint com CAN_QUERY |
| Função do Unity Catalog | Can Execute |
uc_securable com securable_type: FUNCTION e EXECUTE |
| Espaço Genie | Can Run |
genie_space com CAN_RUN |
| Índice de pesquisa vetorial | Can Select |
uc_securable com securable_type: TABLE e SELECT |
| Tabela do Catálogo Unity | SELECT |
uc_securable com securable_type: TABLE e SELECT |
| Conexão do catálogo Unity | Use Connection |
uc_securable com securable_type: CONNECTION e USE_CONNECTION |
| Volume do Catálogo Unity |
Can Read ou Can Read and Write |
uc_securable com securable_type: VOLUME e READ_VOLUME ou WRITE_VOLUME |
| Lakebase (provisionado) | Can Connect and Create |
database com CAN_CONNECT_AND_CREATE |
| Lakebase (autoescalonamento) | Can Connect and Create |
postgres com CAN_CONNECT_AND_CREATE |
Siga o princípio do menor privilégio. Conceda ao principal de serviço apenas as permissões de que o agente precisa e utilize um principal de serviço dedicado por aplicação. Para a lista completa, consulte as melhores práticas de segurança.
Autorização do utilizador
Importante
A autorização do usuário está em Visualização pública. O administrador do seu espaço de trabalho tem de o ativar antes de poder usar a autorização do utilizador.
A autorização do utilizador permite que um agente atue com a identidade do utilizador que faz o pedido. Isto prevê:
- Acesso por usuário a dados confidenciais
- Controles de dados refinados impostos pelo Unity Catalog
- Registos de auditoria específicos para o utilizador
- Aplicação automática de filtros ao nível de linha e máscaras de coluna
Use a autorização do utilizador quando o seu agente precisar de aceder a recursos usando a identidade do utilizador solicitante em vez do principal do serviço da aplicação.
Como funciona a autorização do utilizador
Quando configura a autorização do utilizador para o seu agente:
- Adicione escopos de API à sua aplicação: Defina quais as APIs Databricks que a aplicação pode aceder em nome dos utilizadores. Veja Adicionar telescópios a uma aplicação.
- As credenciais do utilizador são reduzidas: o Databricks recolhe as credenciais do utilizador e restringe-as apenas aos escopos da API que definiste.
-
Encaminhamento de tokens: O token com escopo reduzido é disponibilizado para a sua aplicação através do
x-forwarded-access-tokencabeçalho HTTP. - O MLflow AgentServer armazena o token: O Agent Server armazena automaticamente este token por pedido para acesso conveniente no código do agente.
Configure a autorização do utilizador adicionando escopos na interface de aplicações do Databricks ao criar ou editar a sua aplicação, ou ao usar programaticamente a API. Consulte Adicionar telescópios a uma aplicação para instruções detalhadas.
Agentes com autorização do utilizador podem aceder aos seguintes recursos Databricks:
- Armazém SQL
- Espaço Genie
- Ficheiros e diretórios
- Ponto de extremidade de serviço de modelo
- Índice de pesquisa vetorial
- Ligações ao Catálogo Unity
- Tabelas do Catálogo Unity
Implementar a autorização do utilizador
Para implementar a autorização do utilizador, deve adicionar escopos de autorização à sua aplicação. Os escopos limitam o que a aplicação pode fazer em nome do utilizador. Para a lista de escopos e semântica de âmbito disponíveis, consulte Segurança baseada em escopo e escalação de privilégios.
Interface do usuário do espaço de trabalho
- Na interface do Databricks, vá às definições de Autorização da sua aplicação.
- Em Autorização de Utilizador, clique + Adicionar âmbito e selecione os scopos que a aplicação precisa para aceder aos recursos em nome do utilizador.
- Guarda as alterações e reinicia a aplicação.
Pacotes de Automação Declarativa
Declare os escopos em
user_api_scopesno recurso do aplicativo emdatabricks.yml:resources: apps: my_agent: name: 'my-agent' source_code_path: ./ user_api_scopes: - sql - dashboards.genie - serving.serving-endpoints resources: - name: 'experiment' experiment: experiment_id: '<experiment-id>' permission: 'CAN_EDIT'Redistribua o pacote e reinicia a aplicação:
databricks bundle deploy databricks bundle run my_agentNote
Depois de ativar a autorização do utilizador num espaço de trabalho pela primeira vez, deve reiniciar as aplicações existentes antes que possam usar os scopes. Veja Adicionar telescópios a uma aplicação.
Para configurar a autorização do utilizador no código do seu agente, recupere o cabeçalho deste pedido do AgentServer e construa um cliente de espaço de trabalho com essas credenciais.
No seu código de agente, importe a utilidade de autenticação:
Se estiver a usar um dos modelos fornecidos de databricks/app-templates, importe o utilitário fornecido:
from databricks_app.utils import get_user_workspace_clientCaso contrário, importa das utilidades do Agent Server:
from agent_server.utils import get_user_workspace_clientA
get_user_workspace_client()função utiliza o Agent Server para capturar ox-forwarded-access-tokencabeçalho e constrói um cliente de espaço de trabalho com essas credenciais de utilizador, lidando com a autenticação entre o utilizador, a aplicação e o agente servidor.Inicialize o cliente do espaço de trabalho no momento da consulta, não durante o arranque da aplicação:
Importante
Ligue
get_user_workspace_client()dentro dos handlersinvokeestream, e não no__init__ou no arranque da aplicação. As credenciais de utilizador só estão disponíveis no momento da consulta, quando um utilizador faz um pedido. Inicializar durante o arranque da aplicação falha porque ainda não existe contexto do utilizador.# In your agent code (inside invoke or stream handler) user_client = get_user_workspace_client() # Use user_client to access Databricks resources with user permissions response = user_client.serving_endpoints.query(name="my-endpoint", inputs=inputs)
Para um guia completo sobre como adicionar escopos e compreender a segurança baseada em âmbito, consulte Segurança baseada em âmbito e escalonamento de privilégios. Solicite apenas os escopos mínimos de que o seu agente precisa e registre todas as ações realizadas em nome de um utilizador; consulte Melhores práticas para autorização de utilizador.
Autenticar em servidores MCP Databricks
Os servidores MCP geridos Databricks expõem índices de Pesquisa Vetorial e funções do Catálogo Unity como ferramentas através de URLs da forma https://<workspace>/api/2.0/mcp/vector-search/<catalog>/<schema> e https://<workspace>/api/2.0/mcp/functions/<catalog>/<schema>. Para a lista de servidores disponíveis e os seus padrões de URL, veja Utilizar servidores MCP geridos pela Databricks.
Para autenticar, conceda ao principal de serviço do agente (ou ao utilizador, se estiver a usar autorização de utilizador) acesso a todos os recursos descendentes nesses esquemas.
Por exemplo, se o seu agente usar as seguintes URLs de servidor MCP:
https://<your-workspace>/api/2.0/mcp/vector-search/prod/customer_supporthttps://<your-workspace>/api/2.0/mcp/vector-search/prod/billinghttps://<your-workspace>/api/2.0/mcp/functions/prod/billing
Deve conceder acesso a todos os índices de pesquisa vetorial em prod.customer_support e prod.billing, e a todas as funções do Catálogo Unity em prod.billing.
Interface do usuário do espaço de trabalho
Adicione cada índice e funcione como um recurso em Recursos da App. Siga as mesmas etapas que Conceder permissões a outros recursos Databricks.
Pacotes de Automação Declarativa
Adicione uma entrada
uc_securablepor índice e por função na listaresourcesda sua app:resources: apps: my_agent: resources: - name: 'support-index' uc_securable: securable_full_name: 'prod.customer_support.tickets_index' securable_type: 'TABLE' permission: 'SELECT' - name: 'billing-index' uc_securable: securable_full_name: 'prod.billing.invoices_index' securable_type: 'TABLE' permission: 'SELECT' - name: 'refund-function' uc_securable: securable_full_name: 'prod.billing.process_refund' securable_type: 'FUNCTION' permission: 'EXECUTE'Redistribuir o pacote:
databricks bundle deploy databricks bundle run my_agent
Servidores MCP personalizados alojados como as suas próprias aplicações Databricks (nomes de aplicações prefixados com mcp-) ainda não têm suporte como recursos agrupados. Conceda manualmente o principal Can Use de serviço do agente na aplicação do servidor MCP com databricks apps update-permissions. Veja a competência custom-mcp-server no repositório de modelos de agentes.