Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
AI-agenter behöver ofta autentisera till andra resurser för att slutföra uppgifter. En distribuerad agent kan till exempel behöva komma åt ett vektorsökningsindex för att köra frågor mot ostrukturerade data, en serverslutpunkt för att anropa en grundmodell eller Unity Catalog-funktioner för att köra anpassad logik.
Den här sidan beskriver autentiseringsmetoder för agenter som distribueras i Databricks-appar. För agenter som distribueras på modelltjänstslutpunkter, se Autentisering för AI-agenter (modellservering).
Databricks Apps tillhandahåller två autentiseringsmetoder för agenter. Varje metod hanterar olika användningsfall:
| Metod | Description | När man ska använda |
|---|---|---|
| Appauktorisering | Agenten autentiserar med hjälp av ett automatiskt skapat huvudnamn för tjänsten med konsekventa behörigheter. Kallades tidigare för autentisering med tjänstens huvudnamn. | De vanligaste användningsfallen. Använd när alla användare ska ha samma åtkomst till resurser. |
| Användarauktorisering | Agenten autentiserar med identiteten för användaren som gör begäran. Tidigare kallad OBO-autentisering (On-Behalf-Of). | Använd när du behöver användarspecifika behörigheter, spårningsloggar eller detaljerad åtkomstkontroll med Unity Catalog. |
Du kan kombinera båda metoderna i en enda agent. Använd till exempel appauktorisering för att få åtkomst till ett delat vektorsökningsindex när du använder användarauktorisering för att fråga efter användarspecifika tabeller.
Konfigurera autentisering med arbetsytans användargränssnitt eller deklarativa automationspaket
Du kan konfigurera alla autentiseringsinställningar på två sätt:
- Arbetsytegränssnitt: Redigera appen och hantera resurser och omfång från steget Konfigurera . Rekommenderas när du itererar på en enskild app i arbetsytan.
-
Deklarativa Automation-paket: Deklarera resurser, omfång och miljövariabler i en
databricks.ymlfil och distribuera meddatabricks bundle deploy. Rekommenderas när du vill ha Git-baserad versionshantering, CI/CD eller för att skicka samma agent mellan arbetsytor. Alla agentmallar levereras med endatabricks.yml.
Båda sökvägarna skapar samma körningskonfiguration. Resten av den här sidan visar varje instruktion i båda formulären så att du kan välja en och hålla dig konsekvent i projektet.
Om du vill lägga till en resurs i appen via någon av sökvägarna måste du ha Can Manage behörighet för både resursen och appen.
Den fullständiga paketreferensen finns i appresursen och app.resources. En genomgång av paket från början till slut finns i Hantera Databricks-appar med deklarativa automationspaket.
Appauktorisering
Som standard autentiserar Databricks Apps med appauktorisering. Databricks skapar automatiskt ett huvudnamn för tjänsten när du skapar appen och den fungerar som appens identitet.
Alla användare som interagerar med appen har samma behörigheter som definierats för tjänstens huvudnamn. Den här modellen fungerar bra när du vill att alla användare ska se samma data eller när appen utför delade åtgärder som inte är knutna till användarspecifika åtkomstkontroller.
Detaljerad information om appauktorisering finns i Appauktorisering.
Bevilja behörigheter till MLflow-experimentet
Din agent behöver åtkomst till ett MLflow-experiment för att logga spårningar och utvärderingsresultat. Ge tjänstens huvudnamn Can Edit behörighet för experimentet.
Användargränssnitt för arbetsutrymme
- Klicka på Redigera på appens startsida.
- Gå till steget Konfigurera .
- I avsnittet Appresurser lägger du till MLflow-experimentresursen med
Can Editbehörighet.
Se Lägga till en MLflow-experimentresurs i en Databricks-app.
Deklarativa automationspaket
Deklarera experimentet i appens
resources-lista idatabricks.yml. Du angernameför resursen och den refereras senare när du ansluter miljövariabler.resources: apps: my_agent: name: 'my-agent' source_code_path: ./ resources: - name: 'experiment' experiment: experiment_id: '<experiment-id>' permission: 'CAN_EDIT'Distribuera om paketet:
databricks bundle deploy databricks bundle run my_agent
Se app.resources.experiment för alla fält.
Bevilja behörigheter till andra Databricks-resurser
Om din agent använder andra Databricks-resurser, till exempel Genie Spaces, Vector Search-index eller SQL-lager, beviljar du tjänstens huvudnamn behörighet för var och en.
Om du vill komma åt promptregistret, bevilja behörighet för CREATE FUNCTION, EXECUTE och MANAGE i Unity Catalog-schemat för att lagra promptar.
När du beviljar åtkomst till Unity Catalog-resurser måste du även bevilja behörigheter till alla underordnade beroende resurser. Om du till exempel beviljar åtkomst till ett Genie Space måste du även ge åtkomst till dess underliggande tabeller, SQL-lager och Unity Catalog-funktioner.
Användargränssnitt för arbetsutrymme
Lägg till resurser i appen via avsnittet Appresurser när du skapar eller redigerar appen på Databricks-arbetsytan.
- Klicka på Redigera på appens startsida.
- Gå till steget Konfigurera .
- I Appresurser klickar du på + Lägg till resurs för varje resurs som agenten använder och anger behörigheten.
Se Lägga till resurser i en Databricks-app för en fullständig lista över resurser som stöds och skärmbilder.
Deklarativa automationspaket
Deklarera varje resurs som agenten använder i
resourceslistan under din app idatabricks.yml. Exemplet nedan visar en agent som använder ett MLflow-experiment, en serverdelsslutpunkt, ett Genie Space, ett SQL-lager, ett Vector Search-index, en Unity Catalog-funktion och en Lakebase-instans. Varje resursnamerefereras viaconfig.envochvalue_fromså att agenten tar emot den funna identifieraren vid körning.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: trueViktigt!
Varje
value_fromvärde iconfig.envmåste matcha ettnamefält iresourceslistan. Matchningsfel gör att miljövariabeln matchas tillNonei den distribuerade appen.Distribuera och starta paketet:
databricks bundle validate databricks bundle deploy databricks bundle run my_agentbundle deployladdar upp källan och konfigurerar resurser.bundle runstartar eller startar om appen med den senaste källkoden. Argumentet tillbundle runär YAML-nyckeln underresources.apps(härmy_agent), inte den distribuerade appensnamefält.
Det fullständiga schemat för varje resursundertyp finns i app.resources.
I följande tabell visas de minsta behörigheter som används i exemplen ovan och motsvarande värde för deklarativa Automation-paket för varje resurstyp:
| Resurstyp | Behörighet för arbetsytans användargränssnitt | Deklarativ Automation-paketresurs och -behörighet |
|---|---|---|
| SQL Warehouse | Can Use |
sql_warehouse med CAN_USE |
| Modelltjänstslutpunkt | Can Query |
serving_endpoint med CAN_QUERY |
| Unity-katalogfunktion | Can Execute |
uc_securable med securable_type: FUNCTION och EXECUTE |
| Genie Space | Can Run |
genie_space med CAN_RUN |
| Index för vektorsökning | Can Select |
uc_securable med securable_type: TABLE och SELECT |
| Unity-katalogtabell | SELECT |
uc_securable med securable_type: TABLE och SELECT |
| Anslutning till Unity-katalog | Use Connection |
uc_securable med securable_type: CONNECTION och USE_CONNECTION |
| Unity-katalogvolym |
Can Read eller Can Read and Write |
uc_securable med securable_type: VOLUME och READ_VOLUME eller WRITE_VOLUME |
| Lakebase (tillhandahållen) | Can Connect and Create |
database med CAN_CONNECT_AND_CREATE |
| Lakebase (autoscaling/automatiserad skalning) | Can Connect and Create |
postgres med CAN_CONNECT_AND_CREATE |
Följ principen om lägsta behörighet. Bevilja tjänsthuvudnamnet endast de behörigheter som agenten behöver och använd ett dedikerat tjänsthuvudnamn per app. Den fullständiga listan finns i Metodtips för säkerhet.
Användarauktorisering
Viktigt!
Användarauktorisering finns i offentlig förhandsversion. Administratören för arbetsytan måste aktivera den innan du kan använda användarauktorisering.
Med användarauktorisering kan en agent agera med identiteten för den användare som gör begäran. Detta ger:
- Åtkomst per användare till känsliga data
- Detaljerade datakontroller som tillämpas av Unity Catalog
- Användarspecifika granskningsloggar
- Automatisk tillämpning av filter på radnivå och kolumnmasker
Använd användarauktorisering när din agent behöver komma åt resurser med hjälp av den begärande användarens identitet i stället för appens tjänsthuvudnamn.
Så här fungerar användarauktorisering
När du konfigurerar användarauktorisering för din agent:
- Lägg till API-omfång i din app: Definiera vilka Databricks-API:er som appen kan komma åt för användarnas räkning. Se Lägg till omfång i en app.
- Användarautentiseringsuppgifterna är begränsade: Databricks tar användarens autentiseringsuppgifter och begränsar dem till endast de API-behörigheter som du har definierat.
-
Vidarebefordran av token: Den nedkoperade token görs tillgänglig för din app via
x-forwarded-access-tokenHTTP-huvudet. - MLflow AgentServer lagrar token: Agentservern lagrar automatiskt denna token per begäran för bekväm åtkomst i agentkoden.
Konfigurera användarauktorisering genom att lägga till omfång i användargränssnittet för Databricks-appar när du skapar eller redigerar din app eller programmatiskt med hjälp av API:et. Mer information finns i Lägga till omfång i en app .
Agenter med användarauktorisering kan komma åt följande Databricks-resurser:
- SQL Warehouse
- Genie Space
- Filer och kataloger
- Modellserverendpunkt
- Vektorsökningsindex
- Unity Catalog-anslutningar
- Unity-katalogtabeller
Implementera användarauktorisering
Om du vill implementera användarauktorisering måste du lägga till auktoriseringsomfång i din app. Omfång begränsar vad appen kan göra för användarens räkning. En lista över tillgängliga omfång och omfångssemantik finns i Omfångsbaserad säkerhet och behörighetseskalering.
Användargränssnitt för arbetsutrymme
- I Databricks-användargränssnittet går du till appens auktoriseringsinställningar .
- Under Användarauktorisering klickar du på + Lägg till omfång och väljer de omfång som appen behöver för att få åtkomst till resurser åt användaren.
- Spara ändringarna och starta om appen.
Deklarativa automationspaket
Deklarera omfång under
user_api_scopespå appresursen idatabricks.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'Distribuera om paketet och starta om appen:
databricks bundle deploy databricks bundle run my_agentNote
När du har aktiverat användarauktorisering på en arbetsyta för första gången måste du starta om befintliga appar innan de kan använda tillstånd. Se Lägg till omfång i en app.
Om du vill konfigurera användarauktorisering i agentkoden hämtar du huvudet för den här begäran från AgentServer och skapar en arbetsyteklient med dessa autentiseringsuppgifter.
Importera autentiseringsverktyget i agentkoden:
Om du använder någon av de angivna mallarna från databricks/appmallar importerar du det tillhandahållna verktyget:
from databricks_app.utils import get_user_workspace_clientAnnars importerar du från agentserververktygen:
from agent_server.utils import get_user_workspace_clientFunktionen
get_user_workspace_client()använder agentservern för att fångax-forwarded-access-tokenheadern och skapar en arbetsplatsklient med dessa användaruppgifter, vilket hanterar autentiseringen mellan användaren, appen och agentservern.Initiera arbetsyteklienten vid frågetillfället, inte under appstart:
Viktigt!
Anropa
get_user_workspace_client()i hanterarnainvokeochstream, inte i__init__eller vid appstart. Användarautentiseringsuppgifter är endast tillgängliga vid frågetillfället när en användare gör en begäran. Det går inte att initiera under appstarten eftersom det inte finns någon användarkontext ännu.# 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)
En fullständig guide för att lägga till omfång och förstå omfångsbaserad säkerhet finns i Omfångsbaserad säkerhets- och behörighetseskalering. Begär endast de minsta omfång som agenten behöver och logga varje åtgärd som utförs för en användares räkning. Se Metodtips för användarauktorisering.
Autentisera till Databricks MCP-servrar
Databricks-hanterade MCP-servrar exponerar Vector Search-index och Unity Catalog-funktioner som verktyg via URL:er i formuläret https://<workspace>/api/2.0/mcp/vector-search/<catalog>/<schema> och https://<workspace>/api/2.0/mcp/functions/<catalog>/<schema>. En lista över tillgängliga servrar och deras URL-mönster finns i Använda Databricks-hanterade MCP-servrar.
För att autentisera ger du agentens tjänsthuvudnamn (eller användaren, om användaren använder användarauktorisering) åtkomst till alla underordnade resurser i dessa scheman.
Om din agent till exempel använder följande MCP-server-URL:er:
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
Du måste ge åtkomst till varje vektorsökningsindex i prod.customer_support och prod.billingoch varje Unity Catalog-funktion i prod.billing.
Användargränssnitt för arbetsutrymme
Lägg till varje index och funktion som en resurs under Appresurser. Följ samma steg som Bevilja behörigheter till andra Databricks-resurser.
Deklarativa automationspaket
Lägg till en
uc_securablepostering per index och per funktion under appensresources-lista.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'Distribuera om paketet:
databricks bundle deploy databricks bundle run my_agent
Anpassade MCP-servrar som hanteras som egna Databricks-appar (appnamn som är prefix med mcp-) stöds ännu inte som paketresurser. Bevilja agentens tjänsthuvudnamn (service principal) Can Use på MCP-serverappen manuellt med databricks apps update-permissions. Se kompetensen custom-mcp-server i lagringsplatsen för agentmallar.