{"slug":"microsoft-gives-ai-agents-their-own-identity-templates-not-borrowed-credentials","citations":[{"url":"https://www.digitalapplied.com/blog/agent-identity-credentials-non-human-access-2026-playbook","committed_hash":"sha256:d988e8042688911578677bc30a141833fca252a1b9cf432cc7baed3c9906d525","committed_hash_short":"sha256:d988e804…9906d525","mime_type":"text/html","committed_at":"2026-07-27T01:00:18.047749+00:00","content_snapshot":"<!DOCTYPE html><html class=\"geist_a71539c9-module__T19VSG__variable geist_mono_8d43a2aa-module__8Li5zG__variable instrument_serif_535d8616-module__GDyPrG__variable font-sans\" lang=\"en\"><head><meta charSet=\"utf-8\"/><meta name=\"viewport\" content=\"width=device-width, initial-scale=1, maximum-scale=5\"/><link rel=\"preload\" href=\"/_next/static/media/797e433ab948586e-s.p.08e28id.o-okb.woff2\" as=\"font\" crossorigin=\"\" type=\"font/woff2\"/><link rel=\"preload\" href=\"/_next/static/media/7ebf22b5a21034f8-s.p.10_7676vm7pyy.woff2\" as=\"font\" crossorigin=\"\" type=\"font/woff2\"/><link rel=\"preload\" href=\"/_next/static/media/caa3a2e1cccd8315-s.p.09~u27dqhyhd6.woff2\" as=\"font\" crossorigin=\"\" type=\"font/woff2\"/><link rel=\"preload\" href=\"/_next/static/media/e41d5df559864f9e-s.p.0gq7fw9.sy_5..woff2\" as=\"font\" crossorigin=\"\" type=\"font/woff2\"/><link rel=\"preload\" as=\"image\" href=\"/logo-black.svg\"/><link rel=\"stylesheet\" href=\"/_next/static/chunks/0x5hulsdcv16j.css\" data-precedence=\"next\"/><link rel=\"stylesheet\" href=\"/_next/static/chunks/1375h7jyi~127.css\" data-precedence=\"next\"/><link rel=\"preload\" as=\"script\" fetchPriority=\"low\" href=\"/_next/static/chunks/0fh1k_r~b~e_o.js\"/><script src=\"/_next/static/chunks/02j3b3kqw16o_.js\" async=\"\"></script><script src=\"/_next/static/chunks/0xo94uum3hbeo.js\" async=\"\"></script><script src=\"/_next/static/chunks/0k8x.hopn~dbb.js\" async=\"\"></script><script src=\"/_next/static/chunks/15~sw-y0t5qla.js\" async=\"\"></script><script src=\"/_next/static/chunks/0_zt5gdwndu-o.js\" async=\"\"></script><script src=\"/_next/static/chunks/turbopack-0r2lweie01gnn.js\" async=\"\"></script><script src=\"/_next/static/chunks/0vfhqx7irdtsp.js\" async=\"\"></script><script src=\"/_next/static/chunks/0yze7hvbcp5.x.js\" async=\"\"></script><script src=\"/_next/static/chunks/0zod1seoish6v.js\" async=\"\"></script><script src=\"/_next/static/chunks/0h9.k2fyk8cqu.js\" async=\"\"></script><script src=\"/_next/static/chunks/13b9o4nx8cmv5.js\" async=\"\"></script><script src=\"/_next/static/chunks/0bok.jphy_~lu.js\" async=\"\"></script><script src=\"/_next/static/chunks/039fygmp~-jt3.js\" async=\"\"></script><script src=\"/_next/static/chunks/10xegheq_2_g2.js\" async=\"\"></script><link rel=\"preload\" href=\"https://www.googletagmanager.com/gtm.js?id=GTM-NGSFB45\" as=\"script\"/><link href=\"/manifest.json\" rel=\"manifest\"/><link href=\"/feed.xml\" rel=\"alternate\" title=\"Digital Applied Blog\" type=\"application/rss+xml\"/><meta content=\"#18181b\" name=\"theme-color\"/><meta content=\"DigitalApplied\" name=\"apple-mobile-web-app-title\"/><meta name=\"next-size-adjust\" content=\"\"/><title>Giving Agents Their Own Identity, Not Your Credentials</title><meta name=\"description\" content=\"Agents that inherit a human session or API key make every action unrevocable without locking the human out. Short-lived, per-run workload credentials fix that.\"/><meta name=\"author\" content=\"Digital Applied\"/><meta name=\"keywords\" content=\"agent identity credentials,non-human identity management,SPIFFE SVID short-lived credentials,workload identity federation agents,GitHub App installation token scope,AWS IAM Roles Anywhere,AI agent audit trail\"/><meta name=\"creator\" content=\"Digital Applied\"/><meta name=\"publisher\" content=\"Digital Applied\"/><meta name=\"robots\" content=\"index, follow\"/><meta name=\"googlebot\" content=\"index, follow, max-video-preview:-1, max-image-preview:large, max-snippet:-1\"/><link rel=\"canonical\" href=\"https://www.digitalapplied.com/blog/agent-identity-credentials-non-human-access-2026-playbook\"/><meta property=\"og:title\" content=\"Giving Agents Their Own Identity, Not Your Credentials\"/><meta property=\"og:description\" content=\"Agents that inherit a human session or API key make every action unrevocable without locking the human out. Short-lived, per-run workload credentials fix that.\"/><meta property=\"og:url\" content=\"https://www.digitalapplied.com/blog/agent-identity-credentials-non-human-access-2026-playbook\"/><meta property=\"og:image\" content=\"https://www.digitalapplied.com/blog/agent-identity-credentials-non-human-access-2026-playbook/article-image\"/><meta property=\"og:image:type\" content=\"image/png\"/><meta property=\"og:image:width\" content=\"1200\"/><meta property=\"og:image:height\" content=\"630\"/><meta property=\"og:image:alt\" content=\"Giving Agents Their Own Identity, Not Your Credentials - Digital Applied Blog\"/><meta property=\"og:type\" content=\"article\"/><meta property=\"article:published_time\" content=\"2026-07-26\"/><meta property=\"article:modified_time\" content=\"2026-07-26\"/><meta property=\"article:author\" content=\"Digital Applied Team\"/><meta property=\"article:tag\" content=\"agent-identity\"/><meta property=\"article:tag\" content=\"non-human-identity\"/><meta property=\"article:tag\" content=\"workload-identity\"/><meta property=\"article:tag\" content=\"spiffe\"/><meta property=\"article:tag\" content=\"oauth\"/><meta property=\"article:tag\" content=\"access-control\"/><meta property=\"article:tag\" content=\"audit-logging\"/><meta name=\"twitter:card\" content=\"summary_large_image\"/><meta name=\"twitter:title\" content=\"Giving Agents Their Own Identity, Not Your Credentials\"/><meta name=\"twitter:description\" content=\"Agents that inherit a human session or API key make every action unrevocable without locking the human out. Short-lived, per-run workload credentials fix that.\"/><meta name=\"twitter:image\" content=\"https://www.digitalapplied.com/blog/agent-identity-credentials-non-human-access-2026-playbook/article-image\"/><meta name=\"twitter:image:alt\" content=\"Giving Agents Their Own Identity, Not Your Credentials - Digital Applied Blog\"/><meta name=\"twitter:image:type\" content=\"image/png\"/><meta name=\"twitter:image:width\" content=\"1200\"/><meta name=\"twitter:image:height\" content=\"630\"/><link rel=\"icon\" href=\"/favicon.ico?favicon.0hms~afauq~g0.ico\" sizes=\"48x48\" type=\"image/x-icon\"/><link rel=\"icon\" href=\"/icon.svg?icon.074~muy3rpvs~.svg\" sizes=\"any\" type=\"image/svg+xml\"/><link rel=\"apple-touch-icon\" href=\"/apple-icon.png?apple-icon.0z2i6746e9zp1.png\" sizes=\"180x180\" type=\"image/png\"/><script src=\"/_next/static/chunks/03~yq9q893hmn.js\" noModule=\"\"></script></head><body class=\"antialiased\"><div hidden=\"\"><!--$--><!--/$--></div><script type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"LocalBusiness\",\"@id\":\"https://www.digitalapplied.com/#organization\",\"name\":\"Digital Applied\",\"legalName\":\"Digital Applied, s. r. o.\",\"url\":\"https://www.digitalapplied.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://www.digitalapplied.com/logo-black.svg\",\"width\":\"512\",\"height\":\"512\"},\"image\":\"https://www.digitalapplied.com/opengraph-image\",\"description\":\"International digital marketing agency specializing in SEO, PPC, social media marketing, and AI-powered digital transformation for global clients\",\"foundingDate\":\"2019-05-01\",\"telephone\":\"+421-90-246-8050\",\"email\":\"info@digitalapplied.com\",\"address\":{\"@type\":\"PostalAddress\",\"streetAddress\":\"Priemyselná 668/7\",\"addressLocality\":\"Bratislava\",\"addressRegion\":\"Bratislava\",\"postalCode\":\"821 09\",\"addressCountry\":\"SK\"},\"geo\":{\"@type\":\"GeoCoordinates\",\"latitude\":48.142672,\"longitude\":17.168666},\"sameAs\":[\"https://x.com/digitalapplied\",\"https://www.facebook.com/digitalapplied\",\"https://www.instagram.com/digital_applied\",\"https://www.linkedin.com/company/digitalapplied\"],\"areaServed\":[{\"@type\":\"Country\",\"name\":\"United States\"},{\"@type\":\"Country\",\"name\":\"United Kingdom\"},{\"@type\":\"Country\",\"name\":\"Canada\"},{\"@type\":\"Country\",\"name\":\"Australia\"},{\"@type\":\"Place\",\"name\":\"European Union\"},{\"@type\":\"Place\",\"name\":\"Worldwide\"}],\"priceRange\":\"€€€-€€€€\",\"paymentAccepted\":[\"Credit Card\",\"Wire Transfer\",\"PayPal\"],\"currenciesAccepted\":\"EUR, USD, GBP\",\"openingHoursSpecification\":[{\"@type\":\"OpeningHoursSpecification\",\"dayOfWeek\":[\"Monday\",\"Tuesday\",\"Wednesday\",\"Thursday\",\"Friday\"],\"opens\":\"07:30\",\"closes\":\"17:00\"},{\"@type\":\"OpeningHoursSpecification\",\"dayOfWeek\":\"Saturday\",\"opens\":\"08:00\",\"closes\":\"11:00\"}],\"contactPoint\":{\"@type\":\"ContactPoint\",\"telephone\":\"+421-90-246-8050\",\"contactType\":\"customer service\",\"email\":\"info@digitalapplied.com\",\"availableLanguage\":[\"English\",\"Slovak\"],\"areaServed\":\"Worldwide\"},\"vatID\":\"SK2120914510\",\"taxID\":\"52125670\",\"identifier\":{\"@type\":\"PropertyValue\",\"propertyID\":\"Company ID\",\"value\":\"52125670\"},\"hasOfferCatalog\":{\"@type\":\"OfferCatalog\",\"name\":\"Digital Marketing Services\",\"itemListElement\":[{\"@type\":\"Offer\",\"itemOffered\":{\"@type\":\"Service\",\"name\":\"SEO Optimization\",\"url\":\"https://www.digitalapplied.com/services/agentic-seo\"}},{\"@type\":\"Offer\",\"itemOffered\":{\"@type\":\"Service\",\"name\":\"PPC Advertising\",\"url\":\"https://www.digitalapplied.com/services/paid-media\"}},{\"@type\":\"Offer\",\"itemOffered\":{\"@type\":\"Service\",\"name\":\"Social Media Marketing\",\"url\":\"https://www.digitalapplied.com/services/social-media\"}},{\"@type\":\"Offer\",\"itemOffered\":{\"@type\":\"Service\",\"name\":\"Web Development\",\"url\":\"https://www.digitalapplied.com/services/web-development\"}},{\"@type\":\"Offer\",\"itemOffered\":{\"@type\":\"Service\",\"name\":\"Content Marketing\",\"url\":\"https://www.digitalapplied.com/services/content-engine\"}},{\"@type\":\"Offer\",\"itemOffered\":{\"@type\":\"Service\",\"name\":\"Analytics & Insights\",\"url\":\"https://www.digitalapplied.com/services/analytics\"}},{\"@type\":\"Offer\",\"itemOffered\":{\"@type\":\"Service\",\"name\":\"eCommerce Solutions\",\"url\":\"https://www.digitalapplied.com/services/ecommerce\"}},{\"@type\":\"Offer\",\"itemOffered\":{\"@type\":\"Service\",\"name\":\"CRM & Automation\",\"url\":\"https://www.digitalapplied.com/services/crm-automation\"}},{\"@type\":\"Offer\",\"itemOffered\":{\"@type\":\"Service\",\"name\":\"AI & Digital Transformation\",\"url\":\"https://www.digitalapplied.com/services/ai-transformation\"}}]}}</script><div class=\"flex min-h-screen flex-col\"><nav class=\"sticky top-0 z-40 w-full border-border/60 border-b bg-background/80 backdrop-blur-md supports-backdrop-filter:bg-background/70\"><div class=\"mx-auto max-w-7xl px-4 md:px-8\"><div class=\"flex h-17 items-center justify-between\"><a aria-label=\"Digital Applied\" class=\"flex items-center\" href=\"/\"><img alt=\"Digital Applied\" width=\"1556\" height=\"280\" decoding=\"async\" data-nimg=\"1\" class=\"h-6 w-auto\" style=\"color:transparent\" src=\"/logo-black.svg\"/></a><div class=\"hidden items-center gap-1 md:flex\"><a class=\"rounded-lg px-3.5 py-2 font-medium text-[13.5px] text-zinc-800 transition-colors hover:bg-muted\" href=\"/services\">Services</a><a class=\"rounded-lg px-3.5 py-2 font-medium text-[13.5px] text-zinc-800 transition-colors hover:bg-muted\" href=\"/ai-tools\">AI Tools</a><a class=\"rounded-lg px-3.5 py-2 font-medium text-[13.5px] text-zinc-800 transition-colors hover:bg-muted\" href=\"/blog\">Blog</a><a class=\"rounded-lg px-3.5 py-2 font-medium text-[13.5px] text-zinc-800 transition-colors hover:bg-muted\" href=\"/about\">About</a><a class=\"rounded-lg px-3.5 py-2 font-medium text-[13.5px] text-zinc-800 transition-colors hover:bg-muted\" href=\"/contact\">Contact</a></div><div class=\"hidden items-center gap-2.5 md:flex\"><a class=\"rounded-lg px-3.5 py-2 font-medium text-[13.5px] text-zinc-800 transition-colors hover:bg-muted\" href=\"/auth/login\">Log in</a><a data-slot=\"button\" data-variant=\"default\" data-size=\"sm\" class=\"group/button inline-flex shrink-0 items-center justify-center border border-transparent bg-clip-padding text-sm font-medium whitespace-nowrap transition-all outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 active:not-aria-[haspopup]:translate-y-px disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [&amp;_svg]:pointer-events-none [&amp;_svg]:shrink-0 [&amp;_svg:not([class*=&#x27;size-&#x27;])]:size-4 bg-primary text-primary-foreground hover:bg-primary/80 gap-1 in-data-[slot=button-group]:rounded-md has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 h-9.5 rounded-lg px-4\" href=\"/get-started\">Start engines</a></div><button data-slot=\"sheet-trigger\" data-variant=\"ghost\" data-size=\"icon\" class=\"group/button inline-flex shrink-0 items-center justify-center rounded-md border border-transparent bg-clip-padding text-sm font-medium whitespace-nowrap transition-all outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 active:not-aria-[haspopup]:translate-y-px disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [&amp;_svg]:pointer-events-none [&amp;_svg]:shrink-0 [&amp;_svg:not([class*=&#x27;size-&#x27;])]:size-4 hover:bg-muted hover:text-foreground aria-expanded:bg-muted aria-expanded:text-foreground dark:hover:bg-muted/50 size-9 md:hidden\" aria-label=\"Open menu\" type=\"button\" aria-haspopup=\"dialog\" aria-expanded=\"false\" aria-controls=\"radix-_R_habvb_\" data-state=\"closed\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"lucide lucide-menu h-5 w-5\" aria-hidden=\"true\"><path d=\"M4 5h16\"></path><path d=\"M4 12h16\"></path><path d=\"M4 19h16\"></path></svg></button></div></div></nav><main class=\"grow\"><script type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"BlogPosting\",\"@id\":\"https://www.digitalapplied.com/blog/agent-identity-credentials-non-human-access-2026-playbook#article\",\"headline\":\"Giving Agents Their Own Identity, Not Your Credentials\",\"description\":\"Agents that inherit a human session or API key make every action unrevocable without locking the human out. Short-lived, per-run workload credentials fix that.\",\"url\":\"https://www.digitalapplied.com/blog/agent-identity-credentials-non-human-access-2026-playbook\",\"datePublished\":\"2026-07-26T00:00:00+01:00\",\"dateModified\":\"2026-07-26T00:00:00+01:00\",\"author\":{\"@type\":\"Organization\",\"@id\":\"https://www.digitalapplied.com/authors/digital-applied-team#author\",\"name\":\"Digital Applied Team\",\"url\":\"https://www.digitalapplied.com/authors/digital-applied-team\"},\"publisher\":{\"@id\":\"https://www.digitalapplied.com/#organization\"},\"image\":{\"@type\":\"ImageObject\",\"url\":\"https://www.digitalapplied.com/blog/agent-identity-credentials-non-human-access-2026-playbook/article-image\"},\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https://www.digitalapplied.com/blog/agent-identity-credentials-non-human-access-2026-playbook#webpage\"},\"isPartOf\":{\"@id\":\"https://www.digitalapplied.com/#website\"},\"articleSection\":\"CRM & Automation\",\"keywords\":\"agent identity credentials, non-human identity management, SPIFFE SVID short-lived credentials, workload identity federation agents, GitHub App installation token scope, AWS IAM Roles Anywhere, AI agent audit trail\",\"about\":[{\"@type\":\"Thing\",\"name\":\"agent-identity\"},{\"@type\":\"Thing\",\"name\":\"non-human-identity\"},{\"@type\":\"Thing\",\"name\":\"workload-identity\"},{\"@type\":\"Thing\",\"name\":\"spiffe\"},{\"@type\":\"Thing\",\"name\":\"oauth\"},{\"@type\":\"Thing\",\"name\":\"access-control\"},{\"@type\":\"Thing\",\"name\":\"audit-logging\"}]}</script><script type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"BreadcrumbList\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https://www.digitalapplied.com/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Blog\",\"item\":\"https://www.digitalapplied.com/blog\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"CRM & Automation\",\"item\":\"https://www.digitalapplied.com/blog/category/crm-automation\"},{\"@type\":\"ListItem\",\"position\":4,\"name\":\"Giving Agents Their Own Identity, Not Your Credentials\"}]}</script><div aria-hidden=\"true\" class=\"pointer-events-none fixed inset-x-0 top-0 z-40 h-[2px] overflow-hidden\"><div class=\"h-full bg-linear-to-r from-[var(--color-ignition)] to-[var(--color-ignition-2)] transition-[width] duration-100 ease-linear\" style=\"width:0%\"></div></div><nav aria-label=\"Breadcrumb\" class=\"border-white/5 border-b bg-[#0a0a0b] text-white/55\"><ol class=\"mx-auto flex max-w-[1320px] items-center gap-2 px-4 py-3.5 font-mono text-[11px] uppercase tracking-[0.1em] md:px-8\"><li class=\"flex items-center gap-2\"><a class=\"transition-colors hover:text-ignition-2\" href=\"/\">Home</a><span class=\"text-white/25\">/</span></li><li class=\"flex items-center gap-2\"><a class=\"transition-colors hover:text-ignition-2\" href=\"/blog\">Blog</a><span class=\"text-white/25\">/</span></li><li class=\"flex items-center gap-2\"><a class=\"transition-colors hover:text-ignition-2\" href=\"/blog/category/crm-automation\">CRM &amp; Automation</a><span class=\"text-white/25\">/</span></li><li class=\"flex items-center gap-2\"><span class=\"text-white\">Agent Identity &amp; Credentials</span></li></ol></nav><section class=\"relative isolate overflow-hidden bg-[#0a0a0b] pt-14 text-white\"><div aria-hidden=\"true\" class=\"mask-[radial-gradient(ellipse_at_50%_30%,black_20%,transparent_75%)] pointer-events-none absolute inset-0 bg-[linear-gradient(rgba(255,255,255,0.035)_1px,transparent_1px),linear-gradient(90deg,rgba(255,255,255,0.035)_1px,transparent_1px)] bg-size-[56px_56px] [-webkit-mask-image:radial-gradient(ellipse_at_50%_30%,black_20%,transparent_75%)]\"></div><div aria-hidden=\"true\" class=\"pointer-events-none absolute top-[-5%] left-[-5%] size-[620px] blur-2xl [background:radial-gradient(circle,rgba(255,107,26,0.18),rgba(255,107,26,0.03)_40%,transparent_70%)]\"></div><div aria-hidden=\"true\" class=\"pointer-events-none absolute top-[20%] right-[-5%] size-[520px] blur-2xl [background:radial-gradient(circle,rgba(77,107,254,0.16),rgba(77,107,254,0.02)_40%,transparent_70%)]\"></div><div class=\"relative z-2 mx-auto max-w-[1320px] px-4 md:px-8\"><div class=\"mb-9 flex flex-wrap items-center gap-3\"><span class=\"rounded-sm border border-ignition/30 bg-ignition/10 px-3 py-1.5 font-mono text-[11px] text-ignition uppercase tracking-[0.14em]\">CRM &amp; Automation</span><span class=\"rounded-sm bg-ignition-2 px-3 py-1.5 font-medium font-mono text-[#0a0a0b] text-[11px] uppercase tracking-[0.14em]\"><span class=\"mr-1.5 inline-block size-[5px] animate-[ignition-pulse_1.2s_infinite] rounded-full bg-[#0a0a0b] align-[1px]\"></span>Playbook</span><span class=\"rounded-sm border border-white/15 px-3 py-1.5 font-mono text-[11px] text-white/65 uppercase tracking-[0.14em]\">14<!-- --> min read</span><span class=\"rounded-sm border border-white/15 px-3 py-1.5 font-mono text-[11px] text-white/65 uppercase tracking-[0.14em]\">Published <!-- -->July 26, 2026</span></div><p class=\"m-0 mb-[18px] max-w-[900px] text-[17px] text-white/72 leading-normal tracking-[-0.005em]\">Non-human identity ·<!-- --> <span class=\"font-serif text-ignition-2 italic\">short-lived</span> <!-- -->credentials · revocation measured in minutes</p><h1 class=\"m-0 mb-6 max-w-[1100px] font-normal text-[clamp(40px,5.4vw,76px)] text-white leading-none tracking-[-0.035em]\">Giving Agents Their Own<!-- --> <em class=\"font-normal font-serif text-ignition-2 italic\">Identity</em>, Not Your Credentials</h1><p class=\"m-0 mb-11 max-w-[760px] text-[18px] text-white/72 leading-[1.6]\">An agent that borrows a human’s session, API key, or OAuth token inherits three problems at once: every action is attributed to a person, the scope is everything that person can touch, and revocation means locking that person out. Workload identity already solved this for services — this playbook maps the same machinery onto agents, per run.</p><div class=\"mb-12 flex flex-wrap items-center gap-5\"><div class=\"flex items-center gap-3\"><div class=\"flex size-11 items-center justify-center rounded-full bg-[linear-gradient(135deg,var(--color-ignition),var(--color-ignition-2))] font-medium font-mono text-[#0a0a0b] text-[14px]\">DA</div><div><div class=\"font-medium text-[14px] text-white leading-[1.2]\">Digital Applied Team</div><div class=\"mt-0.5 font-mono text-[10.5px] text-white/55 uppercase tracking-[0.08em]\">Senior strategists · Published Jul 26, 2026</div></div></div><div class=\"flex flex-wrap gap-x-6 gap-y-2 border-white/10 border-l pl-6 font-mono text-[11px] text-white/50 uppercase tracking-widest max-sm:gap-x-4 max-sm:border-l-0 max-sm:pl-0\"><div>Published<span class=\"mt-1 block text-[12px] text-white tracking-[0.04em]\">Jul 26, 2026</span></div><div>Read time<span class=\"mt-1 block text-[12px] text-white tracking-[0.04em]\">14 min</span></div><div>Sources<span class=\"mt-1 block text-[12px] text-white tracking-[0.04em]\">IETF, CSA &amp; vendor docs</span></div></div></div><div class=\"mb-14 grid grid-cols-2 gap-px overflow-hidden rounded-2xl border border-white/10 bg-white/10 md:grid-cols-4\"><div class=\"relative bg-[#0a0a0b] px-5 py-6\"><span class=\"mb-3.5 block font-mono text-[10.5px] text-white/50 uppercase tracking-[0.12em]\">NHIs per human user</span><div class=\"flex items-baseline gap-1 font-light text-[40px] text-white leading-none tracking-[-0.03em]\">45<span class=\"ml-0.5 font-mono text-[16px] text-ignition\">:1</span></div><div class=\"mt-3 text-[11.5px] text-white/55 leading-[1.4]\">enterprise average, per CSA</div><div class=\"mt-3 inline-flex items-center gap-1 font-mono text-[10.5px] text-ignition uppercase tracking-[0.12em]\"><span aria-hidden=\"true\">▲</span>144:1 cloud-native</div></div><div class=\"relative bg-[#0a0a0b] px-5 py-6\"><span class=\"mb-3.5 block font-mono text-[10.5px] text-white/50 uppercase tracking-[0.12em]\">GitHub App token</span><div class=\"flex items-baseline gap-1 font-light text-[40px] text-white leading-none tracking-[-0.03em]\">1<span class=\"ml-0.5 font-mono text-[16px] text-ignition\">hr</span></div><div class=\"mt-3 text-[11.5px] text-white/55 leading-[1.4]\">installation token lifetime</div></div><div class=\"relative bg-[#0a0a0b] px-5 py-6\"><span class=\"mb-3.5 block font-mono text-[10.5px] text-white/50 uppercase tracking-[0.12em]\">AWS temp credentials</span><div class=\"flex items-baseline gap-1 font-light text-[40px] text-white leading-none tracking-[-0.03em]\">15<span class=\"ml-0.5 font-mono text-[16px] text-ignition\">min</span></div><div class=\"mt-3 text-[11.5px] text-white/55 leading-[1.4]\">minimum session · max 12 hr</div></div><div class=\"relative bg-[#0a0a0b] px-5 py-6\"><span class=\"mb-3.5 block font-mono text-[10.5px] text-white/50 uppercase tracking-[0.12em]\">Fine-grained PAT</span><div class=\"flex items-baseline gap-1 font-light text-[40px] text-white leading-none tracking-[-0.03em]\">30<span class=\"ml-0.5 font-mono text-[16px] text-ignition\">d</span></div><div class=\"mt-3 text-[11.5px] text-white/55 leading-[1.4]\">default expiry · max 366 d</div></div></div></div></section><section class=\"relative bg-white dark:bg-zinc-950\"><div class=\"mx-auto grid max-w-[1320px] grid-cols-1 gap-10 px-6 py-16 md:px-8 lg:grid-cols-[240px_minmax(0,1fr)] lg:gap-14 xl:grid-cols-[260px_minmax(0,1fr)_280px]\"><aside class=\"sticky top-[84px] hidden self-start lg:block\"><div><div class=\"mb-4 flex items-center gap-2 font-mono text-[10.5px] text-zinc-500 uppercase tracking-[0.14em]\"><span class=\"h-px w-4 bg-ignition\"></span>Table of contents</div><ul class=\"flex flex-col gap-0.5 border-zinc-200 border-l dark:border-zinc-800\"><li><a class=\"-ml-px grid grid-cols-[32px_1fr] gap-2.5 border-l-2 px-3 py-2.5 text-[13px] leading-[1.4] tracking-[-0.005em] transition-colors border-transparent text-zinc-600 hover:bg-zinc-100 hover:text-zinc-950 dark:text-zinc-400 dark:hover:bg-zinc-900 dark:hover:text-white\" href=\"#takeaways\"><span class=\"pt-px font-mono text-[10.5px] tracking-[0.06em] text-zinc-500\">00</span><span>Key takeaways</span></a></li><li><a class=\"-ml-px grid grid-cols-[32px_1fr] gap-2.5 border-l-2 px-3 py-2.5 text-[13px] leading-[1.4] tracking-[-0.005em] transition-colors border-transparent text-zinc-600 hover:bg-zinc-100 hover:text-zinc-950 dark:text-zinc-400 dark:hover:bg-zinc-900 dark:hover:text-white\" href=\"#borrowed\"><span class=\"pt-px font-mono text-[10.5px] tracking-[0.06em] text-zinc-500\">01</span><span>The borrowed-credential trap</span></a></li><li><a class=\"-ml-px grid grid-cols-[32px_1fr] gap-2.5 border-l-2 px-3 py-2.5 text-[13px] leading-[1.4] tracking-[-0.005em] transition-colors border-transparent text-zinc-600 hover:bg-zinc-100 hover:text-zinc-950 dark:text-zinc-400 dark:hover:bg-zinc-900 dark:hover:text-white\" href=\"#third-category\"><span class=\"pt-px font-mono text-[10.5px] tracking-[0.06em] text-zinc-500\">02</span><span>Agents are a third category</span></a></li><li><a class=\"-ml-px grid grid-cols-[32px_1fr] gap-2.5 border-l-2 px-3 py-2.5 text-[13px] leading-[1.4] tracking-[-0.005em] transition-colors border-transparent text-zinc-600 hover:bg-zinc-100 hover:text-zinc-950 dark:text-zinc-400 dark:hover:bg-zinc-900 dark:hover:text-white\" href=\"#mechanisms\"><span class=\"pt-px font-mono text-[10.5px] tracking-[0.06em] text-zinc-500\">03</span><span>The mechanism shelf</span></a></li><li><a class=\"-ml-px grid grid-cols-[32px_1fr] gap-2.5 border-l-2 px-3 py-2.5 text-[13px] leading-[1.4] tracking-[-0.005em] transition-colors border-transparent text-zinc-600 hover:bg-zinc-100 hover:text-zinc-950 dark:text-zinc-400 dark:hover:bg-zinc-900 dark:hover:text-white\" href=\"#delegation\"><span class=\"pt-px font-mono text-[10.5px] tracking-[0.06em] text-zinc-500\">04</span><span>Delegation done precisely</span></a></li><li><a class=\"-ml-px grid grid-cols-[32px_1fr] gap-2.5 border-l-2 px-3 py-2.5 text-[13px] leading-[1.4] tracking-[-0.005em] transition-colors border-transparent text-zinc-600 hover:bg-zinc-100 hover:text-zinc-950 dark:text-zinc-400 dark:hover:bg-zinc-900 dark:hover:text-white\" href=\"#matrix\"><span class=\"pt-px font-mono text-[10.5px] tracking-[0.06em] text-zinc-500\">05</span><span>The decision matrix</span></a></li><li><a class=\"-ml-px grid grid-cols-[32px_1fr] gap-2.5 border-l-2 px-3 py-2.5 text-[13px] leading-[1.4] tracking-[-0.005em] transition-colors border-transparent text-zinc-600 hover:bg-zinc-100 hover:text-zinc-950 dark:text-zinc-400 dark:hover:bg-zinc-900 dark:hover:text-white\" href=\"#revocation\"><span class=\"pt-px font-mono text-[10.5px] tracking-[0.06em] text-zinc-500\">06</span><span>Revocation &amp; audit</span></a></li><li><a class=\"-ml-px grid grid-cols-[32px_1fr] gap-2.5 border-l-2 px-3 py-2.5 text-[13px] leading-[1.4] tracking-[-0.005em] transition-colors border-transparent text-zinc-600 hover:bg-zinc-100 hover:text-zinc-950 dark:text-zinc-400 dark:hover:bg-zinc-900 dark:hover:text-white\" href=\"#rollout\"><span class=\"pt-px font-mono text-[10.5px] tracking-[0.06em] text-zinc-500\">07</span><span>A pragmatic rollout</span></a></li><li><a class=\"-ml-px grid grid-cols-[32px_1fr] gap-2.5 border-l-2 px-3 py-2.5 text-[13px] leading-[1.4] tracking-[-0.005em] transition-colors border-transparent text-zinc-600 hover:bg-zinc-100 hover:text-zinc-950 dark:text-zinc-400 dark:hover:bg-zinc-900 dark:hover:text-white\" href=\"#conclusion\"><span class=\"pt-px font-mono text-[10.5px] tracking-[0.06em] text-zinc-500\">08</span><span>Conclusion</span></a></li><li><a class=\"-ml-px grid grid-cols-[32px_1fr] gap-2.5 border-l-2 px-3 py-2.5 text-[13px] leading-[1.4] tracking-[-0.005em] transition-colors border-transparent text-zinc-600 hover:bg-zinc-100 hover:text-zinc-950 dark:text-zinc-400 dark:hover:bg-zinc-900 dark:hover:text-white\" href=\"#faq\"><span class=\"pt-px font-mono text-[10.5px] tracking-[0.06em] text-zinc-500\">09</span><span>FAQ</span></a></li></ul></div></aside><article class=\"prose-none min-w-0\"><div class=\"max-w-[720px] [&amp;_*:where(p,h3,ul)]:text-pretty [&amp;_a.link:hover]:bg-ignition/10 [&amp;_a.link:hover]:text-ignition [&amp;_a.link]:border-ignition [&amp;_a.link]:border-b [&amp;_a.link]:pb-px [&amp;_a.link]:font-medium [&amp;_a.link]:text-zinc-950 [&amp;_a.link]:transition-colors [&amp;_a.link]:dark:text-white [&amp;_code]:rounded-[4px] [&amp;_code]:bg-zinc-100 [&amp;_code]:px-1.5 [&amp;_code]:py-0.5 [&amp;_code]:font-mono [&amp;_code]:text-[0.88em] [&amp;_code]:text-zinc-950 [&amp;_code]:dark:bg-zinc-800 [&amp;_code]:dark:text-white [&amp;_h3]:mt-9 [&amp;_h3]:mb-3.5 [&amp;_h3]:font-medium [&amp;_h3]:text-[22px] [&amp;_h3]:text-zinc-950 [&amp;_h3]:leading-tight [&amp;_h3]:tracking-[-0.015em] [&amp;_h3]:dark:text-white [&amp;_p.lede]:mb-7 [&amp;_p.lede]:font-normal [&amp;_p.lede]:text-[19px] [&amp;_p.lede]:text-zinc-950 [&amp;_p.lede]:leading-[1.6] [&amp;_p.lede]:dark:text-white [&amp;_p]:mb-5 [&amp;_p]:text-[17px] [&amp;_p]:text-zinc-800 [&amp;_p]:leading-[1.7] [&amp;_p]:dark:text-zinc-200 [&amp;_strong]:font-semibold [&amp;_strong]:text-zinc-950 [&amp;_strong]:dark:text-white [&amp;_ul]:mb-6 [&amp;_ul]:ml-0 [&amp;_ul]:list-none [&amp;_ul]:p-0 [&amp;_ul_li]:relative [&amp;_ul_li]:mb-2.5 [&amp;_ul_li]:pl-[22px] [&amp;_ul_li]:text-[16px] [&amp;_ul_li]:text-zinc-700 [&amp;_ul_li]:leading-[1.6] [&amp;_ul_li]:before:absolute [&amp;_ul_li]:before:top-[11px] [&amp;_ul_li]:before:left-0.5 [&amp;_ul_li]:before:size-1.5 [&amp;_ul_li]:before:rounded-full [&amp;_ul_li]:before:bg-ignition [&amp;_ul_li]:before:content-[&#x27;&#x27;] [&amp;_ul_li]:dark:text-zinc-300\"><p class=\"lede\">Agent identity is the least glamorous decision in an agentic build and the one most likely to hurt you later: when an AI agent runs on a human’s borrowed session, API key, or OAuth token, every action it takes is legally and forensically that person’s action, its access is whatever that person accumulated over years, and the only off switch also switches off the human.</p><p>This is not a hypothetical concern for some future fleet of autonomous agents. It is the default state of most agent deployments right now, because the fastest way to get an agent working is to paste in a key that already works. The infrastructure world spent the last decade solving the same problem for services — short-lived certificates, token exchange, federation — and in 2026 the major identity vendors began shipping agent-specific versions of that machinery.</p><p>This playbook covers why borrowed credentials fail, why agents are a third identity category distinct from both humans and classic service accounts, the named mechanisms that already exist (SPIFFE and SPIRE, workload identity federation, GitHub App installation tokens, AWS IAM Roles Anywhere, RFC 8693 token exchange), and a decision matrix that maps five agent access patterns to an identity mechanism, a revocation path, and an audit granularity. It pairs with our<!-- --> <a class=\"link\" href=\"/blog/agentic-ai-rbac-design-patterns-implementation-2026\">agentic RBAC design patterns guide</a> <!-- -->deliberately: RBAC governs what an identity may <em>do</em> once it exists — this post is about how that identity gets issued, scoped, rotated, and revoked in the first place.</p></div><div class=\"my-12 scroll-mt-[90px] border-zinc-950 border-t-2 pt-7 dark:border-white\" id=\"takeaways\"><div class=\"mb-6 flex items-center gap-2.5 font-mono text-[11px] text-zinc-950 uppercase tracking-[0.14em] dark:text-white\"><span class=\"size-1.5 rounded-full bg-ignition shadow-[0_0_8px_var(--color-ignition)]\"></span>Key takeaways</div><ol class=\"m-0 list-none p-0\"><li class=\"grid grid-cols-[40px_1fr] gap-4 border-zinc-200 border-b py-5 last:border-b-0 dark:border-zinc-800\"><span class=\"pt-1 font-mono text-[12px] text-ignition tracking-[0.08em]\">01</span><div><span class=\"mb-1.5 block font-semibold text-[15.5px] text-zinc-950 leading-[1.4] tracking-[-0.005em] dark:text-white\">Borrowed credentials fail three ways at once.</span><span class=\"text-[14.5px] text-zinc-600 leading-[1.6] dark:text-zinc-400\">An agent on a human’s session or API key mis-attributes every action to a person, runs over-scoped by default, and cannot be revoked without locking that person out of their own accounts.</span></div></li><li class=\"grid grid-cols-[40px_1fr] gap-4 border-zinc-200 border-b py-5 last:border-b-0 dark:border-zinc-800\"><span class=\"pt-1 font-mono text-[12px] text-ignition tracking-[0.08em]\">02</span><div><span class=\"mb-1.5 block font-semibold text-[15.5px] text-zinc-950 leading-[1.4] tracking-[-0.005em] dark:text-white\">Agents are a third identity category.</span><span class=\"text-[14.5px] text-zinc-600 leading-[1.6] dark:text-zinc-400\">Not human, not classic service account. Microsoft’s Entra documentation now carves agents out explicitly: they make dynamic decisions and adapt behavior, so identity must be issued per run and scoped per task.</span></div></li><li class=\"grid grid-cols-[40px_1fr] gap-4 border-zinc-200 border-b py-5 last:border-b-0 dark:border-zinc-800\"><span class=\"pt-1 font-mono text-[12px] text-ignition tracking-[0.08em]\">03</span><div><span class=\"mb-1.5 block font-semibold text-[15.5px] text-zinc-950 leading-[1.4] tracking-[-0.005em] dark:text-white\">The mechanisms already exist and are shipping.</span><span class=\"text-[14.5px] text-zinc-600 leading-[1.6] dark:text-zinc-400\">SPIFFE/SPIRE issues auto-rotating SVIDs on workload attestation; workload identity federation eliminates key files; GitHub App tokens expire in 1 hour; AWS IAM Roles Anywhere trades an X.509 cert for 15-minute-to-12-hour credentials.</span></div></li><li class=\"grid grid-cols-[40px_1fr] gap-4 border-zinc-200 border-b py-5 last:border-b-0 dark:border-zinc-800\"><span class=\"pt-1 font-mono text-[12px] text-ignition tracking-[0.08em]\">04</span><div><span class=\"mb-1.5 block font-semibold text-[15.5px] text-zinc-950 leading-[1.4] tracking-[-0.005em] dark:text-white\">Delegation is not impersonation — RFC 8693 encodes the difference.</span><span class=\"text-[14.5px] text-zinc-600 leading-[1.6] dark:text-zinc-400\">Token exchange carries a subject token (who the work is for) and an actor token (who is doing it), plus an audience parameter that restricts where the minted token is valid. Agent chains need all three.</span></div></li><li class=\"grid grid-cols-[40px_1fr] gap-4 border-zinc-200 border-b py-5 last:border-b-0 dark:border-zinc-800\"><span class=\"pt-1 font-mono text-[12px] text-ignition tracking-[0.08em]\">05</span><div><span class=\"mb-1.5 block font-semibold text-[15.5px] text-zinc-950 leading-[1.4] tracking-[-0.005em] dark:text-white\">Audit must name the run, not the bot.</span><span class=\"text-[14.5px] text-zinc-600 leading-[1.6] dark:text-zinc-400\">A log line that says ‘the automation user did it’ is not reconstructible after an incident. Per-run correlation IDs, actor-plus-subject pairs, and parent-child lineage for sub-agents are the bar — with revocation measured in minutes.</span></div></li></ol></div><h2 class=\"m-0 mt-14 mb-5 scroll-mt-[90px] font-normal text-[clamp(26px,3vw,36px)] text-zinc-950 leading-[1.15] tracking-[-0.025em] dark:text-white\" id=\"borrowed\"><span class=\"mb-3.5 block font-medium font-mono text-[11px] text-ignition uppercase tracking-[0.12em]\">01<!-- --> — <!-- -->The Failure Mode</span>Borrowed credentials fail<!-- --> <em class=\"font-normal font-serif text-ignition-2 italic\">three</em> <!-- -->ways at once.</h2><div class=\"max-w-[720px] [&amp;_*:where(p,h3,ul)]:text-pretty [&amp;_a.link:hover]:bg-ignition/10 [&amp;_a.link:hover]:text-ignition [&amp;_a.link]:border-ignition [&amp;_a.link]:border-b [&amp;_a.link]:pb-px [&amp;_a.link]:font-medium [&amp;_a.link]:text-zinc-950 [&amp;_a.link]:transition-colors [&amp;_a.link]:dark:text-white [&amp;_code]:rounded-[4px] [&amp;_code]:bg-zinc-100 [&amp;_code]:px-1.5 [&amp;_code]:py-0.5 [&amp;_code]:font-mono [&amp;_code]:text-[0.88em] [&amp;_code]:text-zinc-950 [&amp;_code]:dark:bg-zinc-800 [&amp;_code]:dark:text-white [&amp;_h3]:mt-9 [&amp;_h3]:mb-3.5 [&amp;_h3]:font-medium [&amp;_h3]:text-[22px] [&amp;_h3]:text-zinc-950 [&amp;_h3]:leading-tight [&amp;_h3]:tracking-[-0.015em] [&amp;_h3]:dark:text-white [&amp;_p.lede]:mb-7 [&amp;_p.lede]:font-normal [&amp;_p.lede]:text-[19px] [&amp;_p.lede]:text-zinc-950 [&amp;_p.lede]:leading-[1.6] [&amp;_p.lede]:dark:text-white [&amp;_p]:mb-5 [&amp;_p]:text-[17px] [&amp;_p]:text-zinc-800 [&amp;_p]:leading-[1.7] [&amp;_p]:dark:text-zinc-200 [&amp;_strong]:font-semibold [&amp;_strong]:text-zinc-950 [&amp;_strong]:dark:text-white [&amp;_ul]:mb-6 [&amp;_ul]:ml-0 [&amp;_ul]:list-none [&amp;_ul]:p-0 [&amp;_ul_li]:relative [&amp;_ul_li]:mb-2.5 [&amp;_ul_li]:pl-[22px] [&amp;_ul_li]:text-[16px] [&amp;_ul_li]:text-zinc-700 [&amp;_ul_li]:leading-[1.6] [&amp;_ul_li]:before:absolute [&amp;_ul_li]:before:top-[11px] [&amp;_ul_li]:before:left-0.5 [&amp;_ul_li]:before:size-1.5 [&amp;_ul_li]:before:rounded-full [&amp;_ul_li]:before:bg-ignition [&amp;_ul_li]:before:content-[&#x27;&#x27;] [&amp;_ul_li]:dark:text-zinc-300\"><p>Walk through what actually happens when an agent inherits a human’s credentials — a session cookie lifted from a browser profile, a personal API key pasted into an environment variable, or an OAuth token granted to “you” that a background process now replays.</p><p><strong>First, attribution collapses.</strong> Every record the agent creates, every email it sends, every deletion it performs is logged as the human whose credential it holds. When something goes wrong at 2 a.m. on a Saturday, the audit trail points at a person who was asleep. There is no way, from the logs alone, to separate what the human did from what the agent did — which means there is no way to scope an incident, satisfy a compliance review, or defend the human.</p><p><strong>Second, scope is inherited, not designed.</strong> A human account accumulates access over years — old projects, admin roles granted for one migration and never removed, personal repositories next to production ones. The agent gets all of it. The task needed read access to one CRM module; the credential carries write access to the entire org. Classic personal access tokens are the sharpest version of this: before fine-grained scoping, a single token could reach every repository its owner could.</p><p><strong>Third, revocation takes the human down too.</strong> The only way to cut off an agent holding your session or key is to kill the session or rotate the key — locking you out of your own accounts mid-incident, breaking every other integration that shared the credential, and turning a contained problem into an outage. Anything that cannot be revoked independently was never really under control.</p><p>And the definition of “credential” is wider than most teams assume. This week’s Amp release made the point concretely: a durable webhook URL that triggers an agent functions as a credential — anyone holding the URL can invoke the agent — which is why Amp’s own docs treat those URLs as secrets and sign the payloads, as we covered in<!-- --> <a class=\"link\" href=\"/blog/amp-event-driven-orbs-self-scheduling-agents-2026\">our breakdown of Amp’s event-driven orbs</a>. Identity for agents is not just “which API key” — it is every artifact that grants the power to act.</p></div><div class=\"relative my-7 overflow-hidden rounded-xl bg-[#0a0a0b] px-7 py-5.5 text-white\"><span aria-hidden=\"true\" class=\"absolute top-0 bottom-0 left-0 w-[3px] bg-ignition\"></span><span class=\"mb-2 block font-mono text-[10.5px] text-ignition-2 uppercase tracking-[0.14em]\">The trap in one sentence</span><div class=\"text-[15.5px] text-white leading-[1.6]\">A borrowed credential makes the agent<!-- --> <em class=\"font-serif text-white italic\">indistinguishable</em> <!-- -->from its human — which is precisely the property you never want. Attribution, scoping, and revocation all depend on the agent being a<!-- --> <strong>separate, named principal</strong> whose access can be granted, narrowed, and destroyed without touching anyone else.</div></div><h2 class=\"m-0 mt-14 mb-5 scroll-mt-[90px] font-normal text-[clamp(26px,3vw,36px)] text-zinc-950 leading-[1.15] tracking-[-0.025em] dark:text-white\" id=\"third-category\"><span class=\"mb-3.5 block font-medium font-mono text-[11px] text-ignition uppercase tracking-[0.12em]\">02<!-- --> — <!-- -->Identity Taxonomy</span>Agents are a<!-- --> <em class=\"font-normal font-serif text-ignition-2 italic\">third</em> <!-- -->identity category.</h2><div class=\"max-w-[720px] [&amp;_*:where(p,h3,ul)]:text-pretty [&amp;_a.link:hover]:bg-ignition/10 [&amp;_a.link:hover]:text-ignition [&amp;_a.link]:border-ignition [&amp;_a.link]:border-b [&amp;_a.link]:pb-px [&amp;_a.link]:font-medium [&amp;_a.link]:text-zinc-950 [&amp;_a.link]:transition-colors [&amp;_a.link]:dark:text-white [&amp;_code]:rounded-[4px] [&amp;_code]:bg-zinc-100 [&amp;_code]:px-1.5 [&amp;_code]:py-0.5 [&amp;_code]:font-mono [&amp;_code]:text-[0.88em] [&amp;_code]:text-zinc-950 [&amp;_code]:dark:bg-zinc-800 [&amp;_code]:dark:text-white [&amp;_h3]:mt-9 [&amp;_h3]:mb-3.5 [&amp;_h3]:font-medium [&amp;_h3]:text-[22px] [&amp;_h3]:text-zinc-950 [&amp;_h3]:leading-tight [&amp;_h3]:tracking-[-0.015em] [&amp;_h3]:dark:text-white [&amp;_p.lede]:mb-7 [&amp;_p.lede]:font-normal [&amp;_p.lede]:text-[19px] [&amp;_p.lede]:text-zinc-950 [&amp;_p.lede]:leading-[1.6] [&amp;_p.lede]:dark:text-white [&amp;_p]:mb-5 [&amp;_p]:text-[17px] [&amp;_p]:text-zinc-800 [&amp;_p]:leading-[1.7] [&amp;_p]:dark:text-zinc-200 [&amp;_strong]:font-semibold [&amp;_strong]:text-zinc-950 [&amp;_strong]:dark:text-white [&amp;_ul]:mb-6 [&amp;_ul]:ml-0 [&amp;_ul]:list-none [&amp;_ul]:p-0 [&amp;_ul_li]:relative [&amp;_ul_li]:mb-2.5 [&amp;_ul_li]:pl-[22px] [&amp;_ul_li]:text-[16px] [&amp;_ul_li]:text-zinc-700 [&amp;_ul_li]:leading-[1.6] [&amp;_ul_li]:before:absolute [&amp;_ul_li]:before:top-[11px] [&amp;_ul_li]:before:left-0.5 [&amp;_ul_li]:before:size-1.5 [&amp;_ul_li]:before:rounded-full [&amp;_ul_li]:before:bg-ignition [&amp;_ul_li]:before:content-[&#x27;&#x27;] [&amp;_ul_li]:dark:text-zinc-300\"><p>Most 2026 coverage lumps everything non-human into one “non-human identity” bucket. That framing hides the decision that matters. In practice there are three categories with different lifecycles, and the tooling built for the first two fails on the third.</p><p>The scale problem is real regardless of whose count you trust. Per the Cloud Security Alliance’s May 2026 whitepaper on non-human identity governance, non-human identities — service accounts, API keys, OAuth tokens, machine certificates, agent credentials — outnumber human users by an average of 45:1 across enterprises, rising to 144:1 in cloud-native environments. Worth noting: different summaries of the CSA’s own research circulate different headline figures for this problem, which is itself a tell for how unsettled the industry’s accounting of its non-human population still is. Treat any single ratio as directional; the direction is unambiguous.</p><p>Microsoft’s Entra documentation puts the operational gap plainly: “It’s also hard to track when a workload identity is created or when it should be revoked.” That sentence describes classic service accounts. Agents make it worse, and Microsoft now says so explicitly — its workload-identity docs carve out AI agents as a distinct category of machine identity: “Unlike traditional workloads that execute predetermined logic, AI agents make dynamic decisions and adapt behavior.”</p></div><div class=\"my-8 flex flex-col gap-4\"><div class=\"relative flex flex-col gap-5 overflow-hidden rounded-2xl p-6 md:flex-row md:gap-8 md:p-7 border border-zinc-200 bg-white dark:border-zinc-800 dark:bg-zinc-900\"><div class=\"flex flex-col gap-3 md:w-[220px] md:shrink-0\"><div class=\"flex items-center gap-2 font-mono text-[10.5px] uppercase tracking-[0.14em] text-zinc-500\"><span class=\"size-1.5 rounded-full bg-current\"></span>Category 01</div><h5 class=\"m-0 font-medium text-[22px] leading-[1.2] tracking-[-0.02em] text-zinc-950 dark:text-white\">Human identity</h5><div class=\"self-start\"><span class=\"inline-block rounded-md px-2.5 py-1.5 font-mono text-[12px] tracking-[-0.01em] bg-zinc-100 text-zinc-700 dark:bg-zinc-800 dark:text-zinc-300\">Interactive · MFA · session-bound</span></div></div><div class=\"hidden w-px self-stretch bg-zinc-200/60 md:block dark:bg-zinc-800/60\"></div><div class=\"flex flex-1 flex-col justify-between gap-4\"><p class=\"m-0 text-[13.5px] leading-[1.6] text-zinc-600 dark:text-zinc-400\">Built around a person who can answer a prompt: passwords, MFA challenges, conditional access, re-authentication on risk signals. None of that machinery fires when the caller is a process — there is nobody to approve the push notification.</p><div class=\"self-start pt-1 md:self-end\"><span class=\"inline-block rounded-sm bg-ignition/10 px-2 py-1 font-mono text-[10px] text-ignition uppercase tracking-[0.12em]\">Traditional IAM’s home turf</span></div></div></div><div class=\"relative flex flex-col gap-5 overflow-hidden rounded-2xl p-6 md:flex-row md:gap-8 md:p-7 border border-zinc-200 bg-white dark:border-zinc-800 dark:bg-zinc-900\"><div class=\"flex flex-col gap-3 md:w-[220px] md:shrink-0\"><div class=\"flex items-center gap-2 font-mono text-[10.5px] uppercase tracking-[0.14em] text-zinc-500\"><span class=\"size-1.5 rounded-full bg-current\"></span>Category 02</div><h5 class=\"m-0 font-medium text-[22px] leading-[1.2] tracking-[-0.02em] text-zinc-950 dark:text-white\">Service account</h5><div class=\"self-start\"><span class=\"inline-block rounded-md px-2.5 py-1.5 font-mono text-[12px] tracking-[-0.01em] bg-zinc-100 text-zinc-700 dark:bg-zinc-800 dark:text-zinc-300\">Long-lived · few · rarely rotated</span></div></div><div class=\"hidden w-px self-stretch bg-zinc-200/60 md:block dark:bg-zinc-800/60\"></div><div class=\"flex flex-1 flex-col justify-between gap-4\"><p class=\"m-0 text-[13.5px] leading-[1.6] text-zinc-600 dark:text-zinc-400\">Predetermined logic, stable scope, a handful per system. The classic failure is the forgotten key — powerful, unowned, unrotated for years — but at least the behavior behind it is static and reviewable.</p><div class=\"self-start pt-1 md:self-end\"><span class=\"inline-block rounded-sm bg-ignition/10 px-2 py-1 font-mono text-[10px] text-ignition uppercase tracking-[0.12em]\">Classic non-human identity</span></div></div></div><div class=\"relative flex flex-col gap-5 overflow-hidden rounded-2xl p-6 md:flex-row md:gap-8 md:p-7 border border-white/10 bg-[#0a0a0b] text-white\"><div aria-hidden=\"true\" style=\"position:absolute;inset:-1px;border-radius:16px;padding:1px;background:linear-gradient(135deg,#ff6b1a,transparent 60%);-webkit-mask:linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);-webkit-mask-composite:xor;mask:linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);mask-composite:exclude;pointer-events:none\"></div><div class=\"flex flex-col gap-3 md:w-[220px] md:shrink-0\"><div class=\"flex items-center gap-2 font-mono text-[10.5px] uppercase tracking-[0.14em] text-ignition-2\"><span class=\"size-1.5 rounded-full bg-current\"></span>Category 03</div><h5 class=\"m-0 font-medium text-[22px] leading-[1.2] tracking-[-0.02em] text-white\">Agent<!-- --> <em class=\"font-normal font-serif text-ignition-2 italic\">identity</em></h5><div class=\"self-start\"><span class=\"inline-block rounded-md px-2.5 py-1.5 font-mono text-[12px] tracking-[-0.01em] bg-ignition/10 text-ignition-2\">Dynamic · many · issued per run</span></div></div><div class=\"hidden w-px self-stretch bg-zinc-200/60 md:block dark:bg-zinc-800/60\"></div><div class=\"flex flex-1 flex-col justify-between gap-4\"><p class=\"m-0 text-[13.5px] leading-[1.6] text-white/72\">Agents decide what to do at runtime, spawn sub-agents, and multiply faster than any review cycle. Identity has to be issued per run, scoped per task, expire on its own, and die without collateral damage to a human or a fleet.</p><div class=\"self-start pt-1 md:self-end\"><span class=\"inline-block rounded-sm bg-ignition/10 px-2 py-1 font-mono text-[10px] text-ignition uppercase tracking-[0.12em]\">Entra Agent ID · CSA agentic IAM</span></div></div></div></div><div class=\"max-w-[720px] [&amp;_*:where(p,h3,ul)]:text-pretty [&amp;_a.link:hover]:bg-ignition/10 [&amp;_a.link:hover]:text-ignition [&amp;_a.link]:border-ignition [&amp;_a.link]:border-b [&amp;_a.link]:pb-px [&amp;_a.link]:font-medium [&amp;_a.link]:text-zinc-950 [&amp;_a.link]:transition-colors [&amp;_a.link]:dark:text-white [&amp;_code]:rounded-[4px] [&amp;_code]:bg-zinc-100 [&amp;_code]:px-1.5 [&amp;_code]:py-0.5 [&amp;_code]:font-mono [&amp;_code]:text-[0.88em] [&amp;_code]:text-zinc-950 [&amp;_code]:dark:bg-zinc-800 [&amp;_code]:dark:text-white [&amp;_h3]:mt-9 [&amp;_h3]:mb-3.5 [&amp;_h3]:font-medium [&amp;_h3]:text-[22px] [&amp;_h3]:text-zinc-950 [&amp;_h3]:leading-tight [&amp;_h3]:tracking-[-0.015em] [&amp;_h3]:dark:text-white [&amp;_p.lede]:mb-7 [&amp;_p.lede]:font-normal [&amp;_p.lede]:text-[19px] [&amp;_p.lede]:text-zinc-950 [&amp;_p.lede]:leading-[1.6] [&amp;_p.lede]:dark:text-white [&amp;_p]:mb-5 [&amp;_p]:text-[17px] [&amp;_p]:text-zinc-800 [&amp;_p]:leading-[1.7] [&amp;_p]:dark:text-zinc-200 [&amp;_strong]:font-semibold [&amp;_strong]:text-zinc-950 [&amp;_strong]:dark:text-white [&amp;_ul]:mb-6 [&amp;_ul]:ml-0 [&amp;_ul]:list-none [&amp;_ul]:p-0 [&amp;_ul_li]:relative [&amp;_ul_li]:mb-2.5 [&amp;_ul_li]:pl-[22px] [&amp;_ul_li]:text-[16px] [&amp;_ul_li]:text-zinc-700 [&amp;_ul_li]:leading-[1.6] [&amp;_ul_li]:before:absolute [&amp;_ul_li]:before:top-[11px] [&amp;_ul_li]:before:left-0.5 [&amp;_ul_li]:before:size-1.5 [&amp;_ul_li]:before:rounded-full [&amp;_ul_li]:before:bg-ignition [&amp;_ul_li]:before:content-[&#x27;&#x27;] [&amp;_ul_li]:dark:text-zinc-300\"><p>The vendor proof that this third category is real: Microsoft Entra Agent ID — documentation first published April 14, 2026 and updated June 24, 2026 — is a shipping identity framework specifically for AI agents, layered on Entra, speaking OAuth 2.0, MCP, and A2A. Its design choices read like a checklist of everything borrowed credentials get wrong: “agent identity blueprints” mint individual agent identities from templates with tracked parent-child relationships, so one policy governs every instance spawned from the same template; third-party agents built on non-Microsoft platforms — Microsoft names AWS Bedrock and n8n — can be brought under the same governance via an auth SDK sidecar or standard workload identity federation. Licensing is its own snapshot-in-time detail (full functionality sits behind Microsoft 365 E7 or an E5 add-on, with standalone Entra tiers below that), but the architectural signal matters more than the packaging: Microsoft decided agents need their own principal type.</p><p>The same conclusion is coming from the standards side. NIST’s zero-trust architecture guidance treats every machine-to-machine call as requiring explicit authorization regardless of network position — no implicit trust for being “inside the VPC” — which is the baseline assumption every mechanism in the next section builds on.</p></div><h2 class=\"m-0 mt-14 mb-5 scroll-mt-[90px] font-normal text-[clamp(26px,3vw,36px)] text-zinc-950 leading-[1.15] tracking-[-0.025em] dark:text-white\" id=\"mechanisms\"><span class=\"mb-3.5 block font-medium font-mono text-[11px] text-ignition uppercase tracking-[0.12em]\">03<!-- --> — <!-- -->Named Mechanisms</span>The mechanism shelf:<!-- --> <em class=\"font-normal font-serif text-ignition-2 italic\">short-lived</em> <!-- -->beats long-lived, everywhere.</h2><div class=\"max-w-[720px] [&amp;_*:where(p,h3,ul)]:text-pretty [&amp;_a.link:hover]:bg-ignition/10 [&amp;_a.link:hover]:text-ignition [&amp;_a.link]:border-ignition [&amp;_a.link]:border-b [&amp;_a.link]:pb-px [&amp;_a.link]:font-medium [&amp;_a.link]:text-zinc-950 [&amp;_a.link]:transition-colors [&amp;_a.link]:dark:text-white [&amp;_code]:rounded-[4px] [&amp;_code]:bg-zinc-100 [&amp;_code]:px-1.5 [&amp;_code]:py-0.5 [&amp;_code]:font-mono [&amp;_code]:text-[0.88em] [&amp;_code]:text-zinc-950 [&amp;_code]:dark:bg-zinc-800 [&amp;_code]:dark:text-white [&amp;_h3]:mt-9 [&amp;_h3]:mb-3.5 [&amp;_h3]:font-medium [&amp;_h3]:text-[22px] [&amp;_h3]:text-zinc-950 [&amp;_h3]:leading-tight [&amp;_h3]:tracking-[-0.015em] [&amp;_h3]:dark:text-white [&amp;_p.lede]:mb-7 [&amp;_p.lede]:font-normal [&amp;_p.lede]:text-[19px] [&amp;_p.lede]:text-zinc-950 [&amp;_p.lede]:leading-[1.6] [&amp;_p.lede]:dark:text-white [&amp;_p]:mb-5 [&amp;_p]:text-[17px] [&amp;_p]:text-zinc-800 [&amp;_p]:leading-[1.7] [&amp;_p]:dark:text-zinc-200 [&amp;_strong]:font-semibold [&amp;_strong]:text-zinc-950 [&amp;_strong]:dark:text-white [&amp;_ul]:mb-6 [&amp;_ul]:ml-0 [&amp;_ul]:list-none [&amp;_ul]:p-0 [&amp;_ul_li]:relative [&amp;_ul_li]:mb-2.5 [&amp;_ul_li]:pl-[22px] [&amp;_ul_li]:text-[16px] [&amp;_ul_li]:text-zinc-700 [&amp;_ul_li]:leading-[1.6] [&amp;_ul_li]:before:absolute [&amp;_ul_li]:before:top-[11px] [&amp;_ul_li]:before:left-0.5 [&amp;_ul_li]:before:size-1.5 [&amp;_ul_li]:before:rounded-full [&amp;_ul_li]:before:bg-ignition [&amp;_ul_li]:before:content-[&#x27;&#x27;] [&amp;_ul_li]:dark:text-zinc-300\"><p>None of this requires inventing anything. Four families of mechanism, all shipping today, already issue exactly the kind of credential an agent should hold: short-lived, workload-scoped, audit-attributable, and revocable on their own.</p><h3>SPIFFE / SPIRE — identity from attestation, not secrets</h3><p>SPIFFE (Secure Production Identity Framework For Everyone) issues short-lived cryptographic identity documents called SVIDs — X.509 certificates or JWTs — to workloads. The decisive property is that issuance is tied to <strong>workload attestation</strong>: SPIRE verifies what the workload actually is at runtime, rather than trusting whoever holds a pre-provisioned secret. SVIDs rotate automatically, and trust domains can federate across organizations. For agents, that means the identity follows the running process, not a string in an env file.</p><h3>Workload identity federation — the end of the key file</h3><p>Google Cloud’s workload identity federation lets an external workload — on-prem, another cloud, a CI/CD runner, an AI agent — present a credential from its own identity provider, which Google’s Security Token Service validates and exchanges for a short-lived Google Cloud token. No long-lived service-account key file is ever distributed. It federates against AWS, Azure, Active Directory, GitHub and GitLab OIDC, Kubernetes, Okta, and any generic OIDC or SAML 2.0 provider, and supports both direct IAM grants to the federated identity and service-account impersonation.</p></div><blockquote class=\"my-7 border-ignition border-l-[3px] bg-zinc-50 px-6 py-5 font-serif text-[19px] text-zinc-950 italic leading-normal tracking-[-0.005em] dark:bg-zinc-900 dark:text-white\">&quot;Service account keys are powerful credentials, and can present a security risk if they are not managed correctly.&quot;<cite class=\"mt-3 block font-medium font-mono text-[11px] text-zinc-500 uppercase not-italic tracking-widest\">— Google Cloud IAM documentation, workload identity federation</cite></blockquote><div class=\"max-w-[720px] [&amp;_*:where(p,h3,ul)]:text-pretty [&amp;_a.link:hover]:bg-ignition/10 [&amp;_a.link:hover]:text-ignition [&amp;_a.link]:border-ignition [&amp;_a.link]:border-b [&amp;_a.link]:pb-px [&amp;_a.link]:font-medium [&amp;_a.link]:text-zinc-950 [&amp;_a.link]:transition-colors [&amp;_a.link]:dark:text-white [&amp;_code]:rounded-[4px] [&amp;_code]:bg-zinc-100 [&amp;_code]:px-1.5 [&amp;_code]:py-0.5 [&amp;_code]:font-mono [&amp;_code]:text-[0.88em] [&amp;_code]:text-zinc-950 [&amp;_code]:dark:bg-zinc-800 [&amp;_code]:dark:text-white [&amp;_h3]:mt-9 [&amp;_h3]:mb-3.5 [&amp;_h3]:font-medium [&amp;_h3]:text-[22px] [&amp;_h3]:text-zinc-950 [&amp;_h3]:leading-tight [&amp;_h3]:tracking-[-0.015em] [&amp;_h3]:dark:text-white [&amp;_p.lede]:mb-7 [&amp;_p.lede]:font-normal [&amp;_p.lede]:text-[19px] [&amp;_p.lede]:text-zinc-950 [&amp;_p.lede]:leading-[1.6] [&amp;_p.lede]:dark:text-white [&amp;_p]:mb-5 [&amp;_p]:text-[17px] [&amp;_p]:text-zinc-800 [&amp;_p]:leading-[1.7] [&amp;_p]:dark:text-zinc-200 [&amp;_strong]:font-semibold [&amp;_strong]:text-zinc-950 [&amp;_strong]:dark:text-white [&amp;_ul]:mb-6 [&amp;_ul]:ml-0 [&amp;_ul]:list-none [&amp;_ul]:p-0 [&amp;_ul_li]:relative [&amp;_ul_li]:mb-2.5 [&amp;_ul_li]:pl-[22px] [&amp;_ul_li]:text-[16px] [&amp;_ul_li]:text-zinc-700 [&amp;_ul_li]:leading-[1.6] [&amp;_ul_li]:before:absolute [&amp;_ul_li]:before:top-[11px] [&amp;_ul_li]:before:left-0.5 [&amp;_ul_li]:before:size-1.5 [&amp;_ul_li]:before:rounded-full [&amp;_ul_li]:before:bg-ignition [&amp;_ul_li]:before:content-[&#x27;&#x27;] [&amp;_ul_li]:dark:text-zinc-300\"><h3>AWS IAM Roles Anywhere — certificates in, sessions out</h3><p>AWS’s version replaces the long-lived Access Key ID and Secret Access Key pair with an X.509 certificate presented by the workload, exchanged for temporary STS credentials valid from 15 minutes up to 12 hours. The supporting Credential Helper is under active development inside this year’s window — v1.8.0 (March 5, 2026) added ML-DSA post-quantum signature support, and v1.8.4 (June 9, 2026) patched security vulnerabilities — a useful signal that cert-based machine credentials are a maintained, first-class path, not a legacy corner.</p><h3>GitHub App installation tokens &amp; fine-grained PATs</h3><p>GitHub offers the most concrete everyday example. A GitHub App installation access token expires one hour after issuance, can never exceed what the app itself was granted, and can be scoped down further at request time — to a subset of repositories (up to 500) and a subset of permissions. GitHub has also introduced a stateless installation token format that replaces the old opaque 40-character string with a self-describing, verifiable credential. Fine-grained personal access tokens complete the picture for human-adjacent automation: 30-day default expiry, extendable to 366 days (or “never,” where org policy permits), scoped to a single user or org and to named repositories — unlike classic PATs, which granted blanket access to everything their owner could reach.</p><p>Two adjacent playbooks pair with this shelf. Rotation cadence and storage for whatever secrets remain is covered in our<!-- --> <a class=\"link\" href=\"/blog/secrets-management-api-key-rotation-2026-engineering-reference\">secrets management and API key rotation reference</a>, and for a concrete consumer-facing version of “hand the agent a scoped credential instead of your login,” see how<!-- --> <a class=\"link\" href=\"/blog/1password-claude-secure-credential-agentic-browsing-2026\">1Password brokers credentials for agentic browsing</a>.</p></div><div class=\"my-8 flex flex-col gap-4\"><div class=\"relative flex flex-col gap-5 rounded-2xl border border-zinc-200 bg-white p-6 md:flex-row md:gap-8 md:p-7 dark:border-zinc-800 dark:bg-zinc-900\"><div class=\"flex items-start gap-4 md:w-[220px] md:shrink-0 md:flex-col md:gap-3\"><div class=\"flex flex-1 flex-col gap-1.5\"><div class=\"font-mono text-[10.5px] text-zinc-500 uppercase tracking-[0.12em]\">GitHub App token</div><h5 class=\"m-0 font-medium text-[18px] text-zinc-950 leading-[1.3] tracking-[-0.01em] dark:text-white\">Installation token lifetime</h5></div><div class=\"flex items-baseline gap-1 font-light text-[48px] text-zinc-900 leading-none tracking-[-0.03em] md:order-first dark:text-zinc-100\">1<span class=\"font-mono font-normal text-[14px] text-ignition\">hr</span></div></div><div class=\"hidden w-px self-stretch bg-zinc-200/60 md:block dark:bg-zinc-800/60\"></div><div class=\"flex flex-1 flex-col justify-between gap-4\"><p class=\"m-0 text-[13.5px] text-zinc-600 leading-[1.6] dark:text-zinc-400\">Expires one hour after issuance, capped at the app’s own grants, and downscopable at request time to specific repositories (up to 500) and permissions.</p><div class=\"w-full self-start border-zinc-100 border-t pt-2 text-left md:self-end md:text-right dark:border-zinc-800\"><span class=\"font-mono text-[10px] text-ignition uppercase tracking-widest\">Stateless verifiable format</span></div></div></div><div class=\"relative flex flex-col gap-5 rounded-2xl border border-zinc-200 bg-white p-6 md:flex-row md:gap-8 md:p-7 dark:border-zinc-800 dark:bg-zinc-900\"><div class=\"flex items-start gap-4 md:w-[220px] md:shrink-0 md:flex-col md:gap-3\"><div class=\"flex flex-1 flex-col gap-1.5\"><div class=\"font-mono text-[10.5px] text-zinc-500 uppercase tracking-[0.12em]\">AWS IAM Roles Anywhere</div><h5 class=\"m-0 font-medium text-[18px] text-zinc-950 leading-[1.3] tracking-[-0.01em] dark:text-white\">Minimum session lifetime</h5></div><div class=\"flex items-baseline gap-1 font-light text-[48px] text-zinc-900 leading-none tracking-[-0.03em] md:order-first dark:text-zinc-100\">15<span class=\"font-mono font-normal text-[14px] text-ignition\">min</span></div></div><div class=\"hidden w-px self-stretch bg-zinc-200/60 md:block dark:bg-zinc-800/60\"></div><div class=\"flex flex-1 flex-col justify-between gap-4\"><p class=\"m-0 text-[13.5px] text-zinc-600 leading-[1.6] dark:text-zinc-400\">An X.509 certificate is exchanged for temporary STS credentials valid from 15 minutes to 12 hours. No long-lived access-key pair is ever distributed.</p><div class=\"w-full self-start border-zinc-100 border-t pt-2 text-left md:self-end md:text-right dark:border-zinc-800\"><span class=\"font-mono text-[10px] text-ignition uppercase tracking-widest\">Helper v1.8.4 · Jun 2026</span></div></div></div><div class=\"relative flex flex-col gap-5 rounded-2xl border border-zinc-200 bg-white p-6 md:flex-row md:gap-8 md:p-7 dark:border-zinc-800 dark:bg-zinc-900\"><div class=\"flex items-start gap-4 md:w-[220px] md:shrink-0 md:flex-col md:gap-3\"><div class=\"flex flex-1 flex-col gap-1.5\"><div class=\"font-mono text-[10.5px] text-zinc-500 uppercase tracking-[0.12em]\">Fine-grained PAT</div><h5 class=\"m-0 font-medium text-[18px] text-zinc-950 leading-[1.3] tracking-[-0.01em] dark:text-white\">Default expiration</h5></div><div class=\"flex items-baseline gap-1 font-light text-[48px] text-zinc-900 leading-none tracking-[-0.03em] md:order-first dark:text-zinc-100\">30<span class=\"font-mono font-normal text-[14px] text-ignition\">d</span></div></div><div class=\"hidden w-px self-stretch bg-zinc-200/60 md:block dark:bg-zinc-800/60\"></div><div class=\"flex flex-1 flex-col justify-between gap-4\"><p class=\"m-0 text-[13.5px] text-zinc-600 leading-[1.6] dark:text-zinc-400\">Scoped to one user or org and to named repositories and permissions; extendable to 366 days, or ‘never’ where org policy allows — versus classic PATs’ blanket reach.</p><div class=\"w-full self-start border-zinc-100 border-t pt-2 text-left md:self-end md:text-right dark:border-zinc-800\"><span class=\"font-mono text-[10px] text-ignition uppercase tracking-widest\">Classic PATs: blanket access</span></div></div></div></div><h2 class=\"m-0 mt-14 mb-5 scroll-mt-[90px] font-normal text-[clamp(26px,3vw,36px)] text-zinc-950 leading-[1.15] tracking-[-0.025em] dark:text-white\" id=\"delegation\"><span class=\"mb-3.5 block font-medium font-mono text-[11px] text-ignition uppercase tracking-[0.12em]\">04<!-- --> — <!-- -->On-Behalf-Of</span>Delegation is not<!-- --> <em class=\"font-normal font-serif text-ignition-2 italic\">impersonation</em>.</h2><div class=\"max-w-[720px] [&amp;_*:where(p,h3,ul)]:text-pretty [&amp;_a.link:hover]:bg-ignition/10 [&amp;_a.link:hover]:text-ignition [&amp;_a.link]:border-ignition [&amp;_a.link]:border-b [&amp;_a.link]:pb-px [&amp;_a.link]:font-medium [&amp;_a.link]:text-zinc-950 [&amp;_a.link]:transition-colors [&amp;_a.link]:dark:text-white [&amp;_code]:rounded-[4px] [&amp;_code]:bg-zinc-100 [&amp;_code]:px-1.5 [&amp;_code]:py-0.5 [&amp;_code]:font-mono [&amp;_code]:text-[0.88em] [&amp;_code]:text-zinc-950 [&amp;_code]:dark:bg-zinc-800 [&amp;_code]:dark:text-white [&amp;_h3]:mt-9 [&amp;_h3]:mb-3.5 [&amp;_h3]:font-medium [&amp;_h3]:text-[22px] [&amp;_h3]:text-zinc-950 [&amp;_h3]:leading-tight [&amp;_h3]:tracking-[-0.015em] [&amp;_h3]:dark:text-white [&amp;_p.lede]:mb-7 [&amp;_p.lede]:font-normal [&amp;_p.lede]:text-[19px] [&amp;_p.lede]:text-zinc-950 [&amp;_p.lede]:leading-[1.6] [&amp;_p.lede]:dark:text-white [&amp;_p]:mb-5 [&amp;_p]:text-[17px] [&amp;_p]:text-zinc-800 [&amp;_p]:leading-[1.7] [&amp;_p]:dark:text-zinc-200 [&amp;_strong]:font-semibold [&amp;_strong]:text-zinc-950 [&amp;_strong]:dark:text-white [&amp;_ul]:mb-6 [&amp;_ul]:ml-0 [&amp;_ul]:list-none [&amp;_ul]:p-0 [&amp;_ul_li]:relative [&amp;_ul_li]:mb-2.5 [&amp;_ul_li]:pl-[22px] [&amp;_ul_li]:text-[16px] [&amp;_ul_li]:text-zinc-700 [&amp;_ul_li]:leading-[1.6] [&amp;_ul_li]:before:absolute [&amp;_ul_li]:before:top-[11px] [&amp;_ul_li]:before:left-0.5 [&amp;_ul_li]:before:size-1.5 [&amp;_ul_li]:before:rounded-full [&amp;_ul_li]:before:bg-ignition [&amp;_ul_li]:before:content-[&#x27;&#x27;] [&amp;_ul_li]:dark:text-zinc-300\"><p>The hardest agent-identity case is the most common one: an agent acting on behalf of a specific human. Get this wrong and you are back to the borrowed-credential trap with extra steps. The formal machinery for getting it right has existed since January 2020: RFC 8693, OAuth 2.0 Token Exchange — a Standards Track RFC defining an HTTP/JSON protocol for trading one security token for another.</p><p>RFC 8693 draws exactly the distinction this post is about.<!-- --> <strong>Impersonation</strong> means the new token’s holder becomes indistinguishable from the original subject, taking on all of its rights — the protocol-level formalization of the trap in Section 01.<!-- --> <strong>Delegation</strong> means the acting party keeps its own separate identity while exercising rights granted by the subject — it acts as an agent of the subject rather than becoming it. The request format encodes the difference structurally: a required<!-- --> <code>subject_token</code> identifies who the request is on behalf of, and an optional <code>actor_token</code> identifies who is actually making the call. Both identities survive into the minted token, which is what makes the downstream audit trail reconstructible.</p><p>The third piece is the <code>audience</code> parameter: the client names the specific downstream service the token is being requested for, and the authorization server mints an<!-- --> <strong>audience-restricted</strong> token valid there and nowhere else. An agent that needs to read a calendar gets a token the CRM will reject. Notably, RFC 8693 leaves the token formats themselves out of scope — it is a protocol shell, which is why Google, Microsoft, GitHub, and HashiCorp each implement the pattern with their own token types. The pattern transfers; the strings do not.</p><p>On the broader OAuth front, precision matters: OAuth 2.1 is still a draft, not a ratified RFC. It consolidates OAuth 2.0 with PKCE and native-app guidance, removes the implicit grant entirely, eliminates the resource-owner password grant, and makes PKCE mandatory for every authorization-code client. Directionally it is where agent-facing OAuth deployments should already be — but cite it as a draft, because that is what it is.</p><p>The Cloud Security Alliance’s agentic IAM paper (August 2025) pushes one step further for multi-agent systems: Decentralized Identifiers plus Verifiable Credentials as the identity anchor, with just-in-time credentials valid for narrow windows — its worked example is a 15-minute credential scoped to a single action on specific resources. Its rationale is the same gap RFC 8693 exists to close: traditional OAuth and SAML assumptions fall short because they lack secure, traceable delegation where agents act on behalf of users while keeping accountability chains intact — a gap that off-the-shelf OAuth deployments frequently leave unwired for agent chains even though the spec support exists.</p></div><div class=\"relative my-7 overflow-hidden rounded-xl bg-[#0a0a0b] px-7 py-5.5 text-white\"><span aria-hidden=\"true\" class=\"absolute top-0 bottom-0 left-0 w-[3px] bg-ignition\"></span><span class=\"mb-2 block font-mono text-[10.5px] text-ignition-2 uppercase tracking-[0.14em]\">Where RBAC fits</span><div class=\"text-[15.5px] text-white leading-[1.6]\">These are complementary layers, not competing ones. This playbook covers how an agent identity is<!-- --> <em class=\"font-serif text-white italic\">issued, scoped, rotated, and revoked</em>. Our<!-- --> <a class=\"link\" href=\"/blog/agentic-ai-rbac-design-patterns-implementation-2026\">agentic RBAC design patterns post</a> <!-- -->covers what that identity may <strong>do</strong> once it exists — roles, permission boundaries, and approval gates. You need both: perfect RBAC on a borrowed credential still mis-attributes every action, and a perfectly-issued identity with sloppy permissions is just a well-labeled skeleton key.</div></div><h2 class=\"m-0 mt-14 mb-5 scroll-mt-[90px] font-normal text-[clamp(26px,3vw,36px)] text-zinc-950 leading-[1.15] tracking-[-0.025em] dark:text-white\" id=\"matrix\"><span class=\"mb-3.5 block font-medium font-mono text-[11px] text-ignition uppercase tracking-[0.12em]\">05<!-- --> — <!-- -->Decision Matrix</span>Five access patterns,<!-- --> <em class=\"font-normal font-serif text-ignition-2 italic\">one</em> <!-- -->table.</h2><div class=\"max-w-[720px] [&amp;_*:where(p,h3,ul)]:text-pretty [&amp;_a.link:hover]:bg-ignition/10 [&amp;_a.link:hover]:text-ignition [&amp;_a.link]:border-ignition [&amp;_a.link]:border-b [&amp;_a.link]:pb-px [&amp;_a.link]:font-medium [&amp;_a.link]:text-zinc-950 [&amp;_a.link]:transition-colors [&amp;_a.link]:dark:text-white [&amp;_code]:rounded-[4px] [&amp;_code]:bg-zinc-100 [&amp;_code]:px-1.5 [&amp;_code]:py-0.5 [&amp;_code]:font-mono [&amp;_code]:text-[0.88em] [&amp;_code]:text-zinc-950 [&amp;_code]:dark:bg-zinc-800 [&amp;_code]:dark:text-white [&amp;_h3]:mt-9 [&amp;_h3]:mb-3.5 [&amp;_h3]:font-medium [&amp;_h3]:text-[22px] [&amp;_h3]:text-zinc-950 [&amp;_h3]:leading-tight [&amp;_h3]:tracking-[-0.015em] [&amp;_h3]:dark:text-white [&amp;_p.lede]:mb-7 [&amp;_p.lede]:font-normal [&amp;_p.lede]:text-[19px] [&amp;_p.lede]:text-zinc-950 [&amp;_p.lede]:leading-[1.6] [&amp;_p.lede]:dark:text-white [&amp;_p]:mb-5 [&amp;_p]:text-[17px] [&amp;_p]:text-zinc-800 [&amp;_p]:leading-[1.7] [&amp;_p]:dark:text-zinc-200 [&amp;_strong]:font-semibold [&amp;_strong]:text-zinc-950 [&amp;_strong]:dark:text-white [&amp;_ul]:mb-6 [&amp;_ul]:ml-0 [&amp;_ul]:list-none [&amp;_ul]:p-0 [&amp;_ul_li]:relative [&amp;_ul_li]:mb-2.5 [&amp;_ul_li]:pl-[22px] [&amp;_ul_li]:text-[16px] [&amp;_ul_li]:text-zinc-700 [&amp;_ul_li]:leading-[1.6] [&amp;_ul_li]:before:absolute [&amp;_ul_li]:before:top-[11px] [&amp;_ul_li]:before:left-0.5 [&amp;_ul_li]:before:size-1.5 [&amp;_ul_li]:before:rounded-full [&amp;_ul_li]:before:bg-ignition [&amp;_ul_li]:before:content-[&#x27;&#x27;] [&amp;_ul_li]:dark:text-zinc-300\"><p>Vendor documentation explains each mechanism in isolation; nobody lines them up against the access patterns real agent deployments actually have. The matrix below is our mapping: for each of the five ways an agent typically obtains access, the identity mechanism that fits, the credential lifetime you should expect, the revocation path when something goes wrong, and the audit granularity you get for incident reconstruction.</p></div><div class=\"not-prose my-8 overflow-x-auto rounded-2xl border border-zinc-200 dark:border-zinc-800\"><table class=\"w-full border-collapse text-left text-[14px]\"><caption class=\"sr-only\">Agent identity decision matrix: five agent access patterns mapped to the identity mechanism that fits, typical credential lifetime, revocation path, and audit granularity. Compiled by Digital Applied from GitHub, Google Cloud, AWS, Microsoft Entra, SPIFFE, IETF RFC 8693, and Cloud Security Alliance documentation, retrieved July 2026.</caption><thead><tr class=\"bg-zinc-950 text-white dark:bg-zinc-900\"><th class=\"px-4 py-3 font-medium text-[12px] uppercase tracking-[0.06em]\" scope=\"col\">Access pattern</th><th class=\"px-4 py-3 font-medium text-[12px] uppercase tracking-[0.06em]\" scope=\"col\">Identity mechanism</th><th class=\"px-4 py-3 font-medium text-[12px] uppercase tracking-[0.06em]\" scope=\"col\">Typical credential lifetime</th><th class=\"px-4 py-3 font-medium text-[12px] uppercase tracking-[0.06em]\" scope=\"col\">Revocation path</th><th class=\"px-4 py-3 font-medium text-[12px] uppercase tracking-[0.06em]\" scope=\"col\">Audit granularity</th></tr></thead><tbody class=\"divide-y divide-zinc-200 dark:divide-zinc-800\"><tr class=\"align-top text-zinc-700 dark:text-zinc-300\"><th class=\"px-4 py-3 font-medium text-zinc-950 dark:text-white\" scope=\"row\">CI/CD pipeline agent</th><td class=\"px-4 py-3\">Workload identity federation over OIDC, or a GitHub App installation token</td><td class=\"px-4 py-3 font-mono text-[13px]\">~1 hr (installation token); STS-issued short-lived</td><td class=\"px-4 py-3\">Disable the app installation or the federation pool — no shared secret to hunt down and rotate</td><td class=\"px-4 py-3\">Per-run correlation: pipeline run ID tied to each token issuance</td></tr><tr class=\"align-top text-zinc-700 dark:text-zinc-300\"><th class=\"px-4 py-3 font-medium text-zinc-950 dark:text-white\" scope=\"row\">Human-delegated agent</th><td class=\"px-4 py-3\">RFC 8693 token exchange: subject token + actor token, audience-restricted</td><td class=\"px-4 py-3 font-mono text-[13px]\">Session-bound; expires with the delegation</td><td class=\"px-4 py-3\">Invalidate the user’s subject token or the agent’s actor token independently — neither locks out the other</td><td class=\"px-4 py-3\">Actor-plus-subject pair recorded on every downstream call</td></tr><tr class=\"align-top text-zinc-700 dark:text-zinc-300\"><th class=\"px-4 py-3 font-medium text-zinc-950 dark:text-white\" scope=\"row\">Autonomous scheduled agent</th><td class=\"px-4 py-3\">Its own workload identity: SPIFFE/SPIRE SVID or a cloud-managed identity, issued on attestation</td><td class=\"px-4 py-3 font-mono text-[13px]\">Minutes to hours; SVIDs rotate automatically</td><td class=\"px-4 py-3\">Revoke the SVID or deny the attestation — no human account is touched</td><td class=\"px-4 py-3\">Per-certificate serial / per-invocation identity in every log line</td></tr><tr class=\"align-top text-zinc-700 dark:text-zinc-300\"><th class=\"px-4 py-3 font-medium text-zinc-950 dark:text-white\" scope=\"row\">Sub-agent spawned by a parent</th><td class=\"px-4 py-3\">Child identity with a verifiable link to the parent (CSA delegation chains; Entra agent identity blueprints)</td><td class=\"px-4 py-3 font-mono text-[13px]\">Per-task; CSA’s worked example is a 15-min window</td><td class=\"px-4 py-3\">Kill the child credential without touching the parent — or revoke the parent to invalidate the chain</td><td class=\"px-4 py-3\">Per-child ID with parent lineage — multi-agent incidents stay reconstructible</td></tr><tr class=\"align-top text-zinc-700 dark:text-zinc-300\"><th class=\"px-4 py-3 font-medium text-zinc-950 dark:text-white\" scope=\"row\">Third-party / webhook-triggered agent</th><td class=\"px-4 py-3\">Signed webhook payload verified at ingress, then exchanged for a short-lived, downscoped token</td><td class=\"px-4 py-3 font-mono text-[13px]\">Per-invocation</td><td class=\"px-4 py-3\">Rotate the webhook secret; deny-list the compromised signature</td><td class=\"px-4 py-3\">Per-payload signature hash plus the issued-token record</td></tr></tbody></table></div><div class=\"max-w-[720px] [&amp;_*:where(p,h3,ul)]:text-pretty [&amp;_a.link:hover]:bg-ignition/10 [&amp;_a.link:hover]:text-ignition [&amp;_a.link]:border-ignition [&amp;_a.link]:border-b [&amp;_a.link]:pb-px [&amp;_a.link]:font-medium [&amp;_a.link]:text-zinc-950 [&amp;_a.link]:transition-colors [&amp;_a.link]:dark:text-white [&amp;_code]:rounded-[4px] [&amp;_code]:bg-zinc-100 [&amp;_code]:px-1.5 [&amp;_code]:py-0.5 [&amp;_code]:font-mono [&amp;_code]:text-[0.88em] [&amp;_code]:text-zinc-950 [&amp;_code]:dark:bg-zinc-800 [&amp;_code]:dark:text-white [&amp;_h3]:mt-9 [&amp;_h3]:mb-3.5 [&amp;_h3]:font-medium [&amp;_h3]:text-[22px] [&amp;_h3]:text-zinc-950 [&amp;_h3]:leading-tight [&amp;_h3]:tracking-[-0.015em] [&amp;_h3]:dark:text-white [&amp;_p.lede]:mb-7 [&amp;_p.lede]:font-normal [&amp;_p.lede]:text-[19px] [&amp;_p.lede]:text-zinc-950 [&amp;_p.lede]:leading-[1.6] [&amp;_p.lede]:dark:text-white [&amp;_p]:mb-5 [&amp;_p]:text-[17px] [&amp;_p]:text-zinc-800 [&amp;_p]:leading-[1.7] [&amp;_p]:dark:text-zinc-200 [&amp;_strong]:font-semibold [&amp;_strong]:text-zinc-950 [&amp;_strong]:dark:text-white [&amp;_ul]:mb-6 [&amp;_ul]:ml-0 [&amp;_ul]:list-none [&amp;_ul]:p-0 [&amp;_ul_li]:relative [&amp;_ul_li]:mb-2.5 [&amp;_ul_li]:pl-[22px] [&amp;_ul_li]:text-[16px] [&amp;_ul_li]:text-zinc-700 [&amp;_ul_li]:leading-[1.6] [&amp;_ul_li]:before:absolute [&amp;_ul_li]:before:top-[11px] [&amp;_ul_li]:before:left-0.5 [&amp;_ul_li]:before:size-1.5 [&amp;_ul_li]:before:rounded-full [&amp;_ul_li]:before:bg-ignition [&amp;_ul_li]:before:content-[&#x27;&#x27;] [&amp;_ul_li]:dark:text-zinc-300\"><p>Two readings of this table are worth making explicit. First, the lifetime column trends toward zero as autonomy rises: the less a human is in the loop at trigger time, the shorter the credential should live, because there is nobody watching to notice misuse in real time. Second, every revocation path in the table shares one property — it never requires locking a human out. That is the single test that tells you whether an agent has its own identity or is wearing someone else’s.</p></div><h2 class=\"m-0 mt-14 mb-5 scroll-mt-[90px] font-normal text-[clamp(26px,3vw,36px)] text-zinc-950 leading-[1.15] tracking-[-0.025em] dark:text-white\" id=\"revocation\"><span class=\"mb-3.5 block font-medium font-mono text-[11px] text-ignition uppercase tracking-[0.12em]\">06<!-- --> — <!-- -->Kill Switches</span>Revocation in<!-- --> <em class=\"font-normal font-serif text-ignition-2 italic\">minutes</em>, audit by the run.</h2><div class=\"max-w-[720px] [&amp;_*:where(p,h3,ul)]:text-pretty [&amp;_a.link:hover]:bg-ignition/10 [&amp;_a.link:hover]:text-ignition [&amp;_a.link]:border-ignition [&amp;_a.link]:border-b [&amp;_a.link]:pb-px [&amp;_a.link]:font-medium [&amp;_a.link]:text-zinc-950 [&amp;_a.link]:transition-colors [&amp;_a.link]:dark:text-white [&amp;_code]:rounded-[4px] [&amp;_code]:bg-zinc-100 [&amp;_code]:px-1.5 [&amp;_code]:py-0.5 [&amp;_code]:font-mono [&amp;_code]:text-[0.88em] [&amp;_code]:text-zinc-950 [&amp;_code]:dark:bg-zinc-800 [&amp;_code]:dark:text-white [&amp;_h3]:mt-9 [&amp;_h3]:mb-3.5 [&amp;_h3]:font-medium [&amp;_h3]:text-[22px] [&amp;_h3]:text-zinc-950 [&amp;_h3]:leading-tight [&amp;_h3]:tracking-[-0.015em] [&amp;_h3]:dark:text-white [&amp;_p.lede]:mb-7 [&amp;_p.lede]:font-normal [&amp;_p.lede]:text-[19px] [&amp;_p.lede]:text-zinc-950 [&amp;_p.lede]:leading-[1.6] [&amp;_p.lede]:dark:text-white [&amp;_p]:mb-5 [&amp;_p]:text-[17px] [&amp;_p]:text-zinc-800 [&amp;_p]:leading-[1.7] [&amp;_p]:dark:text-zinc-200 [&amp;_strong]:font-semibold [&amp;_strong]:text-zinc-950 [&amp;_strong]:dark:text-white [&amp;_ul]:mb-6 [&amp;_ul]:ml-0 [&amp;_ul]:list-none [&amp;_ul]:p-0 [&amp;_ul_li]:relative [&amp;_ul_li]:mb-2.5 [&amp;_ul_li]:pl-[22px] [&amp;_ul_li]:text-[16px] [&amp;_ul_li]:text-zinc-700 [&amp;_ul_li]:leading-[1.6] [&amp;_ul_li]:before:absolute [&amp;_ul_li]:before:top-[11px] [&amp;_ul_li]:before:left-0.5 [&amp;_ul_li]:before:size-1.5 [&amp;_ul_li]:before:rounded-full [&amp;_ul_li]:before:bg-ignition [&amp;_ul_li]:before:content-[&#x27;&#x27;] [&amp;_ul_li]:dark:text-zinc-300\"><p>Issuing the right credential is half the job. The other half is being able to destroy it fast and reconstruct what it did. The CSA’s May 2026 whitepaper sets a concrete bar for the first part: time-to-revoke measured in minutes, achieved through pre-authorized, automated revocation workflows triggered by exposure signals — not a ticket in a queue waiting for someone to manually deprovision an account. Its broader governance model has three parts: formal identity lifecycle management with assigned ownership for every non-human identity, zero standing privilege (just-in-time, task-scoped access with automatic expiry), and cryptographic workload attestation — naming SPIFFE/SPIRE specifically as the replacement for static API keys.</p><p>On the audit side, the bar is attribution to a specific agent<!-- --> <em>run</em>. A log line saying that the automation user did a few thousand things last Tuesday is not an audit trail; it is a confession that you cannot reconstruct the incident. The mechanisms in this playbook each carry their own answer — correlation IDs on CI runs, actor-subject pairs on delegated calls, certificate serials on SVIDs, lineage links on sub-agents, signature hashes on webhook invocations — and the vendor platforms are converging on the same requirement: Microsoft’s Entra Agent ID documentation states: “All agent authentication and activity is logged for compliance and audit.” It ships a dedicated agent sign-in and audit log surface, separate from human sign-in logs. What to actually record, and how to structure it so it survives an incident review, is the subject of our<!-- --> <a class=\"link\" href=\"/blog/agent-audit-trail-design-7-best-practices-2026\">agent audit trail design guide</a>.</p></div><div class=\"relative my-7 overflow-hidden rounded-xl bg-[#0a0a0b] px-7 py-5.5 text-white\"><span aria-hidden=\"true\" class=\"absolute top-0 bottom-0 left-0 w-[3px] bg-ignition\"></span><span class=\"mb-2 block font-mono text-[10.5px] text-ignition-2 uppercase tracking-[0.14em]\">CSA on multi-agent accountability</span><div class=\"text-[15.5px] text-white leading-[1.6]\">The Cloud Security Alliance’s agentic IAM guidance is blunt on the two rules that keep agent fleets governable: “Grant agents only the minimum access required for their specific task.” And for the multi-agent case: “Sub-agents spawned by a parent agent are separate instances, each with a unique ID, but with a verifiable link back to the parent.” Unique identity per instance,<!-- --> <em class=\"font-serif text-white italic\">cryptographic lineage</em> <!-- -->across the chain. That combination is what turns a swarm incident from an anonymous blob into a reconstructible sequence.</div></div><h2 class=\"m-0 mt-14 mb-5 scroll-mt-[90px] font-normal text-[clamp(26px,3vw,36px)] text-zinc-950 leading-[1.15] tracking-[-0.025em] dark:text-white\" id=\"rollout\"><span class=\"mb-3.5 block font-medium font-mono text-[11px] text-ignition uppercase tracking-[0.12em]\">07<!-- --> — <!-- -->Implementation</span>A pragmatic rollout<!-- --> <em class=\"font-normal font-serif text-ignition-2 italic\">order</em>.</h2><div class=\"max-w-[720px] [&amp;_*:where(p,h3,ul)]:text-pretty [&amp;_a.link:hover]:bg-ignition/10 [&amp;_a.link:hover]:text-ignition [&amp;_a.link]:border-ignition [&amp;_a.link]:border-b [&amp;_a.link]:pb-px [&amp;_a.link]:font-medium [&amp;_a.link]:text-zinc-950 [&amp;_a.link]:transition-colors [&amp;_a.link]:dark:text-white [&amp;_code]:rounded-[4px] [&amp;_code]:bg-zinc-100 [&amp;_code]:px-1.5 [&amp;_code]:py-0.5 [&amp;_code]:font-mono [&amp;_code]:text-[0.88em] [&amp;_code]:text-zinc-950 [&amp;_code]:dark:bg-zinc-800 [&amp;_code]:dark:text-white [&amp;_h3]:mt-9 [&amp;_h3]:mb-3.5 [&amp;_h3]:font-medium [&amp;_h3]:text-[22px] [&amp;_h3]:text-zinc-950 [&amp;_h3]:leading-tight [&amp;_h3]:tracking-[-0.015em] [&amp;_h3]:dark:text-white [&amp;_p.lede]:mb-7 [&amp;_p.lede]:font-normal [&amp;_p.lede]:text-[19px] [&amp;_p.lede]:text-zinc-950 [&amp;_p.lede]:leading-[1.6] [&amp;_p.lede]:dark:text-white [&amp;_p]:mb-5 [&amp;_p]:text-[17px] [&amp;_p]:text-zinc-800 [&amp;_p]:leading-[1.7] [&amp;_p]:dark:text-zinc-200 [&amp;_strong]:font-semibold [&amp;_strong]:text-zinc-950 [&amp;_strong]:dark:text-white [&amp;_ul]:mb-6 [&amp;_ul]:ml-0 [&amp;_ul]:list-none [&amp;_ul]:p-0 [&amp;_ul_li]:relative [&amp;_ul_li]:mb-2.5 [&amp;_ul_li]:pl-[22px] [&amp;_ul_li]:text-[16px] [&amp;_ul_li]:text-zinc-700 [&amp;_ul_li]:leading-[1.6] [&amp;_ul_li]:before:absolute [&amp;_ul_li]:before:top-[11px] [&amp;_ul_li]:before:left-0.5 [&amp;_ul_li]:before:size-1.5 [&amp;_ul_li]:before:rounded-full [&amp;_ul_li]:before:bg-ignition [&amp;_ul_li]:before:content-[&#x27;&#x27;] [&amp;_ul_li]:dark:text-zinc-300\"><p>You do not need SPIFFE in production by Friday. The failure mode to avoid is the opposite one: treating agent identity as a someday project while agents multiply on borrowed keys today. The sequence below is the order we use in client engagements, cheapest and highest-leverage first.</p></div><div class=\"my-8 flex flex-col gap-4\"><div class=\"relative flex flex-col gap-5 overflow-hidden rounded-2xl p-6 md:flex-row md:gap-8 md:p-7 border border-zinc-200 bg-white dark:border-zinc-800 dark:bg-zinc-900\"><div class=\"flex flex-col gap-3 md:w-[220px] md:shrink-0\"><div class=\"flex items-center gap-2 font-mono text-[10.5px] text-ignition uppercase tracking-[0.14em]\"><span class=\"size-1.5 rounded-full bg-current shadow-[0_0_6px_currentColor]\"></span>Week one</div><h5 class=\"m-0 font-medium text-[22px] leading-[1.15] tracking-[-0.02em] text-zinc-950 dark:text-white\">Inventory before mechanism</h5></div><div class=\"hidden w-px self-stretch bg-zinc-200/60 md:block dark:bg-zinc-800/60\"></div><div class=\"flex flex-1 flex-col justify-between gap-4\"><p class=\"m-0 text-[14px] leading-[1.6] text-zinc-600 dark:text-zinc-400\">List every credential an agent currently holds — keys, tokens, sessions, and webhook URLs (they count). For each: whose is it, what can it reach, who owns its lifecycle, and how would you revoke it alone. The unowned entries are your risk register.</p><div class=\"self-start pt-1 md:self-end\"><span class=\"inline-block rounded-md px-3 py-1.5 font-medium font-mono text-[11.5px] tracking-[-0.01em] bg-zinc-100 text-zinc-950 dark:bg-zinc-800 dark:text-white\">Start with ownership</span></div></div></div><div class=\"relative flex flex-col gap-5 overflow-hidden rounded-2xl p-6 md:flex-row md:gap-8 md:p-7 border border-white/10 bg-[#0a0a0b] text-white\"><div aria-hidden=\"true\" style=\"position:absolute;inset:-1px;border-radius:16px;padding:1px;background:linear-gradient(135deg,#ff6b1a,transparent 60%);-webkit-mask:linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);-webkit-mask-composite:xor;mask:linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);mask-composite:exclude;pointer-events:none\"></div><div class=\"flex flex-col gap-3 md:w-[220px] md:shrink-0\"><div class=\"flex items-center gap-2 font-mono text-[10.5px] text-ignition uppercase tracking-[0.14em]\"><span class=\"size-1.5 rounded-full bg-current shadow-[0_0_6px_currentColor]\"></span>First replacement</div><h5 class=\"m-0 font-medium text-[22px] leading-[1.15] tracking-[-0.02em] text-white\">Kill the<!-- --> <em class=\"font-normal font-serif text-ignition-2 italic\">long-lived</em> <!-- -->keys</h5></div><div class=\"hidden w-px self-stretch bg-zinc-200/60 md:block dark:bg-zinc-800/60\"></div><div class=\"flex flex-1 flex-col justify-between gap-4\"><p class=\"m-0 text-[14px] leading-[1.6] text-white/72\">CI/CD and cloud access convert fastest: swap stored secrets for OIDC-based workload identity federation and GitHub App installation tokens. No agent rewrite required — the platform mints short-lived credentials and the pasted keys get deleted.</p><div class=\"self-start pt-1 md:self-end\"><span class=\"inline-block rounded-md px-3 py-1.5 font-medium font-mono text-[11.5px] tracking-[-0.01em] bg-ignition/10 text-ignition-2\">Federation + app tokens</span></div></div></div><div class=\"relative flex flex-col gap-5 overflow-hidden rounded-2xl p-6 md:flex-row md:gap-8 md:p-7 border border-zinc-200 bg-white dark:border-zinc-800 dark:bg-zinc-900\"><div class=\"flex flex-col gap-3 md:w-[220px] md:shrink-0\"><div class=\"flex items-center gap-2 font-mono text-[10.5px] text-ignition uppercase tracking-[0.14em]\"><span class=\"size-1.5 rounded-full bg-current shadow-[0_0_6px_currentColor]\"></span>Human-delegated agents</div><h5 class=\"m-0 font-medium text-[22px] leading-[1.15] tracking-[-0.02em] text-zinc-950 dark:text-white\">On-behalf-of, audience-restricted</h5></div><div class=\"hidden w-px self-stretch bg-zinc-200/60 md:block dark:bg-zinc-800/60\"></div><div class=\"flex flex-1 flex-col justify-between gap-4\"><p class=\"m-0 text-[14px] leading-[1.6] text-zinc-600 dark:text-zinc-400\">Where an agent acts for a specific user, move to RFC 8693-style token exchange: subject token plus actor token, audience-restricted to the one service the task needs. The agent stops being the user and starts acting for the user — visibly, in every log.</p><div class=\"self-start pt-1 md:self-end\"><span class=\"inline-block rounded-md px-3 py-1.5 font-medium font-mono text-[11.5px] tracking-[-0.01em] bg-zinc-100 text-zinc-950 dark:bg-zinc-800 dark:text-white\">Token exchange</span></div></div></div><div class=\"relative flex flex-col gap-5 overflow-hidden rounded-2xl p-6 md:flex-row md:gap-8 md:p-7 border border-zinc-200 bg-white dark:border-zinc-800 dark:bg-zinc-900\"><div class=\"flex flex-col gap-3 md:w-[220px] md:shrink-0\"><div class=\"flex items-center gap-2 font-mono text-[10.5px] text-ignition uppercase tracking-[0.14em]\"><span class=\"size-1.5 rounded-full bg-current shadow-[0_0_6px_currentColor]\"></span>Multi-agent systems</div><h5 class=\"m-0 font-medium text-[22px] leading-[1.15] tracking-[-0.02em] text-zinc-950 dark:text-white\">Lineage from day one</h5></div><div class=\"hidden w-px self-stretch bg-zinc-200/60 md:block dark:bg-zinc-800/60\"></div><div class=\"flex flex-1 flex-col justify-between gap-4\"><p class=\"m-0 text-[14px] leading-[1.6] text-zinc-600 dark:text-zinc-400\">Give every spawned sub-agent its own identifier with a verifiable link to its parent, and pre-authorize the revocation workflow before you need it. Retrofitting lineage onto a running fleet after an incident is the expensive version.</p><div class=\"self-start pt-1 md:self-end\"><span class=\"inline-block rounded-md px-3 py-1.5 font-medium font-mono text-[11.5px] tracking-[-0.01em] bg-zinc-100 text-zinc-950 dark:bg-zinc-800 dark:text-white\">Parent-child IDs</span></div></div></div></div><div class=\"max-w-[720px] [&amp;_*:where(p,h3,ul)]:text-pretty [&amp;_a.link:hover]:bg-ignition/10 [&amp;_a.link:hover]:text-ignition [&amp;_a.link]:border-ignition [&amp;_a.link]:border-b [&amp;_a.link]:pb-px [&amp;_a.link]:font-medium [&amp;_a.link]:text-zinc-950 [&amp;_a.link]:transition-colors [&amp;_a.link]:dark:text-white [&amp;_code]:rounded-[4px] [&amp;_code]:bg-zinc-100 [&amp;_code]:px-1.5 [&amp;_code]:py-0.5 [&amp;_code]:font-mono [&amp;_code]:text-[0.88em] [&amp;_code]:text-zinc-950 [&amp;_code]:dark:bg-zinc-800 [&amp;_code]:dark:text-white [&amp;_h3]:mt-9 [&amp;_h3]:mb-3.5 [&amp;_h3]:font-medium [&amp;_h3]:text-[22px] [&amp;_h3]:text-zinc-950 [&amp;_h3]:leading-tight [&amp;_h3]:tracking-[-0.015em] [&amp;_h3]:dark:text-white [&amp;_p.lede]:mb-7 [&amp;_p.lede]:font-normal [&amp;_p.lede]:text-[19px] [&amp;_p.lede]:text-zinc-950 [&amp;_p.lede]:leading-[1.6] [&amp;_p.lede]:dark:text-white [&amp;_p]:mb-5 [&amp;_p]:text-[17px] [&amp;_p]:text-zinc-800 [&amp;_p]:leading-[1.7] [&amp;_p]:dark:text-zinc-200 [&amp;_strong]:font-semibold [&amp;_strong]:text-zinc-950 [&amp;_strong]:dark:text-white [&amp;_ul]:mb-6 [&amp;_ul]:ml-0 [&amp;_ul]:list-none [&amp;_ul]:p-0 [&amp;_ul_li]:relative [&amp;_ul_li]:mb-2.5 [&amp;_ul_li]:pl-[22px] [&amp;_ul_li]:text-[16px] [&amp;_ul_li]:text-zinc-700 [&amp;_ul_li]:leading-[1.6] [&amp;_ul_li]:before:absolute [&amp;_ul_li]:before:top-[11px] [&amp;_ul_li]:before:left-0.5 [&amp;_ul_li]:before:size-1.5 [&amp;_ul_li]:before:rounded-full [&amp;_ul_li]:before:bg-ignition [&amp;_ul_li]:before:content-[&#x27;&#x27;] [&amp;_ul_li]:dark:text-zinc-300\"><p>The interpretive point behind the sequence: agent identity is following the same arc service identity followed a decade ago, but compressed. Static keys gave way to short-lived certificates and federation for services over roughly ten years of painful migrations; agents are being pushed down that same path in quarters, not years, because the population is growing at machine speed and the actors behind the credentials make their own decisions. Our projection is that within a few product cycles, “give the agent its own identity” stops being an architecture choice and becomes a platform default — Entra Agent ID’s blueprints and GitHub’s stateless verifiable tokens are early versions of exactly that — and the differentiator shifts to the operational layer: who owns each identity, how fast revocation fires, and whether the audit trail names runs or blobs.</p><p>This matters most where agents touch systems of record. A CRM agent that can rewrite pipeline data on a borrowed admin login is the exact scenario the borrowed-credential trap describes — which is why identity design is part of every build in our<!-- --> <a class=\"link\" href=\"/services/crm-automation\">CRM automation practice</a>, and why broader agent governance — identity, permissions, audit, rollback — anchors our<!-- --> <a class=\"link\" href=\"/services/ai-transformation\">AI transformation engagements</a>. The teams that get this right early ship agents faster, not slower, because every new agent lands on rails that already exist.</p></div><h2 class=\"m-0 mt-14 mb-5 scroll-mt-[90px] font-normal text-[clamp(26px,3vw,36px)] text-zinc-950 leading-[1.15] tracking-[-0.025em] dark:text-white\" id=\"conclusion\"><span class=\"mb-3.5 block font-medium font-mono text-[11px] text-ignition uppercase tracking-[0.12em]\">08<!-- --> — <!-- -->Conclusion</span>The test is<!-- --> <em class=\"font-normal font-serif text-ignition-2 italic\">revocation</em>.</h2><div class=\"relative my-10 overflow-hidden rounded-2xl bg-[#0a0a0b] p-8 text-white\"><div aria-hidden=\"true\" class=\"pointer-events-none absolute right-[-20%] bottom-[-30%] size-[400px] [background:radial-gradient(circle,rgba(255,107,26,0.12),transparent_60%)]\"></div><div class=\"relative mb-3.5 flex items-center gap-2.5 font-mono text-[10.5px] text-ignition-2 uppercase tracking-[0.14em]\"><span class=\"size-1.5 rounded-full bg-ignition shadow-[0_0_6px_var(--color-ignition)]\"></span>Agent identity, July 2026</div><h3 class=\"relative m-0 mb-4 font-medium text-[22px] text-white leading-[1.2] tracking-[-0.015em]\">If you can’t revoke the agent without locking out a human, the agent doesn’t have an identity.</h3><div class=\"relative space-y-3 text-[15.5px] text-white/80 leading-[1.65]\"><p>Everything in this playbook compresses into that one test. Borrowed credentials fail it by construction: attribution points at a person, scope was accumulated rather than designed, and the kill switch takes the human down with the agent. Separate, per-run identity passes it — and the machinery is not speculative. SPIFFE SVIDs, workload identity federation, GitHub App installation tokens, AWS IAM Roles Anywhere, and RFC 8693 token exchange are all<!-- --> <em class=\"font-serif text-ignition-2 italic\">shipping</em>, documented, and in production at scale for services already.</p><p>The direction of travel is unambiguous even where the statistics are not. Non-human identities already outnumber humans by an order of magnitude on any count in circulation, the major identity vendors have begun treating agents as their own principal type, and the industry bodies converge on the same three-part prescription: owned lifecycles, zero standing privilege, and attestation-based issuance. What is still scarce is teams actually wiring it up before the incident instead of after.</p><p>Start with the inventory, kill the long-lived keys, and make every new agent land on its own identity by default. The cost is a few unglamorous engineering days now. The alternative is explaining to an auditor why the log says a sleeping employee deleted the production data — and why turning the agent off also turned off the employee.</p></div></div></article><aside class=\"sticky top-[84px] hidden flex-col gap-5 self-start xl:flex\"><div class=\"rounded-2xl border border-zinc-200 bg-white p-5 dark:border-zinc-800 dark:bg-zinc-900\"><span class=\"mb-3.5 block font-mono text-[10.5px] text-zinc-500 uppercase tracking-[0.12em]\">Share dispatch</span><div class=\"flex flex-col gap-2\"><div class=\"flex flex-wrap gap-2\"><a aria-label=\"Share on X\" class=\"inline-flex h-9 min-w-0 flex-1 items-center justify-center gap-1.5 rounded-md border border-zinc-200 bg-white px-3 font-medium text-[12.5px] text-zinc-600 transition-colors hover:border-zinc-900 hover:bg-zinc-100 hover:text-zinc-950 dark:border-zinc-800 dark:bg-zinc-900 dark:text-zinc-400 dark:hover:border-white dark:hover:text-white\" href=\"https://twitter.com/intent/tweet?url=https%3A%2F%2Fwww.digitalapplied.com%2Fblog%2Fagent-identity-credentials-non-human-access-2026-playbook&amp;text=Giving%20Agents%20Their%20Own%20Identity%2C%20Not%20Your%20Credentials\" rel=\"noopener noreferrer\" target=\"_blank\"><svg aria-hidden=\"true\" class=\"size-3.5\" fill=\"currentColor\" viewBox=\"0 0 24 24\"><path d=\"M18.244 2.25h3.308l-7.227 8.26 8.502 11.24H16.17l-5.214-6.817L4.99 21.75H1.68l7.73-8.835L1.254 2.25H8.08l4.713 6.231zm-1.161 17.52h1.833L7.084 4.126H5.117z\"></path></svg> X</a><a aria-label=\"Share on LinkedIn\" class=\"inline-flex h-9 min-w-0 flex-1 items-center justify-center gap-1.5 rounded-md border border-zinc-200 bg-white px-3 font-medium text-[12.5px] text-zinc-600 transition-colors hover:border-zinc-900 hover:bg-zinc-100 hover:text-zinc-950 dark:border-zinc-800 dark:bg-zinc-900 dark:text-zinc-400 dark:hover:border-white dark:hover:text-white\" href=\"https://www.linkedin.com/sharing/share-offsite/?url=https%3A%2F%2Fwww.digitalapplied.com%2Fblog%2Fagent-identity-credentials-non-human-access-2026-playbook\" rel=\"noopener noreferrer\" target=\"_blank\"><svg aria-hidden=\"true\" class=\"size-3.5\" fill=\"currentColor\" viewBox=\"0 0 24 24\"><path d=\"M20.447 20.452h-3.554v-5.569c0-1.328-.027-3.037-1.852-3.037-1.853 0-2.136 1.445-2.136 2.939v5.667H9.351V9h3.414v1.561h.046c.477-.9 1.637-1.85 3.37-1.85 3.601 0 4.266 2.37 4.266 5.455v6.286zM5.337 7.433a2.062 2.062 0 0 1-2.063-2.065 2.063 2.063 0 1 1 2.063 2.065zm1.782 13.019H3.555V9h3.564v11.452z\"></path></svg> LinkedIn</a></div><button class=\"inline-flex h-9 min-w-0 flex-1 items-center justify-center gap-1.5 rounded-md border border-zinc-200 bg-white px-3 font-medium text-[12.5px] text-zinc-600 transition-colors hover:border-zinc-900 hover:bg-zinc-100 hover:text-zinc-950 dark:border-zinc-800 dark:bg-zinc-900 dark:text-zinc-400 dark:hover:border-white dark:hover:text-white\" type=\"button\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"lucide lucide-link2 lucide-link-2 size-3.5\" aria-hidden=\"true\"><path d=\"M9 17H7A5 5 0 0 1 7 7h2\"></path><path d=\"M15 7h2a5 5 0 1 1 0 10h-2\"></path><line x1=\"8\" x2=\"16\" y1=\"12\" y2=\"12\"></line></svg>Copy link</button></div></div><div class=\"relative overflow-hidden rounded-2xl bg-[#0a0a0b] p-5 text-white\"><div aria-hidden=\"true\" style=\"position:absolute;inset:-1px;border-radius:14px;padding:1px;background:linear-gradient(135deg,#ff6b1a,transparent 60%);-webkit-mask:linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);-webkit-mask-composite:xor;mask:linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);mask-composite:exclude;pointer-events:none\"></div><span class=\"mb-3.5 block font-mono text-[10.5px] text-ignition-2 uppercase tracking-[0.12em]\">AI Insights</span><h4 class=\"m-0 mb-2.5 font-medium text-[15px] text-white leading-[1.3] tracking-[-0.01em]\">Deep dives on AI operations and automation.</h4><p class=\"m-0 mb-3.5 text-[12.5px] text-white/65 leading-normal\">Agentic development, CRM automation, and data-driven strategies. No recycled AI takes.</p><form class=\"flex flex-col gap-2\"><input aria-label=\"Email address\" autoComplete=\"email\" class=\"w-full rounded-md border border-white/15 bg-black/35 px-3 py-2.5 font-sans text-[13px] text-white outline-none focus:border-ignition disabled:opacity-60\" inputMode=\"email\" placeholder=\"you@work.com\" required=\"\" type=\"email\" name=\"email\" value=\"\"/><input aria-hidden=\"true\" autoComplete=\"off\" class=\"absolute left-[-9999px] h-0 w-0 opacity-0\" tabindex=\"-1\" type=\"text\" name=\"website\" value=\"\"/><button class=\"inline-flex h-auto w-full items-center justify-center rounded-md bg-white py-2.5 font-medium text-[13px] text-zinc-950 transition-colors hover:bg-white/90 disabled:cursor-not-allowed disabled:opacity-60\" type=\"submit\">Subscribe</button></form></div><div class=\"rounded-2xl border border-zinc-200 bg-white p-5 dark:border-zinc-800 dark:bg-zinc-900\"><span class=\"mb-3.5 block font-mono text-[10.5px] text-zinc-500 uppercase tracking-[0.12em]\">The mechanism shelf</span><h4 class=\"m-0 mb-2.5 font-medium text-[15px] text-zinc-950 dark:text-white\">Already shipping, today</h4><div class=\"mb-1 font-mono text-[12px] text-zinc-950 dark:text-white\">SPIFFE · WIF · RFC 8693</div><p class=\"m-0 text-[12px] text-zinc-500 leading-normal\">Workload identity federation, SPIFFE/SPIRE SVIDs, GitHub App installation tokens, and AWS IAM Roles Anywhere all issue short-lived, scoped, revocable credentials — none require a human’s login.</p></div></aside></div></section><section class=\"relative isolate overflow-hidden bg-[#0a0a0b] py-20 text-white\"><div aria-hidden=\"true\" class=\"pointer-events-none absolute inset-0 [-webkit-mask-image:radial-gradient(ellipse_at_center,black_30%,transparent_75%)] [background-image:linear-gradient(rgba(255,255,255,0.03)_1px,transparent_1px),linear-gradient(90deg,rgba(255,255,255,0.03)_1px,transparent_1px)] [background-size:56px_56px] [mask-image:radial-gradient(ellipse_at_center,black_30%,transparent_75%)]\"></div><div aria-hidden=\"true\" class=\"pointer-events-none absolute top-1/2 left-1/2 size-[900px] -translate-x-1/2 -translate-y-1/2 blur-[30px] [background:radial-gradient(circle,rgba(255,107,26,0.18),rgba(255,107,26,0.04)_30%,transparent_65%)]\"></div><div class=\"relative z-[2] mx-auto grid max-w-[1320px] items-center gap-14 px-4 md:px-8 lg:grid-cols-[1.3fr_1fr]\"><div><span class=\"mb-4.5 inline-flex items-center gap-2.5 font-mono text-[11px] text-ignition uppercase tracking-[0.14em]\"><span class=\"h-px w-5 bg-ignition\"></span>Build agents on their own identity</span><h2 class=\"m-0 mb-4.5 font-light text-[clamp(30px,3.8vw,50px)] leading-[1.04] tracking-[-0.03em]\">Agents you can revoke in minutes are agents you can<!-- --> <em class=\"bg-clip-text font-normal font-serif text-transparent italic\" style=\"background-image:linear-gradient(180deg, #fff 40%, var(--color-ignition-2) 80%, var(--color-ignition) 100%)\">actually trust</em>.</h2><p class=\"m-0 mb-7 max-w-[520px] text-[16px] text-white/72 leading-[1.6]\">Our team designs agent identity, permissions, and audit rails as part of every agentic build — CRM agents, workflow automation, and multi-agent systems that can be trusted with systems of record, delivered in days not quarters.</p><div class=\"mb-6 flex flex-wrap gap-3\"><a class=\"group relative inline-flex h-[52px] items-center justify-center gap-2 overflow-hidden rounded-lg bg-[#0a0a0b] px-7 font-medium text-[15px] text-white shadow-[0_0_0_1px_#0a0a0b,0_10px_30px_-10px_rgba(255,107,26,0.4)] transition-transform hover:-translate-y-0.5\" href=\"/get-started\"><span class=\"relative z-[1]\">Get started</span><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"lucide lucide-arrow-up-right relative z-[1] size-4 transition-transform group-hover:translate-x-0.5\" aria-hidden=\"true\"><path d=\"M7 7h10v10\"></path><path d=\"M7 17 17 7\"></path></svg></a><a class=\"inline-flex h-[52px] items-center justify-center gap-2 rounded-lg border border-white/15 bg-white/5 px-7 font-medium text-[15px] text-white transition-colors hover:border-white/30 hover:bg-white/10\" href=\"/services/crm-automation\">Explore CRM &amp; automation</a></div><div class=\"flex flex-wrap gap-x-7 gap-y-2 font-mono text-[11px] text-white/55 uppercase tracking-[0.1em]\"><span class=\"inline-flex items-center gap-2\"><span class=\"size-1.5 rounded-full bg-ignition\"></span>Free consultation</span><span class=\"inline-flex items-center gap-2\"><span class=\"size-1.5 rounded-full bg-ignition\"></span>Expert guidance</span><span class=\"inline-flex items-center gap-2\"><span class=\"size-1.5 rounded-full bg-ignition\"></span>Tailored solutions</span></div></div><div class=\"relative overflow-hidden rounded-2xl border border-white/10 bg-white/[0.04] p-7\"><div aria-hidden=\"true\" style=\"position:absolute;inset:-1px;border-radius:18px;padding:1px;background:linear-gradient(135deg,#ff6b1a,transparent 60%);-webkit-mask:linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);-webkit-mask-composite:xor;mask:linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);mask-composite:exclude;pointer-events:none\"></div><span class=\"mb-3.5 block font-mono text-[11px] text-ignition-2 uppercase tracking-[0.14em]\">What we work on</span><h4 class=\"m-0 mb-3.5 font-medium text-[19px] text-white tracking-[-0.01em]\">Agent identity engagements</h4><ul class=\"m-0 list-none p-0\"><li class=\"flex items-center gap-2.5 border-white/10 border-b py-2.5 text-[13.5px] text-white/72 last:border-b-0\"><span class=\"font-mono text-[13px] text-ignition\">→</span>Non-human identity inventory &amp; ownership mapping</li><li class=\"flex items-center gap-2.5 border-white/10 border-b py-2.5 text-[13.5px] text-white/72 last:border-b-0\"><span class=\"font-mono text-[13px] text-ignition\">→</span>Long-lived key elimination — federation &amp; app tokens</li><li class=\"flex items-center gap-2.5 border-white/10 border-b py-2.5 text-[13.5px] text-white/72 last:border-b-0\"><span class=\"font-mono text-[13px] text-ignition\">→</span>On-behalf-of token exchange for user-facing agents</li><li class=\"flex items-center gap-2.5 border-white/10 border-b py-2.5 text-[13.5px] text-white/72 last:border-b-0\"><span class=\"font-mono text-[13px] text-ignition\">→</span>Per-run audit trails with parent-child lineage</li><li class=\"flex items-center gap-2.5 border-white/10 border-b py-2.5 text-[13.5px] text-white/72 last:border-b-0\"><span class=\"font-mono text-[13px] text-ignition\">→</span>Revocation runbooks — minutes, not ticket queues</li></ul></div></div></section><section class=\"border-zinc-200 border-t bg-white py-24 dark:border-zinc-800 dark:bg-zinc-950\" id=\"faq\"><div class=\"mx-auto max-w-[960px] px-4 md:px-8\"><div class=\"mb-12\"><div class=\"mb-3.5 inline-flex items-center gap-2.5 font-mono text-[11px] text-zinc-500 uppercase tracking-[0.14em]\"><span class=\"h-px w-5 bg-ignition\"></span>FAQ · Agent identity</div><h2 class=\"m-0 font-normal text-[clamp(32px,4vw,48px)] text-zinc-950 leading-[1.05] tracking-[-0.03em] dark:text-white\">The questions we get<!-- --> <em class=\"font-normal font-serif italic\">every week.</em></h2></div><div class=\"border-zinc-200 border-t dark:border-zinc-800\"><div class=\"border-zinc-200 border-b py-5 dark:border-zinc-800\"><button aria-controls=\"faq-answer-0\" aria-expanded=\"true\" class=\"flex w-full cursor-pointer items-center justify-between gap-4 bg-transparent p-0 text-left font-medium text-[17px] text-zinc-950 tracking-[-0.01em] dark:text-white\" type=\"button\"><span>Why shouldn’t an AI agent just use my API key or session?</span><span class=\"flex size-7 shrink-0 items-center justify-center rounded-full border transition-all rotate-45 border-ignition bg-ignition text-white\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"lucide lucide-plus size-3.5\" aria-hidden=\"true\"><path d=\"M5 12h14\"></path><path d=\"M12 5v14\"></path></svg></span></button><div class=\"mt-3.5 max-w-[760px] text-[15px] text-zinc-600 leading-[1.65] dark:text-zinc-400\" id=\"faq-answer-0\">Three structural reasons. Attribution: every action the agent takes is logged as you, so after an incident nobody can separate your actions from the agent’s — a real problem in any compliance review. Scope: your account carries everything you’ve accumulated over years, so a task that needed read access to one module inherits write access to everything you can touch. Revocation: the only way to cut the agent off is to kill your own session or rotate your own key, locking you out and breaking every other integration that shared the credential. A separate agent identity fixes all three at once — actions attribute to the agent run, scope is designed per task, and revocation touches nothing human.</div></div><div class=\"border-zinc-200 border-b py-5 dark:border-zinc-800\"><button aria-controls=\"faq-answer-1\" aria-expanded=\"false\" class=\"flex w-full cursor-pointer items-center justify-between gap-4 bg-transparent p-0 text-left font-medium text-[17px] text-zinc-950 tracking-[-0.01em] dark:text-white\" type=\"button\"><span>What is a non-human identity (NHI), and how big is the problem?</span><span class=\"flex size-7 shrink-0 items-center justify-center rounded-full border transition-all border-zinc-200 text-zinc-600 dark:border-zinc-700 dark:text-zinc-400\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"lucide lucide-plus size-3.5\" aria-hidden=\"true\"><path d=\"M5 12h14\"></path><path d=\"M12 5v14\"></path></svg></span></button></div><div class=\"border-zinc-200 border-b py-5 dark:border-zinc-800\"><button aria-controls=\"faq-answer-2\" aria-expanded=\"false\" class=\"flex w-full cursor-pointer items-center justify-between gap-4 bg-transparent p-0 text-left font-medium text-[17px] text-zinc-950 tracking-[-0.01em] dark:text-white\" type=\"button\"><span>What are SPIFFE and SPIRE, and do they apply to agents?</span><span class=\"flex size-7 shrink-0 items-center justify-center rounded-full border transition-all border-zinc-200 text-zinc-600 dark:border-zinc-700 dark:text-zinc-400\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"lucide lucide-plus size-3.5\" aria-hidden=\"true\"><path d=\"M5 12h14\"></path><path d=\"M12 5v14\"></path></svg></span></button></div><div class=\"border-zinc-200 border-b py-5 dark:border-zinc-800\"><button aria-controls=\"faq-answer-3\" aria-expanded=\"false\" class=\"flex w-full cursor-pointer items-center justify-between gap-4 bg-transparent p-0 text-left font-medium text-[17px] text-zinc-950 tracking-[-0.01em] dark:text-white\" type=\"button\"><span>What is workload identity federation?</span><span class=\"flex size-7 shrink-0 items-center justify-center rounded-full border transition-all border-zinc-200 text-zinc-600 dark:border-zinc-700 dark:text-zinc-400\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"lucide lucide-plus size-3.5\" aria-hidden=\"true\"><path d=\"M5 12h14\"></path><path d=\"M12 5v14\"></path></svg></span></button></div><div class=\"border-zinc-200 border-b py-5 dark:border-zinc-800\"><button aria-controls=\"faq-answer-4\" aria-expanded=\"false\" class=\"flex w-full cursor-pointer items-center justify-between gap-4 bg-transparent p-0 text-left font-medium text-[17px] text-zinc-950 tracking-[-0.01em] dark:text-white\" type=\"button\"><span>What’s the difference between delegation and impersonation in RFC 8693?</span><span class=\"flex size-7 shrink-0 items-center justify-center rounded-full border transition-all border-zinc-200 text-zinc-600 dark:border-zinc-700 dark:text-zinc-400\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"lucide lucide-plus size-3.5\" aria-hidden=\"true\"><path d=\"M5 12h14\"></path><path d=\"M12 5v14\"></path></svg></span></button></div><div class=\"border-zinc-200 border-b py-5 dark:border-zinc-800\"><button aria-controls=\"faq-answer-5\" aria-expanded=\"false\" class=\"flex w-full cursor-pointer items-center justify-between gap-4 bg-transparent p-0 text-left font-medium text-[17px] text-zinc-950 tracking-[-0.01em] dark:text-white\" type=\"button\"><span>Is OAuth 2.1 finalized, and should agent builds wait for it?</span><span class=\"flex size-7 shrink-0 items-center justify-center rounded-full border transition-all border-zinc-200 text-zinc-600 dark:border-zinc-700 dark:text-zinc-400\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"lucide lucide-plus size-3.5\" aria-hidden=\"true\"><path d=\"M5 12h14\"></path><path d=\"M12 5v14\"></path></svg></span></button></div><div class=\"border-zinc-200 border-b py-5 dark:border-zinc-800\"><button aria-controls=\"faq-answer-6\" aria-expanded=\"false\" class=\"flex w-full cursor-pointer items-center justify-between gap-4 bg-transparent p-0 text-left font-medium text-[17px] text-zinc-950 tracking-[-0.01em] dark:text-white\" type=\"button\"><span>How should sub-agents spawned by a parent agent be identified?</span><span class=\"flex size-7 shrink-0 items-center justify-center rounded-full border transition-all border-zinc-200 text-zinc-600 dark:border-zinc-700 dark:text-zinc-400\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"lucide lucide-plus size-3.5\" aria-hidden=\"true\"><path d=\"M5 12h14\"></path><path d=\"M12 5v14\"></path></svg></span></button></div><div class=\"border-zinc-200 border-b py-5 dark:border-zinc-800\"><button aria-controls=\"faq-answer-7\" aria-expanded=\"false\" class=\"flex w-full cursor-pointer items-center justify-between gap-4 bg-transparent p-0 text-left font-medium text-[17px] text-zinc-950 tracking-[-0.01em] dark:text-white\" type=\"button\"><span>What does ‘good’ look like for agent credential revocation and audit?</span><span class=\"flex size-7 shrink-0 items-center justify-center rounded-full border transition-all border-zinc-200 text-zinc-600 dark:border-zinc-700 dark:text-zinc-400\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"lucide lucide-plus size-3.5\" aria-hidden=\"true\"><path d=\"M5 12h14\"></path><path d=\"M12 5v14\"></path></svg></span></button></div></div></div></section><section class=\"bg-zinc-100 py-24 dark:bg-zinc-900\"><div class=\"mx-auto max-w-[1320px] px-4 md:px-8\"><div class=\"mb-10\"><div class=\"mb-3.5 inline-flex items-center gap-2.5 font-mono text-[11px] text-zinc-500 uppercase tracking-[0.14em]\"><span class=\"h-px w-5 bg-ignition\"></span>Related dispatches</div><h2 class=\"m-0 font-normal text-[clamp(30px,3.6vw,44px)] text-zinc-950 leading-[1.05] tracking-[-0.025em] dark:text-white\">Continue exploring<!-- --> <em class=\"font-normal font-serif italic\">agentic operations.</em></h2></div><div class=\"grid gap-4 md:grid-cols-3\"><a class=\"group flex min-h-[260px] flex-col gap-3.5 rounded-2xl border border-zinc-200 bg-white p-7 transition-all hover:-translate-y-1 hover:border-zinc-400 hover:shadow-[0_20px_40px_-20px_rgba(0,0,0,0.1)] dark:border-zinc-800 dark:bg-zinc-950\" href=\"/blog/amp-event-driven-orbs-self-scheduling-agents-2026\"><span class=\"self-start rounded-sm border border-ignition/20 bg-ignition/5 px-2 py-1 font-mono text-[10.5px] text-ignition uppercase tracking-[0.12em]\">CRM &amp; Automation</span><h4 class=\"m-0 mt-1 font-medium text-[19px] text-zinc-950 leading-[1.22] tracking-[-0.015em] transition-colors group-hover:text-ignition dark:text-white\">Amp Turned Agents Into Always-On Services This Week</h4><p class=\"m-0 flex-1 text-[14px] text-zinc-500 leading-[1.55]\">Amp shipped five releases in seven days that turn agents into persistent services. Event-driven orbs expose durable webhook URLs its own docs call a credential.</p><div class=\"mt-auto flex items-center justify-between border-zinc-200 border-t pt-3.5 font-mono text-[10.5px] text-zinc-500 uppercase tracking-[0.08em] dark:border-zinc-800\"><span>July 26, 2026<!-- --> · <!-- -->12<!-- --> min</span><span class=\"inline-flex items-center gap-1 font-medium text-zinc-950 dark:text-white\">Read <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"lucide lucide-arrow-up-right size-3.5\" aria-hidden=\"true\"><path d=\"M7 7h10v10\"></path><path d=\"M7 17 17 7\"></path></svg></span></div></a><a class=\"group flex min-h-[260px] flex-col gap-3.5 rounded-2xl border border-zinc-200 bg-white p-7 transition-all hover:-translate-y-1 hover:border-zinc-400 hover:shadow-[0_20px_40px_-20px_rgba(0,0,0,0.1)] dark:border-zinc-800 dark:bg-zinc-950\" href=\"/blog/claude-voice-mode-opus-sonnet-connectors-2026\"><span class=\"self-start rounded-sm border border-ignition/20 bg-ignition/5 px-2 py-1 font-mono text-[10.5px] text-ignition uppercase tracking-[0.12em]\">CRM &amp; Automation</span><h4 class=\"m-0 mt-1 font-medium text-[19px] text-zinc-950 leading-[1.22] tracking-[-0.015em] transition-colors group-hover:text-ignition dark:text-white\">Claude Voice Mode Grows Up: Opus, Sonnet, and Connectors</h4><p class=\"m-0 flex-1 text-[14px] text-zinc-500 leading-[1.55]\">Claude voice mode now reaches Opus and Sonnet on paid plans, with Gmail, Calendar, Docs and Slack connectors working aloud. Still beta and turn-based.</p><div class=\"mt-auto flex items-center justify-between border-zinc-200 border-t pt-3.5 font-mono text-[10.5px] text-zinc-500 uppercase tracking-[0.08em] dark:border-zinc-800\"><span>July 25, 2026<!-- --> · <!-- -->11<!-- --> min</span><span class=\"inline-flex items-center gap-1 font-medium text-zinc-950 dark:text-white\">Read <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"lucide lucide-arrow-up-right size-3.5\" aria-hidden=\"true\"><path d=\"M7 7h10v10\"></path><path d=\"M7 17 17 7\"></path></svg></span></div></a><a class=\"group flex min-h-[260px] flex-col gap-3.5 rounded-2xl border border-zinc-200 bg-white p-7 transition-all hover:-translate-y-1 hover:border-zinc-400 hover:shadow-[0_20px_40px_-20px_rgba(0,0,0,0.1)] dark:border-zinc-800 dark:bg-zinc-950\" href=\"/blog/live-client-dashboards-claude-artifacts-mcp\"><span class=\"self-start rounded-sm border border-ignition/20 bg-ignition/5 px-2 py-1 font-mono text-[10.5px] text-ignition uppercase tracking-[0.12em]\">CRM &amp; Automation</span><h4 class=\"m-0 mt-1 font-medium text-[19px] text-zinc-950 leading-[1.22] tracking-[-0.015em] transition-colors group-hover:text-ignition dark:text-white\">Build Live Client Dashboards with Claude Code Artifacts</h4><p class=\"m-0 flex-1 text-[14px] text-zinc-500 leading-[1.55]\">Claude Code Artifacts now pull live data through a viewer&#x27;s own MCP connectors per view. But a connector-backed dashboard can&#x27;t be a public link on any plan.</p><div class=\"mt-auto flex items-center justify-between border-zinc-200 border-t pt-3.5 font-mono text-[10.5px] text-zinc-500 uppercase tracking-[0.08em] dark:border-zinc-800\"><span>July 24, 2026<!-- --> · <!-- -->11<!-- --> min</span><span class=\"inline-flex items-center gap-1 font-medium text-zinc-950 dark:text-white\">Read <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"lucide lucide-arrow-up-right size-3.5\" aria-hidden=\"true\"><path d=\"M7 7h10v10\"></path><path d=\"M7 17 17 7\"></path></svg></span></div></a><a class=\"group flex min-h-[260px] flex-col gap-3.5 rounded-2xl border border-zinc-200 bg-white p-7 transition-all hover:-translate-y-1 hover:border-zinc-400 hover:shadow-[0_20px_40px_-20px_rgba(0,0,0,0.1)] dark:border-zinc-800 dark:bg-zinc-950\" href=\"/blog/baidu-unlimited-ocr-3b-document-automation-2026\"><span class=\"self-start rounded-sm border border-ignition/20 bg-ignition/5 px-2 py-1 font-mono text-[10.5px] text-ignition uppercase tracking-[0.12em]\">CRM &amp; Automation</span><h4 class=\"m-0 mt-1 font-medium text-[19px] text-zinc-950 leading-[1.22] tracking-[-0.015em] transition-colors group-hover:text-ignition dark:text-white\">Baidu Unlimited-OCR 3B: Single-Pass PDFs, MIT-Licensed</h4><p class=\"m-0 flex-1 text-[14px] text-zinc-500 leading-[1.55]\">Baidu&#x27;s MIT-licensed Unlimited-OCR parses documents in one pass and beats DeepSeek-OCR on OmniDocBench. A free, self-hostable option for ops document teams.</p><div class=\"mt-auto flex items-center justify-between border-zinc-200 border-t pt-3.5 font-mono text-[10.5px] text-zinc-500 uppercase tracking-[0.08em] dark:border-zinc-800\"><span>July 23, 2026<!-- --> · <!-- -->12<!-- --> min</span><span class=\"inline-flex items-center gap-1 font-medium text-zinc-950 dark:text-white\">Read <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"lucide lucide-arrow-up-right size-3.5\" aria-hidden=\"true\"><path d=\"M7 7h10v10\"></path><path d=\"M7 17 17 7\"></path></svg></span></div></a><a class=\"group flex min-h-[260px] flex-col gap-3.5 rounded-2xl border border-zinc-200 bg-white p-7 transition-all hover:-translate-y-1 hover:border-zinc-400 hover:shadow-[0_20px_40px_-20px_rgba(0,0,0,0.1)] dark:border-zinc-800 dark:bg-zinc-950\" href=\"/blog/sms-marketing-statistics-2026-open-ctr-data\"><span class=\"self-start rounded-sm border border-ignition/20 bg-ignition/5 px-2 py-1 font-mono text-[10.5px] text-ignition uppercase tracking-[0.12em]\">CRM &amp; Automation</span><h4 class=\"m-0 mt-1 font-medium text-[19px] text-zinc-950 leading-[1.22] tracking-[-0.015em] transition-colors group-hover:text-ignition dark:text-white\">SMS Marketing Statistics 2026: 110+ Open and CTR Data</h4><p class=\"m-0 flex-1 text-[14px] text-zinc-500 leading-[1.55]\">SMS marketing statistics for 2026: 110+ data points on delivery, open and click-through rates, opt-out behavior, and revenue-per-send benchmarks.</p><div class=\"mt-auto flex items-center justify-between border-zinc-200 border-t pt-3.5 font-mono text-[10.5px] text-zinc-500 uppercase tracking-[0.08em] dark:border-zinc-800\"><span>April 22, 2026<!-- --> · <!-- -->15<!-- --> min</span><span class=\"inline-flex items-center gap-1 font-medium text-zinc-950 dark:text-white\">Read <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"lucide lucide-arrow-up-right size-3.5\" aria-hidden=\"true\"><path d=\"M7 7h10v10\"></path><path d=\"M7 17 17 7\"></path></svg></span></div></a><a class=\"group flex min-h-[260px] flex-col gap-3.5 rounded-2xl border border-zinc-200 bg-white p-7 transition-all hover:-translate-y-1 hover:border-zinc-400 hover:shadow-[0_20px_40px_-20px_rgba(0,0,0,0.1)] dark:border-zinc-800 dark:bg-zinc-950\" href=\"/blog/anthropic-cowork-customize-personalize-claude-business\"><span class=\"self-start rounded-sm border border-ignition/20 bg-ignition/5 px-2 py-1 font-mono text-[10.5px] text-ignition uppercase tracking-[0.12em]\">CRM &amp; Automation</span><h4 class=\"m-0 mt-1 font-medium text-[19px] text-zinc-950 leading-[1.22] tracking-[-0.015em] transition-colors group-hover:text-ignition dark:text-white\">Anthropic Cowork Customize: Personalize Claude Guide</h4><p class=\"m-0 flex-1 text-[14px] text-zinc-500 leading-[1.55]\">Anthropic&#x27;s Cowork platform lets businesses customize Claude&#x27;s persona, memory, and behavior at workspace level. Setup guide, use cases, and API integration.</p><div class=\"mt-auto flex items-center justify-between border-zinc-200 border-t pt-3.5 font-mono text-[10.5px] text-zinc-500 uppercase tracking-[0.08em] dark:border-zinc-800\"><span>March 19, 2026<!-- --> · <!-- -->14<!-- --> min</span><span class=\"inline-flex items-center gap-1 font-medium text-zinc-950 dark:text-white\">Read <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"lucide lucide-arrow-up-right size-3.5\" aria-hidden=\"true\"><path d=\"M7 7h10v10\"></path><path d=\"M7 17 17 7\"></path></svg></span></div></a></div></div></section><!--$--><!--/$--></main><footer class=\"border-white/10 border-t bg-[#0a0a0b] py-16 text-white/60\"><div class=\"mx-auto grid max-w-7xl gap-12 px-4 md:px-8 lg:grid-cols-[1.4fr_1fr_1fr_1fr_1fr]\"><div><a aria-label=\"Digital Applied\" class=\"inline-block\" href=\"/\"><img alt=\"Digital Applied\" loading=\"lazy\" width=\"160\" height=\"40\" decoding=\"async\" data-nimg=\"1\" style=\"color:transparent;height:24px;width:auto\" src=\"/logo-white.svg\"/></a><p class=\"mt-4 max-w-[320px] text-sm leading-relaxed\">An agentic growth partner for teams that would rather ship than schedule. Full-service digital marketing, delivered in days.</p><div class=\"mt-6\"><div class=\"flex gap-4 text-white/50\"><a aria-label=\"Follow us on X (Twitter)\" class=\"text-muted-foreground transition-colors hover:text-foreground\" rel=\"noopener noreferrer\" target=\"_blank\" href=\"https://x.com/digitalapplied\"><svg class=\"h-5 w-5 text-white/50 hover:text-white transition-colors\" fill=\"currentColor\" viewBox=\"0 0 24 24\"><title>X (Twitter)</title><path d=\"M18.244 2.25h3.308l-7.227 8.26 8.502 11.24H16.17l-5.214-6.817L4.99 21.75H1.68l7.73-8.835L1.254 2.25H8.08l4.713 6.231zm-1.161 17.52h1.833L7.084 4.126H5.117z\"></path></svg></a><a aria-label=\"Follow us on Facebook\" class=\"text-muted-foreground transition-colors hover:text-foreground\" rel=\"noopener noreferrer\" target=\"_blank\" href=\"https://www.facebook.com/digitalapplied\"><svg class=\"h-5 w-5 text-white/50 hover:text-white transition-colors\" fill=\"currentColor\" viewBox=\"0 0 24 24\"><title>Facebook</title><path d=\"M24 12.073c0-6.627-5.373-12-12-12s-12 5.373-12 12c0 5.99 4.388 10.954 10.125 11.854v-8.385H7.078v-3.47h3.047V9.43c0-3.007 1.792-4.669 4.533-4.669 1.312 0 2.686.235 2.686.235v2.953H15.83c-1.491 0-1.956.925-1.956 1.874v2.25h3.328l-.532 3.47h-2.796v8.385C19.612 23.027 24 18.062 24 12.073z\"></path></svg></a><a aria-label=\"Follow us on Instagram\" class=\"text-muted-foreground transition-colors hover:text-foreground\" rel=\"noopener noreferrer\" target=\"_blank\" href=\"https://www.instagram.com/digital_applied\"><svg class=\"h-5 w-5 text-white/50 hover:text-white transition-colors\" fill=\"currentColor\" viewBox=\"0 0 24 24\"><title>Instagram</title><path d=\"M12 2.163c3.204 0 3.584.012 4.85.07 3.252.148 4.771 1.691 4.919 4.919.058 1.265.069 1.645.069 4.849 0 3.205-.012 3.584-.069 4.849-.149 3.225-1.664 4.771-4.919 4.919-1.266.058-1.644.07-4.85.07-3.204 0-3.584-.012-4.849-.07-3.26-.149-4.771-1.699-4.919-4.92-.058-1.265-.07-1.644-.07-4.849 0-3.204.013-3.583.07-4.849.149-3.227 1.664-4.771 4.919-4.919 1.266-.057 1.645-.069 4.849-.069zm0-2.163c-3.259 0-3.667.014-4.947.072-4.358.2-6.78 2.618-6.98 6.98-.059 1.281-.073 1.689-.073 4.948 0 3.259.014 3.668.072 4.948.2 4.358 2.618 6.78 6.98 6.98 1.281.058 1.689.072 4.948.072 3.259 0 3.668-.014 4.948-.072 4.354-.2 6.782-2.618 6.979-6.98.059-1.28.073-1.689.073-4.948 0-3.259-.014-3.667-.072-4.947-.196-4.354-2.617-6.78-6.979-6.98-1.281-.059-1.69-.073-4.949-.073zM5.838 12a6.162 6.162 0 1112.324 0 6.162 6.162 0 01-12.324 0zM12 16a4 4 0 110-8 4 4 0 010 8zm4.965-10.405a1.44 1.44 0 112.881.001 1.44 1.44 0 01-2.881-.001z\"></path></svg></a><a aria-label=\"Follow us on LinkedIn\" class=\"text-muted-foreground transition-colors hover:text-foreground\" rel=\"noopener noreferrer\" target=\"_blank\" href=\"https://www.linkedin.com/company/digitalapplied\"><svg class=\"h-5 w-5 text-white/50 hover:text-white transition-colors\" fill=\"currentColor\" viewBox=\"0 0 24 24\"><title>LinkedIn</title><path d=\"M20.447 20.452h-3.554v-5.569c0-1.328-.027-3.037-1.852-3.037-1.853 0-2.136 1.445-2.136 2.939v5.667H9.351V9h3.414v1.561h.046c.477-.9 1.637-1.85 3.37-1.85 3.601 0 4.267 2.37 4.267 5.455v6.286zM5.337 7.433c-1.144 0-2.063-.926-2.063-2.065 0-1.138.92-2.063 2.063-2.063 1.14 0 2.064.925 2.064 2.063 0 1.139-.925 2.065-2.064 2.065zm1.782 13.019H3.555V9h3.564v11.452zM22.225 0H1.771C.792 0 0 .774 0 1.729v20.542C0 23.227.792 24 1.771 24h20.451C23.2 24 24 23.227 24 22.271V1.729C24 .774 23.2 0 22.222 0h.003z\"></path></svg></a></div></div></div><div><h5 class=\"mb-4 font-medium font-mono text-[13px] text-white uppercase tracking-[0.08em]\">Services</h5><ul class=\"space-y-1\"><li><a class=\"block py-1 text-sm transition-colors hover:text-white\" href=\"/services/agentic-seo\">SEO</a></li><li><a class=\"block py-1 text-sm transition-colors hover:text-white\" href=\"/services/paid-media\">PPC</a></li><li><a class=\"block py-1 text-sm transition-colors hover:text-white\" href=\"/services/content-engine\">Content</a></li><li><a class=\"block py-1 text-sm transition-colors hover:text-white\" href=\"/services/web-development\">Web Dev</a></li><li><a class=\"block py-1 text-sm transition-colors hover:text-white\" href=\"/services/crm-automation\">CRM</a></li></ul></div><div><h5 class=\"mb-4 font-medium font-mono text-[13px] text-white uppercase tracking-[0.08em]\">Company</h5><ul class=\"space-y-1\"><li><a class=\"block py-1 text-sm transition-colors hover:text-white\" href=\"/about\">About</a></li><li><a class=\"block py-1 text-sm transition-colors hover:text-white\" href=\"/#process\">Process</a></li><li><a class=\"block py-1 text-sm transition-colors hover:text-white\" href=\"/contact\">Contact</a></li></ul></div><div><h5 class=\"mb-4 font-medium font-mono text-[13px] text-white uppercase tracking-[0.08em]\">Resources</h5><ul class=\"space-y-1\"><li><a class=\"block py-1 text-sm transition-colors hover:text-white\" href=\"/blog\">Blog</a></li><li><a class=\"block py-1 text-sm transition-colors hover:text-white\" href=\"/ai-tools\">AI Tools</a></li><li><a class=\"block py-1 text-sm transition-colors hover:text-white\" href=\"/privacy-policy\">Privacy</a></li><li><a class=\"block py-1 text-sm transition-colors hover:text-white\" href=\"/terms-of-service\">Terms</a></li></ul></div><div><h5 class=\"mb-4 font-medium font-mono text-[13px] text-white uppercase tracking-[0.08em]\">Topics</h5><ul class=\"space-y-1\"><li><a class=\"block py-1 text-sm transition-colors hover:text-white\" href=\"/blog/category/ai-development\">AI Development</a></li><li><a class=\"block py-1 text-sm transition-colors hover:text-white\" href=\"/blog/category/seo\">SEO</a></li><li><a class=\"block py-1 text-sm transition-colors hover:text-white\" href=\"/blog/category/marketing\">Marketing</a></li><li><a class=\"block py-1 text-sm transition-colors hover:text-white\" href=\"/blog/category/ecommerce\">eCommerce</a></li><li><a class=\"block py-1 text-sm transition-colors hover:text-white\" href=\"/blog/category/business\">Business</a></li><li><a class=\"block py-1 text-sm transition-colors hover:text-white\" href=\"/blog/category/crm-automation\">CRM &amp; Automation</a></li><li><a class=\"block py-1 text-sm transition-colors hover:text-white\" href=\"/blog/category/development\">Development</a></li><li><a class=\"block py-1 text-sm transition-colors hover:text-white\" href=\"/blog/tags\">All Topics →</a></li></ul></div></div><div class=\"mx-auto mt-12 flex max-w-7xl flex-col items-start justify-between gap-3 border-white/10 border-t px-4 pt-6 font-mono text-[11px] text-white/40 uppercase tracking-widest sm:flex-row sm:items-center md:px-8\"><span>© <!-- -->2026<!-- --> Digital Applied</span><span>All systems nominal</span></div></footer></div><script src=\"/_next/static/chunks/0fh1k_r~b~e_o.js\" id=\"_R_\" async=\"\"></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,\"1:\\\"$Sreact.fragment\\\"\\n2:I[636356,[\\\"/_next/static/chunks/0vfhqx7irdtsp.js\\\",\\\"/_next/static/chunks/0yze7hvbcp5.x.js\\\",\\\"/_next/static/chunks/0zod1seoish6v.js\\\",\\\"/_next/static/chunks/0h9.k2fyk8cqu.js\\\"],\\\"GoogleTagManager\\\"]\\n3:I[728231,[\\\"/_next/static/chunks/0vfhqx7irdtsp.js\\\",\\\"/_next/static/chunks/0yze7hvbcp5.x.js\\\",\\\"/_next/static/chunks/0zod1seoish6v.js\\\",\\\"/_next/static/chunks/0h9.k2fyk8cqu.js\\\"],\\\"TooltipProvider\\\"]\\n4:I[989144,[\\\"/_next/static/chunks/0vfhqx7irdtsp.js\\\",\\\"/_next/static/chunks/0yze7hvbcp5.x.js\\\",\\\"/_next/static/chunks/0zod1seoish6v.js\\\",\\\"/_next/static/chunks/0h9.k2fyk8cqu.js\\\"],\\\"default\\\"]\\n5:I[818602,[\\\"/_next/static/chunks/0vfhqx7irdtsp.js\\\",\\\"/_next/static/chunks/0yze7hvbcp5.x.js\\\",\\\"/_next/static/chunks/0zod1seoish6v.js\\\",\\\"/_next/static/chunks/0h9.k2fyk8cqu.js\\\"],\\\"default\\\"]\\n6:I[636768,[\\\"/_next/static/chunks/0vfhqx7irdtsp.js\\\",\\\"/_next/static/chunks/0yze7hvbcp5.x.js\\\",\\\"/_next/static/chunks/0zod1seoish6v.js\\\",\\\"/_next/static/chunks/0h9.k2fyk8cqu.js\\\",\\\"/_next/static/chunks/13b9o4nx8cmv5.js\\\"],\\\"default\\\"]\\ne:I[153782,[\\\"/_next/static/chunks/0vfhqx7irdtsp.js\\\",\\\"/_next/static/chunks/0yze7hvbcp5.x.js\\\",\\\"/_next/static/chunks/0zod1seoish6v.js\\\",\\\"/_next/static/chunks/0h9.k2fyk8cqu.js\\\"],\\\"default\\\",1]\\n:HL[\\\"/_next/static/chunks/0x5hulsdcv16j.css\\\",\\\"style\\\"]\\n:HL[\\\"/_next/static/chunks/1375h7jyi~127.css\\\",\\\"style\\\"]\\n:HL[\\\"/_next/static/media/797e433ab948586e-s.p.08e28id.o-okb.woff2\\\",\\\"font\\\",{\\\"crossOrigin\\\":\\\"\\\",\\\"type\\\":\\\"font/woff2\\\"}]\\n:HL[\\\"/_next/static/media/7ebf22b5a21034f8-s.p.10_7676vm7pyy.woff2\\\",\\\"font\\\",{\\\"crossOrigin\\\":\\\"\\\",\\\"type\\\":\\\"font/woff2\\\"}]\\n:HL[\\\"/_next/static/media/caa3a2e1cccd8315-s.p.09~u27dqhyhd6.woff2\\\",\\\"font\\\",{\\\"crossOrigin\\\":\\\"\\\",\\\"type\\\":\\\"font/woff2\\\"}]\\n:HL[\\\"/_next/static/media/e41d5df559864f9e-s.p.0gq7fw9.sy_5..woff2\\\",\\\"font\\\",{\\\"crossOrigin\\\":\\\"\\\",\\\"type\\\":\\\"font/woff2\\\"}]\\n7:Td63,\"])</script><script>self.__next_f.push([1,\"{\\\"@context\\\":\\\"https://schema.org\\\",\\\"@type\\\":\\\"LocalBusiness\\\",\\\"@id\\\":\\\"https://www.digitalapplied.com/#organization\\\",\\\"name\\\":\\\"Digital Applied\\\",\\\"legalName\\\":\\\"Digital Applied, s. r. o.\\\",\\\"url\\\":\\\"https://www.digitalapplied.com\\\",\\\"logo\\\":{\\\"@type\\\":\\\"ImageObject\\\",\\\"url\\\":\\\"https://www.digitalapplied.com/logo-black.svg\\\",\\\"width\\\":\\\"512\\\",\\\"height\\\":\\\"512\\\"},\\\"image\\\":\\\"https://www.digitalapplied.com/opengraph-image\\\",\\\"description\\\":\\\"International digital marketing agency specializing in SEO, PPC, social media marketing, and AI-powered digital transformation for global clients\\\",\\\"foundingDate\\\":\\\"2019-05-01\\\",\\\"telephone\\\":\\\"+421-90-246-8050\\\",\\\"email\\\":\\\"info@digitalapplied.com\\\",\\\"address\\\":{\\\"@type\\\":\\\"PostalAddress\\\",\\\"streetAddress\\\":\\\"Priemyselná 668/7\\\",\\\"addressLocality\\\":\\\"Bratislava\\\",\\\"addressRegion\\\":\\\"Bratislava\\\",\\\"postalCode\\\":\\\"821 09\\\",\\\"addressCountry\\\":\\\"SK\\\"},\\\"geo\\\":{\\\"@type\\\":\\\"GeoCoordinates\\\",\\\"latitude\\\":48.142672,\\\"longitude\\\":17.168666},\\\"sameAs\\\":[\\\"https://x.com/digitalapplied\\\",\\\"https://www.facebook.com/digitalapplied\\\",\\\"https://www.instagram.com/digital_applied\\\",\\\"https://www.linkedin.com/company/digitalapplied\\\"],\\\"areaServed\\\":[{\\\"@type\\\":\\\"Country\\\",\\\"name\\\":\\\"United States\\\"},{\\\"@type\\\":\\\"Country\\\",\\\"name\\\":\\\"United Kingdom\\\"},{\\\"@type\\\":\\\"Country\\\",\\\"name\\\":\\\"Canada\\\"},{\\\"@type\\\":\\\"Country\\\",\\\"name\\\":\\\"Australia\\\"},{\\\"@type\\\":\\\"Place\\\",\\\"name\\\":\\\"European Union\\\"},{\\\"@type\\\":\\\"Place\\\",\\\"name\\\":\\\"Worldwide\\\"}],\\\"priceRange\\\":\\\"€€€-€€€€\\\",\\\"paymentAccepted\\\":[\\\"Credit Card\\\",\\\"Wire Transfer\\\",\\\"PayPal\\\"],\\\"currenciesAccepted\\\":\\\"EUR, USD, GBP\\\",\\\"openingHoursSpecification\\\":[{\\\"@type\\\":\\\"OpeningHoursSpecification\\\",\\\"dayOfWeek\\\":[\\\"Monday\\\",\\\"Tuesday\\\",\\\"Wednesday\\\",\\\"Thursday\\\",\\\"Friday\\\"],\\\"opens\\\":\\\"07:30\\\",\\\"closes\\\":\\\"17:00\\\"},{\\\"@type\\\":\\\"OpeningHoursSpecification\\\",\\\"dayOfWeek\\\":\\\"Saturday\\\",\\\"opens\\\":\\\"08:00\\\",\\\"closes\\\":\\\"11:00\\\"}],\\\"contactPoint\\\":{\\\"@type\\\":\\\"ContactPoint\\\",\\\"telephone\\\":\\\"+421-90-246-8050\\\",\\\"contactType\\\":\\\"customer service\\\",\\\"email\\\":\\\"info@digitalapplied.com\\\",\\\"availableLanguage\\\":[\\\"English\\\",\\\"Slovak\\\"],\\\"areaServed\\\":\\\"Worldwide\\\"},\\\"vatID\\\":\\\"SK2120914510\\\",\\\"taxID\\\":\\\"52125670\\\",\\\"identifier\\\":{\\\"@type\\\":\\\"PropertyValue\\\",\\\"propertyID\\\":\\\"Company ID\\\",\\\"value\\\":\\\"52125670\\\"},\\\"hasOfferCatalog\\\":{\\\"@type\\\":\\\"OfferCatalog\\\",\\\"name\\\":\\\"Digital Marketing Services\\\",\\\"itemListElement\\\":[{\\\"@type\\\":\\\"Offer\\\",\\\"itemOffered\\\":{\\\"@type\\\":\\\"Service\\\",\\\"name\\\":\\\"SEO Optimization\\\",\\\"url\\\":\\\"https://www.digitalapplied.com/services/agentic-seo\\\"}},{\\\"@type\\\":\\\"Offer\\\",\\\"itemOffered\\\":{\\\"@type\\\":\\\"Service\\\",\\\"name\\\":\\\"PPC Advertising\\\",\\\"url\\\":\\\"https://www.digitalapplied.com/services/paid-media\\\"}},{\\\"@type\\\":\\\"Offer\\\",\\\"itemOffered\\\":{\\\"@type\\\":\\\"Service\\\",\\\"name\\\":\\\"Social Media Marketing\\\",\\\"url\\\":\\\"https://www.digitalapplied.com/services/social-media\\\"}},{\\\"@type\\\":\\\"Offer\\\",\\\"itemOffered\\\":{\\\"@type\\\":\\\"Service\\\",\\\"name\\\":\\\"Web Development\\\",\\\"url\\\":\\\"https://www.digitalapplied.com/services/web-development\\\"}},{\\\"@type\\\":\\\"Offer\\\",\\\"itemOffered\\\":{\\\"@type\\\":\\\"Service\\\",\\\"name\\\":\\\"Content Marketing\\\",\\\"url\\\":\\\"https://www.digitalapplied.com/services/content-engine\\\"}},{\\\"@type\\\":\\\"Offer\\\",\\\"itemOffered\\\":{\\\"@type\\\":\\\"Service\\\",\\\"name\\\":\\\"Analytics \\u0026 Insights\\\",\\\"url\\\":\\\"https://www.digitalapplied.com/services/analytics\\\"}},{\\\"@type\\\":\\\"Offer\\\",\\\"itemOffered\\\":{\\\"@type\\\":\\\"Service\\\",\\\"name\\\":\\\"eCommerce Solutions\\\",\\\"url\\\":\\\"https://www.digitalapplied.com/services/ecommerce\\\"}},{\\\"@type\\\":\\\"Offer\\\",\\\"itemOffered\\\":{\\\"@type\\\":\\\"Service\\\",\\\"name\\\":\\\"CRM \\u0026 Automation\\\",\\\"url\\\":\\\"https://www.digitalapplied.com/services/crm-automation\\\"}},{\\\"@type\\\":\\\"Offer\\\",\\\"itemOffered\\\":{\\\"@type\\\":\\\"Service\\\",\\\"name\\\":\\\"AI \\u0026 Digital Transformation\\\",\\\"url\\\":\\\"https://www.digitalapplied.com/services/ai-transformation\\\"}}]}}\"])</script><script>self.__next_f.push([1,\"0:{\\\"P\\\":null,\\\"c\\\":[\\\"\\\",\\\"blog\\\",\\\"agent-identity-credentials-non-human-access-2026-playbook\\\"],\\\"q\\\":\\\"\\\",\\\"i\\\":false,\\\"f\\\":[[[\\\"\\\",{\\\"children\\\":[\\\"(marketing)\\\",{\\\"children\\\":[\\\"blog\\\",{\\\"children\\\":[\\\"agent-identity-credentials-non-human-access-2026-playbook\\\",{\\\"children\\\":[\\\"__PAGE__\\\",{}]}]}]}]},\\\"$undefined\\\",\\\"$undefined\\\",16],[[\\\"$\\\",\\\"$1\\\",\\\"c\\\",{\\\"children\\\":[[[\\\"$\\\",\\\"link\\\",\\\"0\\\",{\\\"rel\\\":\\\"stylesheet\\\",\\\"href\\\":\\\"/_next/static/chunks/0x5hulsdcv16j.css\\\",\\\"precedence\\\":\\\"next\\\",\\\"crossOrigin\\\":\\\"$undefined\\\",\\\"nonce\\\":\\\"$undefined\\\"}],[\\\"$\\\",\\\"link\\\",\\\"1\\\",{\\\"rel\\\":\\\"stylesheet\\\",\\\"href\\\":\\\"/_next/static/chunks/1375h7jyi~127.css\\\",\\\"precedence\\\":\\\"next\\\",\\\"crossOrigin\\\":\\\"$undefined\\\",\\\"nonce\\\":\\\"$undefined\\\"}],[\\\"$\\\",\\\"script\\\",\\\"script-0\\\",{\\\"src\\\":\\\"/_next/static/chunks/0vfhqx7irdtsp.js\\\",\\\"async\\\":true,\\\"nonce\\\":\\\"$undefined\\\"}],[\\\"$\\\",\\\"script\\\",\\\"script-1\\\",{\\\"src\\\":\\\"/_next/static/chunks/0yze7hvbcp5.x.js\\\",\\\"async\\\":true,\\\"nonce\\\":\\\"$undefined\\\"}],[\\\"$\\\",\\\"script\\\",\\\"script-2\\\",{\\\"src\\\":\\\"/_next/static/chunks/0zod1seoish6v.js\\\",\\\"async\\\":true,\\\"nonce\\\":\\\"$undefined\\\"}],[\\\"$\\\",\\\"script\\\",\\\"script-3\\\",{\\\"src\\\":\\\"/_next/static/chunks/0h9.k2fyk8cqu.js\\\",\\\"async\\\":true,\\\"nonce\\\":\\\"$undefined\\\"}]],[\\\"$\\\",\\\"html\\\",null,{\\\"className\\\":\\\"geist_a71539c9-module__T19VSG__variable geist_mono_8d43a2aa-module__8Li5zG__variable instrument_serif_535d8616-module__GDyPrG__variable font-sans\\\",\\\"lang\\\":\\\"en\\\",\\\"children\\\":[[\\\"$\\\",\\\"$L2\\\",null,{\\\"gtmId\\\":\\\"GTM-NGSFB45\\\"}],[\\\"$\\\",\\\"head\\\",null,{\\\"children\\\":[[\\\"$\\\",\\\"link\\\",null,{\\\"href\\\":\\\"/manifest.json\\\",\\\"rel\\\":\\\"manifest\\\"}],[\\\"$\\\",\\\"link\\\",null,{\\\"href\\\":\\\"/feed.xml\\\",\\\"rel\\\":\\\"alternate\\\",\\\"title\\\":\\\"Digital Applied Blog\\\",\\\"type\\\":\\\"application/rss+xml\\\"}],[\\\"$\\\",\\\"meta\\\",null,{\\\"content\\\":\\\"#18181b\\\",\\\"name\\\":\\\"theme-color\\\"}],[\\\"$\\\",\\\"meta\\\",null,{\\\"content\\\":\\\"DigitalApplied\\\",\\\"name\\\":\\\"apple-mobile-web-app-title\\\"}]]}],[\\\"$\\\",\\\"body\\\",null,{\\\"className\\\":\\\"antialiased\\\",\\\"suppressHydrationWarning\\\":true,\\\"children\\\":[\\\"$\\\",\\\"$L3\\\",null,{\\\"children\\\":[\\\"$\\\",\\\"$L4\\\",null,{\\\"parallelRouterKey\\\":\\\"children\\\",\\\"error\\\":\\\"$undefined\\\",\\\"errorStyles\\\":\\\"$undefined\\\",\\\"errorScripts\\\":\\\"$undefined\\\",\\\"template\\\":[\\\"$\\\",\\\"$L5\\\",null,{}],\\\"templateStyles\\\":\\\"$undefined\\\",\\\"templateScripts\\\":\\\"$undefined\\\",\\\"notFound\\\":[[\\\"$\\\",\\\"$L6\\\",null,{}],[]],\\\"forbidden\\\":\\\"$undefined\\\",\\\"unauthorized\\\":\\\"$undefined\\\"}]}]}]]}]]}],{\\\"children\\\":[[\\\"$\\\",\\\"$1\\\",\\\"c\\\",{\\\"children\\\":[[[\\\"$\\\",\\\"script\\\",\\\"script-0\\\",{\\\"src\\\":\\\"/_next/static/chunks/0bok.jphy_~lu.js\\\",\\\"async\\\":true,\\\"nonce\\\":\\\"$undefined\\\"}],[\\\"$\\\",\\\"script\\\",\\\"script-1\\\",{\\\"src\\\":\\\"/_next/static/chunks/039fygmp~-jt3.js\\\",\\\"async\\\":true,\\\"nonce\\\":\\\"$undefined\\\"}]],[[\\\"$\\\",\\\"script\\\",null,{\\\"dangerouslySetInnerHTML\\\":{\\\"__html\\\":\\\"$7\\\"},\\\"type\\\":\\\"application/ld+json\\\"}],\\\"$L8\\\"]]}],{\\\"children\\\":[\\\"$L9\\\",{\\\"children\\\":[\\\"$La\\\",{\\\"children\\\":[\\\"$Lb\\\",{},null,false,null]},null,false,\\\"$@c\\\"]},null,false,null]},null,false,null]},null,false,null],\\\"$Ld\\\",false]],\\\"m\\\":\\\"$undefined\\\",\\\"G\\\":[\\\"$e\\\",[\\\"$Lf\\\",\\\"$L10\\\"]],\\\"S\\\":true,\\\"h\\\":null,\\\"s\\\":\\\"$undefined\\\",\\\"l\\\":\\\"$undefined\\\",\\\"p\\\":\\\"$undefined\\\",\\\"d\\\":\\\"$undefined\\\",\\\"b\\\":\\\"0HHMAUnIFEhQnyhJt2Zxv\\\"}\\n\"])</script><script>self.__next_f.push([1,\"11:I[261824,[\\\"/_next/static/chunks/0vfhqx7irdtsp.js\\\",\\\"/_next/static/chunks/0yze7hvbcp5.x.js\\\",\\\"/_next/static/chunks/0zod1seoish6v.js\\\",\\\"/_next/static/chunks/0h9.k2fyk8cqu.js\\\",\\\"/_next/static/chunks/0bok.jphy_~lu.js\\\",\\\"/_next/static/chunks/039fygmp~-jt3.js\\\"],\\\"LaunchBanner\\\"]\\n12:I[621915,[\\\"/_next/static/chunks/0vfhqx7irdtsp.js\\\",\\\"/_next/static/chunks/0yze7hvbcp5.x.js\\\",\\\"/_next/static/chunks/0zod1seoish6v.js\\\",\\\"/_next/static/chunks/0h9.k2fyk8cqu.js\\\",\\\"/_next/static/chunks/0bok.jphy_~lu.js\\\",\\\"/_next/static/chunks/039fygmp~-jt3.js\\\",\\\"/_next/static/chunks/10xegheq_2_g2.js\\\"],\\\"HoverPrefetchLink\\\"]\\n13:I[103403,[\\\"/_next/static/chunks/0vfhqx7irdtsp.js\\\",\\\"/_next/static/chunks/0yze7hvbcp5.x.js\\\",\\\"/_next/static/chunks/0zod1seoish6v.js\\\",\\\"/_next/static/chunks/0h9.k2fyk8cqu.js\\\",\\\"/_next/static/chunks/0bok.jphy_~lu.js\\\",\\\"/_next/static/chunks/039fygmp~-jt3.js\\\"],\\\"Image\\\"]\\n14:I[489752,[\\\"/_next/static/chunks/0vfhqx7irdtsp.js\\\",\\\"/_next/static/chunks/0yze7hvbcp5.x.js\\\",\\\"/_next/static/chunks/0zod1seoish6v.js\\\",\\\"/_next/static/chunks/0h9.k2fyk8cqu.js\\\",\\\"/_next/static/chunks/0bok.jphy_~lu.js\\\",\\\"/_next/static/chunks/039fygmp~-jt3.js\\\"],\\\"MobileNav\\\"]\\n1f:I[953520,[\\\"/_next/static/chunks/0vfhqx7irdtsp.js\\\",\\\"/_next/static/chunks/0yze7hvbcp5.x.js\\\",\\\"/_next/static/chunks/0zod1seoish6v.js\\\",\\\"/_next/static/chunks/0h9.k2fyk8cqu.js\\\",\\\"/_next/static/chunks/0bok.jphy_~lu.js\\\",\\\"/_next/static/chunks/039fygmp~-jt3.js\\\",\\\"/_next/static/chunks/10xegheq_2_g2.js\\\"],\\\"BlogProgressBar\\\"]\\n2a:I[488518,[\\\"/_next/static/chunks/0vfhqx7irdtsp.js\\\",\\\"/_next/static/chunks/0yze7hvbcp5.x.js\\\",\\\"/_next/static/chunks/0zod1seoish6v.js\\\",\\\"/_next/static/chunks/0h9.k2fyk8cqu.js\\\"],\\\"ViewportBoundary\\\"]\\n2c:I[488518,[\\\"/_next/static/chunks/0vfhqx7irdtsp.js\\\",\\\"/_next/static/chunks/0yze7hvbcp5.x.js\\\",\\\"/_next/static/chunks/0zod1seoish6v.js\\\",\\\"/_next/static/chunks/0h9.k2fyk8cqu.js\\\"],\\\"MetadataBoundary\\\"]\\n2d:\\\"$Sreact.suspense\\\"\\n\"])</script><script>self.__next_f.push([1,\"8:[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"flex min-h-screen flex-col\\\",\\\"children\\\":[[\\\"$\\\",\\\"$L11\\\",null,{}],[\\\"$\\\",\\\"nav\\\",null,{\\\"className\\\":\\\"sticky top-0 z-40 w-full border-border/60 border-b bg-background/80 backdrop-blur-md supports-backdrop-filter:bg-background/70\\\",\\\"children\\\":[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"mx-auto max-w-7xl px-4 md:px-8\\\",\\\"children\\\":[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"flex h-17 items-center justify-between\\\",\\\"children\\\":[[\\\"$\\\",\\\"$L12\\\",null,{\\\"aria-label\\\":\\\"Digital Applied\\\",\\\"className\\\":\\\"flex items-center\\\",\\\"href\\\":\\\"/\\\",\\\"children\\\":[\\\"$\\\",\\\"$L13\\\",null,{\\\"alt\\\":\\\"Digital Applied\\\",\\\"className\\\":\\\"h-6 w-auto\\\",\\\"height\\\":280,\\\"priority\\\":true,\\\"src\\\":\\\"/logo-black.svg\\\",\\\"width\\\":1556}]}],[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"hidden items-center gap-1 md:flex\\\",\\\"children\\\":[[\\\"$\\\",\\\"$L12\\\",\\\"/services\\\",{\\\"className\\\":\\\"rounded-lg px-3.5 py-2 font-medium text-[13.5px] text-zinc-800 transition-colors hover:bg-muted\\\",\\\"href\\\":\\\"/services\\\",\\\"children\\\":\\\"Services\\\"}],[\\\"$\\\",\\\"$L12\\\",\\\"/ai-tools\\\",{\\\"className\\\":\\\"rounded-lg px-3.5 py-2 font-medium text-[13.5px] text-zinc-800 transition-colors hover:bg-muted\\\",\\\"href\\\":\\\"/ai-tools\\\",\\\"children\\\":\\\"AI Tools\\\"}],[\\\"$\\\",\\\"$L12\\\",\\\"/blog\\\",{\\\"className\\\":\\\"rounded-lg px-3.5 py-2 font-medium text-[13.5px] text-zinc-800 transition-colors hover:bg-muted\\\",\\\"href\\\":\\\"/blog\\\",\\\"children\\\":\\\"Blog\\\"}],[\\\"$\\\",\\\"$L12\\\",\\\"/about\\\",{\\\"className\\\":\\\"rounded-lg px-3.5 py-2 font-medium text-[13.5px] text-zinc-800 transition-colors hover:bg-muted\\\",\\\"href\\\":\\\"/about\\\",\\\"children\\\":\\\"About\\\"}],[\\\"$\\\",\\\"$L12\\\",\\\"/contact\\\",{\\\"className\\\":\\\"rounded-lg px-3.5 py-2 font-medium text-[13.5px] text-zinc-800 transition-colors hover:bg-muted\\\",\\\"href\\\":\\\"/contact\\\",\\\"children\\\":\\\"Contact\\\"}]]}],[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"hidden items-center gap-2.5 md:flex\\\",\\\"children\\\":[[\\\"$\\\",\\\"$L12\\\",null,{\\\"className\\\":\\\"rounded-lg px-3.5 py-2 font-medium text-[13.5px] text-zinc-800 transition-colors hover:bg-muted\\\",\\\"href\\\":\\\"/auth/login\\\",\\\"children\\\":\\\"Log in\\\"}],[\\\"$\\\",\\\"$L12\\\",null,{\\\"href\\\":\\\"/get-started\\\",\\\"children\\\":\\\"Start engines\\\",\\\"data-slot\\\":\\\"button\\\",\\\"data-variant\\\":\\\"default\\\",\\\"data-size\\\":\\\"sm\\\",\\\"className\\\":\\\"group/button inline-flex shrink-0 items-center justify-center border border-transparent bg-clip-padding text-sm font-medium whitespace-nowrap transition-all outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 active:not-aria-[haspopup]:translate-y-px disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [\\u0026_svg]:pointer-events-none [\\u0026_svg]:shrink-0 [\\u0026_svg:not([class*='size-'])]:size-4 bg-primary text-primary-foreground hover:bg-primary/80 gap-1 in-data-[slot=button-group]:rounded-md has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 h-9.5 rounded-lg px-4\\\",\\\"ref\\\":null}]]}],[\\\"$\\\",\\\"$L14\\\",null,{\\\"items\\\":[{\\\"href\\\":\\\"/services\\\",\\\"label\\\":\\\"Services\\\"},{\\\"href\\\":\\\"/ai-tools\\\",\\\"label\\\":\\\"AI Tools\\\"},{\\\"href\\\":\\\"/blog\\\",\\\"label\\\":\\\"Blog\\\"},{\\\"href\\\":\\\"/about\\\",\\\"label\\\":\\\"About\\\"},{\\\"href\\\":\\\"/contact\\\",\\\"label\\\":\\\"Contact\\\"}]}]]}]}]}],[\\\"$\\\",\\\"main\\\",null,{\\\"className\\\":\\\"grow\\\",\\\"children\\\":[\\\"$\\\",\\\"$L4\\\",null,{\\\"parallelRouterKey\\\":\\\"children\\\",\\\"error\\\":\\\"$undefined\\\",\\\"errorStyles\\\":\\\"$undefined\\\",\\\"errorScripts\\\":\\\"$undefined\\\",\\\"template\\\":[\\\"$\\\",\\\"$L5\\\",null,{}],\\\"templateStyles\\\":\\\"$undefined\\\",\\\"templateScripts\\\":\\\"$undefined\\\",\\\"notFound\\\":[[\\\"$\\\",\\\"$L6\\\",null,{}],[]],\\\"forbidden\\\":\\\"$undefined\\\",\\\"unauthorized\\\":\\\"$undefined\\\"}]}],[\\\"$\\\",\\\"footer\\\",null,{\\\"className\\\":\\\"border-white/10 border-t bg-[#0a0a0b] py-16 text-white/60\\\",\\\"children\\\":[[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"mx-auto grid max-w-7xl gap-12 px-4 md:px-8 lg:grid-cols-[1.4fr_1fr_1fr_1fr_1fr]\\\",\\\"children\\\":[[\\\"$\\\",\\\"div\\\",null,{\\\"children\\\":[[\\\"$\\\",\\\"$L12\\\",null,{\\\"aria-label\\\":\\\"Digital Applied\\\",\\\"className\\\":\\\"inline-block\\\",\\\"href\\\":\\\"/\\\",\\\"children\\\":[\\\"$\\\",\\\"$L13\\\",null,{\\\"alt\\\":\\\"Digital Applied\\\",\\\"height\\\":40,\\\"src\\\":\\\"/logo-white.svg\\\",\\\"style\\\":{\\\"height\\\":24,\\\"width\\\":\\\"auto\\\"},\\\"width\\\":160}]}],[\\\"$\\\",\\\"p\\\",null,{\\\"className\\\":\\\"mt-4 max-w-[320px] text-sm leading-relaxed\\\",\\\"children\\\":\\\"An agentic growth partner for teams that would rather ship than schedule. Full-service digital marketing, delivered in days.\\\"}],[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"mt-6\\\",\\\"children\\\":[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"flex gap-4 text-white/50\\\",\\\"children\\\":[\\\"$L15\\\",\\\"$L16\\\",\\\"$L17\\\",\\\"$L18\\\"]}]}]]}],\\\"$L19\\\",\\\"$L1a\\\",\\\"$L1b\\\",\\\"$L1c\\\"]}],\\\"$L1d\\\"]}]]}]\\n\"])</script><script>self.__next_f.push([1,\"9:[\\\"$\\\",\\\"$1\\\",\\\"c\\\",{\\\"children\\\":[null,[\\\"$\\\",\\\"$L4\\\",null,{\\\"parallelRouterKey\\\":\\\"children\\\",\\\"error\\\":\\\"$undefined\\\",\\\"errorStyles\\\":\\\"$undefined\\\",\\\"errorScripts\\\":\\\"$undefined\\\",\\\"template\\\":[\\\"$\\\",\\\"$L5\\\",null,{}],\\\"templateStyles\\\":\\\"$undefined\\\",\\\"templateScripts\\\":\\\"$undefined\\\",\\\"notFound\\\":\\\"$undefined\\\",\\\"forbidden\\\":\\\"$undefined\\\",\\\"unauthorized\\\":\\\"$undefined\\\"}]]}]\\na:[\\\"$\\\",\\\"$1\\\",\\\"c\\\",{\\\"children\\\":[null,[\\\"$\\\",\\\"$L4\\\",null,{\\\"parallelRouterKey\\\":\\\"children\\\",\\\"error\\\":\\\"$undefined\\\",\\\"errorStyles\\\":\\\"$undefined\\\",\\\"errorScripts\\\":\\\"$undefined\\\",\\\"template\\\":[\\\"$\\\",\\\"$L5\\\",null,{}],\\\"templateStyles\\\":\\\"$undefined\\\",\\\"templateScripts\\\":\\\"$undefined\\\",\\\"notFound\\\":\\\"$undefined\\\",\\\"forbidden\\\":\\\"$undefined\\\",\\\"unauthorized\\\":\\\"$undefined\\\"}]]}]\\n1e:T6fb,\"])</script><script>self.__next_f.push([1,\"{\\\"@context\\\":\\\"https://schema.org\\\",\\\"@type\\\":\\\"BlogPosting\\\",\\\"@id\\\":\\\"https://www.digitalapplied.com/blog/agent-identity-credentials-non-human-access-2026-playbook#article\\\",\\\"headline\\\":\\\"Giving Agents Their Own Identity, Not Your Credentials\\\",\\\"description\\\":\\\"Agents that inherit a human session or API key make every action unrevocable without locking the human out. Short-lived, per-run workload credentials fix that.\\\",\\\"url\\\":\\\"https://www.digitalapplied.com/blog/agent-identity-credentials-non-human-access-2026-playbook\\\",\\\"datePublished\\\":\\\"2026-07-26T00:00:00+01:00\\\",\\\"dateModified\\\":\\\"2026-07-26T00:00:00+01:00\\\",\\\"author\\\":{\\\"@type\\\":\\\"Organization\\\",\\\"@id\\\":\\\"https://www.digitalapplied.com/authors/digital-applied-team#author\\\",\\\"name\\\":\\\"Digital Applied Team\\\",\\\"url\\\":\\\"https://www.digitalapplied.com/authors/digital-applied-team\\\"},\\\"publisher\\\":{\\\"@id\\\":\\\"https://www.digitalapplied.com/#organization\\\"},\\\"image\\\":{\\\"@type\\\":\\\"ImageObject\\\",\\\"url\\\":\\\"https://www.digitalapplied.com/blog/agent-identity-credentials-non-human-access-2026-playbook/article-image\\\"},\\\"mainEntityOfPage\\\":{\\\"@type\\\":\\\"WebPage\\\",\\\"@id\\\":\\\"https://www.digitalapplied.com/blog/agent-identity-credentials-non-human-access-2026-playbook#webpage\\\"},\\\"isPartOf\\\":{\\\"@id\\\":\\\"https://www.digitalapplied.com/#website\\\"},\\\"articleSection\\\":\\\"CRM \\u0026 Automation\\\",\\\"keywords\\\":\\\"agent identity credentials, non-human identity management, SPIFFE SVID short-lived credentials, workload identity federation agents, GitHub App installation token scope, AWS IAM Roles Anywhere, AI agent audit trail\\\",\\\"about\\\":[{\\\"@type\\\":\\\"Thing\\\",\\\"name\\\":\\\"agent-identity\\\"},{\\\"@type\\\":\\\"Thing\\\",\\\"name\\\":\\\"non-human-identity\\\"},{\\\"@type\\\":\\\"Thing\\\",\\\"name\\\":\\\"workload-identity\\\"},{\\\"@type\\\":\\\"Thing\\\",\\\"name\\\":\\\"spiffe\\\"},{\\\"@type\\\":\\\"Thing\\\",\\\"name\\\":\\\"oauth\\\"},{\\\"@type\\\":\\\"Thing\\\",\\\"name\\\":\\\"access-control\\\"},{\\\"@type\\\":\\\"Thing\\\",\\\"name\\\":\\\"audit-logging\\\"}]}\"])</script><script>self.__next_f.push([1,\"b:[\\\"$\\\",\\\"$1\\\",\\\"c\\\",{\\\"children\\\":[[[[\\\"$\\\",\\\"script\\\",\\\"blog-schema-BlogPosting-0\\\",{\\\"dangerouslySetInnerHTML\\\":{\\\"__html\\\":\\\"$1e\\\"},\\\"type\\\":\\\"application/ld+json\\\"}],[\\\"$\\\",\\\"script\\\",\\\"blog-schema-BreadcrumbList-1\\\",{\\\"dangerouslySetInnerHTML\\\":{\\\"__html\\\":\\\"{\\\\\\\"@context\\\\\\\":\\\\\\\"https://schema.org\\\\\\\",\\\\\\\"@type\\\\\\\":\\\\\\\"BreadcrumbList\\\\\\\",\\\\\\\"itemListElement\\\\\\\":[{\\\\\\\"@type\\\\\\\":\\\\\\\"ListItem\\\\\\\",\\\\\\\"position\\\\\\\":1,\\\\\\\"name\\\\\\\":\\\\\\\"Home\\\\\\\",\\\\\\\"item\\\\\\\":\\\\\\\"https://www.digitalapplied.com/\\\\\\\"},{\\\\\\\"@type\\\\\\\":\\\\\\\"ListItem\\\\\\\",\\\\\\\"position\\\\\\\":2,\\\\\\\"name\\\\\\\":\\\\\\\"Blog\\\\\\\",\\\\\\\"item\\\\\\\":\\\\\\\"https://www.digitalapplied.com/blog\\\\\\\"},{\\\\\\\"@type\\\\\\\":\\\\\\\"ListItem\\\\\\\",\\\\\\\"position\\\\\\\":3,\\\\\\\"name\\\\\\\":\\\\\\\"CRM \\u0026 Automation\\\\\\\",\\\\\\\"item\\\\\\\":\\\\\\\"https://www.digitalapplied.com/blog/category/crm-automation\\\\\\\"},{\\\\\\\"@type\\\\\\\":\\\\\\\"ListItem\\\\\\\",\\\\\\\"position\\\\\\\":4,\\\\\\\"name\\\\\\\":\\\\\\\"Giving Agents Their Own Identity, Not Your Credentials\\\\\\\"}]}\\\"},\\\"type\\\":\\\"application/ld+json\\\"}]],[\\\"$\\\",\\\"$L1f\\\",null,{}],[\\\"$\\\",\\\"nav\\\",null,{\\\"aria-label\\\":\\\"Breadcrumb\\\",\\\"className\\\":\\\"border-white/5 border-b bg-[#0a0a0b] text-white/55\\\",\\\"children\\\":[\\\"$\\\",\\\"ol\\\",null,{\\\"className\\\":\\\"mx-auto flex max-w-[1320px] items-center gap-2 px-4 py-3.5 font-mono text-[11px] uppercase tracking-[0.1em] md:px-8\\\",\\\"children\\\":[[\\\"$\\\",\\\"li\\\",\\\"Home\\\",{\\\"className\\\":\\\"flex items-center gap-2\\\",\\\"children\\\":[[\\\"$\\\",\\\"$L12\\\",null,{\\\"className\\\":\\\"transition-colors hover:text-ignition-2\\\",\\\"href\\\":\\\"/\\\",\\\"children\\\":\\\"Home\\\"}],[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"text-white/25\\\",\\\"children\\\":\\\"/\\\"}]]}],[\\\"$\\\",\\\"li\\\",\\\"Blog\\\",{\\\"className\\\":\\\"flex items-center gap-2\\\",\\\"children\\\":[[\\\"$\\\",\\\"$L12\\\",null,{\\\"className\\\":\\\"transition-colors hover:text-ignition-2\\\",\\\"href\\\":\\\"/blog\\\",\\\"children\\\":\\\"Blog\\\"}],[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"text-white/25\\\",\\\"children\\\":\\\"/\\\"}]]}],[\\\"$\\\",\\\"li\\\",\\\"CRM \\u0026 Automation\\\",{\\\"className\\\":\\\"flex items-center gap-2\\\",\\\"children\\\":[[\\\"$\\\",\\\"$L12\\\",null,{\\\"className\\\":\\\"transition-colors hover:text-ignition-2\\\",\\\"href\\\":\\\"/blog/category/crm-automation\\\",\\\"children\\\":\\\"CRM \\u0026 Automation\\\"}],\\\"$L20\\\"]}],\\\"$L21\\\"]}]}],\\\"$L22\\\",\\\"$L23\\\",\\\"$L24\\\",\\\"$L25\\\",\\\"$L26\\\"],[\\\"$L27\\\"],\\\"$L28\\\"]}]\\n\"])</script><script>self.__next_f.push([1,\"29:[]\\nc:\\\"$W29\\\"\\nd:[\\\"$\\\",\\\"$1\\\",\\\"h\\\",{\\\"children\\\":[null,[\\\"$\\\",\\\"$L2a\\\",null,{\\\"children\\\":\\\"$L2b\\\"}],[\\\"$\\\",\\\"div\\\",null,{\\\"hidden\\\":true,\\\"children\\\":[\\\"$\\\",\\\"$L2c\\\",null,{\\\"children\\\":[\\\"$\\\",\\\"$2d\\\",null,{\\\"name\\\":\\\"Next.Metadata\\\",\\\"children\\\":\\\"$L2e\\\"}]}]}],[\\\"$\\\",\\\"meta\\\",null,{\\\"name\\\":\\\"next-size-adjust\\\",\\\"content\\\":\\\"\\\"}]]}]\\nf:[\\\"$\\\",\\\"link\\\",\\\"0\\\",{\\\"rel\\\":\\\"stylesheet\\\",\\\"href\\\":\\\"/_next/static/chunks/0x5hulsdcv16j.css\\\",\\\"precedence\\\":\\\"next\\\",\\\"crossOrigin\\\":\\\"$undefined\\\",\\\"nonce\\\":\\\"$undefined\\\"}]\\n10:[\\\"$\\\",\\\"link\\\",\\\"1\\\",{\\\"rel\\\":\\\"stylesheet\\\",\\\"href\\\":\\\"/_next/static/chunks/1375h7jyi~127.css\\\",\\\"precedence\\\":\\\"next\\\",\\\"crossOrigin\\\":\\\"$undefined\\\",\\\"nonce\\\":\\\"$undefined\\\"}]\\n\"])</script><script>self.__next_f.push([1,\"2f:I[960562,[\\\"/_next/static/chunks/0vfhqx7irdtsp.js\\\",\\\"/_next/static/chunks/0yze7hvbcp5.x.js\\\",\\\"/_next/static/chunks/0zod1seoish6v.js\\\",\\\"/_next/static/chunks/0h9.k2fyk8cqu.js\\\",\\\"/_next/static/chunks/0bok.jphy_~lu.js\\\",\\\"/_next/static/chunks/039fygmp~-jt3.js\\\",\\\"/_next/static/chunks/10xegheq_2_g2.js\\\"],\\\"\\\"]\\n32:I[485094,[\\\"/_next/static/chunks/0vfhqx7irdtsp.js\\\",\\\"/_next/static/chunks/0yze7hvbcp5.x.js\\\",\\\"/_next/static/chunks/0zod1seoish6v.js\\\",\\\"/_next/static/chunks/0h9.k2fyk8cqu.js\\\",\\\"/_next/static/chunks/0bok.jphy_~lu.js\\\",\\\"/_next/static/chunks/039fygmp~-jt3.js\\\",\\\"/_next/static/chunks/10xegheq_2_g2.js\\\"],\\\"BlogToc\\\"]\\n54:I[529530,[\\\"/_next/static/chunks/0vfhqx7irdtsp.js\\\",\\\"/_next/static/chunks/0yze7hvbcp5.x.js\\\",\\\"/_next/static/chunks/0zod1seoish6v.js\\\",\\\"/_next/static/chunks/0h9.k2fyk8cqu.js\\\",\\\"/_next/static/chunks/0bok.jphy_~lu.js\\\",\\\"/_next/static/chunks/039fygmp~-jt3.js\\\",\\\"/_next/static/chunks/10xegheq_2_g2.js\\\"],\\\"default\\\"]\\n58:I[827892,[\\\"/_next/static/chunks/0vfhqx7irdtsp.js\\\",\\\"/_next/static/chunks/0yze7hvbcp5.x.js\\\",\\\"/_next/static/chunks/0zod1seoish6v.js\\\",\\\"/_next/static/chunks/0h9.k2fyk8cqu.js\\\",\\\"/_next/static/chunks/0bok.jphy_~lu.js\\\",\\\"/_next/static/chunks/039fygmp~-jt3.js\\\",\\\"/_next/static/chunks/10xegheq_2_g2.js\\\"],\\\"BlogFaq\\\"]\\n5f:I[488518,[\\\"/_next/static/chunks/0vfhqx7irdtsp.js\\\",\\\"/_next/static/chunks/0yze7hvbcp5.x.js\\\",\\\"/_next/static/chunks/0zod1seoish6v.js\\\",\\\"/_next/static/chunks/0h9.k2fyk8cqu.js\\\"],\\\"OutletBoundary\\\"]\\n15:[\\\"$\\\",\\\"$L2f\\\",null,{\\\"aria-label\\\":\\\"Follow us on X (Twitter)\\\",\\\"className\\\":\\\"text-muted-foreground transition-colors hover:text-foreground\\\",\\\"href\\\":\\\"https://x.com/digitalapplied\\\",\\\"rel\\\":\\\"noopener noreferrer\\\",\\\"target\\\":\\\"_blank\\\",\\\"children\\\":[\\\"$\\\",\\\"svg\\\",null,{\\\"className\\\":\\\"h-5 w-5 text-white/50 hover:text-white transition-colors\\\",\\\"fill\\\":\\\"currentColor\\\",\\\"viewBox\\\":\\\"0 0 24 24\\\",\\\"children\\\":[[\\\"$\\\",\\\"title\\\",null,{\\\"children\\\":\\\"X (Twitter)\\\"}],[\\\"$\\\",\\\"path\\\",null,{\\\"d\\\":\\\"M18.244 2.25h3.308l-7.227 8.26 8.502 11.24H16.17l-5.214-6.817L4.99 21.75H1.68l7.73-8.835L1.254 2.25H8.08l4.713 6.231zm-1.161 17.52h1.833L7.084 4.126H5.117z\\\"}]]}]}]\\n16:[\\\"$\\\",\\\"$L2f\\\",null,{\\\"aria-label\\\":\\\"Follow us on Facebook\\\",\\\"className\\\":\\\"text-muted-foreground transition-colors hover:text-foreground\\\",\\\"href\\\":\\\"https://www.facebook.com/digitalapplied\\\",\\\"rel\\\":\\\"noopener noreferrer\\\",\\\"target\\\":\\\"_blank\\\",\\\"children\\\":[\\\"$\\\",\\\"svg\\\",null,{\\\"className\\\":\\\"h-5 w-5 text-white/50 hover:text-white transition-colors\\\",\\\"fill\\\":\\\"currentColor\\\",\\\"viewBox\\\":\\\"0 0 24 24\\\",\\\"children\\\":[[\\\"$\\\",\\\"title\\\",null,{\\\"children\\\":\\\"Facebook\\\"}],[\\\"$\\\",\\\"path\\\",null,{\\\"d\\\":\\\"M24 12.073c0-6.627-5.373-12-12-12s-12 5.373-12 12c0 5.99 4.388 10.954 10.125 11.854v-8.385H7.078v-3.47h3.047V9.43c0-3.007 1.792-4.669 4.533-4.669 1.312 0 2.686.235 2.686.235v2.953H15.83c-1.491 0-1.956.925-1.956 1.874v2.25h3.328l-.532 3.47h-2.796v8.385C19.612 23.027 24 18.062 24 12.073z\\\"}]]}]}]\\n\"])</script><script>self.__next_f.push([1,\"17:[\\\"$\\\",\\\"$L2f\\\",null,{\\\"aria-label\\\":\\\"Follow us on Instagram\\\",\\\"className\\\":\\\"text-muted-foreground transition-colors hover:text-foreground\\\",\\\"href\\\":\\\"https://www.instagram.com/digital_applied\\\",\\\"rel\\\":\\\"noopener noreferrer\\\",\\\"target\\\":\\\"_blank\\\",\\\"children\\\":[\\\"$\\\",\\\"svg\\\",null,{\\\"className\\\":\\\"h-5 w-5 text-white/50 hover:text-white transition-colors\\\",\\\"fill\\\":\\\"currentColor\\\",\\\"viewBox\\\":\\\"0 0 24 24\\\",\\\"children\\\":[[\\\"$\\\",\\\"title\\\",null,{\\\"children\\\":\\\"Instagram\\\"}],[\\\"$\\\",\\\"path\\\",null,{\\\"d\\\":\\\"M12 2.163c3.204 0 3.584.012 4.85.07 3.252.148 4.771 1.691 4.919 4.919.058 1.265.069 1.645.069 4.849 0 3.205-.012 3.584-.069 4.849-.149 3.225-1.664 4.771-4.919 4.919-1.266.058-1.644.07-4.85.07-3.204 0-3.584-.012-4.849-.07-3.26-.149-4.771-1.699-4.919-4.92-.058-1.265-.07-1.644-.07-4.849 0-3.204.013-3.583.07-4.849.149-3.227 1.664-4.771 4.919-4.919 1.266-.057 1.645-.069 4.849-.069zm0-2.163c-3.259 0-3.667.014-4.947.072-4.358.2-6.78 2.618-6.98 6.98-.059 1.281-.073 1.689-.073 4.948 0 3.259.014 3.668.072 4.948.2 4.358 2.618 6.78 6.98 6.98 1.281.058 1.689.072 4.948.072 3.259 0 3.668-.014 4.948-.072 4.354-.2 6.782-2.618 6.979-6.98.059-1.28.073-1.689.073-4.948 0-3.259-.014-3.667-.072-4.947-.196-4.354-2.617-6.78-6.979-6.98-1.281-.059-1.69-.073-4.949-.073zM5.838 12a6.162 6.162 0 1112.324 0 6.162 6.162 0 01-12.324 0zM12 16a4 4 0 110-8 4 4 0 010 8zm4.965-10.405a1.44 1.44 0 112.881.001 1.44 1.44 0 01-2.881-.001z\\\"}]]}]}]\\n\"])</script><script>self.__next_f.push([1,\"18:[\\\"$\\\",\\\"$L2f\\\",null,{\\\"aria-label\\\":\\\"Follow us on LinkedIn\\\",\\\"className\\\":\\\"text-muted-foreground transition-colors hover:text-foreground\\\",\\\"href\\\":\\\"https://www.linkedin.com/company/digitalapplied\\\",\\\"rel\\\":\\\"noopener noreferrer\\\",\\\"target\\\":\\\"_blank\\\",\\\"children\\\":[\\\"$\\\",\\\"svg\\\",null,{\\\"className\\\":\\\"h-5 w-5 text-white/50 hover:text-white transition-colors\\\",\\\"fill\\\":\\\"currentColor\\\",\\\"viewBox\\\":\\\"0 0 24 24\\\",\\\"children\\\":[[\\\"$\\\",\\\"title\\\",null,{\\\"children\\\":\\\"LinkedIn\\\"}],[\\\"$\\\",\\\"path\\\",null,{\\\"d\\\":\\\"M20.447 20.452h-3.554v-5.569c0-1.328-.027-3.037-1.852-3.037-1.853 0-2.136 1.445-2.136 2.939v5.667H9.351V9h3.414v1.561h.046c.477-.9 1.637-1.85 3.37-1.85 3.601 0 4.267 2.37 4.267 5.455v6.286zM5.337 7.433c-1.144 0-2.063-.926-2.063-2.065 0-1.138.92-2.063 2.063-2.063 1.14 0 2.064.925 2.064 2.063 0 1.139-.925 2.065-2.064 2.065zm1.782 13.019H3.555V9h3.564v11.452zM22.225 0H1.771C.792 0 0 .774 0 1.729v20.542C0 23.227.792 24 1.771 24h20.451C23.2 24 24 23.227 24 22.271V1.729C24 .774 23.2 0 22.222 0h.003z\\\"}]]}]}]\\n19:[\\\"$\\\",\\\"div\\\",null,{\\\"children\\\":[[\\\"$\\\",\\\"h5\\\",null,{\\\"className\\\":\\\"mb-4 font-medium font-mono text-[13px] text-white uppercase tracking-[0.08em]\\\",\\\"children\\\":\\\"Services\\\"}],[\\\"$\\\",\\\"ul\\\",null,{\\\"className\\\":\\\"space-y-1\\\",\\\"children\\\":[[\\\"$\\\",\\\"li\\\",\\\"/services/agentic-seo\\\",{\\\"children\\\":[\\\"$\\\",\\\"$L12\\\",null,{\\\"className\\\":\\\"block py-1 text-sm transition-colors hover:text-white\\\",\\\"href\\\":\\\"/services/agentic-seo\\\",\\\"children\\\":\\\"SEO\\\"}]}],[\\\"$\\\",\\\"li\\\",\\\"/services/paid-media\\\",{\\\"children\\\":[\\\"$\\\",\\\"$L12\\\",null,{\\\"className\\\":\\\"block py-1 text-sm transition-colors hover:text-white\\\",\\\"href\\\":\\\"/services/paid-media\\\",\\\"children\\\":\\\"PPC\\\"}]}],[\\\"$\\\",\\\"li\\\",\\\"/services/content-engine\\\",{\\\"children\\\":[\\\"$\\\",\\\"$L12\\\",null,{\\\"className\\\":\\\"block py-1 text-sm transition-colors hover:text-white\\\",\\\"href\\\":\\\"/services/content-engine\\\",\\\"children\\\":\\\"Content\\\"}]}],[\\\"$\\\",\\\"li\\\",\\\"/services/web-development\\\",{\\\"children\\\":[\\\"$\\\",\\\"$L12\\\",null,{\\\"className\\\":\\\"block py-1 text-sm transition-colors hover:text-white\\\",\\\"href\\\":\\\"/services/web-development\\\",\\\"children\\\":\\\"Web Dev\\\"}]}],[\\\"$\\\",\\\"li\\\",\\\"/services/crm-automation\\\",{\\\"children\\\":[\\\"$\\\",\\\"$L12\\\",null,{\\\"className\\\":\\\"block py-1 text-sm transition-colors hover:text-white\\\",\\\"href\\\":\\\"/services/crm-automation\\\",\\\"children\\\":\\\"CRM\\\"}]}]]}]]}]\\n1a:[\\\"$\\\",\\\"div\\\",null,{\\\"children\\\":[[\\\"$\\\",\\\"h5\\\",null,{\\\"className\\\":\\\"mb-4 font-medium font-mono text-[13px] text-white uppercase tracking-[0.08em]\\\",\\\"children\\\":\\\"Company\\\"}],[\\\"$\\\",\\\"ul\\\",null,{\\\"className\\\":\\\"space-y-1\\\",\\\"children\\\":[[\\\"$\\\",\\\"li\\\",\\\"/about\\\",{\\\"children\\\":[\\\"$\\\",\\\"$L12\\\",null,{\\\"className\\\":\\\"block py-1 text-sm transition-colors hover:text-white\\\",\\\"href\\\":\\\"/about\\\",\\\"children\\\":\\\"About\\\"}]}],[\\\"$\\\",\\\"li\\\",\\\"/#process\\\",{\\\"children\\\":[\\\"$\\\",\\\"$L12\\\",null,{\\\"className\\\":\\\"block py-1 text-sm transition-colors hover:text-white\\\",\\\"href\\\":\\\"/#process\\\",\\\"children\\\":\\\"Process\\\"}]}],[\\\"$\\\",\\\"li\\\",\\\"/contact\\\",{\\\"children\\\":[\\\"$\\\",\\\"$L12\\\",null,{\\\"className\\\":\\\"block py-1 text-sm transition-colors hover:text-white\\\",\\\"href\\\":\\\"/contact\\\",\\\"children\\\":\\\"Contact\\\"}]}]]}]]}]\\n1b:[\\\"$\\\",\\\"div\\\",null,{\\\"children\\\":[[\\\"$\\\",\\\"h5\\\",null,{\\\"className\\\":\\\"mb-4 font-medium font-mono text-[13px] text-white uppercase tracking-[0.08em]\\\",\\\"children\\\":\\\"Resources\\\"}],[\\\"$\\\",\\\"ul\\\",null,{\\\"className\\\":\\\"space-y-1\\\",\\\"children\\\":[[\\\"$\\\",\\\"li\\\",\\\"/blog\\\",{\\\"children\\\":[\\\"$\\\",\\\"$L12\\\",null,{\\\"className\\\":\\\"block py-1 text-sm transition-colors hover:text-white\\\",\\\"href\\\":\\\"/blog\\\",\\\"children\\\":\\\"Blog\\\"}]}],[\\\"$\\\",\\\"li\\\",\\\"/ai-tools\\\",{\\\"children\\\":[\\\"$\\\",\\\"$L12\\\",null,{\\\"className\\\":\\\"block py-1 text-sm transition-colors hover:text-white\\\",\\\"href\\\":\\\"/ai-tools\\\",\\\"children\\\":\\\"AI Tools\\\"}]}],[\\\"$\\\",\\\"li\\\",\\\"/privacy-policy\\\",{\\\"children\\\":[\\\"$\\\",\\\"$L12\\\",null,{\\\"className\\\":\\\"block py-1 text-sm transition-colors hover:text-white\\\",\\\"href\\\":\\\"/privacy-policy\\\",\\\"children\\\":\\\"Privacy\\\"}]}],[\\\"$\\\",\\\"li\\\",\\\"/terms-of-service\\\",{\\\"children\\\":[\\\"$\\\",\\\"$L12\\\",null,{\\\"className\\\":\\\"block py-1 text-sm transition-colors hover:text-white\\\",\\\"href\\\":\\\"/terms-of-service\\\",\\\"children\\\":\\\"Terms\\\"}]}]]}]]}]\\n\"])</script><script>self.__next_f.push([1,\"1c:[\\\"$\\\",\\\"div\\\",null,{\\\"children\\\":[[\\\"$\\\",\\\"h5\\\",null,{\\\"className\\\":\\\"mb-4 font-medium font-mono text-[13px] text-white uppercase tracking-[0.08em]\\\",\\\"children\\\":\\\"Topics\\\"}],[\\\"$\\\",\\\"ul\\\",null,{\\\"className\\\":\\\"space-y-1\\\",\\\"children\\\":[[\\\"$\\\",\\\"li\\\",\\\"/blog/category/ai-development\\\",{\\\"children\\\":[\\\"$\\\",\\\"$L12\\\",null,{\\\"className\\\":\\\"block py-1 text-sm transition-colors hover:text-white\\\",\\\"href\\\":\\\"/blog/category/ai-development\\\",\\\"children\\\":\\\"AI Development\\\"}]}],[\\\"$\\\",\\\"li\\\",\\\"/blog/category/seo\\\",{\\\"children\\\":[\\\"$\\\",\\\"$L12\\\",null,{\\\"className\\\":\\\"block py-1 text-sm transition-colors hover:text-white\\\",\\\"href\\\":\\\"/blog/category/seo\\\",\\\"children\\\":\\\"SEO\\\"}]}],[\\\"$\\\",\\\"li\\\",\\\"/blog/category/marketing\\\",{\\\"children\\\":[\\\"$\\\",\\\"$L12\\\",null,{\\\"className\\\":\\\"block py-1 text-sm transition-colors hover:text-white\\\",\\\"href\\\":\\\"/blog/category/marketing\\\",\\\"children\\\":\\\"Marketing\\\"}]}],[\\\"$\\\",\\\"li\\\",\\\"/blog/category/ecommerce\\\",{\\\"children\\\":[\\\"$\\\",\\\"$L12\\\",null,{\\\"className\\\":\\\"block py-1 text-sm transition-colors hover:text-white\\\",\\\"href\\\":\\\"/blog/category/ecommerce\\\",\\\"children\\\":\\\"eCommerce\\\"}]}],[\\\"$\\\",\\\"li\\\",\\\"/blog/category/business\\\",{\\\"children\\\":[\\\"$\\\",\\\"$L12\\\",null,{\\\"className\\\":\\\"block py-1 text-sm transition-colors hover:text-white\\\",\\\"href\\\":\\\"/blog/category/business\\\",\\\"children\\\":\\\"Business\\\"}]}],[\\\"$\\\",\\\"li\\\",\\\"/blog/category/crm-automation\\\",{\\\"children\\\":[\\\"$\\\",\\\"$L12\\\",null,{\\\"className\\\":\\\"block py-1 text-sm transition-colors hover:text-white\\\",\\\"href\\\":\\\"/blog/category/crm-automation\\\",\\\"children\\\":\\\"CRM \\u0026 Automation\\\"}]}],[\\\"$\\\",\\\"li\\\",\\\"/blog/category/development\\\",{\\\"children\\\":[\\\"$\\\",\\\"$L12\\\",null,{\\\"className\\\":\\\"block py-1 text-sm transition-colors hover:text-white\\\",\\\"href\\\":\\\"/blog/category/development\\\",\\\"children\\\":\\\"Development\\\"}]}],[\\\"$\\\",\\\"li\\\",\\\"/blog/tags\\\",{\\\"children\\\":[\\\"$\\\",\\\"$L12\\\",null,{\\\"className\\\":\\\"block py-1 text-sm transition-colors hover:text-white\\\",\\\"href\\\":\\\"/blog/tags\\\",\\\"children\\\":\\\"All Topics →\\\"}]}]]}]]}]\\n\"])</script><script>self.__next_f.push([1,\"1d:[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"mx-auto mt-12 flex max-w-7xl flex-col items-start justify-between gap-3 border-white/10 border-t px-4 pt-6 font-mono text-[11px] text-white/40 uppercase tracking-widest sm:flex-row sm:items-center md:px-8\\\",\\\"children\\\":[[\\\"$\\\",\\\"span\\\",null,{\\\"children\\\":[\\\"© \\\",2026,\\\" Digital Applied\\\"]}],[\\\"$\\\",\\\"span\\\",null,{\\\"children\\\":\\\"All systems nominal\\\"}]]}]\\n20:[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"text-white/25\\\",\\\"children\\\":\\\"/\\\"}]\\n21:[\\\"$\\\",\\\"li\\\",\\\"Agent Identity \\u0026 Credentials\\\",{\\\"className\\\":\\\"flex items-center gap-2\\\",\\\"children\\\":[[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"text-white\\\",\\\"children\\\":\\\"Agent Identity \\u0026 Credentials\\\"}],false]}]\\n\"])</script><script>self.__next_f.push([1,\"22:[\\\"$\\\",\\\"section\\\",null,{\\\"className\\\":\\\"relative isolate overflow-hidden bg-[#0a0a0b] pt-14 text-white\\\",\\\"children\\\":[[\\\"$\\\",\\\"div\\\",null,{\\\"aria-hidden\\\":\\\"true\\\",\\\"className\\\":\\\"mask-[radial-gradient(ellipse_at_50%_30%,black_20%,transparent_75%)] pointer-events-none absolute inset-0 bg-[linear-gradient(rgba(255,255,255,0.035)_1px,transparent_1px),linear-gradient(90deg,rgba(255,255,255,0.035)_1px,transparent_1px)] bg-size-[56px_56px] [-webkit-mask-image:radial-gradient(ellipse_at_50%_30%,black_20%,transparent_75%)]\\\"}],[\\\"$\\\",\\\"div\\\",null,{\\\"aria-hidden\\\":\\\"true\\\",\\\"className\\\":\\\"pointer-events-none absolute top-[-5%] left-[-5%] size-[620px] blur-2xl [background:radial-gradient(circle,rgba(255,107,26,0.18),rgba(255,107,26,0.03)_40%,transparent_70%)]\\\"}],[\\\"$\\\",\\\"div\\\",null,{\\\"aria-hidden\\\":\\\"true\\\",\\\"className\\\":\\\"pointer-events-none absolute top-[20%] right-[-5%] size-[520px] blur-2xl [background:radial-gradient(circle,rgba(77,107,254,0.16),rgba(77,107,254,0.02)_40%,transparent_70%)]\\\"}],[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"relative z-2 mx-auto max-w-[1320px] px-4 md:px-8\\\",\\\"children\\\":[[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"mb-9 flex flex-wrap items-center gap-3\\\",\\\"children\\\":[[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"rounded-sm border border-ignition/30 bg-ignition/10 px-3 py-1.5 font-mono text-[11px] text-ignition uppercase tracking-[0.14em]\\\",\\\"children\\\":\\\"CRM \\u0026 Automation\\\"}],[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"rounded-sm bg-ignition-2 px-3 py-1.5 font-medium font-mono text-[#0a0a0b] text-[11px] uppercase tracking-[0.14em]\\\",\\\"children\\\":[[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"mr-1.5 inline-block size-[5px] animate-[ignition-pulse_1.2s_infinite] rounded-full bg-[#0a0a0b] align-[1px]\\\"}],\\\"Playbook\\\"]}],[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"rounded-sm border border-white/15 px-3 py-1.5 font-mono text-[11px] text-white/65 uppercase tracking-[0.14em]\\\",\\\"children\\\":[14,\\\" min read\\\"]}],[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"rounded-sm border border-white/15 px-3 py-1.5 font-mono text-[11px] text-white/65 uppercase tracking-[0.14em]\\\",\\\"children\\\":[\\\"Published \\\",\\\"July 26, 2026\\\"]}]]}],[\\\"$\\\",\\\"p\\\",null,{\\\"className\\\":\\\"m-0 mb-[18px] max-w-[900px] text-[17px] text-white/72 leading-normal tracking-[-0.005em]\\\",\\\"children\\\":[\\\"Non-human identity ·\\\",\\\" \\\",[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"font-serif text-ignition-2 italic\\\",\\\"children\\\":\\\"short-lived\\\"}],\\\" \\\",\\\"credentials · revocation measured in minutes\\\"]}],[\\\"$\\\",\\\"h1\\\",null,{\\\"className\\\":\\\"m-0 mb-6 max-w-[1100px] font-normal text-[clamp(40px,5.4vw,76px)] text-white leading-none tracking-[-0.035em]\\\",\\\"children\\\":[\\\"Giving Agents Their Own\\\",\\\" \\\",[\\\"$\\\",\\\"em\\\",null,{\\\"className\\\":\\\"font-normal font-serif text-ignition-2 italic\\\",\\\"children\\\":\\\"Identity\\\"}],\\\", Not Your Credentials\\\"]}],[\\\"$\\\",\\\"p\\\",null,{\\\"className\\\":\\\"m-0 mb-11 max-w-[760px] text-[18px] text-white/72 leading-[1.6]\\\",\\\"children\\\":\\\"An agent that borrows a human’s session, API key, or OAuth token inherits three problems at once: every action is attributed to a person, the scope is everything that person can touch, and revocation means locking that person out. Workload identity already solved this for services — this playbook maps the same machinery onto agents, per run.\\\"}],[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"mb-12 flex flex-wrap items-center gap-5\\\",\\\"children\\\":[[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"flex items-center gap-3\\\",\\\"children\\\":[[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"flex size-11 items-center justify-center rounded-full bg-[linear-gradient(135deg,var(--color-ignition),var(--color-ignition-2))] font-medium font-mono text-[#0a0a0b] text-[14px]\\\",\\\"children\\\":\\\"DA\\\"}],[\\\"$\\\",\\\"div\\\",null,{\\\"children\\\":[[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"font-medium text-[14px] text-white leading-[1.2]\\\",\\\"children\\\":\\\"Digital Applied Team\\\"}],[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"mt-0.5 font-mono text-[10.5px] text-white/55 uppercase tracking-[0.08em]\\\",\\\"children\\\":\\\"Senior strategists · Published Jul 26, 2026\\\"}]]}]]}],\\\"$L30\\\"]}],\\\"$L31\\\"]}]]}]\\n\"])</script><script>self.__next_f.push([1,\"33:T539,max-w-[720px] [\\u0026_*:where(p,h3,ul)]:text-pretty [\\u0026_a.link:hover]:bg-ignition/10 [\\u0026_a.link:hover]:text-ignition [\\u0026_a.link]:border-ignition [\\u0026_a.link]:border-b [\\u0026_a.link]:pb-px [\\u0026_a.link]:font-medium [\\u0026_a.link]:text-zinc-950 [\\u0026_a.link]:transition-colors [\\u0026_a.link]:dark:text-white [\\u0026_code]:rounded-[4px] [\\u0026_code]:bg-zinc-100 [\\u0026_code]:px-1.5 [\\u0026_code]:py-0.5 [\\u0026_code]:font-mono [\\u0026_code]:text-[0.88em] [\\u0026_code]:text-zinc-950 [\\u0026_code]:dark:bg-zinc-800 [\\u0026_code]:dark:text-white [\\u0026_h3]:mt-9 [\\u0026_h3]:mb-3.5 [\\u0026_h3]:font-medium [\\u0026_h3]:text-[22px] [\\u0026_h3]:text-zinc-950 [\\u0026_h3]:leading-tight [\\u0026_h3]:tracking-[-0.015em] [\\u0026_h3]:dark:text-white [\\u0026_p.lede]:mb-7 [\\u0026_p.lede]:font-normal [\\u0026_p.lede]:text-[19px] [\\u0026_p.lede]:text-zinc-950 [\\u0026_p.lede]:leading-[1.6] [\\u0026_p.lede]:dark:text-white [\\u0026_p]:mb-5 [\\u0026_p]:text-[17px] [\\u0026_p]:text-zinc-800 [\\u0026_p]:leading-[1.7] [\\u0026_p]:dark:text-zinc-200 [\\u0026_strong]:font-semibold [\\u0026_strong]:text-zinc-950 [\\u0026_strong]:dark:text-white [\\u0026_ul]:mb-6 [\\u0026_ul]:ml-0 [\\u0026_ul]:list-none [\\u0026_ul]:p-0 [\\u0026_ul_li]:relative [\\u0026_ul_li]:mb-2.5 [\\u0026_ul_li]:pl-[22px] [\\u0026_ul_li]:text-[16px] [\\u0026_ul_li]:text-zinc-700 [\\u0026_ul_li]:leading-[1.6] [\\u0026_ul_li]:before:absolute [\\u0026_ul_li]:before:top-[11px] [\\u0026_ul_li]:before:left-0.5 [\\u0026_ul_li]:before:size-1.5 [\\u0026_ul_li]:before:rounded-full [\\u0026_ul_li]:before:bg-ignition [\\u0026_ul_li]:before:content-[''] [\\u0026_ul_li]:dark:text-zinc-300\"])</script><script>self.__next_f.push([1,\"23:[\\\"$\\\",\\\"section\\\",null,{\\\"className\\\":\\\"relative bg-white dark:bg-zinc-950\\\",\\\"children\\\":[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"mx-auto grid max-w-[1320px] grid-cols-1 gap-10 px-6 py-16 md:px-8 lg:grid-cols-[240px_minmax(0,1fr)] lg:gap-14 xl:grid-cols-[260px_minmax(0,1fr)_280px]\\\",\\\"children\\\":[[\\\"$\\\",\\\"aside\\\",null,{\\\"className\\\":\\\"sticky top-[84px] hidden self-start lg:block\\\",\\\"children\\\":[\\\"$\\\",\\\"$L32\\\",null,{\\\"items\\\":[{\\\"id\\\":\\\"takeaways\\\",\\\"label\\\":\\\"Key takeaways\\\",\\\"number\\\":\\\"00\\\"},{\\\"id\\\":\\\"borrowed\\\",\\\"label\\\":\\\"The borrowed-credential trap\\\",\\\"number\\\":\\\"01\\\"},{\\\"id\\\":\\\"third-category\\\",\\\"label\\\":\\\"Agents are a third category\\\",\\\"number\\\":\\\"02\\\"},{\\\"id\\\":\\\"mechanisms\\\",\\\"label\\\":\\\"The mechanism shelf\\\",\\\"number\\\":\\\"03\\\"},{\\\"id\\\":\\\"delegation\\\",\\\"label\\\":\\\"Delegation done precisely\\\",\\\"number\\\":\\\"04\\\"},{\\\"id\\\":\\\"matrix\\\",\\\"label\\\":\\\"The decision matrix\\\",\\\"number\\\":\\\"05\\\"},{\\\"id\\\":\\\"revocation\\\",\\\"label\\\":\\\"Revocation \\u0026 audit\\\",\\\"number\\\":\\\"06\\\"},{\\\"id\\\":\\\"rollout\\\",\\\"label\\\":\\\"A pragmatic rollout\\\",\\\"number\\\":\\\"07\\\"},{\\\"id\\\":\\\"conclusion\\\",\\\"label\\\":\\\"Conclusion\\\",\\\"number\\\":\\\"08\\\"},{\\\"id\\\":\\\"faq\\\",\\\"label\\\":\\\"FAQ\\\",\\\"number\\\":\\\"09\\\"}]}]}],[\\\"$\\\",\\\"article\\\",null,{\\\"className\\\":\\\"prose-none min-w-0\\\",\\\"children\\\":[[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"$33\\\",\\\"children\\\":[[\\\"$\\\",\\\"p\\\",null,{\\\"className\\\":\\\"lede\\\",\\\"children\\\":\\\"Agent identity is the least glamorous decision in an agentic build and the one most likely to hurt you later: when an AI agent runs on a human’s borrowed session, API key, or OAuth token, every action it takes is legally and forensically that person’s action, its access is whatever that person accumulated over years, and the only off switch also switches off the human.\\\"}],[\\\"$\\\",\\\"p\\\",null,{\\\"children\\\":\\\"This is not a hypothetical concern for some future fleet of autonomous agents. It is the default state of most agent deployments right now, because the fastest way to get an agent working is to paste in a key that already works. The infrastructure world spent the last decade solving the same problem for services — short-lived certificates, token exchange, federation — and in 2026 the major identity vendors began shipping agent-specific versions of that machinery.\\\"}],[\\\"$\\\",\\\"p\\\",null,{\\\"children\\\":[\\\"This playbook covers why borrowed credentials fail, why agents are a third identity category distinct from both humans and classic service accounts, the named mechanisms that already exist (SPIFFE and SPIRE, workload identity federation, GitHub App installation tokens, AWS IAM Roles Anywhere, RFC 8693 token exchange), and a decision matrix that maps five agent access patterns to an identity mechanism, a revocation path, and an audit granularity. It pairs with our\\\",\\\" \\\",\\\"$L34\\\",\\\" \\\",\\\"deliberately: RBAC governs what an identity may \\\",\\\"$L35\\\",\\\" once it exists — this post is about how that identity gets issued, scoped, rotated, and revoked in the first place.\\\"]}]]}],\\\"$L36\\\",\\\"$L37\\\",\\\"$L38\\\",\\\"$L39\\\",\\\"$L3a\\\",\\\"$L3b\\\",\\\"$L3c\\\",\\\"$L3d\\\",\\\"$L3e\\\",\\\"$L3f\\\",\\\"$L40\\\",\\\"$L41\\\",\\\"$L42\\\",\\\"$L43\\\",\\\"$L44\\\",\\\"$L45\\\",\\\"$L46\\\",\\\"$L47\\\",\\\"$L48\\\",\\\"$L49\\\",\\\"$L4a\\\",\\\"$L4b\\\",\\\"$L4c\\\",\\\"$L4d\\\",\\\"$L4e\\\",\\\"$L4f\\\",\\\"$L50\\\",\\\"$L51\\\",\\\"$L52\\\"]}],\\\"$L53\\\"]}]}]\\n\"])</script><script>self.__next_f.push([1,\"24:[\\\"$\\\",\\\"section\\\",null,{\\\"className\\\":\\\"relative isolate overflow-hidden bg-[#0a0a0b] py-20 text-white\\\",\\\"children\\\":[[\\\"$\\\",\\\"div\\\",null,{\\\"aria-hidden\\\":\\\"true\\\",\\\"className\\\":\\\"pointer-events-none absolute inset-0 [-webkit-mask-image:radial-gradient(ellipse_at_center,black_30%,transparent_75%)] [background-image:linear-gradient(rgba(255,255,255,0.03)_1px,transparent_1px),linear-gradient(90deg,rgba(255,255,255,0.03)_1px,transparent_1px)] [background-size:56px_56px] [mask-image:radial-gradient(ellipse_at_center,black_30%,transparent_75%)]\\\"}],[\\\"$\\\",\\\"div\\\",null,{\\\"aria-hidden\\\":\\\"true\\\",\\\"className\\\":\\\"pointer-events-none absolute top-1/2 left-1/2 size-[900px] -translate-x-1/2 -translate-y-1/2 blur-[30px] [background:radial-gradient(circle,rgba(255,107,26,0.18),rgba(255,107,26,0.04)_30%,transparent_65%)]\\\"}],[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"relative z-[2] mx-auto grid max-w-[1320px] items-center gap-14 px-4 md:px-8 lg:grid-cols-[1.3fr_1fr]\\\",\\\"children\\\":[[\\\"$\\\",\\\"div\\\",null,{\\\"children\\\":[[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"mb-4.5 inline-flex items-center gap-2.5 font-mono text-[11px] text-ignition uppercase tracking-[0.14em]\\\",\\\"children\\\":[[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"h-px w-5 bg-ignition\\\"}],\\\"Build agents on their own identity\\\"]}],[\\\"$\\\",\\\"h2\\\",null,{\\\"className\\\":\\\"m-0 mb-4.5 font-light text-[clamp(30px,3.8vw,50px)] leading-[1.04] tracking-[-0.03em]\\\",\\\"children\\\":[\\\"Agents you can revoke in minutes are agents you can\\\",\\\" \\\",[\\\"$\\\",\\\"em\\\",null,{\\\"className\\\":\\\"bg-clip-text font-normal font-serif text-transparent italic\\\",\\\"style\\\":{\\\"backgroundImage\\\":\\\"linear-gradient(180deg, #fff 40%, var(--color-ignition-2) 80%, var(--color-ignition) 100%)\\\"},\\\"children\\\":\\\"actually trust\\\"}],\\\".\\\"]}],[\\\"$\\\",\\\"p\\\",null,{\\\"className\\\":\\\"m-0 mb-7 max-w-[520px] text-[16px] text-white/72 leading-[1.6]\\\",\\\"children\\\":\\\"Our team designs agent identity, permissions, and audit rails as part of every agentic build — CRM agents, workflow automation, and multi-agent systems that can be trusted with systems of record, delivered in days not quarters.\\\"}],[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"mb-6 flex flex-wrap gap-3\\\",\\\"children\\\":[[\\\"$\\\",\\\"$L12\\\",null,{\\\"className\\\":\\\"group relative inline-flex h-[52px] items-center justify-center gap-2 overflow-hidden rounded-lg bg-[#0a0a0b] px-7 font-medium text-[15px] text-white shadow-[0_0_0_1px_#0a0a0b,0_10px_30px_-10px_rgba(255,107,26,0.4)] transition-transform hover:-translate-y-0.5\\\",\\\"href\\\":\\\"/get-started\\\",\\\"children\\\":[[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"relative z-[1]\\\",\\\"children\\\":\\\"Get started\\\"}],[\\\"$\\\",\\\"$L54\\\",null,{\\\"ref\\\":\\\"$undefined\\\",\\\"iconNode\\\":[[\\\"path\\\",{\\\"d\\\":\\\"M7 7h10v10\\\",\\\"key\\\":\\\"1tivn9\\\"}],[\\\"path\\\",{\\\"d\\\":\\\"M7 17 17 7\\\",\\\"key\\\":\\\"1vkiza\\\"}]],\\\"className\\\":\\\"lucide-arrow-up-right relative z-[1] size-4 transition-transform group-hover:translate-x-0.5\\\"}]]}],[\\\"$\\\",\\\"$L12\\\",null,{\\\"className\\\":\\\"inline-flex h-[52px] items-center justify-center gap-2 rounded-lg border border-white/15 bg-white/5 px-7 font-medium text-[15px] text-white transition-colors hover:border-white/30 hover:bg-white/10\\\",\\\"href\\\":\\\"/services/crm-automation\\\",\\\"children\\\":\\\"Explore CRM \\u0026 automation\\\"}]]}],[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"flex flex-wrap gap-x-7 gap-y-2 font-mono text-[11px] text-white/55 uppercase tracking-[0.1em]\\\",\\\"children\\\":[[\\\"$\\\",\\\"span\\\",\\\"0\\\",{\\\"className\\\":\\\"inline-flex items-center gap-2\\\",\\\"children\\\":[[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"size-1.5 rounded-full bg-ignition\\\"}],\\\"Free consultation\\\"]}],[\\\"$\\\",\\\"span\\\",\\\"1\\\",{\\\"className\\\":\\\"inline-flex items-center gap-2\\\",\\\"children\\\":[[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"size-1.5 rounded-full bg-ignition\\\"}],\\\"Expert guidance\\\"]}],[\\\"$\\\",\\\"span\\\",\\\"2\\\",{\\\"className\\\":\\\"inline-flex items-center gap-2\\\",\\\"children\\\":[[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"size-1.5 rounded-full bg-ignition\\\"}],\\\"Tailored solutions\\\"]}]]}]]}],[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"relative overflow-hidden rounded-2xl border border-white/10 bg-white/[0.04] p-7\\\",\\\"children\\\":[[\\\"$\\\",\\\"div\\\",null,{\\\"aria-hidden\\\":\\\"true\\\",\\\"style\\\":{\\\"position\\\":\\\"absolute\\\",\\\"inset\\\":-1,\\\"borderRadius\\\":\\\"18px\\\",\\\"padding\\\":1,\\\"background\\\":\\\"linear-gradient(135deg,#ff6b1a,transparent 60%)\\\",\\\"WebkitMask\\\":\\\"linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0)\\\",\\\"WebkitMaskComposite\\\":\\\"xor\\\",\\\"mask\\\":\\\"linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0)\\\",\\\"maskComposite\\\":\\\"exclude\\\",\\\"pointerEvents\\\":\\\"none\\\"}}],\\\"$L55\\\",\\\"$L56\\\",\\\"$L57\\\"]}]]}]]}]\\n\"])</script><script>self.__next_f.push([1,\"25:[\\\"$\\\",\\\"$L58\\\",null,{\\\"eyebrow\\\":\\\"FAQ · Agent identity\\\",\\\"id\\\":\\\"faq\\\",\\\"items\\\":[{\\\"question\\\":\\\"Why shouldn’t an AI agent just use my API key or session?\\\",\\\"answer\\\":\\\"Three structural reasons. Attribution: every action the agent takes is logged as you, so after an incident nobody can separate your actions from the agent’s — a real problem in any compliance review. Scope: your account carries everything you’ve accumulated over years, so a task that needed read access to one module inherits write access to everything you can touch. Revocation: the only way to cut the agent off is to kill your own session or rotate your own key, locking you out and breaking every other integration that shared the credential. A separate agent identity fixes all three at once — actions attribute to the agent run, scope is designed per task, and revocation touches nothing human.\\\"},{\\\"question\\\":\\\"What is a non-human identity (NHI), and how big is the problem?\\\",\\\"answer\\\":\\\"Non-human identity is the umbrella term for principals that aren’t people: service accounts, API keys, OAuth tokens, machine certificates, and now AI agent credentials. Per the Cloud Security Alliance’s May 2026 whitepaper, NHIs outnumber human users by an average of 45:1 across enterprises, reaching 144:1 in cloud-native environments — figures worth treating as directional rather than audited, since even CSA-adjacent summaries circulate varying numbers. The governance gap is the real issue: traditional IAM tooling is built around humans who can answer MFA prompts and attend access reviews, and as Microsoft’s own documentation concedes, it is hard to track when a workload identity is created or when it should be revoked. Agents make that gap wider because they multiply per-run and behave dynamically.\\\"},{\\\"question\\\":\\\"What are SPIFFE and SPIRE, and do they apply to agents?\\\",\\\"answer\\\":\\\"SPIFFE (Secure Production Identity Framework For Everyone) is an open standard that issues short-lived cryptographic identity documents called SVIDs — X.509 certificates or JWTs — to workloads; SPIRE is its production implementation. The key property is attestation-based issuance: identity is granted by verifying what the workload actually is at runtime, not by checking a pre-provisioned secret, and SVIDs rotate automatically. The CSA’s non-human identity guidance names SPIFFE/SPIRE specifically as the replacement for static API keys. For agents, the model transfers directly: an autonomous or scheduled agent gets its identity from what it verifiably is, the credential expires on its own, and revoking it — by denying the attestation or revoking the SVID — never touches a human account.\\\"},{\\\"question\\\":\\\"What is workload identity federation?\\\",\\\"answer\\\":\\\"Workload identity federation lets a workload running outside a cloud — on-prem, in another cloud, in a CI/CD runner, or as an AI agent — obtain short-lived cloud credentials by presenting a token from its own identity provider, with no long-lived key file ever distributed. In Google Cloud’s implementation, the Security Token Service validates the external credential and exchanges it for a short-lived Google Cloud token; supported providers include AWS, Azure, GitHub and GitLab OIDC, Kubernetes, Okta, and any generic OIDC or SAML 2.0 identity provider. AWS’s analogous mechanism, IAM Roles Anywhere, exchanges an X.509 certificate for temporary credentials valid from 15 minutes to 12 hours. In both cases the practical win is the same: nothing long-lived exists for an agent to leak.\\\"},{\\\"question\\\":\\\"What’s the difference between delegation and impersonation in RFC 8693?\\\",\\\"answer\\\":\\\"RFC 8693 (OAuth 2.0 Token Exchange, January 2020) formalizes both. Under impersonation, the holder of the new token becomes indistinguishable from the original subject and takes on all of its rights — which is exactly the borrowed-credential failure mode, made official. Under delegation, the acting party keeps its own separate identity while exercising rights the subject granted; the request carries a required subject_token (who the work is for) and an optional actor_token (who is doing it), and both identities survive into the minted token. Combined with the audience parameter — which restricts the token to a named downstream service — delegation gives you the property agents need: the action is traceable to both the human it served and the agent that performed it, on a credential valid only where the task required.\\\"},{\\\"question\\\":\\\"Is OAuth 2.1 finalized, and should agent builds wait for it?\\\",\\\"answer\\\":\\\"OAuth 2.1 is still a draft as of mid-2026 — not a ratified RFC — so cite and treat it accordingly. It consolidates OAuth 2.0 with PKCE (RFC 7636) and native-app guidance (RFC 8252) into one document, removes the implicit grant entirely, eliminates the resource-owner password credentials grant, and makes PKCE mandatory for every authorization-code client. There is no reason to wait: everything OAuth 2.1 prescribes can be adopted today on top of OAuth 2.0, and its deletions are a preview of what agent-facing authorization servers will stop accepting. RFC 8693 token exchange, by contrast, is a finished Standards Track RFC and safe to build against now.\\\"},{\\\"question\\\":\\\"How should sub-agents spawned by a parent agent be identified?\\\",\\\"answer\\\":\\\"Give each sub-agent its own unique identifier with a verifiable cryptographic link back to its parent. That is the Cloud Security Alliance’s prescription — its agentic IAM guidance states that sub-agents are separate instances, each with a unique ID, but with a verifiable link back to the parent — and it is the design Microsoft ships in Entra Agent ID, where agent identity blueprints create individual identities with tracked parent-child relationships so one policy governs every instance from the same template. The payoff comes during incidents: with lineage, a multi-agent failure is a reconstructible sequence of named runs; without it, everything collapses into one anonymous automation blob. Pair the lineage with per-child revocation, so a misbehaving sub-agent can be killed without touching the parent or its siblings.\\\"},{\\\"question\\\":\\\"What does ‘good’ look like for agent credential revocation and audit?\\\",\\\"answer\\\":\\\"Two bars, both concrete. Revocation: the CSA’s May 2026 whitepaper prescribes time-to-revoke measured in minutes, via pre-authorized automated workflows triggered by exposure signals — not manual, ticket-based deprovisioning. Structurally, every revocation path should work without locking a human out; if it can’t, the agent never had its own identity. Audit: every log line should name a specific agent run, not just an automation account — via per-run correlation IDs, actor-plus-subject pairs on delegated calls, certificate serials on SVIDs, parent lineage on sub-agents, and signature hashes on webhook invocations. Vendor platforms are converging here too: Microsoft’s Entra Agent ID logs all agent authentication and activity to a dedicated agent audit surface, separate from human sign-in logs.\\\"}],\\\"title\\\":\\\"$L59\\\"}]\\n\"])</script><script>self.__next_f.push([1,\"26:[\\\"$\\\",\\\"section\\\",null,{\\\"className\\\":\\\"bg-zinc-100 py-24 dark:bg-zinc-900\\\",\\\"children\\\":[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"mx-auto max-w-[1320px] px-4 md:px-8\\\",\\\"children\\\":[[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"mb-10\\\",\\\"children\\\":[[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"mb-3.5 inline-flex items-center gap-2.5 font-mono text-[11px] text-zinc-500 uppercase tracking-[0.14em]\\\",\\\"children\\\":[[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"h-px w-5 bg-ignition\\\"}],\\\"Related dispatches\\\"]}],[\\\"$\\\",\\\"h2\\\",null,{\\\"className\\\":\\\"m-0 font-normal text-[clamp(30px,3.6vw,44px)] text-zinc-950 leading-[1.05] tracking-[-0.025em] dark:text-white\\\",\\\"children\\\":[\\\"Continue exploring\\\",\\\" \\\",[\\\"$\\\",\\\"em\\\",null,{\\\"className\\\":\\\"font-normal font-serif italic\\\",\\\"children\\\":\\\"agentic operations.\\\"}]]}],\\\"$undefined\\\"]}],[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"grid gap-4 md:grid-cols-3\\\",\\\"children\\\":[[\\\"$\\\",\\\"$L12\\\",\\\"amp-event-driven-orbs-self-scheduling-agents-2026\\\",{\\\"className\\\":\\\"group flex min-h-[260px] flex-col gap-3.5 rounded-2xl border border-zinc-200 bg-white p-7 transition-all hover:-translate-y-1 hover:border-zinc-400 hover:shadow-[0_20px_40px_-20px_rgba(0,0,0,0.1)] dark:border-zinc-800 dark:bg-zinc-950\\\",\\\"href\\\":\\\"/blog/amp-event-driven-orbs-self-scheduling-agents-2026\\\",\\\"children\\\":[[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"self-start rounded-sm border border-ignition/20 bg-ignition/5 px-2 py-1 font-mono text-[10.5px] text-ignition uppercase tracking-[0.12em]\\\",\\\"children\\\":\\\"CRM \\u0026 Automation\\\"}],[\\\"$\\\",\\\"h4\\\",null,{\\\"className\\\":\\\"m-0 mt-1 font-medium text-[19px] text-zinc-950 leading-[1.22] tracking-[-0.015em] transition-colors group-hover:text-ignition dark:text-white\\\",\\\"children\\\":\\\"Amp Turned Agents Into Always-On Services This Week\\\"}],[\\\"$\\\",\\\"p\\\",null,{\\\"className\\\":\\\"m-0 flex-1 text-[14px] text-zinc-500 leading-[1.55]\\\",\\\"children\\\":\\\"Amp shipped five releases in seven days that turn agents into persistent services. Event-driven orbs expose durable webhook URLs its own docs call a credential.\\\"}],[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"mt-auto flex items-center justify-between border-zinc-200 border-t pt-3.5 font-mono text-[10.5px] text-zinc-500 uppercase tracking-[0.08em] dark:border-zinc-800\\\",\\\"children\\\":[[\\\"$\\\",\\\"span\\\",null,{\\\"children\\\":[\\\"July 26, 2026\\\",\\\" · \\\",12,\\\" min\\\"]}],[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"inline-flex items-center gap-1 font-medium text-zinc-950 dark:text-white\\\",\\\"children\\\":[\\\"Read \\\",[\\\"$\\\",\\\"$L54\\\",null,{\\\"ref\\\":\\\"$undefined\\\",\\\"iconNode\\\":\\\"$24:props:children:2:props:children:0:props:children:3:props:children:0:props:children:1:props:iconNode\\\",\\\"className\\\":\\\"lucide-arrow-up-right size-3.5\\\"}]]}]]}]]}],[\\\"$\\\",\\\"$L12\\\",\\\"claude-voice-mode-opus-sonnet-connectors-2026\\\",{\\\"className\\\":\\\"group flex min-h-[260px] flex-col gap-3.5 rounded-2xl border border-zinc-200 bg-white p-7 transition-all hover:-translate-y-1 hover:border-zinc-400 hover:shadow-[0_20px_40px_-20px_rgba(0,0,0,0.1)] dark:border-zinc-800 dark:bg-zinc-950\\\",\\\"href\\\":\\\"/blog/claude-voice-mode-opus-sonnet-connectors-2026\\\",\\\"children\\\":[[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"self-start rounded-sm border border-ignition/20 bg-ignition/5 px-2 py-1 font-mono text-[10.5px] text-ignition uppercase tracking-[0.12em]\\\",\\\"children\\\":\\\"CRM \\u0026 Automation\\\"}],[\\\"$\\\",\\\"h4\\\",null,{\\\"className\\\":\\\"m-0 mt-1 font-medium text-[19px] text-zinc-950 leading-[1.22] tracking-[-0.015em] transition-colors group-hover:text-ignition dark:text-white\\\",\\\"children\\\":\\\"Claude Voice Mode Grows Up: Opus, Sonnet, and Connectors\\\"}],[\\\"$\\\",\\\"p\\\",null,{\\\"className\\\":\\\"m-0 flex-1 text-[14px] text-zinc-500 leading-[1.55]\\\",\\\"children\\\":\\\"Claude voice mode now reaches Opus and Sonnet on paid plans, with Gmail, Calendar, Docs and Slack connectors working aloud. Still beta and turn-based.\\\"}],[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"mt-auto flex items-center justify-between border-zinc-200 border-t pt-3.5 font-mono text-[10.5px] text-zinc-500 uppercase tracking-[0.08em] dark:border-zinc-800\\\",\\\"children\\\":[[\\\"$\\\",\\\"span\\\",null,{\\\"children\\\":[\\\"July 25, 2026\\\",\\\" · \\\",11,\\\" min\\\"]}],[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"inline-flex items-center gap-1 font-medium text-zinc-950 dark:text-white\\\",\\\"children\\\":[\\\"Read \\\",\\\"$L5a\\\"]}]]}]]}],\\\"$L5b\\\",\\\"$L5c\\\",\\\"$L5d\\\",\\\"$L5e\\\"]}]]}]}]\\n\"])</script><script>self.__next_f.push([1,\"27:[\\\"$\\\",\\\"script\\\",\\\"script-0\\\",{\\\"src\\\":\\\"/_next/static/chunks/10xegheq_2_g2.js\\\",\\\"async\\\":true,\\\"nonce\\\":\\\"$undefined\\\"}]\\n28:[\\\"$\\\",\\\"$L5f\\\",null,{\\\"children\\\":[\\\"$\\\",\\\"$2d\\\",null,{\\\"name\\\":\\\"Next.MetadataOutlet\\\",\\\"children\\\":\\\"$@60\\\"}]}]\\n\"])</script><script>self.__next_f.push([1,\"81:I[338137,[\\\"/_next/static/chunks/0vfhqx7irdtsp.js\\\",\\\"/_next/static/chunks/0yze7hvbcp5.x.js\\\",\\\"/_next/static/chunks/0zod1seoish6v.js\\\",\\\"/_next/static/chunks/0h9.k2fyk8cqu.js\\\",\\\"/_next/static/chunks/0bok.jphy_~lu.js\\\",\\\"/_next/static/chunks/039fygmp~-jt3.js\\\",\\\"/_next/static/chunks/10xegheq_2_g2.js\\\"],\\\"BlogShareButtons\\\"]\\n82:I[372967,[\\\"/_next/static/chunks/0vfhqx7irdtsp.js\\\",\\\"/_next/static/chunks/0yze7hvbcp5.x.js\\\",\\\"/_next/static/chunks/0zod1seoish6v.js\\\",\\\"/_next/static/chunks/0h9.k2fyk8cqu.js\\\",\\\"/_next/static/chunks/0bok.jphy_~lu.js\\\",\\\"/_next/static/chunks/039fygmp~-jt3.js\\\",\\\"/_next/static/chunks/10xegheq_2_g2.js\\\"],\\\"BlogNewsletterForm\\\"]\\n30:[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"flex flex-wrap gap-x-6 gap-y-2 border-white/10 border-l pl-6 font-mono text-[11px] text-white/50 uppercase tracking-widest max-sm:gap-x-4 max-sm:border-l-0 max-sm:pl-0\\\",\\\"children\\\":[[\\\"$\\\",\\\"div\\\",\\\"Published\\\",{\\\"children\\\":[\\\"Published\\\",[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"mt-1 block text-[12px] text-white tracking-[0.04em]\\\",\\\"children\\\":\\\"Jul 26, 2026\\\"}]]}],[\\\"$\\\",\\\"div\\\",\\\"Read time\\\",{\\\"children\\\":[\\\"Read time\\\",[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"mt-1 block text-[12px] text-white tracking-[0.04em]\\\",\\\"children\\\":\\\"14 min\\\"}]]}],[\\\"$\\\",\\\"div\\\",\\\"Sources\\\",{\\\"children\\\":[\\\"Sources\\\",[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"mt-1 block text-[12px] text-white tracking-[0.04em]\\\",\\\"children\\\":\\\"IETF, CSA \\u0026 vendor docs\\\"}]]}]]}]\\n\"])</script><script>self.__next_f.push([1,\"31:[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"mb-14 grid grid-cols-2 gap-px overflow-hidden rounded-2xl border border-white/10 bg-white/10 md:grid-cols-4\\\",\\\"children\\\":[[\\\"$\\\",\\\"div\\\",\\\"NHIs per human user\\\",{\\\"className\\\":\\\"relative bg-[#0a0a0b] px-5 py-6\\\",\\\"children\\\":[[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"mb-3.5 block font-mono text-[10.5px] text-white/50 uppercase tracking-[0.12em]\\\",\\\"children\\\":\\\"NHIs per human user\\\"}],[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"flex items-baseline gap-1 font-light text-[40px] text-white leading-none tracking-[-0.03em]\\\",\\\"children\\\":[\\\"45\\\",[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"ml-0.5 font-mono text-[16px] text-ignition\\\",\\\"children\\\":\\\":1\\\"}]]}],[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"mt-3 text-[11.5px] text-white/55 leading-[1.4]\\\",\\\"children\\\":\\\"enterprise average, per CSA\\\"}],[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"mt-3 inline-flex items-center gap-1 font-mono text-[10.5px] text-ignition uppercase tracking-[0.12em]\\\",\\\"children\\\":[[\\\"$\\\",\\\"span\\\",null,{\\\"aria-hidden\\\":\\\"true\\\",\\\"children\\\":\\\"▲\\\"}],\\\"144:1 cloud-native\\\"]}],null]}],[\\\"$\\\",\\\"div\\\",\\\"GitHub App token\\\",{\\\"className\\\":\\\"relative bg-[#0a0a0b] px-5 py-6\\\",\\\"children\\\":[[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"mb-3.5 block font-mono text-[10.5px] text-white/50 uppercase tracking-[0.12em]\\\",\\\"children\\\":\\\"GitHub App token\\\"}],[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"flex items-baseline gap-1 font-light text-[40px] text-white leading-none tracking-[-0.03em]\\\",\\\"children\\\":[\\\"1\\\",[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"ml-0.5 font-mono text-[16px] text-ignition\\\",\\\"children\\\":\\\"hr\\\"}]]}],[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"mt-3 text-[11.5px] text-white/55 leading-[1.4]\\\",\\\"children\\\":\\\"installation token lifetime\\\"}],null,null]}],[\\\"$\\\",\\\"div\\\",\\\"AWS temp credentials\\\",{\\\"className\\\":\\\"relative bg-[#0a0a0b] px-5 py-6\\\",\\\"children\\\":[[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"mb-3.5 block font-mono text-[10.5px] text-white/50 uppercase tracking-[0.12em]\\\",\\\"children\\\":\\\"AWS temp credentials\\\"}],[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"flex items-baseline gap-1 font-light text-[40px] text-white leading-none tracking-[-0.03em]\\\",\\\"children\\\":[\\\"15\\\",[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"ml-0.5 font-mono text-[16px] text-ignition\\\",\\\"children\\\":\\\"min\\\"}]]}],[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"mt-3 text-[11.5px] text-white/55 leading-[1.4]\\\",\\\"children\\\":\\\"minimum session · max 12 hr\\\"}],null,null]}],[\\\"$\\\",\\\"div\\\",\\\"Fine-grained PAT\\\",{\\\"className\\\":\\\"relative bg-[#0a0a0b] px-5 py-6\\\",\\\"children\\\":[[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"mb-3.5 block font-mono text-[10.5px] text-white/50 uppercase tracking-[0.12em]\\\",\\\"children\\\":\\\"Fine-grained PAT\\\"}],[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"flex items-baseline gap-1 font-light text-[40px] text-white leading-none tracking-[-0.03em]\\\",\\\"children\\\":[\\\"30\\\",[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"ml-0.5 font-mono text-[16px] text-ignition\\\",\\\"children\\\":\\\"d\\\"}]]}],[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"mt-3 text-[11.5px] text-white/55 leading-[1.4]\\\",\\\"children\\\":\\\"default expiry · max 366 d\\\"}],null,null]}]]}]\\n\"])</script><script>self.__next_f.push([1,\"34:[\\\"$\\\",\\\"$L2f\\\",null,{\\\"className\\\":\\\"link\\\",\\\"href\\\":\\\"/blog/agentic-ai-rbac-design-patterns-implementation-2026\\\",\\\"children\\\":\\\"agentic RBAC design patterns guide\\\"}]\\n35:[\\\"$\\\",\\\"em\\\",null,{\\\"children\\\":\\\"do\\\"}]\\n\"])</script><script>self.__next_f.push([1,\"36:[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"my-12 scroll-mt-[90px] border-zinc-950 border-t-2 pt-7 dark:border-white\\\",\\\"id\\\":\\\"takeaways\\\",\\\"children\\\":[[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"mb-6 flex items-center gap-2.5 font-mono text-[11px] text-zinc-950 uppercase tracking-[0.14em] dark:text-white\\\",\\\"children\\\":[[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"size-1.5 rounded-full bg-ignition shadow-[0_0_8px_var(--color-ignition)]\\\"}],\\\"Key takeaways\\\"]}],[\\\"$\\\",\\\"ol\\\",null,{\\\"className\\\":\\\"m-0 list-none p-0\\\",\\\"children\\\":[[\\\"$\\\",\\\"li\\\",\\\"Borrowed credentials fail three ways at once.\\\",{\\\"className\\\":\\\"grid grid-cols-[40px_1fr] gap-4 border-zinc-200 border-b py-5 last:border-b-0 dark:border-zinc-800\\\",\\\"children\\\":[[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"pt-1 font-mono text-[12px] text-ignition tracking-[0.08em]\\\",\\\"children\\\":\\\"01\\\"}],[\\\"$\\\",\\\"div\\\",null,{\\\"children\\\":[[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"mb-1.5 block font-semibold text-[15.5px] text-zinc-950 leading-[1.4] tracking-[-0.005em] dark:text-white\\\",\\\"children\\\":\\\"Borrowed credentials fail three ways at once.\\\"}],[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"text-[14.5px] text-zinc-600 leading-[1.6] dark:text-zinc-400\\\",\\\"children\\\":\\\"An agent on a human’s session or API key mis-attributes every action to a person, runs over-scoped by default, and cannot be revoked without locking that person out of their own accounts.\\\"}]]}]]}],[\\\"$\\\",\\\"li\\\",\\\"Agents are a third identity category.\\\",{\\\"className\\\":\\\"grid grid-cols-[40px_1fr] gap-4 border-zinc-200 border-b py-5 last:border-b-0 dark:border-zinc-800\\\",\\\"children\\\":[[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"pt-1 font-mono text-[12px] text-ignition tracking-[0.08em]\\\",\\\"children\\\":\\\"02\\\"}],[\\\"$\\\",\\\"div\\\",null,{\\\"children\\\":[[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"mb-1.5 block font-semibold text-[15.5px] text-zinc-950 leading-[1.4] tracking-[-0.005em] dark:text-white\\\",\\\"children\\\":\\\"Agents are a third identity category.\\\"}],[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"text-[14.5px] text-zinc-600 leading-[1.6] dark:text-zinc-400\\\",\\\"children\\\":\\\"Not human, not classic service account. Microsoft’s Entra documentation now carves agents out explicitly: they make dynamic decisions and adapt behavior, so identity must be issued per run and scoped per task.\\\"}]]}]]}],[\\\"$\\\",\\\"li\\\",\\\"The mechanisms already exist and are shipping.\\\",{\\\"className\\\":\\\"grid grid-cols-[40px_1fr] gap-4 border-zinc-200 border-b py-5 last:border-b-0 dark:border-zinc-800\\\",\\\"children\\\":[[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"pt-1 font-mono text-[12px] text-ignition tracking-[0.08em]\\\",\\\"children\\\":\\\"03\\\"}],[\\\"$\\\",\\\"div\\\",null,{\\\"children\\\":[[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"mb-1.5 block font-semibold text-[15.5px] text-zinc-950 leading-[1.4] tracking-[-0.005em] dark:text-white\\\",\\\"children\\\":\\\"The mechanisms already exist and are shipping.\\\"}],[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"text-[14.5px] text-zinc-600 leading-[1.6] dark:text-zinc-400\\\",\\\"children\\\":\\\"SPIFFE/SPIRE issues auto-rotating SVIDs on workload attestation; workload identity federation eliminates key files; GitHub App tokens expire in 1 hour; AWS IAM Roles Anywhere trades an X.509 cert for 15-minute-to-12-hour credentials.\\\"}]]}]]}],[\\\"$\\\",\\\"li\\\",\\\"Delegation is not impersonation — RFC 8693 encodes the difference.\\\",{\\\"className\\\":\\\"grid grid-cols-[40px_1fr] gap-4 border-zinc-200 border-b py-5 last:border-b-0 dark:border-zinc-800\\\",\\\"children\\\":[[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"pt-1 font-mono text-[12px] text-ignition tracking-[0.08em]\\\",\\\"children\\\":\\\"04\\\"}],[\\\"$\\\",\\\"div\\\",null,{\\\"children\\\":[[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"mb-1.5 block font-semibold text-[15.5px] text-zinc-950 leading-[1.4] tracking-[-0.005em] dark:text-white\\\",\\\"children\\\":\\\"Delegation is not impersonation — RFC 8693 encodes the difference.\\\"}],[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"text-[14.5px] text-zinc-600 leading-[1.6] dark:text-zinc-400\\\",\\\"children\\\":\\\"Token exchange carries a subject token (who the work is for) and an actor token (who is doing it), plus an audience parameter that restricts where the minted token is valid. Agent chains need all three.\\\"}]]}]]}],\\\"$L61\\\"]}]]}]\\n\"])</script><script>self.__next_f.push([1,\"37:[\\\"$\\\",\\\"h2\\\",null,{\\\"className\\\":\\\"m-0 mt-14 mb-5 scroll-mt-[90px] font-normal text-[clamp(26px,3vw,36px)] text-zinc-950 leading-[1.15] tracking-[-0.025em] dark:text-white\\\",\\\"id\\\":\\\"borrowed\\\",\\\"children\\\":[[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"mb-3.5 block font-medium font-mono text-[11px] text-ignition uppercase tracking-[0.12em]\\\",\\\"children\\\":[\\\"01\\\",\\\" — \\\",\\\"The Failure Mode\\\"]}],[\\\"Borrowed credentials fail\\\",\\\" \\\",[\\\"$\\\",\\\"em\\\",null,{\\\"className\\\":\\\"font-normal font-serif text-ignition-2 italic\\\",\\\"children\\\":\\\"three\\\"}],\\\" \\\",\\\"ways at once.\\\"]]}]\\n62:T539,max-w-[720px] [\\u0026_*:where(p,h3,ul)]:text-pretty [\\u0026_a.link:hover]:bg-ignition/10 [\\u0026_a.link:hover]:text-ignition [\\u0026_a.link]:border-ignition [\\u0026_a.link]:border-b [\\u0026_a.link]:pb-px [\\u0026_a.link]:font-medium [\\u0026_a.link]:text-zinc-950 [\\u0026_a.link]:transition-colors [\\u0026_a.link]:dark:text-white [\\u0026_code]:rounded-[4px] [\\u0026_code]:bg-zinc-100 [\\u0026_code]:px-1.5 [\\u0026_code]:py-0.5 [\\u0026_code]:font-mono [\\u0026_code]:text-[0.88em] [\\u0026_code]:text-zinc-950 [\\u0026_code]:dark:bg-zinc-800 [\\u0026_code]:dark:text-white [\\u0026_h3]:mt-9 [\\u0026_h3]:mb-3.5 [\\u0026_h3]:font-medium [\\u0026_h3]:text-[22px] [\\u0026_h3]:text-zinc-950 [\\u0026_h3]:leading-tight [\\u0026_h3]:tracking-[-0.015em] [\\u0026_h3]:dark:text-white [\\u0026_p.lede]:mb-7 [\\u0026_p.lede]:font-normal [\\u0026_p.lede]:text-[19px] [\\u0026_p.lede]:text-zinc-950 [\\u0026_p.lede]:leading-[1.6] [\\u0026_p.lede]:dark:text-white [\\u0026_p]:mb-5 [\\u0026_p]:text-[17px] [\\u0026_p]:text-zinc-800 [\\u0026_p]:leading-[1.7] [\\u0026_p]:dark:text-zinc-200 [\\u0026_strong]:font-semibold [\\u0026_strong]:text-zinc-950 [\\u0026_strong]:dark:text-white [\\u0026_ul]:mb-6 [\\u0026_ul]:ml-0 [\\u0026_ul]:list-none [\\u0026_ul]:p-0 [\\u0026_ul_li]:relative [\\u0026_ul_li]:mb-2.5 [\\u0026_ul_li]:pl-[22px] [\\u0026_ul_li]:text-[16px] [\\u0026_ul_li]:text-zinc-700 [\\u0026_ul_li]:leading-[1.6] [\\u0026_ul_li]:before:absolute [\\u0026_ul_li]:before:top-[11px] [\\u0026_ul_li]:before:left-0.5 [\\u0026_ul_li]:before:size-1.5 [\\u0026_ul_li]:before:rounded-full [\\u0026_ul_li]:before:bg-ignition [\\u0026_ul_li]:before:content-[''] [\\u0026_ul_li]:dark:text-zinc-300\"])</script><script>self.__next_f.push([1,\"38:[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"$62\\\",\\\"children\\\":[[\\\"$\\\",\\\"p\\\",null,{\\\"children\\\":\\\"Walk through what actually happens when an agent inherits a human’s credentials — a session cookie lifted from a browser profile, a personal API key pasted into an environment variable, or an OAuth token granted to “you” that a background process now replays.\\\"}],[\\\"$\\\",\\\"p\\\",null,{\\\"children\\\":[[\\\"$\\\",\\\"strong\\\",null,{\\\"children\\\":\\\"First, attribution collapses.\\\"}],\\\" Every record the agent creates, every email it sends, every deletion it performs is logged as the human whose credential it holds. When something goes wrong at 2 a.m. on a Saturday, the audit trail points at a person who was asleep. There is no way, from the logs alone, to separate what the human did from what the agent did — which means there is no way to scope an incident, satisfy a compliance review, or defend the human.\\\"]}],[\\\"$\\\",\\\"p\\\",null,{\\\"children\\\":[[\\\"$\\\",\\\"strong\\\",null,{\\\"children\\\":\\\"Second, scope is inherited, not designed.\\\"}],\\\" A human account accumulates access over years — old projects, admin roles granted for one migration and never removed, personal repositories next to production ones. The agent gets all of it. The task needed read access to one CRM module; the credential carries write access to the entire org. Classic personal access tokens are the sharpest version of this: before fine-grained scoping, a single token could reach every repository its owner could.\\\"]}],[\\\"$\\\",\\\"p\\\",null,{\\\"children\\\":[[\\\"$\\\",\\\"strong\\\",null,{\\\"children\\\":\\\"Third, revocation takes the human down too.\\\"}],\\\" The only way to cut off an agent holding your session or key is to kill the session or rotate the key — locking you out of your own accounts mid-incident, breaking every other integration that shared the credential, and turning a contained problem into an outage. Anything that cannot be revoked independently was never really under control.\\\"]}],[\\\"$\\\",\\\"p\\\",null,{\\\"children\\\":[\\\"And the definition of “credential” is wider than most teams assume. This week’s Amp release made the point concretely: a durable webhook URL that triggers an agent functions as a credential — anyone holding the URL can invoke the agent — which is why Amp’s own docs treat those URLs as secrets and sign the payloads, as we covered in\\\",\\\" \\\",\\\"$L63\\\",\\\". Identity for agents is not just “which API key” — it is every artifact that grants the power to act.\\\"]}]]}]\\n\"])</script><script>self.__next_f.push([1,\"39:[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"relative my-7 overflow-hidden rounded-xl bg-[#0a0a0b] px-7 py-5.5 text-white\\\",\\\"children\\\":[[\\\"$\\\",\\\"span\\\",null,{\\\"aria-hidden\\\":\\\"true\\\",\\\"className\\\":\\\"absolute top-0 bottom-0 left-0 w-[3px] bg-ignition\\\"}],[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"mb-2 block font-mono text-[10.5px] text-ignition-2 uppercase tracking-[0.14em]\\\",\\\"children\\\":\\\"The trap in one sentence\\\"}],[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"text-[15.5px] text-white leading-[1.6]\\\",\\\"children\\\":[\\\"A borrowed credential makes the agent\\\",\\\" \\\",[\\\"$\\\",\\\"em\\\",null,{\\\"className\\\":\\\"font-serif text-white italic\\\",\\\"children\\\":\\\"indistinguishable\\\"}],\\\" \\\",\\\"from its human — which is precisely the property you never want. Attribution, scoping, and revocation all depend on the agent being a\\\",\\\" \\\",[\\\"$\\\",\\\"strong\\\",null,{\\\"children\\\":\\\"separate, named principal\\\"}],\\\" whose access can be granted, narrowed, and destroyed without touching anyone else.\\\"]}]]}]\\n3a:[\\\"$\\\",\\\"h2\\\",null,{\\\"className\\\":\\\"m-0 mt-14 mb-5 scroll-mt-[90px] font-normal text-[clamp(26px,3vw,36px)] text-zinc-950 leading-[1.15] tracking-[-0.025em] dark:text-white\\\",\\\"id\\\":\\\"third-category\\\",\\\"children\\\":[[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"mb-3.5 block font-medium font-mono text-[11px] text-ignition uppercase tracking-[0.12em]\\\",\\\"children\\\":[\\\"02\\\",\\\" — \\\",\\\"Identity Taxonomy\\\"]}],[\\\"Agents are a\\\",\\\" \\\",[\\\"$\\\",\\\"em\\\",null,{\\\"className\\\":\\\"font-normal font-serif text-ignition-2 italic\\\",\\\"children\\\":\\\"third\\\"}],\\\" \\\",\\\"identity category.\\\"]]}]\\n64:T539,max-w-[720px] [\\u0026_*:where(p,h3,ul)]:text-pretty [\\u0026_a.link:hover]:bg-ignition/10 [\\u0026_a.link:hover]:text-ignition [\\u0026_a.link]:border-ignition [\\u0026_a.link]:border-b [\\u0026_a.link]:pb-px [\\u0026_a.link]:font-medium [\\u0026_a.link]:text-zinc-950 [\\u0026_a.link]:transition-colors [\\u0026_a.link]:dark:text-white [\\u0026_code]:rounded-[4px] [\\u0026_code]:bg-zinc-100 [\\u0026_code]:px-1.5 [\\u0026_code]:py-0.5 [\\u0026_code]:font-mono [\\u0026_code]:text-[0.88em] [\\u0026_code]:text-zinc-950 [\\u0026_code]:dark:bg-zinc-800 [\\u0026_code]:dark:text-white [\\u0026_h3]:mt-9 [\\u0026_h3]:mb-3.5 [\\u0026_h3]:font-medium [\\u0026_h3]:text-[22px] [\\u0026_h3]:text-zinc-950 [\\u0026_h3]:leading-tight [\\u0026_h3]:tracking-[-0.015em] [\\u0026_h3]:dark:text-white [\\u0026_p.lede]:mb-7 [\\u0026_p.lede]:font-normal [\\u0026_p.lede]:text-[19px] [\\u0026_p.lede]:text-zinc-950 [\\u0026_p.lede]:leading-[1.6] [\\u0026_p.lede]:dark:text-white [\\u0026_p]:mb-5 [\\u0026_p]:text-[17px] [\\u0026_p]:text-zinc-800 [\\u0026_p]:leading-[1.7] [\\u0026_p]:dark:text-zinc-200 [\\u0026_strong]:font-semibold [\\u0026_strong]:text-zinc-950 [\\u0026_strong]:dark:text-white [\\u0026_ul]:mb-6 [\\u0026_ul]:ml-0 [\\u0026_ul]:list-none [\\u0026_ul]:p-0 [\\u0026_ul_li]:relative [\\u0026_ul_li]:mb-2.5 [\\u0026_ul_li]:pl-[22px] [\\u0026_ul_li]:text-[16px] [\\u0026_ul_li]:text-zinc-700 [\\u0026_ul_li]:leading-[1.6] [\\u0026_ul_li]:before:absolute [\\u0026_ul_li]:before:top-[11px] [\\u0026_ul_li]:before:left-0.5 [\\u0026_ul_li]:before:size-1.5 [\\u0026_ul_li]:before:rounded-full [\\u0026_ul_li]:before:bg-ignition [\\u0026_ul_li]:before:content-[''] [\\u0026_ul_li]:dark:text-zinc-300\"])</script><script>self.__next_f.push([1,\"3b:[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"$64\\\",\\\"children\\\":[[\\\"$\\\",\\\"p\\\",null,{\\\"children\\\":\\\"Most 2026 coverage lumps everything non-human into one “non-human identity” bucket. That framing hides the decision that matters. In practice there are three categories with different lifecycles, and the tooling built for the first two fails on the third.\\\"}],[\\\"$\\\",\\\"p\\\",null,{\\\"children\\\":\\\"The scale problem is real regardless of whose count you trust. Per the Cloud Security Alliance’s May 2026 whitepaper on non-human identity governance, non-human identities — service accounts, API keys, OAuth tokens, machine certificates, agent credentials — outnumber human users by an average of 45:1 across enterprises, rising to 144:1 in cloud-native environments. Worth noting: different summaries of the CSA’s own research circulate different headline figures for this problem, which is itself a tell for how unsettled the industry’s accounting of its non-human population still is. Treat any single ratio as directional; the direction is unambiguous.\\\"}],[\\\"$\\\",\\\"p\\\",null,{\\\"children\\\":\\\"Microsoft’s Entra documentation puts the operational gap plainly: “It’s also hard to track when a workload identity is created or when it should be revoked.” That sentence describes classic service accounts. Agents make it worse, and Microsoft now says so explicitly — its workload-identity docs carve out AI agents as a distinct category of machine identity: “Unlike traditional workloads that execute predetermined logic, AI agents make dynamic decisions and adapt behavior.”\\\"}]]}]\\n\"])</script><script>self.__next_f.push([1,\"3c:[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"my-8 flex flex-col gap-4\\\",\\\"children\\\":[[\\\"$\\\",\\\"div\\\",\\\"0\\\",{\\\"className\\\":\\\"relative flex flex-col gap-5 overflow-hidden rounded-2xl p-6 md:flex-row md:gap-8 md:p-7 border border-zinc-200 bg-white dark:border-zinc-800 dark:bg-zinc-900\\\",\\\"children\\\":[\\\"$undefined\\\",[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"flex flex-col gap-3 md:w-[220px] md:shrink-0\\\",\\\"children\\\":[[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"flex items-center gap-2 font-mono text-[10.5px] uppercase tracking-[0.14em] text-zinc-500\\\",\\\"children\\\":[[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"size-1.5 rounded-full bg-current\\\"}],\\\"Category 01\\\"]}],[\\\"$\\\",\\\"h5\\\",null,{\\\"className\\\":\\\"m-0 font-medium text-[22px] leading-[1.2] tracking-[-0.02em] text-zinc-950 dark:text-white\\\",\\\"children\\\":\\\"Human identity\\\"}],[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"self-start\\\",\\\"children\\\":[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"inline-block rounded-md px-2.5 py-1.5 font-mono text-[12px] tracking-[-0.01em] bg-zinc-100 text-zinc-700 dark:bg-zinc-800 dark:text-zinc-300\\\",\\\"children\\\":\\\"Interactive · MFA · session-bound\\\"}]}]]}],[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"hidden w-px self-stretch bg-zinc-200/60 md:block dark:bg-zinc-800/60\\\"}],[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"flex flex-1 flex-col justify-between gap-4\\\",\\\"children\\\":[[\\\"$\\\",\\\"p\\\",null,{\\\"className\\\":\\\"m-0 text-[13.5px] leading-[1.6] text-zinc-600 dark:text-zinc-400\\\",\\\"children\\\":\\\"Built around a person who can answer a prompt: passwords, MFA challenges, conditional access, re-authentication on risk signals. None of that machinery fires when the caller is a process — there is nobody to approve the push notification.\\\"}],[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"self-start pt-1 md:self-end\\\",\\\"children\\\":[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"inline-block rounded-sm bg-ignition/10 px-2 py-1 font-mono text-[10px] text-ignition uppercase tracking-[0.12em]\\\",\\\"children\\\":\\\"Traditional IAM’s home turf\\\"}]}]]}]]}],[\\\"$\\\",\\\"div\\\",\\\"1\\\",{\\\"className\\\":\\\"relative flex flex-col gap-5 overflow-hidden rounded-2xl p-6 md:flex-row md:gap-8 md:p-7 border border-zinc-200 bg-white dark:border-zinc-800 dark:bg-zinc-900\\\",\\\"children\\\":[\\\"$undefined\\\",[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"flex flex-col gap-3 md:w-[220px] md:shrink-0\\\",\\\"children\\\":[[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"flex items-center gap-2 font-mono text-[10.5px] uppercase tracking-[0.14em] text-zinc-500\\\",\\\"children\\\":[[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"size-1.5 rounded-full bg-current\\\"}],\\\"Category 02\\\"]}],[\\\"$\\\",\\\"h5\\\",null,{\\\"className\\\":\\\"m-0 font-medium text-[22px] leading-[1.2] tracking-[-0.02em] text-zinc-950 dark:text-white\\\",\\\"children\\\":\\\"Service account\\\"}],[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"self-start\\\",\\\"children\\\":[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"inline-block rounded-md px-2.5 py-1.5 font-mono text-[12px] tracking-[-0.01em] bg-zinc-100 text-zinc-700 dark:bg-zinc-800 dark:text-zinc-300\\\",\\\"children\\\":\\\"Long-lived · few · rarely rotated\\\"}]}]]}],[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"hidden w-px self-stretch bg-zinc-200/60 md:block dark:bg-zinc-800/60\\\"}],[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"flex flex-1 flex-col justify-between gap-4\\\",\\\"children\\\":[[\\\"$\\\",\\\"p\\\",null,{\\\"className\\\":\\\"m-0 text-[13.5px] leading-[1.6] text-zinc-600 dark:text-zinc-400\\\",\\\"children\\\":\\\"Predetermined logic, stable scope, a handful per system. The classic failure is the forgotten key — powerful, unowned, unrotated for years — but at least the behavior behind it is static and reviewable.\\\"}],[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"self-start pt-1 md:self-end\\\",\\\"children\\\":[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"inline-block rounded-sm bg-ignition/10 px-2 py-1 font-mono text-[10px] text-ignition uppercase tracking-[0.12em]\\\",\\\"children\\\":\\\"Classic non-human identity\\\"}]}]]}]]}],[\\\"$\\\",\\\"div\\\",\\\"2\\\",{\\\"className\\\":\\\"relative flex flex-col gap-5 overflow-hidden rounded-2xl p-6 md:flex-row md:gap-8 md:p-7 border border-white/10 bg-[#0a0a0b] text-white\\\",\\\"children\\\":[[\\\"$\\\",\\\"div\\\",null,{\\\"aria-hidden\\\":\\\"true\\\",\\\"style\\\":{\\\"position\\\":\\\"absolute\\\",\\\"inset\\\":-1,\\\"borderRadius\\\":\\\"16px\\\",\\\"padding\\\":1,\\\"background\\\":\\\"linear-gradient(135deg,#ff6b1a,transparent 60%)\\\",\\\"WebkitMask\\\":\\\"linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0)\\\",\\\"WebkitMaskComposite\\\":\\\"xor\\\",\\\"mask\\\":\\\"linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0)\\\",\\\"maskComposite\\\":\\\"exclude\\\",\\\"pointerEvents\\\":\\\"none\\\"}}],\\\"$L65\\\",\\\"$L66\\\",\\\"$L67\\\"]}]]}]\\n\"])</script><script>self.__next_f.push([1,\"68:T539,max-w-[720px] [\\u0026_*:where(p,h3,ul)]:text-pretty [\\u0026_a.link:hover]:bg-ignition/10 [\\u0026_a.link:hover]:text-ignition [\\u0026_a.link]:border-ignition [\\u0026_a.link]:border-b [\\u0026_a.link]:pb-px [\\u0026_a.link]:font-medium [\\u0026_a.link]:text-zinc-950 [\\u0026_a.link]:transition-colors [\\u0026_a.link]:dark:text-white [\\u0026_code]:rounded-[4px] [\\u0026_code]:bg-zinc-100 [\\u0026_code]:px-1.5 [\\u0026_code]:py-0.5 [\\u0026_code]:font-mono [\\u0026_code]:text-[0.88em] [\\u0026_code]:text-zinc-950 [\\u0026_code]:dark:bg-zinc-800 [\\u0026_code]:dark:text-white [\\u0026_h3]:mt-9 [\\u0026_h3]:mb-3.5 [\\u0026_h3]:font-medium [\\u0026_h3]:text-[22px] [\\u0026_h3]:text-zinc-950 [\\u0026_h3]:leading-tight [\\u0026_h3]:tracking-[-0.015em] [\\u0026_h3]:dark:text-white [\\u0026_p.lede]:mb-7 [\\u0026_p.lede]:font-normal [\\u0026_p.lede]:text-[19px] [\\u0026_p.lede]:text-zinc-950 [\\u0026_p.lede]:leading-[1.6] [\\u0026_p.lede]:dark:text-white [\\u0026_p]:mb-5 [\\u0026_p]:text-[17px] [\\u0026_p]:text-zinc-800 [\\u0026_p]:leading-[1.7] [\\u0026_p]:dark:text-zinc-200 [\\u0026_strong]:font-semibold [\\u0026_strong]:text-zinc-950 [\\u0026_strong]:dark:text-white [\\u0026_ul]:mb-6 [\\u0026_ul]:ml-0 [\\u0026_ul]:list-none [\\u0026_ul]:p-0 [\\u0026_ul_li]:relative [\\u0026_ul_li]:mb-2.5 [\\u0026_ul_li]:pl-[22px] [\\u0026_ul_li]:text-[16px] [\\u0026_ul_li]:text-zinc-700 [\\u0026_ul_li]:leading-[1.6] [\\u0026_ul_li]:before:absolute [\\u0026_ul_li]:before:top-[11px] [\\u0026_ul_li]:before:left-0.5 [\\u0026_ul_li]:before:size-1.5 [\\u0026_ul_li]:before:rounded-full [\\u0026_ul_li]:before:bg-ignition [\\u0026_ul_li]:before:content-[''] [\\u0026_ul_li]:dark:text-zinc-300\"])</script><script>self.__next_f.push([1,\"3d:[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"$68\\\",\\\"children\\\":[[\\\"$\\\",\\\"p\\\",null,{\\\"children\\\":\\\"The vendor proof that this third category is real: Microsoft Entra Agent ID — documentation first published April 14, 2026 and updated June 24, 2026 — is a shipping identity framework specifically for AI agents, layered on Entra, speaking OAuth 2.0, MCP, and A2A. Its design choices read like a checklist of everything borrowed credentials get wrong: “agent identity blueprints” mint individual agent identities from templates with tracked parent-child relationships, so one policy governs every instance spawned from the same template; third-party agents built on non-Microsoft platforms — Microsoft names AWS Bedrock and n8n — can be brought under the same governance via an auth SDK sidecar or standard workload identity federation. Licensing is its own snapshot-in-time detail (full functionality sits behind Microsoft 365 E7 or an E5 add-on, with standalone Entra tiers below that), but the architectural signal matters more than the packaging: Microsoft decided agents need their own principal type.\\\"}],[\\\"$\\\",\\\"p\\\",null,{\\\"children\\\":\\\"The same conclusion is coming from the standards side. NIST’s zero-trust architecture guidance treats every machine-to-machine call as requiring explicit authorization regardless of network position — no implicit trust for being “inside the VPC” — which is the baseline assumption every mechanism in the next section builds on.\\\"}]]}]\\n\"])</script><script>self.__next_f.push([1,\"3e:[\\\"$\\\",\\\"h2\\\",null,{\\\"className\\\":\\\"m-0 mt-14 mb-5 scroll-mt-[90px] font-normal text-[clamp(26px,3vw,36px)] text-zinc-950 leading-[1.15] tracking-[-0.025em] dark:text-white\\\",\\\"id\\\":\\\"mechanisms\\\",\\\"children\\\":[[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"mb-3.5 block font-medium font-mono text-[11px] text-ignition uppercase tracking-[0.12em]\\\",\\\"children\\\":[\\\"03\\\",\\\" — \\\",\\\"Named Mechanisms\\\"]}],[\\\"The mechanism shelf:\\\",\\\" \\\",[\\\"$\\\",\\\"em\\\",null,{\\\"className\\\":\\\"font-normal font-serif text-ignition-2 italic\\\",\\\"children\\\":\\\"short-lived\\\"}],\\\" \\\",\\\"beats long-lived, everywhere.\\\"]]}]\\n69:T539,max-w-[720px] [\\u0026_*:where(p,h3,ul)]:text-pretty [\\u0026_a.link:hover]:bg-ignition/10 [\\u0026_a.link:hover]:text-ignition [\\u0026_a.link]:border-ignition [\\u0026_a.link]:border-b [\\u0026_a.link]:pb-px [\\u0026_a.link]:font-medium [\\u0026_a.link]:text-zinc-950 [\\u0026_a.link]:transition-colors [\\u0026_a.link]:dark:text-white [\\u0026_code]:rounded-[4px] [\\u0026_code]:bg-zinc-100 [\\u0026_code]:px-1.5 [\\u0026_code]:py-0.5 [\\u0026_code]:font-mono [\\u0026_code]:text-[0.88em] [\\u0026_code]:text-zinc-950 [\\u0026_code]:dark:bg-zinc-800 [\\u0026_code]:dark:text-white [\\u0026_h3]:mt-9 [\\u0026_h3]:mb-3.5 [\\u0026_h3]:font-medium [\\u0026_h3]:text-[22px] [\\u0026_h3]:text-zinc-950 [\\u0026_h3]:leading-tight [\\u0026_h3]:tracking-[-0.015em] [\\u0026_h3]:dark:text-white [\\u0026_p.lede]:mb-7 [\\u0026_p.lede]:font-normal [\\u0026_p.lede]:text-[19px] [\\u0026_p.lede]:text-zinc-950 [\\u0026_p.lede]:leading-[1.6] [\\u0026_p.lede]:dark:text-white [\\u0026_p]:mb-5 [\\u0026_p]:text-[17px] [\\u0026_p]:text-zinc-800 [\\u0026_p]:leading-[1.7] [\\u0026_p]:dark:text-zinc-200 [\\u0026_strong]:font-semibold [\\u0026_strong]:text-zinc-950 [\\u0026_strong]:dark:text-white [\\u0026_ul]:mb-6 [\\u0026_ul]:ml-0 [\\u0026_ul]:list-none [\\u0026_ul]:p-0 [\\u0026_ul_li]:relative [\\u0026_ul_li]:mb-2.5 [\\u0026_ul_li]:pl-[22px] [\\u0026_ul_li]:text-[16px] [\\u0026_ul_li]:text-zinc-700 [\\u0026_ul_li]:leading-[1.6] [\\u0026_ul_li]:before:absolute [\\u0026_ul_li]:before:top-[11px] [\\u0026_ul_li]:before:left-0.5 [\\u0026_ul_li]:before:size-1.5 [\\u0026_ul_li]:before:rounded-full [\\u0026_ul_li]:before:bg-ignition [\\u0026_ul_li]:before:content-[''] [\\u0026_ul_li]:dark:text-zinc-300\"])</script><script>self.__next_f.push([1,\"3f:[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"$69\\\",\\\"children\\\":[[\\\"$\\\",\\\"p\\\",null,{\\\"children\\\":\\\"None of this requires inventing anything. Four families of mechanism, all shipping today, already issue exactly the kind of credential an agent should hold: short-lived, workload-scoped, audit-attributable, and revocable on their own.\\\"}],[\\\"$\\\",\\\"h3\\\",null,{\\\"children\\\":\\\"SPIFFE / SPIRE — identity from attestation, not secrets\\\"}],[\\\"$\\\",\\\"p\\\",null,{\\\"children\\\":[\\\"SPIFFE (Secure Production Identity Framework For Everyone) issues short-lived cryptographic identity documents called SVIDs — X.509 certificates or JWTs — to workloads. The decisive property is that issuance is tied to \\\",[\\\"$\\\",\\\"strong\\\",null,{\\\"children\\\":\\\"workload attestation\\\"}],\\\": SPIRE verifies what the workload actually is at runtime, rather than trusting whoever holds a pre-provisioned secret. SVIDs rotate automatically, and trust domains can federate across organizations. For agents, that means the identity follows the running process, not a string in an env file.\\\"]}],[\\\"$\\\",\\\"h3\\\",null,{\\\"children\\\":\\\"Workload identity federation — the end of the key file\\\"}],[\\\"$\\\",\\\"p\\\",null,{\\\"children\\\":\\\"Google Cloud’s workload identity federation lets an external workload — on-prem, another cloud, a CI/CD runner, an AI agent — present a credential from its own identity provider, which Google’s Security Token Service validates and exchanges for a short-lived Google Cloud token. No long-lived service-account key file is ever distributed. It federates against AWS, Azure, Active Directory, GitHub and GitLab OIDC, Kubernetes, Okta, and any generic OIDC or SAML 2.0 provider, and supports both direct IAM grants to the federated identity and service-account impersonation.\\\"}]]}]\\n\"])</script><script>self.__next_f.push([1,\"40:[\\\"$\\\",\\\"blockquote\\\",null,{\\\"className\\\":\\\"my-7 border-ignition border-l-[3px] bg-zinc-50 px-6 py-5 font-serif text-[19px] text-zinc-950 italic leading-normal tracking-[-0.005em] dark:bg-zinc-900 dark:text-white\\\",\\\"children\\\":[\\\"\\\\\\\"Service account keys are powerful credentials, and can present a security risk if they are not managed correctly.\\\\\\\"\\\",[\\\"$\\\",\\\"cite\\\",null,{\\\"className\\\":\\\"mt-3 block font-medium font-mono text-[11px] text-zinc-500 uppercase not-italic tracking-widest\\\",\\\"children\\\":\\\"— Google Cloud IAM documentation, workload identity federation\\\"}]]}]\\n6a:T539,max-w-[720px] [\\u0026_*:where(p,h3,ul)]:text-pretty [\\u0026_a.link:hover]:bg-ignition/10 [\\u0026_a.link:hover]:text-ignition [\\u0026_a.link]:border-ignition [\\u0026_a.link]:border-b [\\u0026_a.link]:pb-px [\\u0026_a.link]:font-medium [\\u0026_a.link]:text-zinc-950 [\\u0026_a.link]:transition-colors [\\u0026_a.link]:dark:text-white [\\u0026_code]:rounded-[4px] [\\u0026_code]:bg-zinc-100 [\\u0026_code]:px-1.5 [\\u0026_code]:py-0.5 [\\u0026_code]:font-mono [\\u0026_code]:text-[0.88em] [\\u0026_code]:text-zinc-950 [\\u0026_code]:dark:bg-zinc-800 [\\u0026_code]:dark:text-white [\\u0026_h3]:mt-9 [\\u0026_h3]:mb-3.5 [\\u0026_h3]:font-medium [\\u0026_h3]:text-[22px] [\\u0026_h3]:text-zinc-950 [\\u0026_h3]:leading-tight [\\u0026_h3]:tracking-[-0.015em] [\\u0026_h3]:dark:text-white [\\u0026_p.lede]:mb-7 [\\u0026_p.lede]:font-normal [\\u0026_p.lede]:text-[19px] [\\u0026_p.lede]:text-zinc-950 [\\u0026_p.lede]:leading-[1.6] [\\u0026_p.lede]:dark:text-white [\\u0026_p]:mb-5 [\\u0026_p]:text-[17px] [\\u0026_p]:text-zinc-800 [\\u0026_p]:leading-[1.7] [\\u0026_p]:dark:text-zinc-200 [\\u0026_strong]:font-semibold [\\u0026_strong]:text-zinc-950 [\\u0026_strong]:dark:text-white [\\u0026_ul]:mb-6 [\\u0026_ul]:ml-0 [\\u0026_ul]:list-none [\\u0026_ul]:p-0 [\\u0026_ul_li]:relative [\\u0026_ul_li]:mb-2.5 [\\u0026_ul_li]:pl-[22px] [\\u0026_ul_li]:text-[16px] [\\u0026_ul_li]:text-zinc-700 [\\u0026_ul_li]:leading-[1.6] [\\u0026_ul_li]:before:absolute [\\u0026_ul_li]:before:top-[11px] [\\u0026_ul_li]:before:left-0.5 [\\u0026_ul_li]:before:size-1.5 [\\u0026_ul_li]:before:rounded-full [\\u0026_ul_li]:before:bg-ignition [\\u0026_ul_li]:before:content-[''] [\\u0026_ul_li]:dark:text-zinc-300\"])</script><script>self.__next_f.push([1,\"41:[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"$6a\\\",\\\"children\\\":[[\\\"$\\\",\\\"h3\\\",null,{\\\"children\\\":\\\"AWS IAM Roles Anywhere — certificates in, sessions out\\\"}],[\\\"$\\\",\\\"p\\\",null,{\\\"children\\\":\\\"AWS’s version replaces the long-lived Access Key ID and Secret Access Key pair with an X.509 certificate presented by the workload, exchanged for temporary STS credentials valid from 15 minutes up to 12 hours. The supporting Credential Helper is under active development inside this year’s window — v1.8.0 (March 5, 2026) added ML-DSA post-quantum signature support, and v1.8.4 (June 9, 2026) patched security vulnerabilities — a useful signal that cert-based machine credentials are a maintained, first-class path, not a legacy corner.\\\"}],[\\\"$\\\",\\\"h3\\\",null,{\\\"children\\\":\\\"GitHub App installation tokens \\u0026 fine-grained PATs\\\"}],[\\\"$\\\",\\\"p\\\",null,{\\\"children\\\":\\\"GitHub offers the most concrete everyday example. A GitHub App installation access token expires one hour after issuance, can never exceed what the app itself was granted, and can be scoped down further at request time — to a subset of repositories (up to 500) and a subset of permissions. GitHub has also introduced a stateless installation token format that replaces the old opaque 40-character string with a self-describing, verifiable credential. Fine-grained personal access tokens complete the picture for human-adjacent automation: 30-day default expiry, extendable to 366 days (or “never,” where org policy permits), scoped to a single user or org and to named repositories — unlike classic PATs, which granted blanket access to everything their owner could reach.\\\"}],[\\\"$\\\",\\\"p\\\",null,{\\\"children\\\":[\\\"Two adjacent playbooks pair with this shelf. Rotation cadence and storage for whatever secrets remain is covered in our\\\",\\\" \\\",[\\\"$\\\",\\\"$L2f\\\",null,{\\\"className\\\":\\\"link\\\",\\\"href\\\":\\\"/blog/secrets-management-api-key-rotation-2026-engineering-reference\\\",\\\"children\\\":\\\"secrets management and API key rotation reference\\\"}],\\\", and for a concrete consumer-facing version of “hand the agent a scoped credential instead of your login,” see how\\\",\\\" \\\",\\\"$L6b\\\",\\\".\\\"]}]]}]\\n\"])</script><script>self.__next_f.push([1,\"42:[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"my-8 flex flex-col gap-4\\\",\\\"children\\\":[[\\\"$\\\",\\\"div\\\",\\\"0\\\",{\\\"className\\\":\\\"relative flex flex-col gap-5 rounded-2xl border border-zinc-200 bg-white p-6 md:flex-row md:gap-8 md:p-7 dark:border-zinc-800 dark:bg-zinc-900\\\",\\\"children\\\":[[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"flex items-start gap-4 md:w-[220px] md:shrink-0 md:flex-col md:gap-3\\\",\\\"children\\\":[[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"flex flex-1 flex-col gap-1.5\\\",\\\"children\\\":[[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"font-mono text-[10.5px] text-zinc-500 uppercase tracking-[0.12em]\\\",\\\"children\\\":\\\"GitHub App token\\\"}],[\\\"$\\\",\\\"h5\\\",null,{\\\"className\\\":\\\"m-0 font-medium text-[18px] text-zinc-950 leading-[1.3] tracking-[-0.01em] dark:text-white\\\",\\\"children\\\":\\\"Installation token lifetime\\\"}]]}],[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"flex items-baseline gap-1 font-light text-[48px] text-zinc-900 leading-none tracking-[-0.03em] md:order-first dark:text-zinc-100\\\",\\\"children\\\":[\\\"1\\\",[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"font-mono font-normal text-[14px] text-ignition\\\",\\\"children\\\":\\\"hr\\\"}]]}]]}],[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"hidden w-px self-stretch bg-zinc-200/60 md:block dark:bg-zinc-800/60\\\"}],[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"flex flex-1 flex-col justify-between gap-4\\\",\\\"children\\\":[[\\\"$\\\",\\\"p\\\",null,{\\\"className\\\":\\\"m-0 text-[13.5px] text-zinc-600 leading-[1.6] dark:text-zinc-400\\\",\\\"children\\\":\\\"Expires one hour after issuance, capped at the app’s own grants, and downscopable at request time to specific repositories (up to 500) and permissions.\\\"}],[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"w-full self-start border-zinc-100 border-t pt-2 text-left md:self-end md:text-right dark:border-zinc-800\\\",\\\"children\\\":[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"font-mono text-[10px] text-ignition uppercase tracking-widest\\\",\\\"children\\\":\\\"Stateless verifiable format\\\"}]}]]}]]}],[\\\"$\\\",\\\"div\\\",\\\"1\\\",{\\\"className\\\":\\\"relative flex flex-col gap-5 rounded-2xl border border-zinc-200 bg-white p-6 md:flex-row md:gap-8 md:p-7 dark:border-zinc-800 dark:bg-zinc-900\\\",\\\"children\\\":[[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"flex items-start gap-4 md:w-[220px] md:shrink-0 md:flex-col md:gap-3\\\",\\\"children\\\":[[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"flex flex-1 flex-col gap-1.5\\\",\\\"children\\\":[[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"font-mono text-[10.5px] text-zinc-500 uppercase tracking-[0.12em]\\\",\\\"children\\\":\\\"AWS IAM Roles Anywhere\\\"}],[\\\"$\\\",\\\"h5\\\",null,{\\\"className\\\":\\\"m-0 font-medium text-[18px] text-zinc-950 leading-[1.3] tracking-[-0.01em] dark:text-white\\\",\\\"children\\\":\\\"Minimum session lifetime\\\"}]]}],[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"flex items-baseline gap-1 font-light text-[48px] text-zinc-900 leading-none tracking-[-0.03em] md:order-first dark:text-zinc-100\\\",\\\"children\\\":[\\\"15\\\",[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"font-mono font-normal text-[14px] text-ignition\\\",\\\"children\\\":\\\"min\\\"}]]}]]}],[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"hidden w-px self-stretch bg-zinc-200/60 md:block dark:bg-zinc-800/60\\\"}],[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"flex flex-1 flex-col justify-between gap-4\\\",\\\"children\\\":[[\\\"$\\\",\\\"p\\\",null,{\\\"className\\\":\\\"m-0 text-[13.5px] text-zinc-600 leading-[1.6] dark:text-zinc-400\\\",\\\"children\\\":\\\"An X.509 certificate is exchanged for temporary STS credentials valid from 15 minutes to 12 hours. No long-lived access-key pair is ever distributed.\\\"}],[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"w-full self-start border-zinc-100 border-t pt-2 text-left md:self-end md:text-right dark:border-zinc-800\\\",\\\"children\\\":[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"font-mono text-[10px] text-ignition uppercase tracking-widest\\\",\\\"children\\\":\\\"Helper v1.8.4 · Jun 2026\\\"}]}]]}]]}],[\\\"$\\\",\\\"div\\\",\\\"2\\\",{\\\"className\\\":\\\"relative flex flex-col gap-5 rounded-2xl border border-zinc-200 bg-white p-6 md:flex-row md:gap-8 md:p-7 dark:border-zinc-800 dark:bg-zinc-900\\\",\\\"children\\\":[[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"flex items-start gap-4 md:w-[220px] md:shrink-0 md:flex-col md:gap-3\\\",\\\"children\\\":[[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"flex flex-1 flex-col gap-1.5\\\",\\\"children\\\":[\\\"$L6c\\\",\\\"$L6d\\\"]}],\\\"$L6e\\\"]}],\\\"$L6f\\\",\\\"$L70\\\"]}]]}]\\n\"])</script><script>self.__next_f.push([1,\"43:[\\\"$\\\",\\\"h2\\\",null,{\\\"className\\\":\\\"m-0 mt-14 mb-5 scroll-mt-[90px] font-normal text-[clamp(26px,3vw,36px)] text-zinc-950 leading-[1.15] tracking-[-0.025em] dark:text-white\\\",\\\"id\\\":\\\"delegation\\\",\\\"children\\\":[[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"mb-3.5 block font-medium font-mono text-[11px] text-ignition uppercase tracking-[0.12em]\\\",\\\"children\\\":[\\\"04\\\",\\\" — \\\",\\\"On-Behalf-Of\\\"]}],[\\\"Delegation is not\\\",\\\" \\\",[\\\"$\\\",\\\"em\\\",null,{\\\"className\\\":\\\"font-normal font-serif text-ignition-2 italic\\\",\\\"children\\\":\\\"impersonation\\\"}],\\\".\\\"]]}]\\n71:T539,max-w-[720px] [\\u0026_*:where(p,h3,ul)]:text-pretty [\\u0026_a.link:hover]:bg-ignition/10 [\\u0026_a.link:hover]:text-ignition [\\u0026_a.link]:border-ignition [\\u0026_a.link]:border-b [\\u0026_a.link]:pb-px [\\u0026_a.link]:font-medium [\\u0026_a.link]:text-zinc-950 [\\u0026_a.link]:transition-colors [\\u0026_a.link]:dark:text-white [\\u0026_code]:rounded-[4px] [\\u0026_code]:bg-zinc-100 [\\u0026_code]:px-1.5 [\\u0026_code]:py-0.5 [\\u0026_code]:font-mono [\\u0026_code]:text-[0.88em] [\\u0026_code]:text-zinc-950 [\\u0026_code]:dark:bg-zinc-800 [\\u0026_code]:dark:text-white [\\u0026_h3]:mt-9 [\\u0026_h3]:mb-3.5 [\\u0026_h3]:font-medium [\\u0026_h3]:text-[22px] [\\u0026_h3]:text-zinc-950 [\\u0026_h3]:leading-tight [\\u0026_h3]:tracking-[-0.015em] [\\u0026_h3]:dark:text-white [\\u0026_p.lede]:mb-7 [\\u0026_p.lede]:font-normal [\\u0026_p.lede]:text-[19px] [\\u0026_p.lede]:text-zinc-950 [\\u0026_p.lede]:leading-[1.6] [\\u0026_p.lede]:dark:text-white [\\u0026_p]:mb-5 [\\u0026_p]:text-[17px] [\\u0026_p]:text-zinc-800 [\\u0026_p]:leading-[1.7] [\\u0026_p]:dark:text-zinc-200 [\\u0026_strong]:font-semibold [\\u0026_strong]:text-zinc-950 [\\u0026_strong]:dark:text-white [\\u0026_ul]:mb-6 [\\u0026_ul]:ml-0 [\\u0026_ul]:list-none [\\u0026_ul]:p-0 [\\u0026_ul_li]:relative [\\u0026_ul_li]:mb-2.5 [\\u0026_ul_li]:pl-[22px] [\\u0026_ul_li]:text-[16px] [\\u0026_ul_li]:text-zinc-700 [\\u0026_ul_li]:leading-[1.6] [\\u0026_ul_li]:before:absolute [\\u0026_ul_li]:before:top-[11px] [\\u0026_ul_li]:before:left-0.5 [\\u0026_ul_li]:before:size-1.5 [\\u0026_ul_li]:before:rounded-full [\\u0026_ul_li]:before:bg-ignition [\\u0026_ul_li]:before:content-[''] [\\u0026_ul_li]:dark:text-zinc-300\"])</script><script>self.__next_f.push([1,\"44:[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"$71\\\",\\\"children\\\":[[\\\"$\\\",\\\"p\\\",null,{\\\"children\\\":\\\"The hardest agent-identity case is the most common one: an agent acting on behalf of a specific human. Get this wrong and you are back to the borrowed-credential trap with extra steps. The formal machinery for getting it right has existed since January 2020: RFC 8693, OAuth 2.0 Token Exchange — a Standards Track RFC defining an HTTP/JSON protocol for trading one security token for another.\\\"}],[\\\"$\\\",\\\"p\\\",null,{\\\"children\\\":[\\\"RFC 8693 draws exactly the distinction this post is about.\\\",\\\" \\\",[\\\"$\\\",\\\"strong\\\",null,{\\\"children\\\":\\\"Impersonation\\\"}],\\\" means the new token’s holder becomes indistinguishable from the original subject, taking on all of its rights — the protocol-level formalization of the trap in Section 01.\\\",\\\" \\\",[\\\"$\\\",\\\"strong\\\",null,{\\\"children\\\":\\\"Delegation\\\"}],\\\" means the acting party keeps its own separate identity while exercising rights granted by the subject — it acts as an agent of the subject rather than becoming it. The request format encodes the difference structurally: a required\\\",\\\" \\\",[\\\"$\\\",\\\"code\\\",null,{\\\"children\\\":\\\"subject_token\\\"}],\\\" identifies who the request is on behalf of, and an optional \\\",[\\\"$\\\",\\\"code\\\",null,{\\\"children\\\":\\\"actor_token\\\"}],\\\" identifies who is actually making the call. Both identities survive into the minted token, which is what makes the downstream audit trail reconstructible.\\\"]}],[\\\"$\\\",\\\"p\\\",null,{\\\"children\\\":[\\\"The third piece is the \\\",[\\\"$\\\",\\\"code\\\",null,{\\\"children\\\":\\\"audience\\\"}],\\\" parameter: the client names the specific downstream service the token is being requested for, and the authorization server mints an\\\",\\\" \\\",[\\\"$\\\",\\\"strong\\\",null,{\\\"children\\\":\\\"audience-restricted\\\"}],\\\" token valid there and nowhere else. An agent that needs to read a calendar gets a token the CRM will reject. Notably, RFC 8693 leaves the token formats themselves out of scope — it is a protocol shell, which is why Google, Microsoft, GitHub, and HashiCorp each implement the pattern with their own token types. The pattern transfers; the strings do not.\\\"]}],[\\\"$\\\",\\\"p\\\",null,{\\\"children\\\":\\\"On the broader OAuth front, precision matters: OAuth 2.1 is still a draft, not a ratified RFC. It consolidates OAuth 2.0 with PKCE and native-app guidance, removes the implicit grant entirely, eliminates the resource-owner password grant, and makes PKCE mandatory for every authorization-code client. Directionally it is where agent-facing OAuth deployments should already be — but cite it as a draft, because that is what it is.\\\"}],\\\"$L72\\\"]}]\\n\"])</script><script>self.__next_f.push([1,\"45:[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"relative my-7 overflow-hidden rounded-xl bg-[#0a0a0b] px-7 py-5.5 text-white\\\",\\\"children\\\":[[\\\"$\\\",\\\"span\\\",null,{\\\"aria-hidden\\\":\\\"true\\\",\\\"className\\\":\\\"absolute top-0 bottom-0 left-0 w-[3px] bg-ignition\\\"}],[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"mb-2 block font-mono text-[10.5px] text-ignition-2 uppercase tracking-[0.14em]\\\",\\\"children\\\":\\\"Where RBAC fits\\\"}],[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"text-[15.5px] text-white leading-[1.6]\\\",\\\"children\\\":[\\\"These are complementary layers, not competing ones. This playbook covers how an agent identity is\\\",\\\" \\\",[\\\"$\\\",\\\"em\\\",null,{\\\"className\\\":\\\"font-serif text-white italic\\\",\\\"children\\\":\\\"issued, scoped, rotated, and revoked\\\"}],\\\". Our\\\",\\\" \\\",[\\\"$\\\",\\\"$L2f\\\",null,{\\\"className\\\":\\\"link\\\",\\\"href\\\":\\\"/blog/agentic-ai-rbac-design-patterns-implementation-2026\\\",\\\"children\\\":\\\"agentic RBAC design patterns post\\\"}],\\\" \\\",\\\"covers what that identity may \\\",[\\\"$\\\",\\\"strong\\\",null,{\\\"children\\\":\\\"do\\\"}],\\\" once it exists — roles, permission boundaries, and approval gates. You need both: perfect RBAC on a borrowed credential still mis-attributes every action, and a perfectly-issued identity with sloppy permissions is just a well-labeled skeleton key.\\\"]}]]}]\\n46:[\\\"$\\\",\\\"h2\\\",null,{\\\"className\\\":\\\"m-0 mt-14 mb-5 scroll-mt-[90px] font-normal text-[clamp(26px,3vw,36px)] text-zinc-950 leading-[1.15] tracking-[-0.025em] dark:text-white\\\",\\\"id\\\":\\\"matrix\\\",\\\"children\\\":[[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"mb-3.5 block font-medium font-mono text-[11px] text-ignition uppercase tracking-[0.12em]\\\",\\\"children\\\":[\\\"05\\\",\\\" — \\\",\\\"Decision Matrix\\\"]}],[\\\"Five access patterns,\\\",\\\" \\\",[\\\"$\\\",\\\"em\\\",null,{\\\"className\\\":\\\"font-normal font-serif text-ignition-2 italic\\\",\\\"children\\\":\\\"one\\\"}],\\\" \\\",\\\"table.\\\"]]}]\\n73:T539,max-w-[720px] [\\u0026_*:where(p,h3,ul)]:text-pretty [\\u0026_a.link:hover]:bg-ignition/10 [\\u0026_a.link:hover]:text-ignition [\\u0026_a.link]:border-ignition [\\u0026_a.link]:border-b [\\u0026_a.link]:pb-px [\\u0026_a.link]:font-medium [\\u0026_a.link]:text-zinc-950 [\\u0026_a.link]:transition-colors [\\u0026_a.link]:dark:text-white [\\u0026_code]:rounded-[4px] [\\u0026_code]:bg-zinc-100 [\\u0026_code]:px-1.5 [\\u0026_code]:py-0.5 [\\u0026_code]:font-mono [\\u0026_code]:text-[0.88em] [\\u0026_code]:text-zinc-950 [\\u0026_code]:dark:bg-zinc-800 [\\u0026_code]:dark:text-white [\\u0026_h3]:mt-9 [\\u0026_h3]:mb-3.5 [\\u0026_h3]:font-medium [\\u0026_h3]:text-[22px] [\\u0026_h3]:text-zinc-950 [\\u0026_h3]:leading-tight [\\u0026_h3]:tracking-[-0.015em] [\\u0026_h3]:dark:text-white [\\u0026_p.lede]:mb-7 [\\u0026_p.lede]:font-normal [\\u0026_p.lede]:text-[19px] [\\u0026_p.lede]:text-zinc-950 [\\u0026_p.lede]:leading-[1.6] [\\u0026_p.lede]:dark:text-white [\\u0026_p]:mb-5 [\\u0026_p]:text-[17px] [\\u0026_p]:text-zinc-800 [\\u0026_p]:leading-[1.7] [\\u0026_p]:dark:text-zinc-200 [\\u0026_strong]:font-semibold [\\u0026_strong]:text-zinc-950 [\\u0026_strong]:dark:text-white [\\u0026_ul]:mb-6 [\\u0026_ul]:ml-0 [\\u0026_ul]:list-none [\\u0026_ul]:p-0 [\\u0026_ul_li]:relative [\\u0026_ul_li]:mb-2.5 [\\u0026_ul_li]:pl-[22px] [\\u0026_ul_li]:text-[16px] [\\u0026_ul_li]:text-zinc-700 [\\u0026_ul_li]:leading-[1.6] [\\u0026_ul_li]:before:absolute [\\u0026_ul_li]:before:top-[11px] [\\u0026_ul_li]:before:left-0.5 [\\u0026_ul_li]:before:size-1.5 [\\u0026_ul_li]:before:rounded-full [\\u0026_ul_li]:before:bg-ignition [\\u0026_ul_li]:before:content-[''] [\\u0026_ul_li]:dark:text-zinc-30047:[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"$73\\\",\\\"children\\\":[\\\"$\\\",\\\"p\\\",null,{\\\"children\\\":\\\"Vendor documentation explains each mechanism in isolation; nobody lines them up against the access patterns real agent deployments actually have. The matrix below is our mapping: for each of the five ways an agent typically obtains access, the identity mechanism that fits, the credential lifetime you should expect, the revocation path when something goes wrong, and the audit granularity you get for incident reconstruction.\\\"}]}]\\n\"])</script><script>self.__next_f.push([1,\"48:[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"not-prose my-8 overflow-x-auto rounded-2xl border border-zinc-200 dark:border-zinc-800\\\",\\\"children\\\":[\\\"$\\\",\\\"table\\\",null,{\\\"className\\\":\\\"w-full border-collapse text-left text-[14px]\\\",\\\"children\\\":[[\\\"$\\\",\\\"caption\\\",null,{\\\"className\\\":\\\"sr-only\\\",\\\"children\\\":\\\"Agent identity decision matrix: five agent access patterns mapped to the identity mechanism that fits, typical credential lifetime, revocation path, and audit granularity. Compiled by Digital Applied from GitHub, Google Cloud, AWS, Microsoft Entra, SPIFFE, IETF RFC 8693, and Cloud Security Alliance documentation, retrieved July 2026.\\\"}],[\\\"$\\\",\\\"thead\\\",null,{\\\"children\\\":[\\\"$\\\",\\\"tr\\\",null,{\\\"className\\\":\\\"bg-zinc-950 text-white dark:bg-zinc-900\\\",\\\"children\\\":[[\\\"$\\\",\\\"th\\\",null,{\\\"className\\\":\\\"px-4 py-3 font-medium text-[12px] uppercase tracking-[0.06em]\\\",\\\"scope\\\":\\\"col\\\",\\\"children\\\":\\\"Access pattern\\\"}],[\\\"$\\\",\\\"th\\\",null,{\\\"className\\\":\\\"px-4 py-3 font-medium text-[12px] uppercase tracking-[0.06em]\\\",\\\"scope\\\":\\\"col\\\",\\\"children\\\":\\\"Identity mechanism\\\"}],[\\\"$\\\",\\\"th\\\",null,{\\\"className\\\":\\\"px-4 py-3 font-medium text-[12px] uppercase tracking-[0.06em]\\\",\\\"scope\\\":\\\"col\\\",\\\"children\\\":\\\"Typical credential lifetime\\\"}],[\\\"$\\\",\\\"th\\\",null,{\\\"className\\\":\\\"px-4 py-3 font-medium text-[12px] uppercase tracking-[0.06em]\\\",\\\"scope\\\":\\\"col\\\",\\\"children\\\":\\\"Revocation path\\\"}],[\\\"$\\\",\\\"th\\\",null,{\\\"className\\\":\\\"px-4 py-3 font-medium text-[12px] uppercase tracking-[0.06em]\\\",\\\"scope\\\":\\\"col\\\",\\\"children\\\":\\\"Audit granularity\\\"}]]}]}],[\\\"$\\\",\\\"tbody\\\",null,{\\\"className\\\":\\\"divide-y divide-zinc-200 dark:divide-zinc-800\\\",\\\"children\\\":[[\\\"$\\\",\\\"tr\\\",null,{\\\"className\\\":\\\"align-top text-zinc-700 dark:text-zinc-300\\\",\\\"children\\\":[[\\\"$\\\",\\\"th\\\",null,{\\\"className\\\":\\\"px-4 py-3 font-medium text-zinc-950 dark:text-white\\\",\\\"scope\\\":\\\"row\\\",\\\"children\\\":\\\"CI/CD pipeline agent\\\"}],[\\\"$\\\",\\\"td\\\",null,{\\\"className\\\":\\\"px-4 py-3\\\",\\\"children\\\":\\\"Workload identity federation over OIDC, or a GitHub App installation token\\\"}],[\\\"$\\\",\\\"td\\\",null,{\\\"className\\\":\\\"px-4 py-3 font-mono text-[13px]\\\",\\\"children\\\":\\\"~1 hr (installation token); STS-issued short-lived\\\"}],[\\\"$\\\",\\\"td\\\",null,{\\\"className\\\":\\\"px-4 py-3\\\",\\\"children\\\":\\\"Disable the app installation or the federation pool — no shared secret to hunt down and rotate\\\"}],[\\\"$\\\",\\\"td\\\",null,{\\\"className\\\":\\\"px-4 py-3\\\",\\\"children\\\":\\\"Per-run correlation: pipeline run ID tied to each token issuance\\\"}]]}],[\\\"$\\\",\\\"tr\\\",null,{\\\"className\\\":\\\"align-top text-zinc-700 dark:text-zinc-300\\\",\\\"children\\\":[[\\\"$\\\",\\\"th\\\",null,{\\\"className\\\":\\\"px-4 py-3 font-medium text-zinc-950 dark:text-white\\\",\\\"scope\\\":\\\"row\\\",\\\"children\\\":\\\"Human-delegated agent\\\"}],[\\\"$\\\",\\\"td\\\",null,{\\\"className\\\":\\\"px-4 py-3\\\",\\\"children\\\":\\\"RFC 8693 token exchange: subject token + actor token, audience-restricted\\\"}],[\\\"$\\\",\\\"td\\\",null,{\\\"className\\\":\\\"px-4 py-3 font-mono text-[13px]\\\",\\\"children\\\":\\\"Session-bound; expires with the delegation\\\"}],[\\\"$\\\",\\\"td\\\",null,{\\\"className\\\":\\\"px-4 py-3\\\",\\\"children\\\":\\\"Invalidate the user’s subject token or the agent’s actor token independently — neither locks out the other\\\"}],[\\\"$\\\",\\\"td\\\",null,{\\\"className\\\":\\\"px-4 py-3\\\",\\\"children\\\":\\\"Actor-plus-subject pair recorded on every downstream call\\\"}]]}],[\\\"$\\\",\\\"tr\\\",null,{\\\"className\\\":\\\"align-top text-zinc-700 dark:text-zinc-300\\\",\\\"children\\\":[[\\\"$\\\",\\\"th\\\",null,{\\\"className\\\":\\\"px-4 py-3 font-medium text-zinc-950 dark:text-white\\\",\\\"scope\\\":\\\"row\\\",\\\"children\\\":\\\"Autonomous scheduled agent\\\"}],[\\\"$\\\",\\\"td\\\",null,{\\\"className\\\":\\\"px-4 py-3\\\",\\\"children\\\":\\\"Its own workload identity: SPIFFE/SPIRE SVID or a cloud-managed identity, issued on attestation\\\"}],[\\\"$\\\",\\\"td\\\",null,{\\\"className\\\":\\\"px-4 py-3 font-mono text-[13px]\\\",\\\"children\\\":\\\"Minutes to hours; SVIDs rotate automatically\\\"}],[\\\"$\\\",\\\"td\\\",null,{\\\"className\\\":\\\"px-4 py-3\\\",\\\"children\\\":\\\"Revoke the SVID or deny the attestation — no human account is touched\\\"}],[\\\"$\\\",\\\"td\\\",null,{\\\"className\\\":\\\"px-4 py-3\\\",\\\"children\\\":\\\"Per-certificate serial / per-invocation identity in every log line\\\"}]]}],[\\\"$\\\",\\\"tr\\\",null,{\\\"className\\\":\\\"align-top text-zinc-700 dark:text-zinc-300\\\",\\\"children\\\":[[\\\"$\\\",\\\"th\\\",null,{\\\"className\\\":\\\"px-4 py-3 font-medium text-zinc-950 dark:text-white\\\",\\\"scope\\\":\\\"row\\\",\\\"children\\\":\\\"Sub-agent spawned by a parent\\\"}],\\\"$L74\\\",\\\"$L75\\\",\\\"$L76\\\",\\\"$L77\\\"]}],\\\"$L78\\\"]}]]}]}]\\n\"])</script><script>self.__next_f.push([1,\"79:T539,max-w-[720px] [\\u0026_*:where(p,h3,ul)]:text-pretty [\\u0026_a.link:hover]:bg-ignition/10 [\\u0026_a.link:hover]:text-ignition [\\u0026_a.link]:border-ignition [\\u0026_a.link]:border-b [\\u0026_a.link]:pb-px [\\u0026_a.link]:font-medium [\\u0026_a.link]:text-zinc-950 [\\u0026_a.link]:transition-colors [\\u0026_a.link]:dark:text-white [\\u0026_code]:rounded-[4px] [\\u0026_code]:bg-zinc-100 [\\u0026_code]:px-1.5 [\\u0026_code]:py-0.5 [\\u0026_code]:font-mono [\\u0026_code]:text-[0.88em] [\\u0026_code]:text-zinc-950 [\\u0026_code]:dark:bg-zinc-800 [\\u0026_code]:dark:text-white [\\u0026_h3]:mt-9 [\\u0026_h3]:mb-3.5 [\\u0026_h3]:font-medium [\\u0026_h3]:text-[22px] [\\u0026_h3]:text-zinc-950 [\\u0026_h3]:leading-tight [\\u0026_h3]:tracking-[-0.015em] [\\u0026_h3]:dark:text-white [\\u0026_p.lede]:mb-7 [\\u0026_p.lede]:font-normal [\\u0026_p.lede]:text-[19px] [\\u0026_p.lede]:text-zinc-950 [\\u0026_p.lede]:leading-[1.6] [\\u0026_p.lede]:dark:text-white [\\u0026_p]:mb-5 [\\u0026_p]:text-[17px] [\\u0026_p]:text-zinc-800 [\\u0026_p]:leading-[1.7] [\\u0026_p]:dark:text-zinc-200 [\\u0026_strong]:font-semibold [\\u0026_strong]:text-zinc-950 [\\u0026_strong]:dark:text-white [\\u0026_ul]:mb-6 [\\u0026_ul]:ml-0 [\\u0026_ul]:list-none [\\u0026_ul]:p-0 [\\u0026_ul_li]:relative [\\u0026_ul_li]:mb-2.5 [\\u0026_ul_li]:pl-[22px] [\\u0026_ul_li]:text-[16px] [\\u0026_ul_li]:text-zinc-700 [\\u0026_ul_li]:leading-[1.6] [\\u0026_ul_li]:before:absolute [\\u0026_ul_li]:before:top-[11px] [\\u0026_ul_li]:before:left-0.5 [\\u0026_ul_li]:before:size-1.5 [\\u0026_ul_li]:before:rounded-full [\\u0026_ul_li]:before:bg-ignition [\\u0026_ul_li]:before:content-[''] [\\u0026_ul_li]:dark:text-zinc-30049:[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"$79\\\",\\\"children\\\":[\\\"$\\\",\\\"p\\\",null,{\\\"children\\\":\\\"Two readings of this table are worth making explicit. First, the lifetime column trends toward zero as autonomy rises: the less a human is in the loop at trigger time, the shorter the credential should live, because there is nobody watching to notice misuse in real time. Second, every revocation path in the table shares one property — it never requires locking a human out. That is the single test that tells you whether an agent has its own identity or is wearing someone else’s.\\\"}]}]\\n4a:[\\\"$\\\",\\\"h2\\\",null,{\\\"className\\\":\\\"m-0 mt-14 mb-5 scroll-mt-[90px] font-normal text-[clamp(26px,3vw,36px)] text-zinc-950 leading-[1.15] tracking-[-0.025em] dark:text-white\\\",\\\"id\\\":\\\"revocation\\\",\\\"children\\\":[[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"mb-3.5 block font-medium font-mono text-[11px] text-ignition uppercase tracking-[0.12em]\\\",\\\"children\\\":[\\\"06\\\",\\\" — \\\",\\\"Kill Switches\\\"]}],[\\\"Revocation in\\\",\\\" \\\",[\\\"$\\\",\\\"em\\\",null,{\\\"className\\\":\\\"font-normal font-serif text-ignition-2 italic\\\",\\\"children\\\":\\\"minutes\\\"}],\\\", audit by the run.\\\"]]}]\\n7a:T539,max-w-[720px] [\\u0026_*:where(p,h3,ul)]:text-pretty [\\u0026_a.link:hover]:bg-ignition/10 [\\u0026_a.link:hover]:text-ignition [\\u0026_a.link]:border-ignition [\\u0026_a.link]:border-b [\\u0026_a.link]:pb-px [\\u0026_a.link]:font-medium [\\u0026_a.link]:text-zinc-950 [\\u0026_a.link]:transition-colors [\\u0026_a.link]:dark:text-white [\\u0026_code]:rounded-[4px] [\\u0026_code]:bg-zinc-100 [\\u0026_code]:px-1.5 [\\u0026_code]:py-0.5 [\\u0026_code]:font-mono [\\u0026_code]:text-[0.88em] [\\u0026_code]:text-zinc-950 [\\u0026_code]:dark:bg-zinc-800 [\\u0026_code]:dark:text-white [\\u0026_h3]:mt-9 [\\u0026_h3]:mb-3.5 [\\u0026_h3]:font-medium [\\u0026_h3]:text-[22px] [\\u0026_h3]:text-zinc-950 [\\u0026_h3]:leading-tight [\\u0026_h3]:tracking-[-0.015em] [\\u0026_h3]:dark:text-white [\\u0026_p.lede]:mb-7 [\\u0026_p.lede]:font-normal [\\u0026_p.lede]:text-[19px] [\\u0026_p.lede]:text-zinc-950 [\\u0026_p.lede]:leading-[1.6] [\\u0026_p.lede]:dark:text-white [\\u0026_p]:mb-5 [\\u0026_p]:text-[17px] [\\u0026_p]:text-zinc-800 [\\u0026_p]:leading-[1.7] [\\u0026_p]:dark:text-zinc-200 [\\u0026_strong]:font-semibold [\\u0026_strong]:text-zinc-950 [\\u0026_strong]:dark:text-white [\\u0026_ul]:mb-6 [\\u0026_ul]:ml-0 [\\u0026_ul]:list-none [\\u0026_ul]:p-0 [\\u0026_ul_li]:relative [\\u0026_ul_li]:mb-2.5 [\\u0026_ul_li]:pl-[22px] [\\u0026_ul_li]:text-[16px] [\\u0026_ul_li]:text-zinc-700 [\\u0026_ul_li]:leading-[1.6] [\\u0026_ul_li]:before:absolute [\\u0026_ul_li]:before:top-[11px] [\\u0026_ul_li]:before:left-0.5 [\\u0026_ul_li]:before:size-1.5 [\\u0026_ul_li]:before:rounded-full [\\u0026_ul_li]:before:bg-ignition [\\u0026_ul_li]:before:content-[''] [\\u0026_ul_li]:dark:text-zinc-300\"])</script><script>self.__next_f.push([1,\"4b:[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"$7a\\\",\\\"children\\\":[[\\\"$\\\",\\\"p\\\",null,{\\\"children\\\":\\\"Issuing the right credential is half the job. The other half is being able to destroy it fast and reconstruct what it did. The CSA’s May 2026 whitepaper sets a concrete bar for the first part: time-to-revoke measured in minutes, achieved through pre-authorized, automated revocation workflows triggered by exposure signals — not a ticket in a queue waiting for someone to manually deprovision an account. Its broader governance model has three parts: formal identity lifecycle management with assigned ownership for every non-human identity, zero standing privilege (just-in-time, task-scoped access with automatic expiry), and cryptographic workload attestation — naming SPIFFE/SPIRE specifically as the replacement for static API keys.\\\"}],[\\\"$\\\",\\\"p\\\",null,{\\\"children\\\":[\\\"On the audit side, the bar is attribution to a specific agent\\\",\\\" \\\",[\\\"$\\\",\\\"em\\\",null,{\\\"children\\\":\\\"run\\\"}],\\\". A log line saying that the automation user did a few thousand things last Tuesday is not an audit trail; it is a confession that you cannot reconstruct the incident. The mechanisms in this playbook each carry their own answer — correlation IDs on CI runs, actor-subject pairs on delegated calls, certificate serials on SVIDs, lineage links on sub-agents, signature hashes on webhook invocations — and the vendor platforms are converging on the same requirement: Microsoft’s Entra Agent ID documentation states: “All agent authentication and activity is logged for compliance and audit.” It ships a dedicated agent sign-in and audit log surface, separate from human sign-in logs. What to actually record, and how to structure it so it survives an incident review, is the subject of our\\\",\\\" \\\",[\\\"$\\\",\\\"$L2f\\\",null,{\\\"className\\\":\\\"link\\\",\\\"href\\\":\\\"/blog/agent-audit-trail-design-7-best-practices-2026\\\",\\\"children\\\":\\\"agent audit trail design guide\\\"}],\\\".\\\"]}]]}]\\n\"])</script><script>self.__next_f.push([1,\"4c:[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"relative my-7 overflow-hidden rounded-xl bg-[#0a0a0b] px-7 py-5.5 text-white\\\",\\\"children\\\":[[\\\"$\\\",\\\"span\\\",null,{\\\"aria-hidden\\\":\\\"true\\\",\\\"className\\\":\\\"absolute top-0 bottom-0 left-0 w-[3px] bg-ignition\\\"}],[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"mb-2 block font-mono text-[10.5px] text-ignition-2 uppercase tracking-[0.14em]\\\",\\\"children\\\":\\\"CSA on multi-agent accountability\\\"}],[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"text-[15.5px] text-white leading-[1.6]\\\",\\\"children\\\":[\\\"The Cloud Security Alliance’s agentic IAM guidance is blunt on the two rules that keep agent fleets governable: “Grant agents only the minimum access required for their specific task.” And for the multi-agent case: “Sub-agents spawned by a parent agent are separate instances, each with a unique ID, but with a verifiable link back to the parent.” Unique identity per instance,\\\",\\\" \\\",[\\\"$\\\",\\\"em\\\",null,{\\\"className\\\":\\\"font-serif text-white italic\\\",\\\"children\\\":\\\"cryptographic lineage\\\"}],\\\" \\\",\\\"across the chain. That combination is what turns a swarm incident from an anonymous blob into a reconstructible sequence.\\\"]}]]}]\\n4d:[\\\"$\\\",\\\"h2\\\",null,{\\\"className\\\":\\\"m-0 mt-14 mb-5 scroll-mt-[90px] font-normal text-[clamp(26px,3vw,36px)] text-zinc-950 leading-[1.15] tracking-[-0.025em] dark:text-white\\\",\\\"id\\\":\\\"rollout\\\",\\\"children\\\":[[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"mb-3.5 block font-medium font-mono text-[11px] text-ignition uppercase tracking-[0.12em]\\\",\\\"children\\\":[\\\"07\\\",\\\" — \\\",\\\"Implementation\\\"]}],[\\\"A pragmatic rollout\\\",\\\" \\\",[\\\"$\\\",\\\"em\\\",null,{\\\"className\\\":\\\"font-normal font-serif text-ignition-2 italic\\\",\\\"children\\\":\\\"order\\\"}],\\\".\\\"]]}]\\n7b:T539,max-w-[720px] [\\u0026_*:where(p,h3,ul)]:text-pretty [\\u0026_a.link:hover]:bg-ignition/10 [\\u0026_a.link:hover]:text-ignition [\\u0026_a.link]:border-ignition [\\u0026_a.link]:border-b [\\u0026_a.link]:pb-px [\\u0026_a.link]:font-medium [\\u0026_a.link]:text-zinc-950 [\\u0026_a.link]:transition-colors [\\u0026_a.link]:dark:text-white [\\u0026_code]:rounded-[4px] [\\u0026_code]:bg-zinc-100 [\\u0026_code]:px-1.5 [\\u0026_code]:py-0.5 [\\u0026_code]:font-mono [\\u0026_code]:text-[0.88em] [\\u0026_code]:text-zinc-950 [\\u0026_code]:dark:bg-zinc-800 [\\u0026_code]:dark:text-white [\\u0026_h3]:mt-9 [\\u0026_h3]:mb-3.5 [\\u0026_h3]:font-medium [\\u0026_h3]:text-[22px] [\\u0026_h3]:text-zinc-950 [\\u0026_h3]:leading-tight [\\u0026_h3]:tracking-[-0.015em] [\\u0026_h3]:dark:text-white [\\u0026_p.lede]:mb-7 [\\u0026_p.lede]:font-normal [\\u0026_p.lede]:text-[19px] [\\u0026_p.lede]:text-zinc-950 [\\u0026_p.lede]:leading-[1.6] [\\u0026_p.lede]:dark:text-white [\\u0026_p]:mb-5 [\\u0026_p]:text-[17px] [\\u0026_p]:text-zinc-800 [\\u0026_p]:leading-[1.7] [\\u0026_p]:dark:text-zinc-200 [\\u0026_strong]:font-semibold [\\u0026_strong]:text-zinc-950 [\\u0026_strong]:dark:text-white [\\u0026_ul]:mb-6 [\\u0026_ul]:ml-0 [\\u0026_ul]:list-none [\\u0026_ul]:p-0 [\\u0026_ul_li]:relative [\\u0026_ul_li]:mb-2.5 [\\u0026_ul_li]:pl-[22px] [\\u0026_ul_li]:text-[16px] [\\u0026_ul_li]:text-zinc-700 [\\u0026_ul_li]:leading-[1.6] [\\u0026_ul_li]:before:absolute [\\u0026_ul_li]:before:top-[11px] [\\u0026_ul_li]:before:left-0.5 [\\u0026_ul_li]:before:size-1.5 [\\u0026_ul_li]:before:rounded-full [\\u0026_ul_li]:before:bg-ignition [\\u0026_ul_li]:before:content-[''] [\\u0026_ul_li]:dark:text-zinc-3004e:[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"$7b\\\",\\\"children\\\":[\\\"$\\\",\\\"p\\\",null,{\\\"children\\\":\\\"You do not need SPIFFE in production by Friday. The failure mode to avoid is the opposite one: treating agent identity as a someday project while agents multiply on borrowed keys today. The sequence below is the order we use in client engagements, cheapest and highest-leverage first.\\\"}]}]\\n\"])</script><script>self.__next_f.push([1,\"4f:[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"my-8 flex flex-col gap-4\\\",\\\"children\\\":[[\\\"$\\\",\\\"div\\\",\\\"0\\\",{\\\"className\\\":\\\"relative flex flex-col gap-5 overflow-hidden rounded-2xl p-6 md:flex-row md:gap-8 md:p-7 border border-zinc-200 bg-white dark:border-zinc-800 dark:bg-zinc-900\\\",\\\"children\\\":[\\\"$undefined\\\",[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"flex flex-col gap-3 md:w-[220px] md:shrink-0\\\",\\\"children\\\":[[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"flex items-center gap-2 font-mono text-[10.5px] text-ignition uppercase tracking-[0.14em]\\\",\\\"children\\\":[[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"size-1.5 rounded-full bg-current shadow-[0_0_6px_currentColor]\\\"}],\\\"Week one\\\"]}],[\\\"$\\\",\\\"h5\\\",null,{\\\"className\\\":\\\"m-0 font-medium text-[22px] leading-[1.15] tracking-[-0.02em] text-zinc-950 dark:text-white\\\",\\\"children\\\":\\\"Inventory before mechanism\\\"}]]}],[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"hidden w-px self-stretch bg-zinc-200/60 md:block dark:bg-zinc-800/60\\\"}],[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"flex flex-1 flex-col justify-between gap-4\\\",\\\"children\\\":[[\\\"$\\\",\\\"p\\\",null,{\\\"className\\\":\\\"m-0 text-[14px] leading-[1.6] text-zinc-600 dark:text-zinc-400\\\",\\\"children\\\":\\\"List every credential an agent currently holds — keys, tokens, sessions, and webhook URLs (they count). For each: whose is it, what can it reach, who owns its lifecycle, and how would you revoke it alone. The unowned entries are your risk register.\\\"}],[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"self-start pt-1 md:self-end\\\",\\\"children\\\":[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"inline-block rounded-md px-3 py-1.5 font-medium font-mono text-[11.5px] tracking-[-0.01em] bg-zinc-100 text-zinc-950 dark:bg-zinc-800 dark:text-white\\\",\\\"children\\\":\\\"Start with ownership\\\"}]}]]}]]}],[\\\"$\\\",\\\"div\\\",\\\"1\\\",{\\\"className\\\":\\\"relative flex flex-col gap-5 overflow-hidden rounded-2xl p-6 md:flex-row md:gap-8 md:p-7 border border-white/10 bg-[#0a0a0b] text-white\\\",\\\"children\\\":[[\\\"$\\\",\\\"div\\\",null,{\\\"aria-hidden\\\":\\\"true\\\",\\\"style\\\":{\\\"position\\\":\\\"absolute\\\",\\\"inset\\\":-1,\\\"borderRadius\\\":\\\"16px\\\",\\\"padding\\\":1,\\\"background\\\":\\\"linear-gradient(135deg,#ff6b1a,transparent 60%)\\\",\\\"WebkitMask\\\":\\\"linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0)\\\",\\\"WebkitMaskComposite\\\":\\\"xor\\\",\\\"mask\\\":\\\"linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0)\\\",\\\"maskComposite\\\":\\\"exclude\\\",\\\"pointerEvents\\\":\\\"none\\\"}}],[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"flex flex-col gap-3 md:w-[220px] md:shrink-0\\\",\\\"children\\\":[[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"flex items-center gap-2 font-mono text-[10.5px] text-ignition uppercase tracking-[0.14em]\\\",\\\"children\\\":[[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"size-1.5 rounded-full bg-current shadow-[0_0_6px_currentColor]\\\"}],\\\"First replacement\\\"]}],[\\\"$\\\",\\\"h5\\\",null,{\\\"className\\\":\\\"m-0 font-medium text-[22px] leading-[1.15] tracking-[-0.02em] text-white\\\",\\\"children\\\":[\\\"Kill the\\\",\\\" \\\",[\\\"$\\\",\\\"em\\\",null,{\\\"className\\\":\\\"font-normal font-serif text-ignition-2 italic\\\",\\\"children\\\":\\\"long-lived\\\"}],\\\" \\\",\\\"keys\\\"]}]]}],[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"hidden w-px self-stretch bg-zinc-200/60 md:block dark:bg-zinc-800/60\\\"}],[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"flex flex-1 flex-col justify-between gap-4\\\",\\\"children\\\":[[\\\"$\\\",\\\"p\\\",null,{\\\"className\\\":\\\"m-0 text-[14px] leading-[1.6] text-white/72\\\",\\\"children\\\":\\\"CI/CD and cloud access convert fastest: swap stored secrets for OIDC-based workload identity federation and GitHub App installation tokens. No agent rewrite required — the platform mints short-lived credentials and the pasted keys get deleted.\\\"}],[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"self-start pt-1 md:self-end\\\",\\\"children\\\":[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"inline-block rounded-md px-3 py-1.5 font-medium font-mono text-[11.5px] tracking-[-0.01em] bg-ignition/10 text-ignition-2\\\",\\\"children\\\":\\\"Federation + app tokens\\\"}]}]]}]]}],[\\\"$\\\",\\\"div\\\",\\\"2\\\",{\\\"className\\\":\\\"relative flex flex-col gap-5 overflow-hidden rounded-2xl p-6 md:flex-row md:gap-8 md:p-7 border border-zinc-200 bg-white dark:border-zinc-800 dark:bg-zinc-900\\\",\\\"children\\\":[\\\"$undefined\\\",\\\"$L7c\\\",\\\"$L7d\\\",\\\"$L7e\\\"]}],\\\"$L7f\\\"]}]\\n\"])</script><script>self.__next_f.push([1,\"80:T539,max-w-[720px] [\\u0026_*:where(p,h3,ul)]:text-pretty [\\u0026_a.link:hover]:bg-ignition/10 [\\u0026_a.link:hover]:text-ignition [\\u0026_a.link]:border-ignition [\\u0026_a.link]:border-b [\\u0026_a.link]:pb-px [\\u0026_a.link]:font-medium [\\u0026_a.link]:text-zinc-950 [\\u0026_a.link]:transition-colors [\\u0026_a.link]:dark:text-white [\\u0026_code]:rounded-[4px] [\\u0026_code]:bg-zinc-100 [\\u0026_code]:px-1.5 [\\u0026_code]:py-0.5 [\\u0026_code]:font-mono [\\u0026_code]:text-[0.88em] [\\u0026_code]:text-zinc-950 [\\u0026_code]:dark:bg-zinc-800 [\\u0026_code]:dark:text-white [\\u0026_h3]:mt-9 [\\u0026_h3]:mb-3.5 [\\u0026_h3]:font-medium [\\u0026_h3]:text-[22px] [\\u0026_h3]:text-zinc-950 [\\u0026_h3]:leading-tight [\\u0026_h3]:tracking-[-0.015em] [\\u0026_h3]:dark:text-white [\\u0026_p.lede]:mb-7 [\\u0026_p.lede]:font-normal [\\u0026_p.lede]:text-[19px] [\\u0026_p.lede]:text-zinc-950 [\\u0026_p.lede]:leading-[1.6] [\\u0026_p.lede]:dark:text-white [\\u0026_p]:mb-5 [\\u0026_p]:text-[17px] [\\u0026_p]:text-zinc-800 [\\u0026_p]:leading-[1.7] [\\u0026_p]:dark:text-zinc-200 [\\u0026_strong]:font-semibold [\\u0026_strong]:text-zinc-950 [\\u0026_strong]:dark:text-white [\\u0026_ul]:mb-6 [\\u0026_ul]:ml-0 [\\u0026_ul]:list-none [\\u0026_ul]:p-0 [\\u0026_ul_li]:relative [\\u0026_ul_li]:mb-2.5 [\\u0026_ul_li]:pl-[22px] [\\u0026_ul_li]:text-[16px] [\\u0026_ul_li]:text-zinc-700 [\\u0026_ul_li]:leading-[1.6] [\\u0026_ul_li]:before:absolute [\\u0026_ul_li]:before:top-[11px] [\\u0026_ul_li]:before:left-0.5 [\\u0026_ul_li]:before:size-1.5 [\\u0026_ul_li]:before:rounded-full [\\u0026_ul_li]:before:bg-ignition [\\u0026_ul_li]:before:content-[''] [\\u0026_ul_li]:dark:text-zinc-300\"])</script><script>self.__next_f.push([1,\"50:[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"$80\\\",\\\"children\\\":[[\\\"$\\\",\\\"p\\\",null,{\\\"children\\\":\\\"The interpretive point behind the sequence: agent identity is following the same arc service identity followed a decade ago, but compressed. Static keys gave way to short-lived certificates and federation for services over roughly ten years of painful migrations; agents are being pushed down that same path in quarters, not years, because the population is growing at machine speed and the actors behind the credentials make their own decisions. Our projection is that within a few product cycles, “give the agent its own identity” stops being an architecture choice and becomes a platform default — Entra Agent ID’s blueprints and GitHub’s stateless verifiable tokens are early versions of exactly that — and the differentiator shifts to the operational layer: who owns each identity, how fast revocation fires, and whether the audit trail names runs or blobs.\\\"}],[\\\"$\\\",\\\"p\\\",null,{\\\"children\\\":[\\\"This matters most where agents touch systems of record. A CRM agent that can rewrite pipeline data on a borrowed admin login is the exact scenario the borrowed-credential trap describes — which is why identity design is part of every build in our\\\",\\\" \\\",[\\\"$\\\",\\\"$L2f\\\",null,{\\\"className\\\":\\\"link\\\",\\\"href\\\":\\\"/services/crm-automation\\\",\\\"children\\\":\\\"CRM automation practice\\\"}],\\\", and why broader agent governance — identity, permissions, audit, rollback — anchors our\\\",\\\" \\\",[\\\"$\\\",\\\"$L2f\\\",null,{\\\"className\\\":\\\"link\\\",\\\"href\\\":\\\"/services/ai-transformation\\\",\\\"children\\\":\\\"AI transformation engagements\\\"}],\\\". The teams that get this right early ship agents faster, not slower, because every new agent lands on rails that already exist.\\\"]}]]}]\\n\"])</script><script>self.__next_f.push([1,\"51:[\\\"$\\\",\\\"h2\\\",null,{\\\"className\\\":\\\"m-0 mt-14 mb-5 scroll-mt-[90px] font-normal text-[clamp(26px,3vw,36px)] text-zinc-950 leading-[1.15] tracking-[-0.025em] dark:text-white\\\",\\\"id\\\":\\\"conclusion\\\",\\\"children\\\":[[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"mb-3.5 block font-medium font-mono text-[11px] text-ignition uppercase tracking-[0.12em]\\\",\\\"children\\\":[\\\"08\\\",\\\" — \\\",\\\"Conclusion\\\"]}],[\\\"The test is\\\",\\\" \\\",[\\\"$\\\",\\\"em\\\",null,{\\\"className\\\":\\\"font-normal font-serif text-ignition-2 italic\\\",\\\"children\\\":\\\"revocation\\\"}],\\\".\\\"]]}]\\n\"])</script><script>self.__next_f.push([1,\"52:[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"relative my-10 overflow-hidden rounded-2xl bg-[#0a0a0b] p-8 text-white\\\",\\\"children\\\":[[\\\"$\\\",\\\"div\\\",null,{\\\"aria-hidden\\\":\\\"true\\\",\\\"className\\\":\\\"pointer-events-none absolute right-[-20%] bottom-[-30%] size-[400px] [background:radial-gradient(circle,rgba(255,107,26,0.12),transparent_60%)]\\\"}],[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"relative mb-3.5 flex items-center gap-2.5 font-mono text-[10.5px] text-ignition-2 uppercase tracking-[0.14em]\\\",\\\"children\\\":[[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"size-1.5 rounded-full bg-ignition shadow-[0_0_6px_var(--color-ignition)]\\\"}],\\\"Agent identity, July 2026\\\"]}],[\\\"$\\\",\\\"h3\\\",null,{\\\"className\\\":\\\"relative m-0 mb-4 font-medium text-[22px] text-white leading-[1.2] tracking-[-0.015em]\\\",\\\"children\\\":\\\"If you can’t revoke the agent without locking out a human, the agent doesn’t have an identity.\\\"}],[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"relative space-y-3 text-[15.5px] text-white/80 leading-[1.65]\\\",\\\"children\\\":[[\\\"$\\\",\\\"p\\\",null,{\\\"children\\\":[\\\"Everything in this playbook compresses into that one test. Borrowed credentials fail it by construction: attribution points at a person, scope was accumulated rather than designed, and the kill switch takes the human down with the agent. Separate, per-run identity passes it — and the machinery is not speculative. SPIFFE SVIDs, workload identity federation, GitHub App installation tokens, AWS IAM Roles Anywhere, and RFC 8693 token exchange are all\\\",\\\" \\\",[\\\"$\\\",\\\"em\\\",null,{\\\"className\\\":\\\"font-serif text-ignition-2 italic\\\",\\\"children\\\":\\\"shipping\\\"}],\\\", documented, and in production at scale for services already.\\\"]}],[\\\"$\\\",\\\"p\\\",null,{\\\"children\\\":\\\"The direction of travel is unambiguous even where the statistics are not. Non-human identities already outnumber humans by an order of magnitude on any count in circulation, the major identity vendors have begun treating agents as their own principal type, and the industry bodies converge on the same three-part prescription: owned lifecycles, zero standing privilege, and attestation-based issuance. What is still scarce is teams actually wiring it up before the incident instead of after.\\\"}],[\\\"$\\\",\\\"p\\\",null,{\\\"children\\\":\\\"Start with the inventory, kill the long-lived keys, and make every new agent land on its own identity by default. The cost is a few unglamorous engineering days now. The alternative is explaining to an auditor why the log says a sleeping employee deleted the production data — and why turning the agent off also turned off the employee.\\\"}]]}]]}]\\n\"])</script><script>self.__next_f.push([1,\"53:[\\\"$\\\",\\\"aside\\\",null,{\\\"className\\\":\\\"sticky top-[84px] hidden flex-col gap-5 self-start xl:flex\\\",\\\"children\\\":[[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"rounded-2xl border border-zinc-200 bg-white p-5 dark:border-zinc-800 dark:bg-zinc-900\\\",\\\"children\\\":[[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"mb-3.5 block font-mono text-[10.5px] text-zinc-500 uppercase tracking-[0.12em]\\\",\\\"children\\\":\\\"Share dispatch\\\"}],[\\\"$\\\",\\\"$L81\\\",null,{\\\"shareTitle\\\":\\\"Giving Agents Their Own Identity, Not Your Credentials\\\",\\\"shareUrl\\\":\\\"https://www.digitalapplied.com/blog/agent-identity-credentials-non-human-access-2026-playbook\\\"}]]}],[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"relative overflow-hidden rounded-2xl bg-[#0a0a0b] p-5 text-white\\\",\\\"children\\\":[[\\\"$\\\",\\\"div\\\",null,{\\\"aria-hidden\\\":\\\"true\\\",\\\"style\\\":{\\\"position\\\":\\\"absolute\\\",\\\"inset\\\":-1,\\\"borderRadius\\\":\\\"14px\\\",\\\"padding\\\":1,\\\"background\\\":\\\"linear-gradient(135deg,#ff6b1a,transparent 60%)\\\",\\\"WebkitMask\\\":\\\"linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0)\\\",\\\"WebkitMaskComposite\\\":\\\"xor\\\",\\\"mask\\\":\\\"linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0)\\\",\\\"maskComposite\\\":\\\"exclude\\\",\\\"pointerEvents\\\":\\\"none\\\"}}],[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"mb-3.5 block font-mono text-[10.5px] text-ignition-2 uppercase tracking-[0.12em]\\\",\\\"children\\\":\\\"AI Insights\\\"}],[\\\"$\\\",\\\"h4\\\",null,{\\\"className\\\":\\\"m-0 mb-2.5 font-medium text-[15px] text-white leading-[1.3] tracking-[-0.01em]\\\",\\\"children\\\":\\\"Deep dives on AI operations and automation.\\\"}],[\\\"$\\\",\\\"p\\\",null,{\\\"className\\\":\\\"m-0 mb-3.5 text-[12.5px] text-white/65 leading-normal\\\",\\\"children\\\":\\\"Agentic development, CRM automation, and data-driven strategies. No recycled AI takes.\\\"}],[\\\"$\\\",\\\"$L82\\\",null,{\\\"source\\\":\\\"$undefined\\\"}]]}],[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"rounded-2xl border border-zinc-200 bg-white p-5 dark:border-zinc-800 dark:bg-zinc-900\\\",\\\"children\\\":[[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"mb-3.5 block font-mono text-[10.5px] text-zinc-500 uppercase tracking-[0.12em]\\\",\\\"children\\\":\\\"The mechanism shelf\\\"}],[\\\"$\\\",\\\"h4\\\",null,{\\\"className\\\":\\\"m-0 mb-2.5 font-medium text-[15px] text-zinc-950 dark:text-white\\\",\\\"children\\\":\\\"Already shipping, today\\\"}],[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"mb-1 font-mono text-[12px] text-zinc-950 dark:text-white\\\",\\\"children\\\":\\\"SPIFFE · WIF · RFC 8693\\\"}],[\\\"$\\\",\\\"p\\\",null,{\\\"className\\\":\\\"m-0 text-[12px] text-zinc-500 leading-normal\\\",\\\"children\\\":\\\"Workload identity federation, SPIFFE/SPIRE SVIDs, GitHub App installation tokens, and AWS IAM Roles Anywhere all issue short-lived, scoped, revocable credentials — none require a human’s login.\\\"}]]}]]}]\\n\"])</script><script>self.__next_f.push([1,\"55:[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"mb-3.5 block font-mono text-[11px] text-ignition-2 uppercase tracking-[0.14em]\\\",\\\"children\\\":\\\"What we work on\\\"}]\\n56:[\\\"$\\\",\\\"h4\\\",null,{\\\"className\\\":\\\"m-0 mb-3.5 font-medium text-[19px] text-white tracking-[-0.01em]\\\",\\\"children\\\":\\\"Agent identity engagements\\\"}]\\n\"])</script><script>self.__next_f.push([1,\"57:[\\\"$\\\",\\\"ul\\\",null,{\\\"className\\\":\\\"m-0 list-none p-0\\\",\\\"children\\\":[[\\\"$\\\",\\\"li\\\",\\\"0\\\",{\\\"className\\\":\\\"flex items-center gap-2.5 border-white/10 border-b py-2.5 text-[13.5px] text-white/72 last:border-b-0\\\",\\\"children\\\":[[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"font-mono text-[13px] text-ignition\\\",\\\"children\\\":\\\"→\\\"}],\\\"Non-human identity inventory \\u0026 ownership mapping\\\"]}],[\\\"$\\\",\\\"li\\\",\\\"1\\\",{\\\"className\\\":\\\"flex items-center gap-2.5 border-white/10 border-b py-2.5 text-[13.5px] text-white/72 last:border-b-0\\\",\\\"children\\\":[[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"font-mono text-[13px] text-ignition\\\",\\\"children\\\":\\\"→\\\"}],\\\"Long-lived key elimination — federation \\u0026 app tokens\\\"]}],[\\\"$\\\",\\\"li\\\",\\\"2\\\",{\\\"className\\\":\\\"flex items-center gap-2.5 border-white/10 border-b py-2.5 text-[13.5px] text-white/72 last:border-b-0\\\",\\\"children\\\":[[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"font-mono text-[13px] text-ignition\\\",\\\"children\\\":\\\"→\\\"}],\\\"On-behalf-of token exchange for user-facing agents\\\"]}],[\\\"$\\\",\\\"li\\\",\\\"3\\\",{\\\"className\\\":\\\"flex items-center gap-2.5 border-white/10 border-b py-2.5 text-[13.5px] text-white/72 last:border-b-0\\\",\\\"children\\\":[[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"font-mono text-[13px] text-ignition\\\",\\\"children\\\":\\\"→\\\"}],\\\"Per-run audit trails with parent-child lineage\\\"]}],[\\\"$\\\",\\\"li\\\",\\\"4\\\",{\\\"className\\\":\\\"flex items-center gap-2.5 border-white/10 border-b py-2.5 text-[13.5px] text-white/72 last:border-b-0\\\",\\\"children\\\":[[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"font-mono text-[13px] text-ignition\\\",\\\"children\\\":\\\"→\\\"}],\\\"Revocation runbooks — minutes, not ticket queues\\\"]}]]}]\\n\"])</script><script>self.__next_f.push([1,\"59:[\\\"The questions we get\\\",\\\" \\\",[\\\"$\\\",\\\"em\\\",null,{\\\"className\\\":\\\"font-normal font-serif italic\\\",\\\"children\\\":\\\"every week.\\\"}]]\\n5a:[\\\"$\\\",\\\"$L54\\\",null,{\\\"ref\\\":\\\"$undefined\\\",\\\"iconNode\\\":\\\"$24:props:children:2:props:children:0:props:children:3:props:children:0:props:children:1:props:iconNode\\\",\\\"className\\\":\\\"lucide-arrow-up-right size-3.5\\\"}]\\n\"])</script><script>self.__next_f.push([1,\"5b:[\\\"$\\\",\\\"$L12\\\",\\\"live-client-dashboards-claude-artifacts-mcp\\\",{\\\"className\\\":\\\"group flex min-h-[260px] flex-col gap-3.5 rounded-2xl border border-zinc-200 bg-white p-7 transition-all hover:-translate-y-1 hover:border-zinc-400 hover:shadow-[0_20px_40px_-20px_rgba(0,0,0,0.1)] dark:border-zinc-800 dark:bg-zinc-950\\\",\\\"href\\\":\\\"/blog/live-client-dashboards-claude-artifacts-mcp\\\",\\\"children\\\":[[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"self-start rounded-sm border border-ignition/20 bg-ignition/5 px-2 py-1 font-mono text-[10.5px] text-ignition uppercase tracking-[0.12em]\\\",\\\"children\\\":\\\"CRM \\u0026 Automation\\\"}],[\\\"$\\\",\\\"h4\\\",null,{\\\"className\\\":\\\"m-0 mt-1 font-medium text-[19px] text-zinc-950 leading-[1.22] tracking-[-0.015em] transition-colors group-hover:text-ignition dark:text-white\\\",\\\"children\\\":\\\"Build Live Client Dashboards with Claude Code Artifacts\\\"}],[\\\"$\\\",\\\"p\\\",null,{\\\"className\\\":\\\"m-0 flex-1 text-[14px] text-zinc-500 leading-[1.55]\\\",\\\"children\\\":\\\"Claude Code Artifacts now pull live data through a viewer's own MCP connectors per view. But a connector-backed dashboard can't be a public link on any plan.\\\"}],[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"mt-auto flex items-center justify-between border-zinc-200 border-t pt-3.5 font-mono text-[10.5px] text-zinc-500 uppercase tracking-[0.08em] dark:border-zinc-800\\\",\\\"children\\\":[[\\\"$\\\",\\\"span\\\",null,{\\\"children\\\":[\\\"July 24, 2026\\\",\\\" · \\\",11,\\\" min\\\"]}],[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"inline-flex items-center gap-1 font-medium text-zinc-950 dark:text-white\\\",\\\"children\\\":[\\\"Read \\\",[\\\"$\\\",\\\"$L54\\\",null,{\\\"ref\\\":\\\"$undefined\\\",\\\"iconNode\\\":\\\"$24:props:children:2:props:children:0:props:children:3:props:children:0:props:children:1:props:iconNode\\\",\\\"className\\\":\\\"lucide-arrow-up-right size-3.5\\\"}]]}]]}]]}]\\n\"])</script><script>self.__next_f.push([1,\"5c:[\\\"$\\\",\\\"$L12\\\",\\\"baidu-unlimited-ocr-3b-document-automation-2026\\\",{\\\"className\\\":\\\"group flex min-h-[260px] flex-col gap-3.5 rounded-2xl border border-zinc-200 bg-white p-7 transition-all hover:-translate-y-1 hover:border-zinc-400 hover:shadow-[0_20px_40px_-20px_rgba(0,0,0,0.1)] dark:border-zinc-800 dark:bg-zinc-950\\\",\\\"href\\\":\\\"/blog/baidu-unlimited-ocr-3b-document-automation-2026\\\",\\\"children\\\":[[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"self-start rounded-sm border border-ignition/20 bg-ignition/5 px-2 py-1 font-mono text-[10.5px] text-ignition uppercase tracking-[0.12em]\\\",\\\"children\\\":\\\"CRM \\u0026 Automation\\\"}],[\\\"$\\\",\\\"h4\\\",null,{\\\"className\\\":\\\"m-0 mt-1 font-medium text-[19px] text-zinc-950 leading-[1.22] tracking-[-0.015em] transition-colors group-hover:text-ignition dark:text-white\\\",\\\"children\\\":\\\"Baidu Unlimited-OCR 3B: Single-Pass PDFs, MIT-Licensed\\\"}],[\\\"$\\\",\\\"p\\\",null,{\\\"className\\\":\\\"m-0 flex-1 text-[14px] text-zinc-500 leading-[1.55]\\\",\\\"children\\\":\\\"Baidu's MIT-licensed Unlimited-OCR parses documents in one pass and beats DeepSeek-OCR on OmniDocBench. A free, self-hostable option for ops document teams.\\\"}],[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"mt-auto flex items-center justify-between border-zinc-200 border-t pt-3.5 font-mono text-[10.5px] text-zinc-500 uppercase tracking-[0.08em] dark:border-zinc-800\\\",\\\"children\\\":[[\\\"$\\\",\\\"span\\\",null,{\\\"children\\\":[\\\"July 23, 2026\\\",\\\" · \\\",12,\\\" min\\\"]}],[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"inline-flex items-center gap-1 font-medium text-zinc-950 dark:text-white\\\",\\\"children\\\":[\\\"Read \\\",[\\\"$\\\",\\\"$L54\\\",null,{\\\"ref\\\":\\\"$undefined\\\",\\\"iconNode\\\":\\\"$24:props:children:2:props:children:0:props:children:3:props:children:0:props:children:1:props:iconNode\\\",\\\"className\\\":\\\"lucide-arrow-up-right size-3.5\\\"}]]}]]}]]}]\\n\"])</script><script>self.__next_f.push([1,\"5d:[\\\"$\\\",\\\"$L12\\\",\\\"sms-marketing-statistics-2026-open-ctr-data\\\",{\\\"className\\\":\\\"group flex min-h-[260px] flex-col gap-3.5 rounded-2xl border border-zinc-200 bg-white p-7 transition-all hover:-translate-y-1 hover:border-zinc-400 hover:shadow-[0_20px_40px_-20px_rgba(0,0,0,0.1)] dark:border-zinc-800 dark:bg-zinc-950\\\",\\\"href\\\":\\\"/blog/sms-marketing-statistics-2026-open-ctr-data\\\",\\\"children\\\":[[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"self-start rounded-sm border border-ignition/20 bg-ignition/5 px-2 py-1 font-mono text-[10.5px] text-ignition uppercase tracking-[0.12em]\\\",\\\"children\\\":\\\"CRM \\u0026 Automation\\\"}],[\\\"$\\\",\\\"h4\\\",null,{\\\"className\\\":\\\"m-0 mt-1 font-medium text-[19px] text-zinc-950 leading-[1.22] tracking-[-0.015em] transition-colors group-hover:text-ignition dark:text-white\\\",\\\"children\\\":\\\"SMS Marketing Statistics 2026: 110+ Open and CTR Data\\\"}],[\\\"$\\\",\\\"p\\\",null,{\\\"className\\\":\\\"m-0 flex-1 text-[14px] text-zinc-500 leading-[1.55]\\\",\\\"children\\\":\\\"SMS marketing statistics for 2026: 110+ data points on delivery, open and click-through rates, opt-out behavior, and revenue-per-send benchmarks.\\\"}],[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"mt-auto flex items-center justify-between border-zinc-200 border-t pt-3.5 font-mono text-[10.5px] text-zinc-500 uppercase tracking-[0.08em] dark:border-zinc-800\\\",\\\"children\\\":[[\\\"$\\\",\\\"span\\\",null,{\\\"children\\\":[\\\"April 22, 2026\\\",\\\" · \\\",15,\\\" min\\\"]}],[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"inline-flex items-center gap-1 font-medium text-zinc-950 dark:text-white\\\",\\\"children\\\":[\\\"Read \\\",[\\\"$\\\",\\\"$L54\\\",null,{\\\"ref\\\":\\\"$undefined\\\",\\\"iconNode\\\":\\\"$24:props:children:2:props:children:0:props:children:3:props:children:0:props:children:1:props:iconNode\\\",\\\"className\\\":\\\"lucide-arrow-up-right size-3.5\\\"}]]}]]}]]}]\\n\"])</script><script>self.__next_f.push([1,\"5e:[\\\"$\\\",\\\"$L12\\\",\\\"anthropic-cowork-customize-personalize-claude-business\\\",{\\\"className\\\":\\\"group flex min-h-[260px] flex-col gap-3.5 rounded-2xl border border-zinc-200 bg-white p-7 transition-all hover:-translate-y-1 hover:border-zinc-400 hover:shadow-[0_20px_40px_-20px_rgba(0,0,0,0.1)] dark:border-zinc-800 dark:bg-zinc-950\\\",\\\"href\\\":\\\"/blog/anthropic-cowork-customize-personalize-claude-business\\\",\\\"children\\\":[[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"self-start rounded-sm border border-ignition/20 bg-ignition/5 px-2 py-1 font-mono text-[10.5px] text-ignition uppercase tracking-[0.12em]\\\",\\\"children\\\":\\\"CRM \\u0026 Automation\\\"}],[\\\"$\\\",\\\"h4\\\",null,{\\\"className\\\":\\\"m-0 mt-1 font-medium text-[19px] text-zinc-950 leading-[1.22] tracking-[-0.015em] transition-colors group-hover:text-ignition dark:text-white\\\",\\\"children\\\":\\\"Anthropic Cowork Customize: Personalize Claude Guide\\\"}],[\\\"$\\\",\\\"p\\\",null,{\\\"className\\\":\\\"m-0 flex-1 text-[14px] text-zinc-500 leading-[1.55]\\\",\\\"children\\\":\\\"Anthropic's Cowork platform lets businesses customize Claude's persona, memory, and behavior at workspace level. Setup guide, use cases, and API integration.\\\"}],[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"mt-auto flex items-center justify-between border-zinc-200 border-t pt-3.5 font-mono text-[10.5px] text-zinc-500 uppercase tracking-[0.08em] dark:border-zinc-800\\\",\\\"children\\\":[[\\\"$\\\",\\\"span\\\",null,{\\\"children\\\":[\\\"March 19, 2026\\\",\\\" · \\\",14,\\\" min\\\"]}],[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"inline-flex items-center gap-1 font-medium text-zinc-950 dark:text-white\\\",\\\"children\\\":[\\\"Read \\\",[\\\"$\\\",\\\"$L54\\\",null,{\\\"ref\\\":\\\"$undefined\\\",\\\"iconNode\\\":\\\"$24:props:children:2:props:children:0:props:children:3:props:children:0:props:children:1:props:iconNode\\\",\\\"className\\\":\\\"lucide-arrow-up-right size-3.5\\\"}]]}]]}]]}]\\n\"])</script><script>self.__next_f.push([1,\"61:[\\\"$\\\",\\\"li\\\",\\\"Audit must name the run, not the bot.\\\",{\\\"className\\\":\\\"grid grid-cols-[40px_1fr] gap-4 border-zinc-200 border-b py-5 last:border-b-0 dark:border-zinc-800\\\",\\\"children\\\":[[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"pt-1 font-mono text-[12px] text-ignition tracking-[0.08em]\\\",\\\"children\\\":\\\"05\\\"}],[\\\"$\\\",\\\"div\\\",null,{\\\"children\\\":[[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"mb-1.5 block font-semibold text-[15.5px] text-zinc-950 leading-[1.4] tracking-[-0.005em] dark:text-white\\\",\\\"children\\\":\\\"Audit must name the run, not the bot.\\\"}],[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"text-[14.5px] text-zinc-600 leading-[1.6] dark:text-zinc-400\\\",\\\"children\\\":\\\"A log line that says ‘the automation user did it’ is not reconstructible after an incident. Per-run correlation IDs, actor-plus-subject pairs, and parent-child lineage for sub-agents are the bar — with revocation measured in minutes.\\\"}]]}]]}]\\n63:[\\\"$\\\",\\\"$L2f\\\",null,{\\\"className\\\":\\\"link\\\",\\\"href\\\":\\\"/blog/amp-event-driven-orbs-self-scheduling-agents-2026\\\",\\\"children\\\":\\\"our breakdown of Amp’s event-driven orbs\\\"}]\\n65:[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"flex flex-col gap-3 md:w-[220px] md:shrink-0\\\",\\\"children\\\":[[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"flex items-center gap-2 font-mono text-[10.5px] uppercase tracking-[0.14em] text-ignition-2\\\",\\\"children\\\":[[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"size-1.5 rounded-full bg-current\\\"}],\\\"Category 03\\\"]}],[\\\"$\\\",\\\"h5\\\",null,{\\\"className\\\":\\\"m-0 font-medium text-[22px] leading-[1.2] tracking-[-0.02em] text-white\\\",\\\"children\\\":[\\\"Agent\\\",\\\" \\\",[\\\"$\\\",\\\"em\\\",null,{\\\"className\\\":\\\"font-normal font-serif text-ignition-2 italic\\\",\\\"children\\\":\\\"identity\\\"}]]}],[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"self-start\\\",\\\"children\\\":[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"inline-block rounded-md px-2.5 py-1.5 font-mono text-[12px] tracking-[-0.01em] bg-ignition/10 text-ignition-2\\\",\\\"children\\\":\\\"Dynamic · many · issued per run\\\"}]}]]}]\\n66:[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"hidden w-px self-stretch bg-zinc-200/60 md:block dark:bg-zinc-800/60\\\"}]\\n67:[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"flex flex-1 flex-col justify-between gap-4\\\",\\\"children\\\":[[\\\"$\\\",\\\"p\\\",null,{\\\"className\\\":\\\"m-0 text-[13.5px] leading-[1.6] text-white/72\\\",\\\"children\\\":\\\"Agents decide what to do at runtime, spawn sub-agents, and multiply faster than any review cycle. Identity has to be issued per run, scoped per task, expire on its own, and die without collateral damage to a human or a fleet.\\\"}],[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"self-start pt-1 md:self-end\\\",\\\"children\\\":[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"inline-block rounded-sm bg-ignition/10 px-2 py-1 font-mono text-[10px] text-ignition uppercase tracking-[0.12em]\\\",\\\"children\\\":\\\"Entra Agent ID · CSA agentic IAM\\\"}]}]]}]\\n6b:[\\\"$\\\",\\\"$L2f\\\",null,{\\\"className\\\":\\\"link\\\",\\\"href\\\":\\\"/blog/1password-claude-secure-credential-agentic-browsing-2026\\\",\\\"children\\\":\\\"1Password brokers credentials for agentic browsing\\\"}]\\n6c:[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"font-mono text-[10.5px] text-zinc-500 uppercase tracking-[0.12em]\\\",\\\"children\\\":\\\"Fine-grained PAT\\\"}]\\n6d:[\\\"$\\\",\\\"h5\\\",null,{\\\"className\\\":\\\"m-0 font-medium text-[18px] text-zinc-950 leading-[1.3] tracking-[-0.01em] dark:text-white\\\",\\\"children\\\":\\\"Default expiration\\\"}]\\n6e:[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"flex items-baseline gap-1 font-light text-[48px] text-zinc-900 leading-none tracking-[-0.03em] md:order-first dark:text-zinc-100\\\",\\\"children\\\":[\\\"30\\\",[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"font-mono font-normal text-[14px] text-ignition\\\",\\\"children\\\":\\\"d\\\"}]]}]\\n6f:[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"hidden w-px self-stretch bg-zinc-200/60 md:block dark:bg-zinc-800/60\\\"}]\\n70:[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"flex flex-1 flex-col justify-between gap-4\\\",\\\"children\\\":[[\\\"$\\\",\\\"p\\\",null,{\\\"className\\\":\\\"m-0 text-[13.5px] text-zinc-600 leading-[1.6] dark:text-zinc-400\\\",\\\"children\\\":\\\"Scoped to one user or org and to named repositories and permissions; extendable to 366 days, or ‘never’ where org policy allows — versus classic PATs’ blanket reach.\\\"}],[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"w-full self-start border-zinc-100 border-t pt-2 text-left md:self-end md:text-right dark:border-zinc-800\\\",\\\"children\\\":[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"font-mono text-[10px] text-ignition uppercase tracking-widest\\\",\\\"children\\\":\\\"Classic PATs: blanket acces\"])</script><script>self.__next_f.push([1,\"s\\\"}]}]]}]\\n72:[\\\"$\\\",\\\"p\\\",null,{\\\"children\\\":\\\"The Cloud Security Alliance’s agentic IAM paper (August 2025) pushes one step further for multi-agent systems: Decentralized Identifiers plus Verifiable Credentials as the identity anchor, with just-in-time credentials valid for narrow windows — its worked example is a 15-minute credential scoped to a single action on specific resources. Its rationale is the same gap RFC 8693 exists to close: traditional OAuth and SAML assumptions fall short because they lack secure, traceable delegation where agents act on behalf of users while keeping accountability chains intact — a gap that off-the-shelf OAuth deployments frequently leave unwired for agent chains even though the spec support exists.\\\"}]\\n74:[\\\"$\\\",\\\"td\\\",null,{\\\"className\\\":\\\"px-4 py-3\\\",\\\"children\\\":\\\"Child identity with a verifiable link to the parent (CSA delegation chains; Entra agent identity blueprints)\\\"}]\\n75:[\\\"$\\\",\\\"td\\\",null,{\\\"className\\\":\\\"px-4 py-3 font-mono text-[13px]\\\",\\\"children\\\":\\\"Per-task; CSA’s worked example is a 15-min window\\\"}]\\n76:[\\\"$\\\",\\\"td\\\",null,{\\\"className\\\":\\\"px-4 py-3\\\",\\\"children\\\":\\\"Kill the child credential without touching the parent — or revoke the parent to invalidate the chain\\\"}]\\n77:[\\\"$\\\",\\\"td\\\",null,{\\\"className\\\":\\\"px-4 py-3\\\",\\\"children\\\":\\\"Per-child ID with parent lineage — multi-agent incidents stay reconstructible\\\"}]\\n78:[\\\"$\\\",\\\"tr\\\",null,{\\\"className\\\":\\\"align-top text-zinc-700 dark:text-zinc-300\\\",\\\"children\\\":[[\\\"$\\\",\\\"th\\\",null,{\\\"className\\\":\\\"px-4 py-3 font-medium text-zinc-950 dark:text-white\\\",\\\"scope\\\":\\\"row\\\",\\\"children\\\":\\\"Third-party / webhook-triggered agent\\\"}],[\\\"$\\\",\\\"td\\\",null,{\\\"className\\\":\\\"px-4 py-3\\\",\\\"children\\\":\\\"Signed webhook payload verified at ingress, then exchanged for a short-lived, downscoped token\\\"}],[\\\"$\\\",\\\"td\\\",null,{\\\"className\\\":\\\"px-4 py-3 font-mono text-[13px]\\\",\\\"children\\\":\\\"Per-invocation\\\"}],[\\\"$\\\",\\\"td\\\",null,{\\\"className\\\":\\\"px-4 py-3\\\",\\\"children\\\":\\\"Rotate the webhook secret; deny-list the compromised signature\\\"}],[\\\"$\\\",\\\"td\\\",null,{\\\"className\\\":\\\"px-4 py-3\\\",\\\"children\\\":\\\"Per-payload signature hash plus the issued-token record\\\"}]]}]\\n7c:[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"flex flex-col gap-3 md:w-[220px] md:shrink-0\\\",\\\"children\\\":[[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"flex items-center gap-2 font-mono text-[10.5px] text-ignition uppercase tracking-[0.14em]\\\",\\\"children\\\":[[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"size-1.5 rounded-full bg-current shadow-[0_0_6px_currentColor]\\\"}],\\\"Human-delegated agents\\\"]}],[\\\"$\\\",\\\"h5\\\",null,{\\\"className\\\":\\\"m-0 font-medium text-[22px] leading-[1.15] tracking-[-0.02em] text-zinc-950 dark:text-white\\\",\\\"children\\\":\\\"On-behalf-of, audience-restricted\\\"}]]}]\\n7d:[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"hidden w-px self-stretch bg-zinc-200/60 md:block dark:bg-zinc-800/60\\\"}]\\n7e:[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"flex flex-1 flex-col justify-between gap-4\\\",\\\"children\\\":[[\\\"$\\\",\\\"p\\\",null,{\\\"className\\\":\\\"m-0 text-[14px] leading-[1.6] text-zinc-600 dark:text-zinc-400\\\",\\\"children\\\":\\\"Where an agent acts for a specific user, move to RFC 8693-style token exchange: subject token plus actor token, audience-restricted to the one service the task needs. The agent stops being the user and starts acting for the user — visibly, in every log.\\\"}],[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"self-start pt-1 md:self-end\\\",\\\"children\\\":[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"inline-block rounded-md px-3 py-1.5 font-medium font-mono text-[11.5px] tracking-[-0.01em] bg-zinc-100 text-zinc-950 dark:bg-zinc-800 dark:text-white\\\",\\\"children\\\":\\\"Token exchange\\\"}]}]]}]\\n\"])</script><script>self.__next_f.push([1,\"7f:[\\\"$\\\",\\\"div\\\",\\\"3\\\",{\\\"className\\\":\\\"relative flex flex-col gap-5 overflow-hidden rounded-2xl p-6 md:flex-row md:gap-8 md:p-7 border border-zinc-200 bg-white dark:border-zinc-800 dark:bg-zinc-900\\\",\\\"children\\\":[\\\"$undefined\\\",[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"flex flex-col gap-3 md:w-[220px] md:shrink-0\\\",\\\"children\\\":[[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"flex items-center gap-2 font-mono text-[10.5px] text-ignition uppercase tracking-[0.14em]\\\",\\\"children\\\":[[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"size-1.5 rounded-full bg-current shadow-[0_0_6px_currentColor]\\\"}],\\\"Multi-agent systems\\\"]}],[\\\"$\\\",\\\"h5\\\",null,{\\\"className\\\":\\\"m-0 font-medium text-[22px] leading-[1.15] tracking-[-0.02em] text-zinc-950 dark:text-white\\\",\\\"children\\\":\\\"Lineage from day one\\\"}]]}],[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"hidden w-px self-stretch bg-zinc-200/60 md:block dark:bg-zinc-800/60\\\"}],[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"flex flex-1 flex-col justify-between gap-4\\\",\\\"children\\\":[[\\\"$\\\",\\\"p\\\",null,{\\\"className\\\":\\\"m-0 text-[14px] leading-[1.6] text-zinc-600 dark:text-zinc-400\\\",\\\"children\\\":\\\"Give every spawned sub-agent its own identifier with a verifiable link to its parent, and pre-authorize the revocation workflow before you need it. Retrofitting lineage onto a running fleet after an incident is the expensive version.\\\"}],[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"self-start pt-1 md:self-end\\\",\\\"children\\\":[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"inline-block rounded-md px-3 py-1.5 font-medium font-mono text-[11.5px] tracking-[-0.01em] bg-zinc-100 text-zinc-950 dark:bg-zinc-800 dark:text-white\\\",\\\"children\\\":\\\"Parent-child IDs\\\"}]}]]}]]}]\\n\"])</script><script>self.__next_f.push([1,\"2b:[[\\\"$\\\",\\\"meta\\\",\\\"0\\\",{\\\"charSet\\\":\\\"utf-8\\\"}],[\\\"$\\\",\\\"meta\\\",\\\"1\\\",{\\\"name\\\":\\\"viewport\\\",\\\"content\\\":\\\"width=device-width, initial-scale=1, maximum-scale=5\\\"}]]\\n\"])</script><script>self.__next_f.push([1,\"2e:[[\\\"$\\\",\\\"title\\\",\\\"0\\\",{\\\"children\\\":\\\"Giving Agents Their Own Identity, Not Your Credentials\\\"}],[\\\"$\\\",\\\"meta\\\",\\\"1\\\",{\\\"name\\\":\\\"description\\\",\\\"content\\\":\\\"Agents that inherit a human session or API key make every action unrevocable without locking the human out. Short-lived, per-run workload credentials fix that.\\\"}],[\\\"$\\\",\\\"meta\\\",\\\"2\\\",{\\\"name\\\":\\\"author\\\",\\\"content\\\":\\\"Digital Applied\\\"}],[\\\"$\\\",\\\"meta\\\",\\\"3\\\",{\\\"name\\\":\\\"keywords\\\",\\\"content\\\":\\\"agent identity credentials,non-human identity management,SPIFFE SVID short-lived credentials,workload identity federation agents,GitHub App installation token scope,AWS IAM Roles Anywhere,AI agent audit trail\\\"}],[\\\"$\\\",\\\"meta\\\",\\\"4\\\",{\\\"name\\\":\\\"creator\\\",\\\"content\\\":\\\"Digital Applied\\\"}],[\\\"$\\\",\\\"meta\\\",\\\"5\\\",{\\\"name\\\":\\\"publisher\\\",\\\"content\\\":\\\"Digital Applied\\\"}],[\\\"$\\\",\\\"meta\\\",\\\"6\\\",{\\\"name\\\":\\\"robots\\\",\\\"content\\\":\\\"index, follow\\\"}],[\\\"$\\\",\\\"meta\\\",\\\"7\\\",{\\\"name\\\":\\\"googlebot\\\",\\\"content\\\":\\\"index, follow, max-video-preview:-1, max-image-preview:large, max-snippet:-1\\\"}],[\\\"$\\\",\\\"link\\\",\\\"8\\\",{\\\"rel\\\":\\\"canonical\\\",\\\"href\\\":\\\"https://www.digitalapplied.com/blog/agent-identity-credentials-non-human-access-2026-playbook\\\"}],[\\\"$\\\",\\\"meta\\\",\\\"9\\\",{\\\"property\\\":\\\"og:title\\\",\\\"content\\\":\\\"Giving Agents Their Own Identity, Not Your Credentials\\\"}],[\\\"$\\\",\\\"meta\\\",\\\"10\\\",{\\\"property\\\":\\\"og:description\\\",\\\"content\\\":\\\"Agents that inherit a human session or API key make every action unrevocable without locking the human out. Short-lived, per-run workload credentials fix that.\\\"}],[\\\"$\\\",\\\"meta\\\",\\\"11\\\",{\\\"property\\\":\\\"og:url\\\",\\\"content\\\":\\\"https://www.digitalapplied.com/blog/agent-identity-credentials-non-human-access-2026-playbook\\\"}],[\\\"$\\\",\\\"meta\\\",\\\"12\\\",{\\\"property\\\":\\\"og:image\\\",\\\"content\\\":\\\"https://www.digitalapplied.com/blog/agent-identity-credentials-non-human-access-2026-playbook/article-image\\\"}],[\\\"$\\\",\\\"meta\\\",\\\"13\\\",{\\\"property\\\":\\\"og:image:type\\\",\\\"content\\\":\\\"image/png\\\"}],[\\\"$\\\",\\\"meta\\\",\\\"14\\\",{\\\"property\\\":\\\"og:image:width\\\",\\\"content\\\":\\\"1200\\\"}],[\\\"$\\\",\\\"meta\\\",\\\"15\\\",{\\\"property\\\":\\\"og:image:height\\\",\\\"content\\\":\\\"630\\\"}],[\\\"$\\\",\\\"meta\\\",\\\"16\\\",{\\\"property\\\":\\\"og:image:alt\\\",\\\"content\\\":\\\"Giving Agents Their Own Identity, Not Your Credentials - Digital Applied Blog\\\"}],[\\\"$\\\",\\\"meta\\\",\\\"17\\\",{\\\"property\\\":\\\"og:type\\\",\\\"content\\\":\\\"article\\\"}],[\\\"$\\\",\\\"meta\\\",\\\"18\\\",{\\\"property\\\":\\\"article:published_time\\\",\\\"content\\\":\\\"2026-07-26\\\"}],[\\\"$\\\",\\\"meta\\\",\\\"19\\\",{\\\"property\\\":\\\"article:modified_time\\\",\\\"content\\\":\\\"2026-07-26\\\"}],[\\\"$\\\",\\\"meta\\\",\\\"20\\\",{\\\"property\\\":\\\"article:author\\\",\\\"content\\\":\\\"Digital Applied Team\\\"}],[\\\"$\\\",\\\"meta\\\",\\\"21\\\",{\\\"property\\\":\\\"article:tag\\\",\\\"content\\\":\\\"agent-identity\\\"}],[\\\"$\\\",\\\"meta\\\",\\\"22\\\",{\\\"property\\\":\\\"article:tag\\\",\\\"content\\\":\\\"non-human-identity\\\"}],[\\\"$\\\",\\\"meta\\\",\\\"23\\\",{\\\"property\\\":\\\"article:tag\\\",\\\"content\\\":\\\"workload-identity\\\"}],[\\\"$\\\",\\\"meta\\\",\\\"24\\\",{\\\"property\\\":\\\"article:tag\\\",\\\"content\\\":\\\"spiffe\\\"}],[\\\"$\\\",\\\"meta\\\",\\\"25\\\",{\\\"property\\\":\\\"article:tag\\\",\\\"content\\\":\\\"oauth\\\"}],[\\\"$\\\",\\\"meta\\\",\\\"26\\\",{\\\"property\\\":\\\"article:tag\\\",\\\"content\\\":\\\"access-control\\\"}],[\\\"$\\\",\\\"meta\\\",\\\"27\\\",{\\\"property\\\":\\\"article:tag\\\",\\\"content\\\":\\\"audit-logging\\\"}],[\\\"$\\\",\\\"meta\\\",\\\"28\\\",{\\\"name\\\":\\\"twitter:card\\\",\\\"content\\\":\\\"summary_large_image\\\"}],[\\\"$\\\",\\\"meta\\\",\\\"29\\\",{\\\"name\\\":\\\"twitter:title\\\",\\\"content\\\":\\\"Giving Agents Their Own Identity, Not Your Credentials\\\"}],[\\\"$\\\",\\\"meta\\\",\\\"30\\\",{\\\"name\\\":\\\"twitter:description\\\",\\\"content\\\":\\\"Agents that inherit a human session or API key make every action unrevocable without locking the human out. Short-lived, per-run workload credentials fix that.\\\"}],[\\\"$\\\",\\\"meta\\\",\\\"31\\\",{\\\"name\\\":\\\"twitter:image\\\",\\\"content\\\":\\\"https://www.digitalapplied.com/blog/agent-identity-credentials-non-human-access-2026-playbook/article-image\\\"}],[\\\"$\\\",\\\"meta\\\",\\\"32\\\",{\\\"name\\\":\\\"twitter:image:alt\\\",\\\"content\\\":\\\"Giving Agents Their Own Identity, Not Your Credentials - Digital Applied Blog\\\"}],[\\\"$\\\",\\\"meta\\\",\\\"33\\\",{\\\"name\\\":\\\"twitter:image:type\\\",\\\"content\\\":\\\"image/png\\\"}],[\\\"$\\\",\\\"meta\\\",\\\"34\\\",{\\\"name\\\":\\\"twitter:image:width\\\",\\\"content\\\":\\\"1200\\\"}],[\\\"$\\\",\\\"meta\\\",\\\"35\\\",{\\\"name\\\":\\\"twitter:image:height\\\",\\\"content\\\":\\\"630\\\"}],[\\\"$\\\",\\\"link\\\",\\\"36\\\",{\\\"rel\\\":\\\"icon\\\",\\\"href\\\":\\\"/favicon.ico?favicon.0hms~afauq~g0.ico\\\",\\\"sizes\\\":\\\"48x48\\\",\\\"type\\\":\\\"image/x-icon\\\"}],[\\\"$\\\",\\\"link\\\",\\\"37\\\",{\\\"rel\\\":\\\"icon\\\",\\\"href\\\":\\\"/icon.svg?icon.074~muy3rpvs~.svg\\\",\\\"sizes\\\":\\\"any\\\",\\\"type\\\":\\\"image/svg+xml\\\"}],[\\\"$\\\",\\\"link\\\",\\\"38\\\",{\\\"rel\\\":\\\"apple-touch-icon\\\",\\\"href\\\":\\\"/apple-icon.png?apple-icon.0z2i6746e9zp1.png\\\",\\\"sizes\\\":\\\"180x180\\\",\\\"type\\\":\\\"image/png\\\"}],\\\"$L83\\\"]\\n\"])</script><script>self.__next_f.push([1,\"60:null\\n\"])</script><script>self.__next_f.push([1,\"84:I[692313,[\\\"/_next/static/chunks/0vfhqx7irdtsp.js\\\",\\\"/_next/static/chunks/0yze7hvbcp5.x.js\\\",\\\"/_next/static/chunks/0zod1seoish6v.js\\\",\\\"/_next/static/chunks/0h9.k2fyk8cqu.js\\\"],\\\"IconMark\\\"]\\n83:[\\\"$\\\",\\\"$L84\\\",\\\"39\\\",{}]\\n\"])</script></body></html>","snapshot_chars":291193,"live_check":"changed"},{"url":"https://docs.cloud.google.com/iam/docs/agent-identity-overview","committed_hash":"sha256:31f9b9d4af154b078dcc2eb78c5fee3eff608be6c2a83d1e8a0d5078227dd627","committed_hash_short":"sha256:31f9b9d4…227dd627","mime_type":"text/html","committed_at":"2026-07-27T01:00:18.808408+00:00","content_snapshot":"\n\n\n\n\n\n\n\n\n<!doctype html>\n<html \n      lang=\"en\"\n      dir=\"ltr\">\n  <head>\n    <meta name=\"google-signin-client-id\" content=\"721724668570-nbkv1cfusk7kk4eni4pjvepaus73b13t.apps.googleusercontent.com\"><meta name=\"google-signin-scope\"\n          content=\"profile email https://www.googleapis.com/auth/developerprofiles https://www.googleapis.com/auth/developerprofiles.award https://www.googleapis.com/auth/devprofiles.full_control.firstparty\"><meta property=\"og:site_name\" content=\"Google Cloud Documentation\">\n    <meta property=\"og:type\" content=\"website\"><meta name=\"theme-color\" content=\"#1a73e8\"><meta charset=\"utf-8\">\n    <meta content=\"IE=Edge\" http-equiv=\"X-UA-Compatible\">\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n    \n\n    <link rel=\"manifest\" href=\"/_pwa/clouddocs/manifest.json\"\n          crossorigin=\"use-credentials\">\n    <link rel=\"preconnect\" href=\"//www.gstatic.com\" crossorigin>\n    <link rel=\"preconnect\" href=\"//fonts.googleapis.com\" crossorigin>\n    <link rel=\"preconnect\" href=\"//www.google-analytics.com\" crossorigin><link rel=\"stylesheet\" href=\"//fonts.googleapis.com/css?family=Google+Sans:400,500|Roboto:400,400italic,500,500italic,700,700italic|Roboto+Mono:400,500,700&display=swap\">\n      <link rel=\"stylesheet\"\n            href=\"//fonts.googleapis.com/css2?family=Material+Icons&family=Material+Symbols+Outlined&display=block\"><link rel=\"stylesheet\" href=\"https://www.gstatic.com/devrel-devsite/prod/v303cfab58e2ecfbd382191434137bc118fc92bc795e9241c9d005d07c4d0550a/clouddocs/css/app.css\">\n      \n        <link rel=\"stylesheet\" href=\"https://www.gstatic.com/devrel-devsite/prod/v303cfab58e2ecfbd382191434137bc118fc92bc795e9241c9d005d07c4d0550a/clouddocs/css/dark-theme.css\" disabled>\n      <link rel=\"shortcut icon\" href=\"https://www.gstatic.com/devrel-devsite/prod/v303cfab58e2ecfbd382191434137bc118fc92bc795e9241c9d005d07c4d0550a/clouddocs/images/favicons/onecloud/favicon.ico\">\n    <link rel=\"apple-touch-icon\" href=\"https://www.gstatic.com/devrel-devsite/prod/v303cfab58e2ecfbd382191434137bc118fc92bc795e9241c9d005d07c4d0550a/clouddocs/images/favicons/onecloud/super_cloud.png\"><link rel=\"canonical\" href=\"https://docs.cloud.google.com/iam/docs/agent-identity-overview\"><link rel=\"search\" type=\"application/opensearchdescription+xml\"\n            title=\"Google Cloud Documentation\" href=\"https://docs.cloud.google.com/s/opensearch.xml\">\n      <link rel=\"alternate\" hreflang=\"en\"\n          href=\"https://docs.cloud.google.com/iam/docs/agent-identity-overview\" /><link rel=\"alternate\" hreflang=\"x-default\" href=\"https://docs.cloud.google.com/iam/docs/agent-identity-overview\" /><link rel=\"alternate\" hreflang=\"zh-Hans\"\n          href=\"https://docs.cloud.google.com/iam/docs/agent-identity-overview?hl=zh-cn\" /><link rel=\"alternate\" hreflang=\"zh-Hant\"\n          href=\"https://docs.cloud.google.com/iam/docs/agent-identity-overview?hl=zh-tw\" /><link rel=\"alternate\" hreflang=\"fr\"\n          href=\"https://docs.cloud.google.com/iam/docs/agent-identity-overview?hl=fr\" /><link rel=\"alternate\" hreflang=\"de\"\n          href=\"https://docs.cloud.google.com/iam/docs/agent-identity-overview?hl=de\" /><link rel=\"alternate\" hreflang=\"he\"\n          href=\"https://docs.cloud.google.com/iam/docs/agent-identity-overview?hl=he\" /><link rel=\"alternate\" hreflang=\"id\"\n          href=\"https://docs.cloud.google.com/iam/docs/agent-identity-overview?hl=id\" /><link rel=\"alternate\" hreflang=\"it\"\n          href=\"https://docs.cloud.google.com/iam/docs/agent-identity-overview?hl=it\" /><link rel=\"alternate\" hreflang=\"ja\"\n          href=\"https://docs.cloud.google.com/iam/docs/agent-identity-overview?hl=ja\" /><link rel=\"alternate\" hreflang=\"ko\"\n          href=\"https://docs.cloud.google.com/iam/docs/agent-identity-overview?hl=ko\" /><link rel=\"alternate\" hreflang=\"pt-BR\"\n          href=\"https://docs.cloud.google.com/iam/docs/agent-identity-overview?hl=pt-br\" /><link rel=\"alternate\" hreflang=\"es-419\"\n          href=\"https://docs.cloud.google.com/iam/docs/agent-identity-overview?hl=es-419\" /><link rel=\"alternate\" hreflang=\"en\"\n          href=\"https://berlin.devsitetest.how/iam/docs/agent-identity-overview\" /><link rel=\"alternate\" hreflang=\"x-default\" href=\"https://berlin.devsitetest.how/iam/docs/agent-identity-overview\" /><link rel=\"alternate\" hreflang=\"zh-Hans\"\n          href=\"https://berlin.devsitetest.how/iam/docs/agent-identity-overview?hl=zh-cn\" /><link rel=\"alternate\" hreflang=\"zh-Hant\"\n          href=\"https://berlin.devsitetest.how/iam/docs/agent-identity-overview?hl=zh-tw\" /><link rel=\"alternate\" hreflang=\"fr\"\n          href=\"https://berlin.devsitetest.how/iam/docs/agent-identity-overview?hl=fr\" /><link rel=\"alternate\" hreflang=\"de\"\n          href=\"https://berlin.devsitetest.how/iam/docs/agent-identity-overview?hl=de\" /><link rel=\"alternate\" hreflang=\"he\"\n          href=\"https://berlin.devsitetest.how/iam/docs/agent-identity-overview?hl=he\" /><link rel=\"alternate\" hreflang=\"id\"\n          href=\"https://berlin.devsitetest.how/iam/docs/agent-identity-overview?hl=id\" /><link rel=\"alternate\" hreflang=\"it\"\n          href=\"https://berlin.devsitetest.how/iam/docs/agent-identity-overview?hl=it\" /><link rel=\"alternate\" hreflang=\"ja\"\n          href=\"https://berlin.devsitetest.how/iam/docs/agent-identity-overview?hl=ja\" /><link rel=\"alternate\" hreflang=\"ko\"\n          href=\"https://berlin.devsitetest.how/iam/docs/agent-identity-overview?hl=ko\" /><link rel=\"alternate\" hreflang=\"pt-BR\"\n          href=\"https://berlin.devsitetest.how/iam/docs/agent-identity-overview?hl=pt-br\" /><link rel=\"alternate\" hreflang=\"es-419\"\n          href=\"https://berlin.devsitetest.how/iam/docs/agent-identity-overview?hl=es-419\" /><title>Agent Identity overview &nbsp;|&nbsp; Identity and Access Management (IAM) &nbsp;|&nbsp; Google Cloud Documentation</title>\n\n<meta property=\"og:title\" content=\"Agent Identity overview &nbsp;|&nbsp; Identity and Access Management (IAM) &nbsp;|&nbsp; Google Cloud Documentation\"><meta name=\"description\" content=\"Discover Agent Identity: SPIFFE-based authentication and authorization for Google Cloud agents.\">\n  <meta property=\"og:description\" content=\"Discover Agent Identity: SPIFFE-based authentication and authorization for Google Cloud agents.\"><meta property=\"og:url\" content=\"https://docs.cloud.google.com/iam/docs/agent-identity-overview\"><meta property=\"og:image\" content=\"https://docs.cloud.google.com/_static/cloud/images/social-icon-google-cloud-1200-630.png\">\n  <meta property=\"og:image:width\" content=\"1200\">\n  <meta property=\"og:image:height\" content=\"630\"><meta property=\"og:locale\" content=\"en\"><meta name=\"twitter:card\" content=\"summary_large_image\"><script type=\"application/ld+json\">\n  {\n    \"@context\": \"https://schema.org\",\n    \"@type\": \"Article\",\n    \n    \"headline\": \"Agent Identity overview\"\n  }\n</script><script type=\"application/ld+json\">\n  {\n    \"@context\": \"https://schema.org\",\n    \"@type\": \"BreadcrumbList\",\n    \"itemListElement\": [{\n      \"@type\": \"ListItem\",\n      \"position\": 1,\n      \"name\": \"IAM\",\n      \"item\": \"https://docs.cloud.google.com/iam/docs\"\n    },{\n      \"@type\": \"ListItem\",\n      \"position\": 2,\n      \"name\": \"Identity and Access Management (IAM)\",\n      \"item\": \"https://docs.cloud.google.com/iam/docs\"\n    },{\n      \"@type\": \"ListItem\",\n      \"position\": 3,\n      \"name\": \"Agent Identity overview\",\n      \"item\": \"https://docs.cloud.google.com/iam/docs/agent-identity-overview\"\n    }]\n  }\n  </script>\n  \n    \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n  \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n  \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n\n\n\n\n\n\n\n\n\n\n\n\n \n \n\n \n \n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n    \n\n    \n    \n    \n    \n    \n\n\n<meta name=\"gtm_var\" data-key=\"docType\" data-value=\"concept\">\n\n  \n\n    </head>\n  <body class=\"color-scheme--light\"\n        template=\"page\"\n        theme=\"clouddocs-theme\"\n        type=\"article\"\n        \n        appearance\n        \n        layout=\"docs\"\n        \n        \n        free-trial\n        \n        \n        display-toc\n        pending>\n  \n    <devsite-progress type=\"indeterminate\" id=\"app-progress\"></devsite-progress>\n  \n  \n    <a href=\"#main-content\" class=\"skip-link button\">\n      \n      Skip to main content\n    </a>\n    <section class=\"devsite-wrapper\">\n      <devsite-cookie-notification-bar></devsite-cookie-notification-bar>\n        <cloudx-track userCountry=\"US\"></cloudx-track>\n\n<devsite-header role=\"banner\" keep-tabs-visible>\n  \n    \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n<div class=\"devsite-header--inner\" data-nosnippet>\n  <div class=\"devsite-top-logo-row-wrapper-wrapper\">\n    <div class=\"devsite-top-logo-row-wrapper\">\n      <div class=\"devsite-top-logo-row\">\n        <button type=\"button\" id=\"devsite-hamburger-menu\"\n          class=\"devsite-header-icon-button button-flat material-icons gc-analytics-event\"\n          data-category=\"Site-Wide Custom Events\"\n          data-label=\"Navigation menu button\"\n          visually-hidden\n          aria-label=\"Open menu\">\n        </button>\n        \n<div class=\"devsite-product-name-wrapper\">\n\n  <a href=\"/\" class=\"devsite-site-logo-link gc-analytics-event\"\n   data-category=\"Site-Wide Custom Events\" data-label=\"Site logo\" track-type=\"globalNav\"\n   track-name=\"googleCloudDocumentation\" track-metadata-position=\"nav\"\n   track-metadata-eventDetail=\"nav\">\n  \n  <picture>\n    \n    <source srcset=\"https://www.gstatic.com/devrel-devsite/prod/v303cfab58e2ecfbd382191434137bc118fc92bc795e9241c9d005d07c4d0550a/clouddocs/images/lockup_dark_theme.svg\"\n            media=\"(prefers-color-scheme: dark)\"\n            class=\"devsite-dark-theme\">\n    \n    <img src=\"https://www.gstatic.com/devrel-devsite/prod/v303cfab58e2ecfbd382191434137bc118fc92bc795e9241c9d005d07c4d0550a/clouddocs/images/lockup_full_color.svg\" class=\"devsite-site-logo\" alt=\"Google Cloud Documentation\">\n  </picture>\n  \n</a>\n\n\n\n</div>\n        <div class=\"devsite-top-logo-row-middle\">\n          <div class=\"devsite-header-upper-tabs\">\n            \n              \n              \n  <devsite-tabs class=\"upper-tabs\">\n\n    <nav class=\"devsite-tabs-wrapper\" aria-label=\"Upper tabs\">\n      \n        \n          <tab class=\"devsite-dropdown\n    \n    devsite-active\n    devsite-clickable\n    \">\n  \n    <a href=\"https://docs.cloud.google.com/docs\"\n    class=\"devsite-tabs-content gc-analytics-event \"\n      track-metadata-eventdetail=\"https://docs.cloud.google.com/docs\"\n    \n       track-type=\"nav\"\n       track-metadata-position=\"nav - docs-home\"\n       track-metadata-module=\"primary nav\"\n       aria-label=\"Technology areas, selected\" \n       \n         \n           data-category=\"Site-Wide Custom Events\"\n         \n           data-label=\"Tab: Technology areas\"\n         \n           track-name=\"docs-home\"\n         \n           track-link-column-type=\"single-column\"\n         \n       >\n    Technology areas\n  \n    </a>\n    \n      <button\n         aria-haspopup=\"menu\"\n         aria-expanded=\"false\"\n         aria-label=\"Dropdown menu for Technology areas\"\n         track-type=\"nav\"\n         track-metadata-eventdetail=\"https://docs.cloud.google.com/docs\"\n         track-metadata-position=\"nav - docs-home\"\n         track-metadata-module=\"primary nav\"\n         \n          \n            data-category=\"Site-Wide Custom Events\"\n          \n            data-label=\"Tab: Technology areas\"\n          \n            track-name=\"docs-home\"\n          \n            track-link-column-type=\"single-column\"\n          \n        \n         class=\"devsite-tabs-dropdown-toggle devsite-icon devsite-icon-arrow-drop-down\"></button>\n    \n  \n  <div class=\"devsite-tabs-dropdown\" role=\"menu\" aria-label=\"submenu\" hidden>\n    <div class=\"devsite-tabs-dropdown-content\">\n      \n        <button class=\"devsite-tabs-close-button material-icons button-flat gc-analytics-event\"\n                data-category=\"Site-Wide Custom Events\"\n                data-label=\"Close dropdown menu\"\n                aria-label=\"Close dropdown menu\"\n                track-type=\"nav\"\n                track-name=\"close\"\n                track-metadata-eventdetail=\"#\"\n                track-metadata-position=\"nav - docs-home\"\n                track-metadata-module=\"tertiary nav\">close</button>\n      \n      \n        <div class=\"devsite-tabs-dropdown-column\n                    \">\n          \n            <ul class=\"devsite-tabs-dropdown-section\n                       \">\n              \n              \n              \n                <li class=\"devsite-nav-item\">\n                  <a href=\"https://docs.cloud.google.com/docs/ai-ml\"\n                    \n                     track-type=\"nav\"\n                     track-metadata-eventdetail=\"https://docs.cloud.google.com/docs/ai-ml\"\n                     track-metadata-position=\"nav - docs-home\"\n                     track-metadata-module=\"tertiary nav\"\n                     \n                     tooltip\n                  >\n                    \n                    <div class=\"devsite-nav-item-title\">\n                      AI and ML\n                    </div>\n                    \n                  </a>\n                </li>\n              \n                <li class=\"devsite-nav-item\">\n                  <a href=\"https://docs.cloud.google.com/docs/application-development\"\n                    \n                     track-type=\"nav\"\n                     track-metadata-eventdetail=\"https://docs.cloud.google.com/docs/application-development\"\n                     track-metadata-position=\"nav - docs-home\"\n                     track-metadata-module=\"tertiary nav\"\n                     \n                     tooltip\n                  >\n                    \n                    <div class=\"devsite-nav-item-title\">\n                      Application development\n                    </div>\n                    \n                  </a>\n                </li>\n              \n                <li class=\"devsite-nav-item\">\n                  <a href=\"https://docs.cloud.google.com/docs/application-hosting\"\n                    \n                     track-type=\"nav\"\n                     track-metadata-eventdetail=\"https://docs.cloud.google.com/docs/application-hosting\"\n                     track-metadata-position=\"nav - docs-home\"\n                     track-metadata-module=\"tertiary nav\"\n                     \n                     tooltip\n                  >\n                    \n                    <div class=\"devsite-nav-item-title\">\n                      Application hosting\n                    </div>\n                    \n                  </a>\n                </li>\n              \n                <li class=\"devsite-nav-item\">\n                  <a href=\"https://docs.cloud.google.com/docs/compute-area\"\n                    \n                     track-type=\"nav\"\n                     track-metadata-eventdetail=\"https://docs.cloud.google.com/docs/compute-area\"\n                     track-metadata-position=\"nav - docs-home\"\n                     track-metadata-module=\"tertiary nav\"\n                     \n                     tooltip\n                  >\n                    \n                    <div class=\"devsite-nav-item-title\">\n                      Compute\n                    </div>\n                    \n                  </a>\n                </li>\n              \n                <li class=\"devsite-nav-item\">\n                  <a href=\"https://docs.cloud.google.com/docs/data\"\n                    \n                     track-type=\"nav\"\n                     track-metadata-eventdetail=\"https://docs.cloud.google.com/docs/data\"\n                     track-metadata-position=\"nav - docs-home\"\n                     track-metadata-module=\"tertiary nav\"\n                     \n                     tooltip\n                  >\n                    \n                    <div class=\"devsite-nav-item-title\">\n                      Data analytics and pipelines\n                    </div>\n                    \n                  </a>\n                </li>\n              \n                <li class=\"devsite-nav-item\">\n                  <a href=\"https://docs.cloud.google.com/docs/databases\"\n                    \n                     track-type=\"nav\"\n                     track-metadata-eventdetail=\"https://docs.cloud.google.com/docs/databases\"\n                     track-metadata-position=\"nav - docs-home\"\n                     track-metadata-module=\"tertiary nav\"\n                     \n                     tooltip\n                  >\n                    \n                    <div class=\"devsite-nav-item-title\">\n                      Databases\n                    </div>\n                    \n                  </a>\n                </li>\n              \n                <li class=\"devsite-nav-item\">\n                  <a href=\"https://docs.cloud.google.com/docs/dhm-cloud\"\n                    \n                     track-type=\"nav\"\n                     track-metadata-eventdetail=\"https://docs.cloud.google.com/docs/dhm-cloud\"\n                     track-metadata-position=\"nav - docs-home\"\n                     track-metadata-module=\"tertiary nav\"\n                     \n                     tooltip\n                  >\n                    \n                    <div class=\"devsite-nav-item-title\">\n                      Distributed, hybrid, and multicloud\n                    </div>\n                    \n                  </a>\n                </li>\n              \n                <li class=\"devsite-nav-item\">\n                  <a href=\"https://docs.cloud.google.com/docs/industry\"\n                    \n                     track-type=\"nav\"\n                     track-metadata-eventdetail=\"https://docs.cloud.google.com/docs/industry\"\n                     track-metadata-position=\"nav - docs-home\"\n                     track-metadata-module=\"tertiary nav\"\n                     \n                     tooltip\n                  >\n                    \n                    <div class=\"devsite-nav-item-title\">\n                      Industry solutions\n                    </div>\n                    \n                  </a>\n                </li>\n              \n                <li class=\"devsite-nav-item\">\n                  <a href=\"https://docs.cloud.google.com/docs/migration\"\n                    \n                     track-type=\"nav\"\n                     track-metadata-eventdetail=\"https://docs.cloud.google.com/docs/migration\"\n                     track-metadata-position=\"nav - docs-home\"\n                     track-metadata-module=\"tertiary nav\"\n                     \n                     tooltip\n                  >\n                    \n                    <div class=\"devsite-nav-item-title\">\n                      Migration\n                    </div>\n                    \n                  </a>\n                </li>\n              \n                <li class=\"devsite-nav-item\">\n                  <a href=\"https://docs.cloud.google.com/docs/networking\"\n                    \n                     track-type=\"nav\"\n                     track-metadata-eventdetail=\"https://docs.cloud.google.com/docs/networking\"\n                     track-metadata-position=\"nav - docs-home\"\n                     track-metadata-module=\"tertiary nav\"\n                     \n                     tooltip\n                  >\n                    \n                    <div class=\"devsite-nav-item-title\">\n                      Networking\n                    </div>\n                    \n                  </a>\n                </li>\n              \n                <li class=\"devsite-nav-item\">\n                  <a href=\"https://docs.cloud.google.com/docs/observability\"\n                    \n                     track-type=\"nav\"\n                     track-metadata-eventdetail=\"https://docs.cloud.google.com/docs/observability\"\n                     track-metadata-position=\"nav - docs-home\"\n                     track-metadata-module=\"tertiary nav\"\n                     \n                     tooltip\n                  >\n                    \n                    <div class=\"devsite-nav-item-title\">\n                      Observability and monitoring\n                    </div>\n                    \n                  </a>\n                </li>\n              \n                <li class=\"devsite-nav-item\">\n                  <a href=\"https://docs.cloud.google.com/docs/security\"\n                    \n                     track-type=\"nav\"\n                     track-metadata-eventdetail=\"https://docs.cloud.google.com/docs/security\"\n                     track-metadata-position=\"nav - docs-home\"\n                     track-metadata-module=\"tertiary nav\"\n                     \n                     tooltip\n                  >\n                    \n                    <div class=\"devsite-nav-item-title\">\n                      Security\n                    </div>\n                    \n                  </a>\n                </li>\n              \n                <li class=\"devsite-nav-item\">\n                  <a href=\"https://docs.cloud.google.com/docs/storage\"\n                    \n                     track-type=\"nav\"\n                     track-metadata-eventdetail=\"https://docs.cloud.google.com/docs/storage\"\n                     track-metadata-position=\"nav - docs-home\"\n                     track-metadata-module=\"tertiary nav\"\n                     \n                     tooltip\n                  >\n                    \n                    <div class=\"devsite-nav-item-title\">\n                      Storage\n                    </div>\n                    \n                  </a>\n                </li>\n              \n            </ul>\n          \n        </div>\n      \n    </div>\n  </div>\n</tab>\n        \n      \n        \n          <tab class=\"devsite-dropdown\n    \n    \n    devsite-clickable\n    \">\n  \n    <a href=\"https://docs.cloud.google.com/docs/cross-product-overviews\"\n    class=\"devsite-tabs-content gc-analytics-event \"\n      track-metadata-eventdetail=\"https://docs.cloud.google.com/docs/cross-product-overviews\"\n    \n       track-type=\"nav\"\n       track-metadata-position=\"nav - crossproduct\"\n       track-metadata-module=\"primary nav\"\n       \n       \n         \n           data-category=\"Site-Wide Custom Events\"\n         \n           data-label=\"Tab: Cross-product tools\"\n         \n           track-name=\"crossproduct\"\n         \n           track-link-column-type=\"single-column\"\n         \n       >\n    Cross-product tools\n  \n    </a>\n    \n      <button\n         aria-haspopup=\"menu\"\n         aria-expanded=\"false\"\n         aria-label=\"Dropdown menu for Cross-product tools\"\n         track-type=\"nav\"\n         track-metadata-eventdetail=\"https://docs.cloud.google.com/docs/cross-product-overviews\"\n         track-metadata-position=\"nav - crossproduct\"\n         track-metadata-module=\"primary nav\"\n         \n          \n            data-category=\"Site-Wide Custom Events\"\n          \n            data-label=\"Tab: Cross-product tools\"\n          \n            track-name=\"crossproduct\"\n          \n            track-link-column-type=\"single-column\"\n          \n        \n         class=\"devsite-tabs-dropdown-toggle devsite-icon devsite-icon-arrow-drop-down\"></button>\n    \n  \n  <div class=\"devsite-tabs-dropdown\" role=\"menu\" aria-label=\"submenu\" hidden>\n    <div class=\"devsite-tabs-dropdown-content\">\n      \n        <button class=\"devsite-tabs-close-button material-icons button-flat gc-analytics-event\"\n                data-category=\"Site-Wide Custom Events\"\n                data-label=\"Close dropdown menu\"\n                aria-label=\"Close dropdown menu\"\n                track-type=\"nav\"\n                track-name=\"close\"\n                track-metadata-eventdetail=\"#\"\n                track-metadata-position=\"nav - crossproduct\"\n                track-metadata-module=\"tertiary nav\">close</button>\n      \n      \n        <div class=\"devsite-tabs-dropdown-column\n                    \">\n          \n            <ul class=\"devsite-tabs-dropdown-section\n                       \">\n              \n              \n              \n                <li class=\"devsite-nav-item\">\n                  <a href=\"https://docs.cloud.google.com/docs/access-resources\"\n                    \n                     track-type=\"nav\"\n                     track-metadata-eventdetail=\"https://docs.cloud.google.com/docs/access-resources\"\n                     track-metadata-position=\"nav - crossproduct\"\n                     track-metadata-module=\"tertiary nav\"\n                     \n                     tooltip\n                  >\n                    \n                    <div class=\"devsite-nav-item-title\">\n                      Access and resources management\n                    </div>\n                    \n                  </a>\n                </li>\n              \n                <li class=\"devsite-nav-item\">\n                  <a href=\"https://docs.cloud.google.com/docs/costs-usage\"\n                    \n                     track-type=\"nav\"\n                     track-metadata-eventdetail=\"https://docs.cloud.google.com/docs/costs-usage\"\n                     track-metadata-position=\"nav - crossproduct\"\n                     track-metadata-module=\"tertiary nav\"\n                     \n                     tooltip\n                  >\n                    \n                    <div class=\"devsite-nav-item-title\">\n                      Costs and usage management\n                    </div>\n                    \n                  </a>\n                </li>\n              \n                <li class=\"devsite-nav-item\">\n                  <a href=\"https://docs.cloud.google.com/docs/iac\"\n                    \n                     track-type=\"nav\"\n                     track-metadata-eventdetail=\"https://docs.cloud.google.com/docs/iac\"\n                     track-metadata-position=\"nav - crossproduct\"\n                     track-metadata-module=\"tertiary nav\"\n                     \n                     tooltip\n                  >\n                    \n                    <div class=\"devsite-nav-item-title\">\n                      Infrastructure as code\n                    </div>\n                    \n                  </a>\n                </li>\n              \n                <li class=\"devsite-nav-item\">\n                  <a href=\"https://docs.cloud.google.com/docs/devtools\"\n                    \n                     track-type=\"nav\"\n                     track-metadata-eventdetail=\"https://docs.cloud.google.com/docs/devtools\"\n                     track-metadata-position=\"nav - crossproduct\"\n                     track-metadata-module=\"tertiary nav\"\n                     \n                     tooltip\n                  >\n                    \n                    <div class=\"devsite-nav-item-title\">\n                      SDK, languages, frameworks, and tools\n                    </div>\n                    \n                  </a>\n                </li>\n              \n            </ul>\n          \n        </div>\n      \n    </div>\n  </div>\n</tab>\n        \n      \n    </nav>\n\n  </devsite-tabs>\n\n            \n           </div>\n          \n<devsite-search\n    enable-signin\n    enable-search\n    enable-suggestions\n      \n    \n    enable-search-summaries\n    project-name=\"Identity and Access Management (IAM)\"\n    tenant-name=\"Google Cloud Documentation\"\n    project-scope=\"/iam/docs\"\n    url-scoped=\"https://docs.cloud.google.com/s/results/iam/docs\"\n    \n    \n    \n    >\n  <form class=\"devsite-search-form\" action=\"https://docs.cloud.google.com/s/results\" method=\"GET\">\n    <div class=\"devsite-search-container\">\n      <button type=\"button\"\n              search-open\n              class=\"devsite-search-button devsite-header-icon-button button-flat material-icons\"\n              \n              aria-label=\"Open search\"></button>\n      <div class=\"devsite-searchbox\">\n        <input\n          aria-activedescendant=\"\"\n          aria-autocomplete=\"list\"\n          \n          aria-label=\"Search\"\n          aria-expanded=\"false\"\n          aria-haspopup=\"listbox\"\n          autocomplete=\"off\"\n          class=\"devsite-search-field devsite-search-query\"\n          name=\"q\"\n          \n          placeholder=\"Search\"\n          role=\"combobox\"\n          type=\"text\"\n          value=\"\"\n          >\n          <div class=\"devsite-search-image material-icons\" aria-hidden=\"true\">\n            \n              <svg class=\"devsite-search-ai-image\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n                  <g clip-path=\"url(#clip0_6641_386)\">\n                    <path d=\"M19.6 21L13.3 14.7C12.8 15.1 12.225 15.4167 11.575 15.65C10.925 15.8833 10.2333 16 9.5 16C7.68333 16 6.14167 15.375 4.875 14.125C3.625 12.8583 3 11.3167 3 9.5C3 7.68333 3.625 6.15 4.875 4.9C6.14167 3.63333 7.68333 3 9.5 3C10.0167 3 10.5167 3.05833 11 3.175C11.4833 3.275 11.9417 3.43333 12.375 3.65L10.825 5.2C10.6083 5.13333 10.3917 5.08333 10.175 5.05C9.95833 5.01667 9.73333 5 9.5 5C8.25 5 7.18333 5.44167 6.3 6.325C5.43333 7.19167 5 8.25 5 9.5C5 10.75 5.43333 11.8167 6.3 12.7C7.18333 13.5667 8.25 14 9.5 14C10.6667 14 11.6667 13.625 12.5 12.875C13.35 12.1083 13.8417 11.15 13.975 10H15.975C15.925 10.6333 15.7833 11.2333 15.55 11.8C15.3333 12.3667 15.05 12.8667 14.7 13.3L21 19.6L19.6 21ZM17.5 12C17.5 10.4667 16.9667 9.16667 15.9 8.1C14.8333 7.03333 13.5333 6.5 12 6.5C13.5333 6.5 14.8333 5.96667 15.9 4.9C16.9667 3.83333 17.5 2.53333 17.5 0.999999C17.5 2.53333 18.0333 3.83333 19.1 4.9C20.1667 5.96667 21.4667 6.5 23 6.5C21.4667 6.5 20.1667 7.03333 19.1 8.1C18.0333 9.16667 17.5 10.4667 17.5 12Z\" fill=\"#5F6368\"/>\n                  </g>\n                <defs>\n                <clipPath id=\"clip0_6641_386\">\n                <rect width=\"24\" height=\"24\" fill=\"white\"/>\n                </clipPath>\n                </defs>\n              </svg>\n            \n          </div>\n          <div class=\"devsite-search-shortcut-icon-container\" aria-hidden=\"true\">\n            <kbd class=\"devsite-search-shortcut-icon\">/</kbd>\n          </div>\n      </div>\n    </div>\n  </form>\n  <button type=\"button\"\n          search-close\n          class=\"devsite-search-button devsite-header-icon-button button-flat material-icons\"\n          \n          aria-label=\"Close search\"></button>\n</devsite-search>\n\n        </div>\n\n        \n\n  \n\n  \n    <a class=\"devsite-header-link devsite-top-button button gc-analytics-event button-with-icon\"\n    href=\"//console.cloud.google.com/\"\n    data-category=\"Site-Wide Custom Events\"\n    data-label=\"Site header link: Console\"\n    \n      \n        track-type=\"globalNav\"\n      \n        referrerpolicy=\"no-referrer-when-downgrade\"\n      \n        track-metadata-position=\"nav\"\n      \n        track-metadata-eventDetail=\"nav\"\n      \n        track-name=\"console\"\n      \n    >\n  Console\n</a>\n  \n\n  \n\n  <devsite-appearance-selector></devsite-appearance-selector>\n\n  \n<devsite-language-selector>\n  <ul role=\"presentation\">\n    \n    \n    <li role=\"presentation\">\n      <a role=\"menuitem\" lang=\"en\"\n        >English</a>\n    </li>\n    \n    <li role=\"presentation\">\n      <a role=\"menuitem\" lang=\"de\"\n        >Deutsch</a>\n    </li>\n    \n    <li role=\"presentation\">\n      <a role=\"menuitem\" lang=\"es_419\"\n        >Español – América Latina</a>\n    </li>\n    \n    <li role=\"presentation\">\n      <a role=\"menuitem\" lang=\"fr\"\n        >Français</a>\n    </li>\n    \n    <li role=\"presentation\">\n      <a role=\"menuitem\" lang=\"id\"\n        >Indonesia</a>\n    </li>\n    \n    <li role=\"presentation\">\n      <a role=\"menuitem\" lang=\"it\"\n        >Italiano</a>\n    </li>\n    \n    <li role=\"presentation\">\n      <a role=\"menuitem\" lang=\"pt_br\"\n        >Português – Brasil</a>\n    </li>\n    \n    <li role=\"presentation\">\n      <a role=\"menuitem\" lang=\"he\"\n        >עברית</a>\n    </li>\n    \n    <li role=\"presentation\">\n      <a role=\"menuitem\" lang=\"zh_cn\"\n        >中文 – 简体</a>\n    </li>\n    \n    <li role=\"presentation\">\n      <a role=\"menuitem\" lang=\"zh_tw\"\n        >中文 – 繁體</a>\n    </li>\n    \n    <li role=\"presentation\">\n      <a role=\"menuitem\" lang=\"ja\"\n        >日本語</a>\n    </li>\n    \n    <li role=\"presentation\">\n      <a role=\"menuitem\" lang=\"ko\"\n        >한국어</a>\n    </li>\n    \n  </ul>\n</devsite-language-selector>\n\n\n\n\n        \n          <devsite-user \n                        \n                        \n                          enable-profiles\n                        \n                        \n                          fp-auth\n                        \n                        id=\"devsite-user\">\n            \n              \n              <span class=\"button devsite-top-button\" aria-hidden=\"true\" visually-hidden>Sign in</span>\n            \n          </devsite-user>\n        \n        \n        \n      </div>\n    </div>\n  </div>\n\n\n\n  <div class=\"devsite-collapsible-section\n    \">\n    <div class=\"devsite-header-background\">\n      \n        \n          <div class=\"devsite-product-id-row\"\n           >\n            <div class=\"devsite-product-description-row\">\n              \n                \n                <div class=\"devsite-product-id\">\n                  \n                    \n  \n  <a href=\"https://docs.cloud.google.com/iam/docs\">\n    \n  <div class=\"devsite-product-logo-container\"\n       \n       \n       \n    size=\"medium\"\n  >\n  \n    <picture>\n      \n      <source class=\"devsite-dark-theme\"\n              media=\"(prefers-color-scheme: dark)\"\n              srcset=\" /_static/clouddocs/images/icons/categories/security-and-identity-white.svg\"\n              sizes=\"64px\">\n      \n      <img class=\"devsite-product-logo\"\n           alt=\"\"\n           src=\"https://docs.cloud.google.com/_static/clouddocs/images/icons/categories/security-and-identity-color.svg\"\n           srcset=\" /_static/clouddocs/images/icons/categories/security-and-identity-color.svg\"\n           sizes=\"64px\"\n           loading=\"lazy\"\n           >\n    </picture>\n  \n  </div>\n  \n  </a>\n  \n\n                  \n                  \n                  \n                    <ul class=\"devsite-breadcrumb-list\"\n  \n    aria-label=\"Lower header breadcrumb\">\n  \n  <li class=\"devsite-breadcrumb-item\n             \">\n    \n    \n    \n      \n        \n  <a href=\"https://docs.cloud.google.com/iam/docs\"\n      \n        class=\"devsite-breadcrumb-link gc-analytics-event\"\n      \n        data-category=\"Site-Wide Custom Events\"\n      \n        data-label=\"Lower Header\"\n      \n        data-value=\"1\"\n      \n        track-type=\"globalNav\"\n      \n        track-name=\"breadcrumb\"\n      \n        track-metadata-position=\"1\"\n      \n        track-metadata-eventdetail=\"Identity and Access Management (IAM)\"\n      \n    >\n    \n          IAM\n        \n  </a>\n  \n      \n    \n  </li>\n  \n  <li class=\"devsite-breadcrumb-item\n             \">\n    \n      \n      <div class=\"devsite-breadcrumb-guillemet material-icons\" aria-hidden=\"true\"></div>\n    \n    \n    \n      \n        \n  <a href=\"https://docs.cloud.google.com/iam/docs\"\n      \n        class=\"devsite-breadcrumb-link gc-analytics-event\"\n      \n        data-category=\"Site-Wide Custom Events\"\n      \n        data-label=\"Lower Header\"\n      \n        data-value=\"2\"\n      \n        track-type=\"globalNav\"\n      \n        track-name=\"breadcrumb\"\n      \n        track-metadata-position=\"2\"\n      \n        track-metadata-eventdetail=\"Identity and Access Management (IAM)\"\n      \n    >\n    \n          Identity and Access Management (IAM)\n        \n  </a>\n  \n      \n    \n  </li>\n  \n</ul>\n                </div>\n                \n              \n              \n            </div>\n            \n              <div class=\"devsite-product-button-row\">\n  \n\n  \n  <a href=\"//console.cloud.google.com/freetrial\"\n  \n    class=\"cloud-free-trial-button button button-primary\n      \"\n    \n    \n      \n        track-type=\"freeTrial\"\n      \n        referrerpolicy=\"no-referrer-when-downgrade\"\n      \n        track-metadata-eventDetail=\"nav\"\n      \n        track-metadata-position=\"nav\"\n      \n        track-name=\"gcpCta\"\n      \n    \n    >Start free</a>\n\n</div>\n            \n          </div>\n          \n        \n      \n      \n        <div class=\"devsite-doc-set-nav-row\">\n          \n          \n            \n            \n  <devsite-tabs class=\"lower-tabs\">\n\n    <nav class=\"devsite-tabs-wrapper\" aria-label=\"Lower tabs\">\n      \n        \n          <tab  >\n            \n    <a href=\"https://docs.cloud.google.com/iam/docs\"\n    class=\"devsite-tabs-content gc-analytics-event \"\n      track-metadata-eventdetail=\"https://docs.cloud.google.com/iam/docs\"\n    \n       track-type=\"nav\"\n       track-metadata-position=\"nav - overview\"\n       track-metadata-module=\"primary nav\"\n       \n       \n         \n           data-category=\"Site-Wide Custom Events\"\n         \n           data-label=\"Tab: Overview\"\n         \n           track-name=\"overview\"\n         \n       >\n    Overview\n  \n    </a>\n    \n  \n          </tab>\n        \n      \n        \n          <tab  class=\"devsite-active\">\n            \n    <a href=\"https://docs.cloud.google.com/iam/docs/overview\"\n    class=\"devsite-tabs-content gc-analytics-event \"\n      track-metadata-eventdetail=\"https://docs.cloud.google.com/iam/docs/overview\"\n    \n       track-type=\"nav\"\n       track-metadata-position=\"nav - guides\"\n       track-metadata-module=\"primary nav\"\n       aria-label=\"Guides, selected\" \n       \n         \n           data-category=\"Site-Wide Custom Events\"\n         \n           data-label=\"Tab: Guides\"\n         \n           track-name=\"guides\"\n         \n       >\n    Guides\n  \n    </a>\n    \n  \n          </tab>\n        \n      \n        \n          <tab  >\n            \n    <a href=\"https://docs.cloud.google.com/iam/docs/apis\"\n    class=\"devsite-tabs-content gc-analytics-event \"\n      track-metadata-eventdetail=\"https://docs.cloud.google.com/iam/docs/apis\"\n    \n       track-type=\"nav\"\n       track-metadata-position=\"nav - reference\"\n       track-metadata-module=\"primary nav\"\n       \n       \n         \n           data-category=\"Site-Wide Custom Events\"\n         \n           data-label=\"Tab: Reference\"\n         \n           track-name=\"reference\"\n         \n       >\n    Reference\n  \n    </a>\n    \n  \n          </tab>\n        \n      \n        \n          <tab  >\n            \n    <a href=\"https://docs.cloud.google.com/iam/docs/samples\"\n    class=\"devsite-tabs-content gc-analytics-event \"\n      track-metadata-eventdetail=\"https://docs.cloud.google.com/iam/docs/samples\"\n    \n       track-type=\"nav\"\n       track-metadata-position=\"nav - samples\"\n       track-metadata-module=\"primary nav\"\n       \n       \n         \n           data-category=\"Site-Wide Custom Events\"\n         \n           data-label=\"Tab: Samples\"\n         \n           track-name=\"samples\"\n         \n       >\n    Samples\n  \n    </a>\n    \n  \n          </tab>\n        \n      \n        \n          <tab  >\n            \n    <a href=\"https://docs.cloud.google.com/iam/docs/resources\"\n    class=\"devsite-tabs-content gc-analytics-event \"\n      track-metadata-eventdetail=\"https://docs.cloud.google.com/iam/docs/resources\"\n    \n       track-type=\"nav\"\n       track-metadata-position=\"nav - resources\"\n       track-metadata-module=\"primary nav\"\n       \n       \n         \n           data-category=\"Site-Wide Custom Events\"\n         \n           data-label=\"Tab: Resources\"\n         \n           track-name=\"resources\"\n         \n       >\n    Resources\n  \n    </a>\n    \n  \n          </tab>\n        \n      \n    </nav>\n\n  </devsite-tabs>\n\n          \n          \n        </div>\n      \n    </div>\n  </div>\n\n</div>\n\n\n\n  \n\n  \n</devsite-header>\n        <devsite-book-nav scrollbars >\n          \n            \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n<div class=\"devsite-book-nav-filter\"\n     >\n  <span class=\"filter-list-icon material-icons\" aria-hidden=\"true\"></span>\n  <input type=\"text\"\n         placeholder=\"Filter\"\n         \n         aria-label=\"Type to filter\"\n         role=\"searchbox\">\n  \n  <span class=\"filter-clear-button hidden\"\n        data-title=\"Clear filter\"\n        aria-label=\"Clear filter\"\n        role=\"button\"\n        tabindex=\"0\"></span>\n</div>\n\n<nav class=\"devsite-book-nav devsite-nav nocontent\" data-nosnippet\n     aria-label=\"Side menu\">\n  <div class=\"devsite-mobile-header\">\n    <button type=\"button\"\n            id=\"devsite-close-nav\"\n            class=\"devsite-header-icon-button button-flat material-icons gc-analytics-event\"\n            data-category=\"Site-Wide Custom Events\"\n            data-label=\"Close navigation\"\n            aria-label=\"Close navigation\">\n    </button>\n    <div class=\"devsite-product-name-wrapper\">\n\n  <a href=\"/\" class=\"devsite-site-logo-link gc-analytics-event\"\n   data-category=\"Site-Wide Custom Events\" data-label=\"Site logo\" track-type=\"globalNav\"\n   track-name=\"googleCloudDocumentation\" track-metadata-position=\"nav\"\n   track-metadata-eventDetail=\"nav\">\n  \n  <picture>\n    \n    <source srcset=\"https://www.gstatic.com/devrel-devsite/prod/v303cfab58e2ecfbd382191434137bc118fc92bc795e9241c9d005d07c4d0550a/clouddocs/images/lockup_dark_theme.svg\"\n            media=\"(prefers-color-scheme: dark)\"\n            class=\"devsite-dark-theme\">\n    \n    <img src=\"https://www.gstatic.com/devrel-devsite/prod/v303cfab58e2ecfbd382191434137bc118fc92bc795e9241c9d005d07c4d0550a/clouddocs/images/lockup_full_color.svg\" class=\"devsite-site-logo\" alt=\"Google Cloud Documentation\">\n  </picture>\n  \n</a>\n\n\n</div>\n  </div>\n\n  <div class=\"devsite-book-nav-wrapper\">\n    <div class=\"devsite-mobile-nav-top\">\n      \n        <ul class=\"devsite-nav-list\">\n          \n            <li class=\"devsite-nav-item\">\n              \n  \n  <a href=\"/docs\"\n    \n       class=\"devsite-nav-title gc-analytics-event\n              \n              devsite-nav-active\"\n    \n\n    \n      \n        data-category=\"Site-Wide Custom Events\"\n      \n        data-label=\"Tab: Technology areas\"\n      \n        track-name=\"docs-home\"\n      \n        track-link-column-type=\"single-column\"\n      \n    \n     data-category=\"Site-Wide Custom Events\"\n     data-label=\"Responsive Tab: Technology areas\"\n     track-type=\"globalNav\"\n     track-metadata-eventDetail=\"globalMenu\"\n     track-metadata-position=\"nav\">\n  \n    <span class=\"devsite-nav-text\" tooltip >\n      Technology areas\n   </span>\n    \n  \n  </a>\n  \n\n  \n    <ul class=\"devsite-nav-responsive-tabs devsite-nav-has-menu\n               \">\n      \n<li class=\"devsite-nav-item\">\n\n  \n  <span\n    \n       class=\"devsite-nav-title\"\n       tooltip\n    \n    \n      \n        data-category=\"Site-Wide Custom Events\"\n      \n        data-label=\"Tab: Technology areas\"\n      \n        track-name=\"docs-home\"\n      \n        track-link-column-type=\"single-column\"\n      \n    >\n  \n    <span class=\"devsite-nav-text\" tooltip menu=\"Technology areas\">\n      More\n   </span>\n    \n    <span class=\"devsite-nav-icon material-icons\" data-icon=\"forward\"\n          menu=\"Technology areas\">\n    </span>\n    \n  \n  </span>\n  \n\n</li>\n\n    </ul>\n  \n              \n                <ul class=\"devsite-nav-responsive-tabs\">\n                  \n                    \n                    \n                    \n                    <li class=\"devsite-nav-item\">\n                      \n  \n  <a href=\"/iam/docs\"\n    \n       class=\"devsite-nav-title gc-analytics-event\n              \n              \"\n    \n\n    \n      \n        data-category=\"Site-Wide Custom Events\"\n      \n        data-label=\"Tab: Overview\"\n      \n        track-name=\"overview\"\n      \n    \n     data-category=\"Site-Wide Custom Events\"\n     data-label=\"Responsive Tab: Overview\"\n     track-type=\"globalNav\"\n     track-metadata-eventDetail=\"globalMenu\"\n     track-metadata-position=\"nav\">\n  \n    <span class=\"devsite-nav-text\" tooltip >\n      Overview\n   </span>\n    \n  \n  </a>\n  \n\n  \n                    </li>\n                  \n                    \n                    \n                    \n                    <li class=\"devsite-nav-item\">\n                      \n  \n  <a href=\"/iam/docs/overview\"\n    \n       class=\"devsite-nav-title gc-analytics-event\n              \n              devsite-nav-active\"\n    \n\n    \n      \n        data-category=\"Site-Wide Custom Events\"\n      \n        data-label=\"Tab: Guides\"\n      \n        track-name=\"guides\"\n      \n    \n     data-category=\"Site-Wide Custom Events\"\n     data-label=\"Responsive Tab: Guides\"\n     track-type=\"globalNav\"\n     track-metadata-eventDetail=\"globalMenu\"\n     track-metadata-position=\"nav\">\n  \n    <span class=\"devsite-nav-text\" tooltip menu=\"_book\">\n      Guides\n   </span>\n    \n  \n  </a>\n  \n\n  \n                    </li>\n                  \n                    \n                    \n                    \n                    <li class=\"devsite-nav-item\">\n                      \n  \n  <a href=\"/iam/docs/apis\"\n    \n       class=\"devsite-nav-title gc-analytics-event\n              \n              \"\n    \n\n    \n      \n        data-category=\"Site-Wide Custom Events\"\n      \n        data-label=\"Tab: Reference\"\n      \n        track-name=\"reference\"\n      \n    \n     data-category=\"Site-Wide Custom Events\"\n     data-label=\"Responsive Tab: Reference\"\n     track-type=\"globalNav\"\n     track-metadata-eventDetail=\"globalMenu\"\n     track-metadata-position=\"nav\">\n  \n    <span class=\"devsite-nav-text\" tooltip >\n      Reference\n   </span>\n    \n  \n  </a>\n  \n\n  \n                    </li>\n                  \n                    \n                    \n                    \n                    <li class=\"devsite-nav-item\">\n                      \n  \n  <a href=\"/iam/docs/samples\"\n    \n       class=\"devsite-nav-title gc-analytics-event\n              \n              \"\n    \n\n    \n      \n        data-category=\"Site-Wide Custom Events\"\n      \n        data-label=\"Tab: Samples\"\n      \n        track-name=\"samples\"\n      \n    \n     data-category=\"Site-Wide Custom Events\"\n     data-label=\"Responsive Tab: Samples\"\n     track-type=\"globalNav\"\n     track-metadata-eventDetail=\"globalMenu\"\n     track-metadata-position=\"nav\">\n  \n    <span class=\"devsite-nav-text\" tooltip >\n      Samples\n   </span>\n    \n  \n  </a>\n  \n\n  \n                    </li>\n                  \n                    \n                    \n                    \n                    <li class=\"devsite-nav-item\">\n                      \n  \n  <a href=\"/iam/docs/resources\"\n    \n       class=\"devsite-nav-title gc-analytics-event\n              \n              \"\n    \n\n    \n      \n        data-category=\"Site-Wide Custom Events\"\n      \n        data-label=\"Tab: Resources\"\n      \n        track-name=\"resources\"\n      \n    \n     data-category=\"Site-Wide Custom Events\"\n     data-label=\"Responsive Tab: Resources\"\n     track-type=\"globalNav\"\n     track-metadata-eventDetail=\"globalMenu\"\n     track-metadata-position=\"nav\">\n  \n    <span class=\"devsite-nav-text\" tooltip >\n      Resources\n   </span>\n    \n  \n  </a>\n  \n\n  \n                    </li>\n                  \n                </ul>\n              \n            </li>\n          \n            <li class=\"devsite-nav-item\">\n              \n  \n  <a href=\"/docs/cross-product-overviews\"\n    \n       class=\"devsite-nav-title gc-analytics-event\n              \n              \"\n    \n\n    \n      \n        data-category=\"Site-Wide Custom Events\"\n      \n        data-label=\"Tab: Cross-product tools\"\n      \n        track-name=\"crossproduct\"\n      \n        track-link-column-type=\"single-column\"\n      \n    \n     data-category=\"Site-Wide Custom Events\"\n     data-label=\"Responsive Tab: Cross-product tools\"\n     track-type=\"globalNav\"\n     track-metadata-eventDetail=\"globalMenu\"\n     track-metadata-position=\"nav\">\n  \n    <span class=\"devsite-nav-text\" tooltip >\n      Cross-product tools\n   </span>\n    \n  \n  </a>\n  \n\n  \n    <ul class=\"devsite-nav-responsive-tabs devsite-nav-has-menu\n               \">\n      \n<li class=\"devsite-nav-item\">\n\n  \n  <span\n    \n       class=\"devsite-nav-title\"\n       tooltip\n    \n    \n      \n        data-category=\"Site-Wide Custom Events\"\n      \n        data-label=\"Tab: Cross-product tools\"\n      \n        track-name=\"crossproduct\"\n      \n        track-link-column-type=\"single-column\"\n      \n    >\n  \n    <span class=\"devsite-nav-text\" tooltip menu=\"Cross-product tools\">\n      More\n   </span>\n    \n    <span class=\"devsite-nav-icon material-icons\" data-icon=\"forward\"\n          menu=\"Cross-product tools\">\n    </span>\n    \n  \n  </span>\n  \n\n</li>\n\n    </ul>\n  \n              \n            </li>\n          \n          \n    \n    \n<li class=\"devsite-nav-item\">\n\n  \n  <a href=\"//console.cloud.google.com/\"\n    \n       class=\"devsite-nav-title gc-analytics-event button-with-icon\"\n    \n\n    \n      \n        track-type=\"globalNav\"\n      \n        referrerpolicy=\"no-referrer-when-downgrade\"\n      \n        track-metadata-position=\"nav\"\n      \n        track-metadata-eventDetail=\"nav\"\n      \n        track-name=\"console\"\n      \n    \n     data-category=\"Site-Wide Custom Events\"\n     data-label=\"Responsive Tab: Console\"\n     track-type=\"navMenu\"\n     track-metadata-eventDetail=\"globalMenu\"\n     track-metadata-position=\"nav\">\n  \n    <span class=\"devsite-nav-text\" tooltip >\n      Console\n   </span>\n    \n  \n  </a>\n  \n\n</li>\n\n  \n          \n        </ul>\n      \n    </div>\n    \n      <div class=\"devsite-mobile-nav-bottom\">\n        \n          \n          <ul class=\"devsite-nav-list\" menu=\"_book\">\n            <li class=\"devsite-nav-item\n           devsite-nav-heading\"><div class=\"devsite-nav-title devsite-nav-title-no-path\">\n        <span class=\"devsite-nav-text\" tooltip>Discover</span>\n      </div></li>\n\n  <li class=\"devsite-nav-item\"><a href=\"/iam/docs/overview\"\n        class=\"devsite-nav-title\"\n      ><span class=\"devsite-nav-text\" tooltip>Product overview</span></a></li>\n\n  <li class=\"devsite-nav-item\n           devsite-nav-heading\"><div class=\"devsite-nav-title devsite-nav-title-no-path\">\n        <span class=\"devsite-nav-text\" tooltip>Get started</span>\n      </div></li>\n\n  <li class=\"devsite-nav-item\"><a href=\"/iam/docs/grant-role-console\"\n        class=\"devsite-nav-title\"\n      ><span class=\"devsite-nav-text\" tooltip>Grant roles in the Google Cloud console</span></a></li>\n\n  <li class=\"devsite-nav-item\"><a href=\"/iam/docs/write-policy-client-libraries\"\n        class=\"devsite-nav-title\"\n      ><span class=\"devsite-nav-text\" tooltip>Grant roles using client libraries</span></a></li>\n\n  <li class=\"devsite-nav-item\"><a href=\"/iam/docs/iam-security-architecture\"\n        class=\"devsite-nav-title\"\n      ><span class=\"devsite-nav-text\" tooltip>IAM and your security architecture</span></a></li>\n\n  <li class=\"devsite-nav-item\"><a href=\"/iam/docs/google-identities\"\n        class=\"devsite-nav-title\"\n      ><span class=\"devsite-nav-text\" tooltip>Identity management for Google Cloud</span></a></li>\n\n  <li class=\"devsite-nav-item\n           devsite-nav-heading\"><div class=\"devsite-nav-title devsite-nav-title-no-path\">\n        <span class=\"devsite-nav-text\" tooltip>Configure identities for users</span>\n      </div></li>\n\n  <li class=\"devsite-nav-item\"><a href=\"/iam/docs/user-identities\"\n        class=\"devsite-nav-title\"\n      ><span class=\"devsite-nav-text\" tooltip>Identities for users</span></a></li>\n\n  <li class=\"devsite-nav-item\"><a href=\"/iam/docs/groups-in-cloud-console\"\n        class=\"devsite-nav-title\"\n      ><span class=\"devsite-nav-text\" tooltip>Create and manage Google groups in the Google Cloud console</span></a></li>\n\n  <li class=\"devsite-nav-item\"><a href=\"/iam/docs/groups-best-practices\"\n        class=\"devsite-nav-title\"\n      ><span class=\"devsite-nav-text\" tooltip>Best practices for using Google groups</span></a></li>\n\n  <li class=\"devsite-nav-item\n           devsite-nav-expandable\"><div class=\"devsite-expandable-nav\">\n      <a class=\"devsite-nav-toggle\" aria-hidden=\"true\"></a><div class=\"devsite-nav-title devsite-nav-title-no-path\" tabindex=\"0\" role=\"button\">\n        <span class=\"devsite-nav-text\" tooltip>Federate identities for users</span>\n      </div><ul class=\"devsite-nav-section\"><li class=\"devsite-nav-item\"><a href=\"/iam/docs/workforce-identity-federation\"\n        class=\"devsite-nav-title\"\n      ><span class=\"devsite-nav-text\" tooltip>Workforce identity federation</span></a></li><li class=\"devsite-nav-item\"><a href=\"/iam/docs/federated-identity-architectures\"\n        class=\"devsite-nav-title\"\n      ><span class=\"devsite-nav-text\" tooltip>Architecture patterns for identity federation</span></a></li><li class=\"devsite-nav-item\"><a href=\"/iam/docs/best-practices-workforce-identity-federation\"\n        class=\"devsite-nav-title\"\n      ><span class=\"devsite-nav-text\" tooltip>Best practices for using Workforce Identity Federation</span></a></li><li class=\"devsite-nav-item\"><a href=\"/iam/docs/workforce-identity-federation-scim\"\n        class=\"devsite-nav-title\"\n      ><span class=\"devsite-nav-text\" tooltip>SCIM provisioning for Workforce Identity Federation</span></a></li><li class=\"devsite-nav-item\n           devsite-nav-expandable\"><div class=\"devsite-expandable-nav\">\n      <a class=\"devsite-nav-toggle\" aria-hidden=\"true\"></a><div class=\"devsite-nav-title devsite-nav-title-no-path\" tabindex=\"0\" role=\"button\">\n        <span class=\"devsite-nav-text\" tooltip>Configure Workforce Identity Federation</span>\n      </div><ul class=\"devsite-nav-section\"><li class=\"devsite-nav-item\"><a href=\"/iam/docs/workforce-sign-in-microsoft-entra-id\"\n        class=\"devsite-nav-title\"\n      ><span class=\"devsite-nav-text\" tooltip>Microsoft Entra ID</span></a></li><li class=\"devsite-nav-item\"><a href=\"/iam/docs/workforce-sign-in-microsoft-entra-id-scalable-groups\"\n        class=\"devsite-nav-title\"\n      ><span class=\"devsite-nav-text\" tooltip>Microsoft Entra ID with a large number of groups</span></a></li><li class=\"devsite-nav-item\"><a href=\"/iam/docs/workforce-sign-in-okta\"\n        class=\"devsite-nav-title\"\n      ><span class=\"devsite-nav-text\" tooltip>Okta</span></a></li><li class=\"devsite-nav-item\"><a href=\"/iam/docs/workforce-sign-in-pingfederate\"\n        class=\"devsite-nav-title\"\n      ><span class=\"devsite-nav-text\" tooltip>PingFederate</span></a></li><li class=\"devsite-nav-item\"><a href=\"/iam/docs/workforce-sign-in-pingone\"\n        class=\"devsite-nav-title\"\n      ><span class=\"devsite-nav-text\" tooltip>PingOne AIC</span></a></li><li class=\"devsite-nav-item\"><a href=\"/iam/docs/configuring-workforce-identity-federation\"\n        class=\"devsite-nav-title\"\n      ><span class=\"devsite-nav-text\" tooltip>Other OIDC or SAML 2.0</span></a></li><li class=\"devsite-nav-item\"><a href=\"/iam/docs/workforce-sign-in-power-bi\"\n        class=\"devsite-nav-title\"\n      ><span class=\"devsite-nav-text\" tooltip>Access BigQuery data in Power BI with Microsoft Entra</span></a></li></ul></div></li><li class=\"devsite-nav-item\n           devsite-nav-expandable\"><div class=\"devsite-expandable-nav\">\n      <a class=\"devsite-nav-toggle\" aria-hidden=\"true\"></a><div class=\"devsite-nav-title devsite-nav-title-no-path\" tabindex=\"0\" role=\"button\">\n        <span class=\"devsite-nav-text\" tooltip>Configure SCIM</span>\n      </div><ul class=\"devsite-nav-section\"><li class=\"devsite-nav-item\"><a href=\"/iam/docs/configure-scim-ms-entra\"\n        class=\"devsite-nav-title\"\n      ><span class=\"devsite-nav-text\" tooltip>Microsoft Entra ID</span></a></li><li class=\"devsite-nav-item\"><a href=\"/iam/docs/configure-scim-okta\"\n        class=\"devsite-nav-title\"\n      ><span class=\"devsite-nav-text\" tooltip>Okta</span></a></li><li class=\"devsite-nav-item\"><a href=\"/iam/docs/configure-scim-oidc-saml\"\n        class=\"devsite-nav-title\"\n      ><span class=\"devsite-nav-text\" tooltip>OIDC or SAML 2.0</span></a></li></ul></div></li><li class=\"devsite-nav-item\"><a href=\"/iam/docs/workforce-obtaining-short-lived-credentials\"\n        class=\"devsite-nav-title\"\n      ><span class=\"devsite-nav-text\" tooltip>Obtain short-lived credentials for Workforce Identity Federation</span></a></li><li class=\"devsite-nav-item\"><a href=\"/iam/docs/manage-workforce-identity-pools-providers\"\n        class=\"devsite-nav-title\"\n      ><span class=\"devsite-nav-text\" tooltip>Manage workforce identity pools and providers</span></a></li><li class=\"devsite-nav-item\"><a href=\"/iam/docs/workforce-delete-user-data\"\n        class=\"devsite-nav-title\"\n      ><span class=\"devsite-nav-text\" tooltip>Delete Workforce Identity Federation users and their data</span></a></li><li class=\"devsite-nav-item\"><a href=\"/iam/docs/workforce-console-sso\"\n        class=\"devsite-nav-title\"\n      ><span class=\"devsite-nav-text\" tooltip>Set up user access to console (federated)</span></a></li><li class=\"devsite-nav-item\"><a href=\"/iam/docs/workforce-log-in-gcloud\"\n        class=\"devsite-nav-title\"\n      ><span class=\"devsite-nav-text\" tooltip>Sign in to the gcloud CLI with your federated identity</span></a></li><li class=\"devsite-nav-item\n           devsite-nav-expandable\"><div class=\"devsite-expandable-nav\">\n      <a class=\"devsite-nav-toggle\" aria-hidden=\"true\"></a><div class=\"devsite-nav-title devsite-nav-title-no-path\" tabindex=\"0\" role=\"button\">\n        <span class=\"devsite-nav-text\" tooltip>Integrate OAuth applications</span>\n      </div><ul class=\"devsite-nav-section\"><li class=\"devsite-nav-item\"><a href=\"/iam/docs/workforce-oauth-app\"\n        class=\"devsite-nav-title\"\n      ><span class=\"devsite-nav-text\" tooltip>OAuth application integration overview</span></a></li><li class=\"devsite-nav-item\"><a href=\"/iam/docs/workforce-manage-oauth-app\"\n        class=\"devsite-nav-title\"\n      ><span class=\"devsite-nav-text\" tooltip>Manage OAuth applications</span></a></li></ul></div></li></ul></div></li>\n\n  <li class=\"devsite-nav-item\n           devsite-nav-heading\"><div class=\"devsite-nav-title devsite-nav-title-no-path\">\n        <span class=\"devsite-nav-text\" tooltip>Configure identities for workloads</span>\n      </div></li>\n\n  <li class=\"devsite-nav-item\"><a href=\"/iam/docs/workload-identities\"\n        class=\"devsite-nav-title\"\n      ><span class=\"devsite-nav-text\" tooltip>Identities for workloads</span></a></li>\n\n  <li class=\"devsite-nav-item\n           devsite-nav-expandable\"><div class=\"devsite-expandable-nav\">\n      <a class=\"devsite-nav-toggle\" aria-hidden=\"true\"></a><div class=\"devsite-nav-title devsite-nav-title-no-path\" tabindex=\"0\" role=\"button\">\n        <span class=\"devsite-nav-text\" tooltip>Create and manage service accounts</span>\n      </div><ul class=\"devsite-nav-section\"><li class=\"devsite-nav-item\n           devsite-nav-expandable\"><div class=\"devsite-expandable-nav\">\n      <a class=\"devsite-nav-toggle\" aria-hidden=\"true\"></a><div class=\"devsite-nav-title devsite-nav-title-no-path\" tabindex=\"0\" role=\"button\">\n        <span class=\"devsite-nav-text\" tooltip>About service accounts</span>\n      </div><ul class=\"devsite-nav-section\"><li class=\"devsite-nav-item\"><a href=\"/iam/docs/service-account-overview\"\n        class=\"devsite-nav-title\"\n      ><span class=\"devsite-nav-text\" tooltip>Service accounts</span></a></li><li class=\"devsite-nav-item\"><a href=\"/iam/docs/service-account-creds\"\n        class=\"devsite-nav-title\"\n      ><span class=\"devsite-nav-text\" tooltip>Service account credentials</span></a></li><li class=\"devsite-nav-item\"><a href=\"/iam/docs/service-account-impersonation\"\n        class=\"devsite-nav-title\"\n      ><span class=\"devsite-nav-text\" tooltip>Service account impersonation</span></a></li><li class=\"devsite-nav-item\"><a href=\"/iam/docs/service-account-types\"\n        class=\"devsite-nav-title\"\n      ><span class=\"devsite-nav-text\" tooltip>Service account types</span></a></li><li class=\"devsite-nav-item\"><a href=\"/iam/docs/service-account-permissions\"\n        class=\"devsite-nav-title\"\n      ><span class=\"devsite-nav-text\" tooltip>Roles for service account authentication</span></a></li></ul></div></li><li class=\"devsite-nav-item\"><a href=\"/iam/docs/create-service-agents\"\n        class=\"devsite-nav-title\"\n      ><span class=\"devsite-nav-text\" tooltip>Create and grant roles to service agents</span></a></li><li class=\"devsite-nav-item\"><a href=\"/iam/docs/service-accounts-create\"\n        class=\"devsite-nav-title\"\n      ><span class=\"devsite-nav-text\" tooltip>Create service accounts</span></a></li><li class=\"devsite-nav-item\n           devsite-nav-expandable\"><div class=\"devsite-expandable-nav\">\n      <a class=\"devsite-nav-toggle\" aria-hidden=\"true\"></a><div class=\"devsite-nav-title devsite-nav-title-no-path\" tabindex=\"0\" role=\"button\">\n        <span class=\"devsite-nav-text\" tooltip>Manage service accounts</span>\n      </div><ul class=\"devsite-nav-section\"><li class=\"devsite-nav-item\"><a href=\"/iam/docs/service-accounts-list-edit\"\n        class=\"devsite-nav-title\"\n      ><span class=\"devsite-nav-text\" tooltip>List and edit service accounts</span></a></li><li class=\"devsite-nav-item\"><a href=\"/iam/docs/service-accounts-disable-enable\"\n        class=\"devsite-nav-title\"\n      ><span class=\"devsite-nav-text\" tooltip>Disable and enable service accounts</span></a></li><li class=\"devsite-nav-item\"><a href=\"/iam/docs/service-accounts-delete-undelete\"\n        class=\"devsite-nav-title\"\n      ><span class=\"devsite-nav-text\" tooltip>Delete and undelete service accounts</span></a></li><li class=\"devsite-nav-item\"><a href=\"/iam/docs/service-accounts-tags\"\n        class=\"devsite-nav-title\"\n      ><span class=\"devsite-nav-text\" tooltip>Manage tags for service accounts</span></a></li></ul></div></li><li class=\"devsite-nav-item\"><a href=\"/iam/docs/attach-service-accounts\"\n        class=\"devsite-nav-title\"\n      ><span class=\"devsite-nav-text\" tooltip>Attach service accounts to resources</span></a></li><li class=\"devsite-nav-item\"><a href=\"/iam/docs/service-accounts-custom-constraints\"\n        class=\"devsite-nav-title\"\n      ><span class=\"devsite-nav-text\" tooltip>Use custom organization policies for service accounts and keys</span></a></li><li class=\"devsite-nav-item\n           devsite-nav-expandable\"><div class=\"devsite-expandable-nav\">\n      <a class=\"devsite-nav-toggle\" aria-hidden=\"true\"></a><div class=\"devsite-nav-title devsite-nav-title-no-path\" tabindex=\"0\" role=\"button\">\n        <span class=\"devsite-nav-text\" tooltip>Service account best practices</span>\n      </div><ul class=\"devsite-nav-section\"><li class=\"devsite-nav-item\"><a href=\"/iam/docs/best-practices-service-accounts\"\n        class=\"devsite-nav-title\"\n      ><span class=\"devsite-nav-text\" tooltip>Best practices for using service accounts</span></a></li><li class=\"devsite-nav-item\"><a href=\"/iam/docs/best-practices-for-using-service-accounts-in-deployment-pipelines\"\n        class=\"devsite-nav-title\"\n      ><span class=\"devsite-nav-text\" tooltip>Best practices for using service accounts in deployment pipelines</span></a></li></ul></div></li></ul></div></li>\n\n  <li class=\"devsite-nav-item\n           devsite-nav-expandable\"><div class=\"devsite-expandable-nav\">\n      <a class=\"devsite-nav-toggle\" aria-hidden=\"true\"></a><div class=\"devsite-nav-title devsite-nav-title-no-path\" tabindex=\"0\" role=\"button\">\n        <span class=\"devsite-nav-text\" tooltip>Use managed workload identities</span>\n      </div><ul class=\"devsite-nav-section\"><li class=\"devsite-nav-item\"><a href=\"/iam/docs/managed-workload-identity\"\n        class=\"devsite-nav-title\"\n      ><span class=\"devsite-nav-text\" tooltip>About managed workload identities</span></a></li><li class=\"devsite-nav-item\n           devsite-nav-expandable\"><div class=\"devsite-expandable-nav\">\n      <a class=\"devsite-nav-toggle\" aria-hidden=\"true\"></a><div class=\"devsite-nav-title devsite-nav-title-no-path\" tabindex=\"0\" role=\"button\">\n        <span class=\"devsite-nav-text\" tooltip>Compute Engine</span>\n      </div><ul class=\"devsite-nav-section\"><li class=\"devsite-nav-item\n           devsite-nav-preview\"><a href=\"/iam/docs/create-managed-workload-identities\"\n        class=\"devsite-nav-title\"\n      ><span class=\"devsite-nav-text\" tooltip>Create managed workload identities for GCE</span><span class=\"devsite-nav-icon material-icons\"\n        data-icon=\"preview\"\n        data-title=\"Preview\"\n        aria-hidden=\"true\"></span></a></li></ul></div></li><li class=\"devsite-nav-item\n           devsite-nav-expandable\"><div class=\"devsite-expandable-nav\">\n      <a class=\"devsite-nav-toggle\" aria-hidden=\"true\"></a><div class=\"devsite-nav-title devsite-nav-title-no-path\" tabindex=\"0\" role=\"button\">\n        <span class=\"devsite-nav-text\" tooltip>GKE</span>\n      </div><ul class=\"devsite-nav-section\"><li class=\"devsite-nav-item\"><a href=\"/iam/docs/create-managed-workload-identities-gke\"\n        class=\"devsite-nav-title\"\n      ><span class=\"devsite-nav-text\" tooltip>Create managed workload identities for GKE</span></a></li><li class=\"devsite-nav-item\"><a href=\"/iam/docs/troubleshoot-managed-workload-identities-gke\"\n        class=\"devsite-nav-title\"\n      ><span class=\"devsite-nav-text\" tooltip>Troubleshoot managed workload identities for GKE</span></a></li></ul></div></li><li class=\"devsite-nav-item\n           devsite-nav-expandable\"><div class=\"devsite-expandable-nav\">\n      <a class=\"devsite-nav-toggle\" aria-hidden=\"true\"></a><div class=\"devsite-nav-title devsite-nav-title-no-path\" tabindex=\"0\" role=\"button\">\n        <span class=\"devsite-nav-text\" tooltip>Cloud load balancing</span>\n      </div><ul class=\"devsite-nav-section\"><li class=\"devsite-nav-item\n           devsite-nav-preview\"><a href=\"/iam/docs/create-managed-workload-identities-load-balancing\"\n        class=\"devsite-nav-title\"\n      ><span class=\"devsite-nav-text\" tooltip>Create managed workload identities for load balancers</span><span class=\"devsite-nav-icon material-icons\"\n        data-icon=\"preview\"\n        data-title=\"Preview\"\n        aria-hidden=\"true\"></span></a></li></ul></div></li><li class=\"devsite-nav-item\"><a href=\"/iam/docs/managed-workload-identity-custom-constraints\"\n        class=\"devsite-nav-title\"\n      ><span class=\"devsite-nav-text\" tooltip>Use custom organization policies</span></a></li></ul></div></li>\n\n  <li class=\"devsite-nav-item\n           devsite-nav-expandable\"><div class=\"devsite-expandable-nav\">\n      <a class=\"devsite-nav-toggle\" aria-hidden=\"true\"></a><div class=\"devsite-nav-title devsite-nav-title-no-path\" tabindex=\"0\" role=\"button\">\n        <span class=\"devsite-nav-text\" tooltip>Federate identities for external workloads</span>\n      </div><ul class=\"devsite-nav-section\"><li class=\"devsite-nav-item\"><a href=\"/iam/docs/workload-identity-federation\"\n        class=\"devsite-nav-title\"\n      ><span class=\"devsite-nav-text\" tooltip>Workload Identity Federation</span></a></li><li class=\"devsite-nav-item\n           devsite-nav-expandable\"><div class=\"devsite-expandable-nav\">\n      <a class=\"devsite-nav-toggle\" aria-hidden=\"true\"></a><div class=\"devsite-nav-title devsite-nav-title-no-path\" tabindex=\"0\" role=\"button\">\n        <span class=\"devsite-nav-text\" tooltip>Configure Workload Identity Federation</span>\n      </div><ul class=\"devsite-nav-section\"><li class=\"devsite-nav-item\"><a href=\"/iam/docs/workload-identity-federation-with-other-clouds\"\n        class=\"devsite-nav-title\"\n      ><span class=\"devsite-nav-text\" tooltip>AWS or Azure</span></a></li><li class=\"devsite-nav-item\"><a href=\"/iam/docs/workload-identity-federation-with-active-directory\"\n        class=\"devsite-nav-title\"\n      ><span class=\"devsite-nav-text\" tooltip>Active Directory</span></a></li><li class=\"devsite-nav-item\"><a href=\"/iam/docs/workload-identity-federation-with-deployment-pipelines\"\n        class=\"devsite-nav-title\"\n      ><span class=\"devsite-nav-text\" tooltip>Deployment pipelines</span></a></li><li class=\"devsite-nav-item\"><a href=\"/iam/docs/workload-identity-federation-with-kubernetes\"\n        class=\"devsite-nav-title\"\n      ><span class=\"devsite-nav-text\" tooltip>Kubernetes</span></a></li><li class=\"devsite-nav-item\"><a href=\"/iam/docs/workload-identity-federation-with-x509-certificates\"\n        class=\"devsite-nav-title\"\n      ><span class=\"devsite-nav-text\" tooltip>Workloads with X.509 certificates</span></a></li><li class=\"devsite-nav-item\"><a href=\"/iam/docs/workload-identity-federation-with-other-providers\"\n        class=\"devsite-nav-title\"\n      ><span class=\"devsite-nav-text\" tooltip>Other identity providers</span></a></li></ul></div></li><li class=\"devsite-nav-item\"><a href=\"/iam/docs/authenticate-with-auth-libraries\"\n        class=\"devsite-nav-title\"\n      ><span class=\"devsite-nav-text\" tooltip>Authenticate workloads using Google auth libraries</span></a></li><li class=\"devsite-nav-item\"><a href=\"/iam/docs/manage-workload-identity-pools-providers\"\n        class=\"devsite-nav-title\"\n      ><span class=\"devsite-nav-text\" tooltip>Manage workload identity pools and providers</span></a></li><li class=\"devsite-nav-item\"><a href=\"/iam/docs/best-practices-for-using-workload-identity-federation\"\n        class=\"devsite-nav-title\"\n      ><span class=\"devsite-nav-text\" tooltip>Best practices for using Workload Identity Federation</span></a></li><li class=\"devsite-nav-item\"><a href=\"/iam/docs/use-workload-identity-federation-to-let-customers-access-their-cloud-resources\"\n        class=\"devsite-nav-title\"\n      ><span class=\"devsite-nav-text\" tooltip>Let customers access their Google Cloud resources from your product or service</span></a></li><li class=\"devsite-nav-item\"><a href=\"/iam/docs/workload-download-cred-and-grant-access\"\n        class=\"devsite-nav-title\"\n      ><span class=\"devsite-nav-text\" tooltip>Download credential configuration and grant access</span></a></li><li class=\"devsite-nav-item\"><a href=\"/iam/docs/tutorial-cloud-run-workload-id-federation\"\n        class=\"devsite-nav-title\"\n      ><span class=\"devsite-nav-text\" tooltip>Integrate Cloud Run and Workload Identity Federation</span></a></li><li class=\"devsite-nav-item\"><a href=\"/iam/docs/workload-identity-federation-custom-constraints\"\n        class=\"devsite-nav-title\"\n      ><span class=\"devsite-nav-text\" tooltip>Use custom organization policies</span></a></li></ul></div></li>\n\n  <li class=\"devsite-nav-item\n           devsite-nav-expandable\"><div class=\"devsite-expandable-nav\">\n      <a class=\"devsite-nav-toggle\" aria-hidden=\"true\"></a><div class=\"devsite-nav-title devsite-nav-title-no-path\" tabindex=\"0\" role=\"button\">\n        <span class=\"devsite-nav-text\" tooltip>Create and manage service account keys</span>\n      </div><ul class=\"devsite-nav-section\"><li class=\"devsite-nav-item\"><a href=\"/iam/docs/migrate-from-service-account-keys\"\n        class=\"devsite-nav-title\"\n      ><span class=\"devsite-nav-text\" tooltip>Migrate from service account keys</span></a></li><li class=\"devsite-nav-item\"><a href=\"/iam/docs/key-rotation\"\n        class=\"devsite-nav-title\"\n      ><span class=\"devsite-nav-text\" tooltip>Service account key rotation</span></a></li><li class=\"devsite-nav-item\"><a href=\"/iam/docs/keys-create-delete\"\n        class=\"devsite-nav-title\"\n      ><span class=\"devsite-nav-text\" tooltip>Create and delete service account keys</span></a></li><li class=\"devsite-nav-item\"><a href=\"/iam/docs/keys-list-get\"\n        class=\"devsite-nav-title\"\n      ><span class=\"devsite-nav-text\" tooltip>List and get service account keys</span></a></li><li class=\"devsite-nav-item\"><a href=\"/iam/docs/keys-upload\"\n        class=\"devsite-nav-title\"\n      ><span class=\"devsite-nav-text\" tooltip>Upload a public key</span></a></li><li class=\"devsite-nav-item\"><a href=\"/iam/docs/keys-disable-enable\"\n        class=\"devsite-nav-title\"\n      ><span class=\"devsite-nav-text\" tooltip>Disable and enable service account keys</span></a></li><li class=\"devsite-nav-item\"><a href=\"/iam/docs/best-practices-for-managing-service-account-keys\"\n        class=\"devsite-nav-title\"\n      ><span class=\"devsite-nav-text\" tooltip>Best practices for managing service account keys</span></a></li></ul></div></li>\n\n  <li class=\"devsite-nav-item\"><a href=\"/iam/docs/built-in-resource-identities\"\n        class=\"devsite-nav-title\"\n      ><span class=\"devsite-nav-text\" tooltip>Built-in identities for resources</span></a></li>\n\n  <li class=\"devsite-nav-item\n           devsite-nav-heading\"><div class=\"devsite-nav-title devsite-nav-title-no-path\">\n        <span class=\"devsite-nav-text\" tooltip>Configure identities for agents</span>\n      </div></li>\n\n  <li class=\"devsite-nav-item\"><a href=\"/iam/docs/agent-identity-overview\"\n        class=\"devsite-nav-title\"\n      ><span class=\"devsite-nav-text\" tooltip>Agent Identity overview</span></a></li>\n\n  <li class=\"devsite-nav-item\n           devsite-nav-preview\"><a href=\"/iam/docs/create-and-deploy-agent\"\n        class=\"devsite-nav-title\"\n      ><span class=\"devsite-nav-text\" tooltip>Create and deploy an agent with Agent CLI and Agent Identity</span><span class=\"devsite-nav-icon material-icons\"\n        data-icon=\"preview\"\n        data-title=\"Preview\"\n        aria-hidden=\"true\"></span></a></li>\n\n  <li class=\"devsite-nav-item\"><a href=\"/iam/docs/auth-agent-own-identity\"\n        class=\"devsite-nav-title\"\n      ><span class=\"devsite-nav-text\" tooltip>Authenticate using an agent&#39;s own identity</span></a></li>\n\n  <li class=\"devsite-nav-item\n           devsite-nav-expandable\n           devsite-nav-preview\"><div class=\"devsite-expandable-nav\">\n      <a class=\"devsite-nav-toggle\" aria-hidden=\"true\"></a><div class=\"devsite-nav-title devsite-nav-title-no-path\" tabindex=\"0\" role=\"button\">\n        <span class=\"devsite-nav-text\" tooltip>Agent Identity auth manager</span><span class=\"devsite-nav-icon material-icons\"\n        data-icon=\"preview\"\n        data-title=\"Preview\"\n        aria-hidden=\"true\"></span>\n      </div><ul class=\"devsite-nav-section\"><li class=\"devsite-nav-item\"><a href=\"/iam/docs/auth-manager-overview\"\n        class=\"devsite-nav-title\"\n      ><span class=\"devsite-nav-text\" tooltip>Agent Identity auth manager overview</span></a></li><li class=\"devsite-nav-item\"><a href=\"/iam/docs/auth-with-3lo-v2\"\n        class=\"devsite-nav-title\"\n      ><span class=\"devsite-nav-text\" tooltip>Authenticate using 3-legged OAuth</span></a></li><li class=\"devsite-nav-item\"><a href=\"/iam/docs/auth-with-2lo-v2\"\n        class=\"devsite-nav-title\"\n      ><span class=\"devsite-nav-text\" tooltip>Authenticate using 2-legged OAuth</span></a></li><li class=\"devsite-nav-item\"><a href=\"/iam/docs/auth-with-api-key-v2\"\n        class=\"devsite-nav-title\"\n      ><span class=\"devsite-nav-text\" tooltip>Authenticate using an API key</span></a></li><li class=\"devsite-nav-item\"><a href=\"/iam/docs/manage-auth-providers-v2\"\n        class=\"devsite-nav-title\"\n      ><span class=\"devsite-nav-text\" tooltip>Manage auth providers</span></a></li><li class=\"devsite-nav-item\"><a href=\"/iam/docs/migrate-to-agent-identity-api\"\n        class=\"devsite-nav-title\"\n      ><span class=\"devsite-nav-text\" tooltip>Migrate to the Agent Identity API</span></a></li></ul></div></li>\n\n  <li class=\"devsite-nav-item\n           devsite-nav-heading\"><div class=\"devsite-nav-title devsite-nav-title-no-path\">\n        <span class=\"devsite-nav-text\" tooltip>Control access to resources</span>\n      </div></li>\n\n  <li class=\"devsite-nav-item\n           devsite-nav-expandable\"><div class=\"devsite-expandable-nav\">\n      <a class=\"devsite-nav-toggle\" aria-hidden=\"true\"></a><div class=\"devsite-nav-title devsite-nav-title-no-path\" tabindex=\"0\" role=\"button\">\n        <span class=\"devsite-nav-text\" tooltip>About IAM access controls</span>\n      </div><ul class=\"devsite-nav-section\"><li class=\"devsite-nav-item\"><a href=\"/iam/docs/roles-overview\"\n        class=\"devsite-nav-title\"\n      ><span class=\"devsite-nav-text\" tooltip>Roles and permissions</span></a></li><li class=\"devsite-nav-item\"><a href=\"/iam/docs/principals-overview\"\n        class=\"devsite-nav-title\"\n      ><span class=\"devsite-nav-text\" tooltip>Principals</span></a></li><li class=\"devsite-nav-item\"><a href=\"/iam/docs/policy-types\"\n        class=\"devsite-nav-title\"\n      ><span class=\"devsite-nav-text\" tooltip>Policy types</span></a></li><li class=\"devsite-nav-item\"><a href=\"/iam/docs/allow-policies\"\n        class=\"devsite-nav-title\"\n      ><span class=\"devsite-nav-text\" tooltip>Allow policies</span></a></li><li class=\"devsite-nav-item\"><a href=\"/iam/docs/resource-hierarchy-access-control\"\n        class=\"devsite-nav-title\"\n      ><span class=\"devsite-nav-text\" tooltip>Allow policy inheritance</span></a></li><li class=\"devsite-nav-item\"><a href=\"/iam/docs/deny-overview\"\n        class=\"devsite-nav-title\"\n      ><span class=\"devsite-nav-text\" tooltip>Deny policies</span></a></li><li class=\"devsite-nav-item\"><a href=\"/iam/docs/principal-access-boundary-policies\"\n        class=\"devsite-nav-title\"\n      ><span class=\"devsite-nav-text\" tooltip>Principal access boundary policies</span></a></li><li class=\"devsite-nav-item\"><a href=\"/iam/docs/access-change-propagation\"\n        class=\"devsite-nav-title\"\n      ><span class=\"devsite-nav-text\" tooltip>Access change propagation</span></a></li><li class=\"devsite-nav-item\"><a href=\"/iam/docs/conditions-overview\"\n        class=\"devsite-nav-title\"\n      ><span class=\"devsite-nav-text\" tooltip>IAM Conditions</span></a></li></ul></div></li>\n\n  <li class=\"devsite-nav-item\n           devsite-nav-expandable\"><div class=\"devsite-expandable-nav\">\n      <a class=\"devsite-nav-toggle\" aria-hidden=\"true\"></a><div class=\"devsite-nav-title devsite-nav-title-no-path\" tabindex=\"0\" role=\"button\">\n        <span class=\"devsite-nav-text\" tooltip>Choose roles to grant</span>\n      </div><ul class=\"devsite-nav-section\"><li class=\"devsite-nav-item\"><a href=\"/iam/docs/choose-role-type\"\n        class=\"devsite-nav-title\"\n      ><span class=\"devsite-nav-text\" tooltip>Choose which type of role to use</span></a></li><li class=\"devsite-nav-item\"><a href=\"/iam/docs/choose-predefined-roles\"\n        class=\"devsite-nav-title\"\n      ><span class=\"devsite-nav-text\" tooltip>Find the right predefined roles</span></a></li><li class=\"devsite-nav-item\"><a href=\"/iam/docs/role-picker-gemini\"\n        class=\"devsite-nav-title\"\n      ><span class=\"devsite-nav-text\" tooltip>Get predefined role suggestions with Gemini assistance</span></a></li><li class=\"devsite-nav-item\"><a href=\"/iam/docs/viewing-grantable-roles\"\n        class=\"devsite-nav-title\"\n      ><span class=\"devsite-nav-text\" tooltip>View grantable roles</span></a></li><li class=\"devsite-nav-item\n           devsite-nav-expandable\"><div class=\"devsite-expandable-nav\">\n      <a class=\"devsite-nav-toggle\" aria-hidden=\"true\"></a><div class=\"devsite-nav-title devsite-nav-title-no-path\" tabindex=\"0\" role=\"button\">\n        <span class=\"devsite-nav-text\" tooltip>Roles for specific job functions</span>\n      </div><ul class=\"devsite-nav-section\"><li class=\"devsite-nav-item\"><a href=\"/iam/docs/job-functions/roles-for-job-functions\"\n        class=\"devsite-nav-title\"\n      ><span class=\"devsite-nav-text\" tooltip>Predefined roles for job functions</span></a></li><li class=\"devsite-nav-item\"><a href=\"/iam/docs/job-functions/billing\"\n        class=\"devsite-nav-title\"\n      ><span class=\"devsite-nav-text\" tooltip>Billing-related job functions</span></a></li><li class=\"devsite-nav-item\"><a href=\"/iam/docs/job-functions/networking\"\n        class=\"devsite-nav-title\"\n      ><span class=\"devsite-nav-text\" tooltip>Networking-related job functions</span></a></li><li class=\"devsite-nav-item\"><a href=\"/iam/docs/job-functions/auditing\"\n        class=\"devsite-nav-title\"\n      ><span class=\"devsite-nav-text\" tooltip>Auditing-related job functions</span></a></li></ul></div></li></ul></div></li>\n\n  <li class=\"devsite-nav-item\n           devsite-nav-expandable\"><div class=\"devsite-expandable-nav\">\n      <a class=\"devsite-nav-toggle\" aria-hidden=\"true\"></a><div class=\"devsite-nav-title devsite-nav-title-no-path\" tabindex=\"0\" role=\"button\">\n        <span class=\"devsite-nav-text\" tooltip>Create and manage custom roles</span>\n      </div><ul class=\"devsite-nav-section\"><li class=\"devsite-nav-item\"><a href=\"/iam/docs/creating-custom-roles\"\n        class=\"devsite-nav-title\"\n      ><span class=\"devsite-nav-text\" tooltip>Create and manage custom roles</span></a></li><li class=\"devsite-nav-item\"><a href=\"/iam/docs/custom-roles-tags\"\n        class=\"devsite-nav-title\"\n      ><span class=\"devsite-nav-text\" tooltip>Manage tags for custom roles</span></a></li></ul></div></li>\n\n  <li class=\"devsite-nav-item\n           devsite-nav-expandable\"><div class=\"devsite-expandable-nav\">\n      <a class=\"devsite-nav-toggle\" aria-hidden=\"true\"></a><div class=\"devsite-nav-title devsite-nav-title-no-path\" tabindex=\"0\" role=\"button\">\n        <span class=\"devsite-nav-text\" tooltip>Grant access</span>\n      </div><ul class=\"devsite-nav-section\"><li class=\"devsite-nav-item\"><a href=\"/iam/docs/granting-changing-revoking-access\"\n        class=\"devsite-nav-title\"\n      ><span class=\"devsite-nav-text\" tooltip>Manage access to projects, folders, and organizations</span></a></li><li class=\"devsite-nav-item\"><a href=\"/iam/docs/manage-access-service-accounts\"\n        class=\"devsite-nav-title\"\n      ><span class=\"devsite-nav-text\" tooltip>Manage access to service accounts</span></a></li><li class=\"devsite-nav-item\"><a href=\"/iam/docs/manage-access-other-resources\"\n        class=\"devsite-nav-title\"\n      ><span class=\"devsite-nav-text\" tooltip>Manage access to other resources</span></a></li><li class=\"devsite-nav-item\"><a href=\"/iam/docs/test-policy-changes\"\n        class=\"devsite-nav-title\"\n      ><span class=\"devsite-nav-text\" tooltip>Test allow policy changes</span></a></li></ul></div></li>\n\n  <li class=\"devsite-nav-item\n           devsite-nav-expandable\"><div class=\"devsite-expandable-nav\">\n      <a class=\"devsite-nav-toggle\" aria-hidden=\"true\"></a><div class=\"devsite-nav-title devsite-nav-title-no-path\" tabindex=\"0\" role=\"button\">\n        <span class=\"devsite-nav-text\" tooltip>Grant access conditionally</span>\n      </div><ul class=\"devsite-nav-section\"><li class=\"devsite-nav-item\"><a href=\"/iam/docs/managing-conditional-role-bindings\"\n        class=\"devsite-nav-title\"\n      ><span class=\"devsite-nav-text\" tooltip>Manage conditional role bindings</span></a></li><li class=\"devsite-nav-item\"><a href=\"/iam/docs/configuring-temporary-access\"\n        class=\"devsite-nav-title\"\n      ><span class=\"devsite-nav-text\" tooltip>Configure temporary access</span></a></li><li class=\"devsite-nav-item\"><a href=\"/iam/docs/configuring-resource-based-access\"\n        class=\"devsite-nav-title\"\n      ><span class=\"devsite-nav-text\" tooltip>Configure resource-based access</span></a></li><li class=\"devsite-nav-item\"><a href=\"/iam/docs/tags-access-control\"\n        class=\"devsite-nav-title\"\n      ><span class=\"devsite-nav-text\" tooltip>Tags and conditional access</span></a></li><li class=\"devsite-nav-item\"><a href=\"/iam/docs/setting-limits-on-granting-roles\"\n        class=\"devsite-nav-title\"\n      ><span class=\"devsite-nav-text\" tooltip>Set limits on granting roles</span></a></li><li class=\"devsite-nav-item\n           devsite-nav-alpha\"><a href=\"/iam/docs/linting-policies\"\n        class=\"devsite-nav-title\"\n      ><span class=\"devsite-nav-text\" tooltip>Lint conditions in allow policies</span><span class=\"devsite-nav-icon material-icons\"\n        data-icon=\"alpha\"\n        data-title=\"Alpha\"\n        aria-hidden=\"true\"></span></a></li></ul></div></li>\n\n  <li class=\"devsite-nav-item\"><a href=\"/iam/docs/deny-access\"\n        class=\"devsite-nav-title\"\n      ><span class=\"devsite-nav-text\" tooltip>Deny access</span></a></li>\n\n  <li class=\"devsite-nav-item\n           devsite-nav-expandable\"><div class=\"devsite-expandable-nav\">\n      <a class=\"devsite-nav-toggle\" aria-hidden=\"true\"></a><div class=\"devsite-nav-title devsite-nav-title-no-path\" tabindex=\"0\" role=\"button\">\n        <span class=\"devsite-nav-text\" tooltip>Restrict the resources that a principal can access</span>\n      </div><ul class=\"devsite-nav-section\"><li class=\"devsite-nav-item\"><a href=\"/iam/docs/principal-access-boundary-policies-create\"\n        class=\"devsite-nav-title\"\n      ><span class=\"devsite-nav-text\" tooltip>Create and apply principal access boundary policies</span></a></li><li class=\"devsite-nav-item\"><a href=\"/iam/docs/principal-access-boundary-policies-view\"\n        class=\"devsite-nav-title\"\n      ><span class=\"devsite-nav-text\" tooltip>View principal access boundary policies</span></a></li><li class=\"devsite-nav-item\"><a href=\"/iam/docs/principal-access-boundary-policies-edit\"\n        class=\"devsite-nav-title\"\n      ><span class=\"devsite-nav-text\" tooltip>Edit principal access boundary policies</span></a></li><li class=\"devsite-nav-item\"><a href=\"/iam/docs/principal-access-boundary-policies-remove\"\n        class=\"devsite-nav-title\"\n      ><span class=\"devsite-nav-text\" tooltip>Remove principal access boundary policies</span></a></li></ul></div></li>\n\n  <li class=\"devsite-nav-item\n           devsite-nav-expandable\"><div class=\"devsite-expandable-nav\">\n      <a class=\"devsite-nav-toggle\" aria-hidden=\"true\"></a><div class=\"devsite-nav-title devsite-nav-title-no-path\" tabindex=\"0\" role=\"button\">\n        <span class=\"devsite-nav-text\" tooltip>Temporary elevated access</span>\n      </div><ul class=\"devsite-nav-section\"><li class=\"devsite-nav-item\"><a href=\"/iam/docs/temporary-elevated-access\"\n        class=\"devsite-nav-title\"\n      ><span class=\"devsite-nav-text\" tooltip>Temporary elevated access overview</span></a></li><li class=\"devsite-nav-item\n           devsite-nav-expandable\"><div class=\"devsite-expandable-nav\">\n      <a class=\"devsite-nav-toggle\" aria-hidden=\"true\"></a><div class=\"devsite-nav-title devsite-nav-title-no-path\" tabindex=\"0\" role=\"button\">\n        <span class=\"devsite-nav-text\" tooltip>Control temporary elevated access with PAM</span>\n      </div><ul class=\"devsite-nav-section\"><li class=\"devsite-nav-item\"><a href=\"/iam/docs/pam-overview\"\n        class=\"devsite-nav-title\"\n      ><span class=\"devsite-nav-text\" tooltip>PAM overview</span></a></li><li class=\"devsite-nav-item\"><a href=\"/iam/docs/pam-permissions-and-setup\"\n        class=\"devsite-nav-title\"\n      ><span class=\"devsite-nav-text\" tooltip>Permissions and setup</span></a></li><li class=\"devsite-nav-item\"><a href=\"/iam/docs/pam-create-entitlements\"\n        class=\"devsite-nav-title\"\n      ><span class=\"devsite-nav-text\" tooltip>Create entitlements</span></a></li><li class=\"devsite-nav-item\"><a href=\"/iam/docs/pam-view-update-delete-entitlements\"\n        class=\"devsite-nav-title\"\n      ><span class=\"devsite-nav-text\" tooltip>View, update, and delete entitlements</span></a></li><li class=\"devsite-nav-item\n           devsite-nav-preview\"><a href=\"/iam/docs/pam-configure-settings\"\n        class=\"devsite-nav-title\"\n      ><span class=\"devsite-nav-text\" tooltip>Configure PAM settings</span><span class=\"devsite-nav-icon material-icons\"\n        data-icon=\"preview\"\n        data-title=\"Preview\"\n        aria-hidden=\"true\"></span></a></li><li class=\"devsite-nav-item\n           devsite-nav-preview\"><a href=\"/iam/docs/pam-view-export-settings\"\n        class=\"devsite-nav-title\"\n      ><span class=\"devsite-nav-text\" tooltip>View and export PAM settings</span><span class=\"devsite-nav-icon material-icons\"\n        data-icon=\"preview\"\n        data-title=\"Preview\"\n        aria-hidden=\"true\"></span></a></li><li class=\"devsite-nav-item\"><a href=\"/iam/docs/pam-view-grants\"\n        class=\"devsite-nav-title\"\n      ><span class=\"devsite-nav-text\" tooltip>View grants</span></a></li><li class=\"devsite-nav-item\"><a href=\"/iam/docs/pam-revoke-grants\"\n        class=\"devsite-nav-title\"\n      ><span class=\"devsite-nav-text\" tooltip>Revoke grants</span></a></li><li class=\"devsite-nav-item\"><a href=\"/iam/docs/pam-audit-entitlement-events\"\n        class=\"devsite-nav-title\"\n      ><span class=\"devsite-nav-text\" tooltip>Audit entitlement and grant events</span></a></li><li class=\"devsite-nav-item\n           devsite-nav-preview\"><a href=\"/iam/docs/pam-remediate-iam-recommendations\"\n        class=\"devsite-nav-title\"\n      ><span class=\"devsite-nav-text\" tooltip>Remediate excessive permissions with PAM</span><span class=\"devsite-nav-icon material-icons\"\n        data-icon=\"preview\"\n        data-title=\"Preview\"\n        aria-hidden=\"true\"></span></a></li><li class=\"devsite-nav-item\"><a href=\"/iam/docs/pam-best-practices\"\n        class=\"devsite-nav-title\"\n      ><span class=\"devsite-nav-text\" tooltip>Best practices for PAM</span></a></li></ul></div></li><li class=\"devsite-nav-item\"><a href=\"/iam/docs/pam-request-temporary-elevated-access\"\n        class=\"devsite-nav-title\"\n      ><span class=\"devsite-nav-text\" tooltip>Request temporary elevated access with PAM</span></a></li><li class=\"devsite-nav-item\"><a href=\"/iam/docs/pam-withdraw-grants\"\n        class=\"devsite-nav-title\"\n      ><span class=\"devsite-nav-text\" tooltip>Withdraw grants</span></a></li><li class=\"devsite-nav-item\"><a href=\"/iam/docs/pam-approve-deny-grants\"\n        class=\"devsite-nav-title\"\n      ><span class=\"devsite-nav-text\" tooltip>Approve or deny grants with PAM</span></a></li><li class=\"devsite-nav-item\"><a href=\"/iam/docs/create-short-lived-credentials-direct\"\n        class=\"devsite-nav-title\"\n      ><span class=\"devsite-nav-text\" tooltip>Create short-lived credentials for a service account</span></a></li><li class=\"devsite-nav-item\"><a href=\"/iam/docs/create-short-lived-credentials-delegated\"\n        class=\"devsite-nav-title\"\n      ><span class=\"devsite-nav-text\" tooltip>Create short-lived credentials for multiple service accounts</span></a></li><li class=\"devsite-nav-item\n           devsite-nav-expandable\"><div class=\"devsite-expandable-nav\">\n      <a class=\"devsite-nav-toggle\" aria-hidden=\"true\"></a><div class=\"devsite-nav-title devsite-nav-title-no-path\" tabindex=\"0\" role=\"button\">\n        <span class=\"devsite-nav-text\" tooltip>Restrict a credential&#39;s Cloud Storage permissions</span>\n      </div><ul class=\"devsite-nav-section\"><li class=\"devsite-nav-item\"><a href=\"/iam/docs/downscoping-short-lived-credentials\"\n        class=\"devsite-nav-title\"\n      ><span class=\"devsite-nav-text\" tooltip>Credential Access Boundaries for Cloud Storage</span></a></li><li class=\"devsite-nav-item\"><a href=\"/iam/docs/create-downscoped-short-lived-credentials\"\n        class=\"devsite-nav-title\"\n      ><span class=\"devsite-nav-text\" tooltip>Create a downscoped short-lived credential</span></a></li></ul></div></li><li class=\"devsite-nav-item\"><a href=\"/iam/docs/migrating-to-credentials-api\"\n        class=\"devsite-nav-title\"\n      ><span class=\"devsite-nav-text\" tooltip>Migrate to the Service Account Credentials API</span></a></li></ul></div></li>\n\n  <li class=\"devsite-nav-item\"><a href=\"/iam/docs/restore-iam-policy\"\n        class=\"devsite-nav-title\"\n      ><span class=\"devsite-nav-text\" tooltip>Restore a previous version of an allow policy</span></a></li>\n\n  <li class=\"devsite-nav-item\"><a href=\"/iam/docs/testing-permissions\"\n        class=\"devsite-nav-title\"\n      ><span class=\"devsite-nav-text\" tooltip>Test permissions for custom user interfaces</span></a></li>\n\n  <li class=\"devsite-nav-item\"><a href=\"/iam/docs/org-policy-custom-constraints\"\n        class=\"devsite-nav-title\"\n      ><span class=\"devsite-nav-text\" tooltip>Use custom organization policies for allow policies</span></a></li>\n\n  <li class=\"devsite-nav-item\"><a href=\"/solutions/help-secure-the-pipeline-from-your-data-lake-to-your-data-warehouse\"\n        class=\"devsite-nav-title\"\n      ><span class=\"devsite-nav-text\" tooltip>Use IAM to help prevent exfiltration from data pipelines</span></a></li>\n\n  <li class=\"devsite-nav-item\n           devsite-nav-heading\"><div class=\"devsite-nav-title devsite-nav-title-no-path\">\n        <span class=\"devsite-nav-text\" tooltip>Optimize your IAM configuration</span>\n      </div></li>\n\n  <li class=\"devsite-nav-item\"><a href=\"/iam/docs/using-iam-securely\"\n        class=\"devsite-nav-title\"\n      ><span class=\"devsite-nav-text\" tooltip>Use IAM securely</span></a></li>\n\n  <li class=\"devsite-nav-item\"><a href=\"/iam/docs/policy-intelligence-tools\"\n        class=\"devsite-nav-title\"\n      ><span class=\"devsite-nav-text\" tooltip>Optimize IAM policies by using Policy Intelligence tools</span></a></li>\n\n  <li class=\"devsite-nav-item\"><a href=\"/iam/docs/secure-iam-vpc-sc\"\n        class=\"devsite-nav-title\"\n      ><span class=\"devsite-nav-text\" tooltip>Help secure IAM using VPC Service Controls</span></a></li>\n\n  <li class=\"devsite-nav-item\n           devsite-nav-heading\"><div class=\"devsite-nav-title devsite-nav-title-no-path\">\n        <span class=\"devsite-nav-text\" tooltip>Monitor</span>\n      </div></li>\n\n  <li class=\"devsite-nav-item\n           devsite-nav-expandable\"><div class=\"devsite-expandable-nav\">\n      <a class=\"devsite-nav-toggle\" aria-hidden=\"true\"></a><div class=\"devsite-nav-title devsite-nav-title-no-path\" tabindex=\"0\" role=\"button\">\n        <span class=\"devsite-nav-text\" tooltip>Audit logging</span>\n      </div><ul class=\"devsite-nav-section\"><li class=\"devsite-nav-item\"><a href=\"/iam/docs/audit-logging\"\n        class=\"devsite-nav-title\"\n      ><span class=\"devsite-nav-text\" tooltip>IAM API audit logging</span></a></li><li class=\"devsite-nav-item\"><a href=\"/iam/docs/audit-logging/audit-logging-iamscim\"\n        class=\"devsite-nav-title\"\n      ><span class=\"devsite-nav-text\" tooltip>IAM SCIM audit logging</span></a></li><li class=\"devsite-nav-item\"><a href=\"/iam/docs/audit-logging/audit-logging-iamcreds\"\n        class=\"devsite-nav-title\"\n      ><span class=\"devsite-nav-text\" tooltip>Service Account Credentials API audit logging</span></a></li><li class=\"devsite-nav-item\"><a href=\"/iam/docs/audit-logging/audit-logging-pam\"\n        class=\"devsite-nav-title\"\n      ><span class=\"devsite-nav-text\" tooltip>Privileged Access Manager audit logging</span></a></li><li class=\"devsite-nav-item\"><a href=\"/iam/docs/audit-logging/audit-logging-sts\"\n        class=\"devsite-nav-title\"\n      ><span class=\"devsite-nav-text\" tooltip>Security Token Service API audit logging</span></a></li><li class=\"devsite-nav-item\"><a href=\"/iam/docs/audit-logging/examples-service-accounts\"\n        class=\"devsite-nav-title\"\n      ><span class=\"devsite-nav-text\" tooltip>Example logs for service accounts</span></a></li><li class=\"devsite-nav-item\"><a href=\"/iam/docs/audit-logging/examples-workforce-identity\"\n        class=\"devsite-nav-title\"\n      ><span class=\"devsite-nav-text\" tooltip>Example logs for Workforce Identity Federation</span></a></li><li class=\"devsite-nav-item\"><a href=\"/iam/docs/audit-logging/examples-oauth-clients\"\n        class=\"devsite-nav-title\"\n      ><span class=\"devsite-nav-text\" tooltip>Example logs for Workforce OAuth application integration</span></a></li><li class=\"devsite-nav-item\"><a href=\"/iam/docs/audit-logging/examples-workload-identity\"\n        class=\"devsite-nav-title\"\n      ><span class=\"devsite-nav-text\" tooltip>Example logs for Workload Identity Federation</span></a></li></ul></div></li>\n\n  <li class=\"devsite-nav-item\"><a href=\"/iam/docs/analyze-access\"\n        class=\"devsite-nav-title\"\n      ><span class=\"devsite-nav-text\" tooltip>Analyze access to resources</span></a></li>\n\n  <li class=\"devsite-nav-item\n           devsite-nav-expandable\"><div class=\"devsite-expandable-nav\">\n      <a class=\"devsite-nav-toggle\" aria-hidden=\"true\"></a><div class=\"devsite-nav-title devsite-nav-title-no-path\" tabindex=\"0\" role=\"button\">\n        <span class=\"devsite-nav-text\" tooltip>Monitor service account usage</span>\n      </div><ul class=\"devsite-nav-section\"><li class=\"devsite-nav-item\"><a href=\"/iam/docs/service-account-usage-tools\"\n        class=\"devsite-nav-title\"\n      ><span class=\"devsite-nav-text\" tooltip>Tools to understand service account usage</span></a></li><li class=\"devsite-nav-item\"><a href=\"/iam/docs/service-account-monitoring\"\n        class=\"devsite-nav-title\"\n      ><span class=\"devsite-nav-text\" tooltip>Monitor usage patterns for service accounts and keys</span></a></li></ul></div></li>\n\n  <li class=\"devsite-nav-item\"><a href=\"/iam/docs/review-iam-policy-history\"\n        class=\"devsite-nav-title\"\n      ><span class=\"devsite-nav-text\" tooltip>Review allow policy history</span></a></li>\n\n  <li class=\"devsite-nav-item\n           devsite-nav-preview\"><a href=\"/iam/docs/review-security-insights\"\n        class=\"devsite-nav-title\"\n      ><span class=\"devsite-nav-text\" tooltip>Review security insights</span><span class=\"devsite-nav-icon material-icons\"\n        data-icon=\"preview\"\n        data-title=\"Preview\"\n        aria-hidden=\"true\"></span></a></li>\n\n  <li class=\"devsite-nav-item\n           devsite-nav-heading\"><div class=\"devsite-nav-title devsite-nav-title-no-path\">\n        <span class=\"devsite-nav-text\" tooltip>Troubleshoot</span>\n      </div></li>\n\n  <li class=\"devsite-nav-item\n           devsite-nav-expandable\"><div class=\"devsite-expandable-nav\">\n      <a class=\"devsite-nav-toggle\" aria-hidden=\"true\"></a><div class=\"devsite-nav-title devsite-nav-title-no-path\" tabindex=\"0\" role=\"button\">\n        <span class=\"devsite-nav-text\" tooltip>Troubleshoot permission error messages</span>\n      </div><ul class=\"devsite-nav-section\"><li class=\"devsite-nav-item\"><a href=\"/iam/docs/permission-error-messages\"\n        class=\"devsite-nav-title\"\n      ><span class=\"devsite-nav-text\" tooltip>Permission error messages</span></a></li><li class=\"devsite-nav-item\"><a href=\"/iam/docs/request-missing-permissions\"\n        class=\"devsite-nav-title\"\n      ><span class=\"devsite-nav-text\" tooltip>Request missing permissions</span></a></li><li class=\"devsite-nav-item\"><a href=\"/iam/docs/resolve-permission-errors\"\n        class=\"devsite-nav-title\"\n      ><span class=\"devsite-nav-text\" tooltip>Resolve permission errors</span></a></li></ul></div></li>\n\n  <li class=\"devsite-nav-item\"><a href=\"/iam/docs/troubleshoot-policies\"\n        class=\"devsite-nav-title\"\n      ><span class=\"devsite-nav-text\" tooltip>Troubleshoot allow and deny policies</span></a></li>\n\n  <li class=\"devsite-nav-item\"><a href=\"/iam/docs/troubleshoot-org-policies\"\n        class=\"devsite-nav-title\"\n      ><span class=\"devsite-nav-text\" tooltip>Troubleshoot organization policy errors for service accounts</span></a></li>\n\n  <li class=\"devsite-nav-item\"><a href=\"/iam/docs/troubleshooting-withcond\"\n        class=\"devsite-nav-title\"\n      ><span class=\"devsite-nav-text\" tooltip>Troubleshoot &#34;withcond&#34; in policies and role bindings</span></a></li>\n\n  <li class=\"devsite-nav-item\"><a href=\"/iam/docs/troubleshooting-workforce-identity-federation\"\n        class=\"devsite-nav-title\"\n      ><span class=\"devsite-nav-text\" tooltip>Troubleshoot Workforce Identity Federation</span></a></li>\n\n  <li class=\"devsite-nav-item\"><a href=\"/iam/docs/troubleshooting-workload-identity-federation\"\n        class=\"devsite-nav-title\"\n      ><span class=\"devsite-nav-text\" tooltip>Troubleshoot Workload Identity Federation</span></a></li>\n\n  <li class=\"devsite-nav-item\n           devsite-nav-preview\"><a href=\"/iam/docs/troubleshoot-auth-manager\"\n        class=\"devsite-nav-title\"\n      ><span class=\"devsite-nav-text\" tooltip>Troubleshoot Agent Identity auth manager</span><span class=\"devsite-nav-icon material-icons\"\n        data-icon=\"preview\"\n        data-title=\"Preview\"\n        aria-hidden=\"true\"></span></a></li>\n\n  <li class=\"devsite-nav-item\n           devsite-nav-heading\"><div class=\"devsite-nav-title devsite-nav-title-no-path\">\n        <span class=\"devsite-nav-text\" tooltip>Samples</span>\n      </div></li>\n\n  <li class=\"devsite-nav-item\"><a href=\"/iam/docs/samples\"\n        class=\"devsite-nav-title\"\n      ><span class=\"devsite-nav-text\" tooltip>All Identity and Access Management code samples</span></a></li>\n\n  <li class=\"devsite-nav-item\"><a href=\"/docs/samples\"\n        class=\"devsite-nav-title\"\n      ><span class=\"devsite-nav-text\" tooltip>Code samples for all products</span></a></li>\n          </ul>\n        \n        \n          \n    \n      \n      <ul class=\"devsite-nav-list\" menu=\"Technology areas\"\n          aria-label=\"Side menu\" hidden>\n        \n          \n            \n            \n              \n<li class=\"devsite-nav-item\">\n\n  \n  <a href=\"/docs/ai-ml\"\n    \n       class=\"devsite-nav-title gc-analytics-event\n              \n              \"\n    \n\n    \n     data-category=\"Site-Wide Custom Events\"\n     data-label=\"Responsive Tab: AI and ML\"\n     track-type=\"navMenu\"\n     track-metadata-eventDetail=\"globalMenu\"\n     track-metadata-position=\"nav\">\n  \n    <span class=\"devsite-nav-text\" tooltip >\n      AI and ML\n   </span>\n    \n  \n  </a>\n  \n\n</li>\n\n            \n              \n<li class=\"devsite-nav-item\">\n\n  \n  <a href=\"/docs/application-development\"\n    \n       class=\"devsite-nav-title gc-analytics-event\n              \n              \"\n    \n\n    \n     data-category=\"Site-Wide Custom Events\"\n     data-label=\"Responsive Tab: Application development\"\n     track-type=\"navMenu\"\n     track-metadata-eventDetail=\"globalMenu\"\n     track-metadata-position=\"nav\">\n  \n    <span class=\"devsite-nav-text\" tooltip >\n      Application development\n   </span>\n    \n  \n  </a>\n  \n\n</li>\n\n            \n              \n<li class=\"devsite-nav-item\">\n\n  \n  <a href=\"/docs/application-hosting\"\n    \n       class=\"devsite-nav-title gc-analytics-event\n              \n              \"\n    \n\n    \n     data-category=\"Site-Wide Custom Events\"\n     data-label=\"Responsive Tab: Application hosting\"\n     track-type=\"navMenu\"\n     track-metadata-eventDetail=\"globalMenu\"\n     track-metadata-position=\"nav\">\n  \n    <span class=\"devsite-nav-text\" tooltip >\n      Application hosting\n   </span>\n    \n  \n  </a>\n  \n\n</li>\n\n            \n              \n<li class=\"devsite-nav-item\">\n\n  \n  <a href=\"/docs/compute-area\"\n    \n       class=\"devsite-nav-title gc-analytics-event\n              \n              \"\n    \n\n    \n     data-category=\"Site-Wide Custom Events\"\n     data-label=\"Responsive Tab: Compute\"\n     track-type=\"navMenu\"\n     track-metadata-eventDetail=\"globalMenu\"\n     track-metadata-position=\"nav\">\n  \n    <span class=\"devsite-nav-text\" tooltip >\n      Compute\n   </span>\n    \n  \n  </a>\n  \n\n</li>\n\n            \n              \n<li class=\"devsite-nav-item\">\n\n  \n  <a href=\"/docs/data\"\n    \n       class=\"devsite-nav-title gc-analytics-event\n              \n              \"\n    \n\n    \n     data-category=\"Site-Wide Custom Events\"\n     data-label=\"Responsive Tab: Data analytics and pipelines\"\n     track-type=\"navMenu\"\n     track-metadata-eventDetail=\"globalMenu\"\n     track-metadata-position=\"nav\">\n  \n    <span class=\"devsite-nav-text\" tooltip >\n      Data analytics and pipelines\n   </span>\n    \n  \n  </a>\n  \n\n</li>\n\n            \n              \n<li class=\"devsite-nav-item\">\n\n  \n  <a href=\"/docs/databases\"\n    \n       class=\"devsite-nav-title gc-analytics-event\n              \n              \"\n    \n\n    \n     data-category=\"Site-Wide Custom Events\"\n     data-label=\"Responsive Tab: Databases\"\n     track-type=\"navMenu\"\n     track-metadata-eventDetail=\"globalMenu\"\n     track-metadata-position=\"nav\">\n  \n    <span class=\"devsite-nav-text\" tooltip >\n      Databases\n   </span>\n    \n  \n  </a>\n  \n\n</li>\n\n            \n              \n<li class=\"devsite-nav-item\">\n\n  \n  <a href=\"/docs/dhm-cloud\"\n    \n       class=\"devsite-nav-title gc-analytics-event\n              \n              \"\n    \n\n    \n     data-category=\"Site-Wide Custom Events\"\n     data-label=\"Responsive Tab: Distributed, hybrid, and multicloud\"\n     track-type=\"navMenu\"\n     track-metadata-eventDetail=\"globalMenu\"\n     track-metadata-position=\"nav\">\n  \n    <span class=\"devsite-nav-text\" tooltip >\n      Distributed, hybrid, and multicloud\n   </span>\n    \n  \n  </a>\n  \n\n</li>\n\n            \n              \n<li class=\"devsite-nav-item\">\n\n  \n  <a href=\"/docs/industry\"\n    \n       class=\"devsite-nav-title gc-analytics-event\n              \n              \"\n    \n\n    \n     data-category=\"Site-Wide Custom Events\"\n     data-label=\"Responsive Tab: Industry solutions\"\n     track-type=\"navMenu\"\n     track-metadata-eventDetail=\"globalMenu\"\n     track-metadata-position=\"nav\">\n  \n    <span class=\"devsite-nav-text\" tooltip >\n      Industry solutions\n   </span>\n    \n  \n  </a>\n  \n\n</li>\n\n            \n              \n<li class=\"devsite-nav-item\">\n\n  \n  <a href=\"/docs/migration\"\n    \n       class=\"devsite-nav-title gc-analytics-event\n              \n              \"\n    \n\n    \n     data-category=\"Site-Wide Custom Events\"\n     data-label=\"Responsive Tab: Migration\"\n     track-type=\"navMenu\"\n     track-metadata-eventDetail=\"globalMenu\"\n     track-metadata-position=\"nav\">\n  \n    <span class=\"devsite-nav-text\" tooltip >\n      Migration\n   </span>\n    \n  \n  </a>\n  \n\n</li>\n\n            \n              \n<li class=\"devsite-nav-item\">\n\n  \n  <a href=\"/docs/networking\"\n    \n       class=\"devsite-nav-title gc-analytics-event\n              \n              \"\n    \n\n    \n     data-category=\"Site-Wide Custom Events\"\n     data-label=\"Responsive Tab: Networking\"\n     track-type=\"navMenu\"\n     track-metadata-eventDetail=\"globalMenu\"\n     track-metadata-position=\"nav\">\n  \n    <span class=\"devsite-nav-text\" tooltip >\n      Networking\n   </span>\n    \n  \n  </a>\n  \n\n</li>\n\n            \n              \n<li class=\"devsite-nav-item\">\n\n  \n  <a href=\"/docs/observability\"\n    \n       class=\"devsite-nav-title gc-analytics-event\n              \n              \"\n    \n\n    \n     data-category=\"Site-Wide Custom Events\"\n     data-label=\"Responsive Tab: Observability and monitoring\"\n     track-type=\"navMenu\"\n     track-metadata-eventDetail=\"globalMenu\"\n     track-metadata-position=\"nav\">\n  \n    <span class=\"devsite-nav-text\" tooltip >\n      Observability and monitoring\n   </span>\n    \n  \n  </a>\n  \n\n</li>\n\n            \n              \n<li class=\"devsite-nav-item\">\n\n  \n  <a href=\"/docs/security\"\n    \n       class=\"devsite-nav-title gc-analytics-event\n              \n              \"\n    \n\n    \n     data-category=\"Site-Wide Custom Events\"\n     data-label=\"Responsive Tab: Security\"\n     track-type=\"navMenu\"\n     track-metadata-eventDetail=\"globalMenu\"\n     track-metadata-position=\"nav\">\n  \n    <span class=\"devsite-nav-text\" tooltip >\n      Security\n   </span>\n    \n  \n  </a>\n  \n\n</li>\n\n            \n              \n<li class=\"devsite-nav-item\">\n\n  \n  <a href=\"/docs/storage\"\n    \n       class=\"devsite-nav-title gc-analytics-event\n              \n              \"\n    \n\n    \n     data-category=\"Site-Wide Custom Events\"\n     data-label=\"Responsive Tab: Storage\"\n     track-type=\"navMenu\"\n     track-metadata-eventDetail=\"globalMenu\"\n     track-metadata-position=\"nav\">\n  \n    <span class=\"devsite-nav-text\" tooltip >\n      Storage\n   </span>\n    \n  \n  </a>\n  \n\n</li>\n\n            \n          \n        \n      </ul>\n    \n  \n    \n      \n      <ul class=\"devsite-nav-list\" menu=\"Cross-product tools\"\n          aria-label=\"Side menu\" hidden>\n        \n          \n            \n            \n              \n<li class=\"devsite-nav-item\">\n\n  \n  <a href=\"/docs/access-resources\"\n    \n       class=\"devsite-nav-title gc-analytics-event\n              \n              \"\n    \n\n    \n     data-category=\"Site-Wide Custom Events\"\n     data-label=\"Responsive Tab: Access and resources management\"\n     track-type=\"navMenu\"\n     track-metadata-eventDetail=\"globalMenu\"\n     track-metadata-position=\"nav\">\n  \n    <span class=\"devsite-nav-text\" tooltip >\n      Access and resources management\n   </span>\n    \n  \n  </a>\n  \n\n</li>\n\n            \n              \n<li class=\"devsite-nav-item\">\n\n  \n  <a href=\"/docs/costs-usage\"\n    \n       class=\"devsite-nav-title gc-analytics-event\n              \n              \"\n    \n\n    \n     data-category=\"Site-Wide Custom Events\"\n     data-label=\"Responsive Tab: Costs and usage management\"\n     track-type=\"navMenu\"\n     track-metadata-eventDetail=\"globalMenu\"\n     track-metadata-position=\"nav\">\n  \n    <span class=\"devsite-nav-text\" tooltip >\n      Costs and usage management\n   </span>\n    \n  \n  </a>\n  \n\n</li>\n\n            \n              \n<li class=\"devsite-nav-item\">\n\n  \n  <a href=\"/docs/iac\"\n    \n       class=\"devsite-nav-title gc-analytics-event\n              \n              \"\n    \n\n    \n     data-category=\"Site-Wide Custom Events\"\n     data-label=\"Responsive Tab: Infrastructure as code\"\n     track-type=\"navMenu\"\n     track-metadata-eventDetail=\"globalMenu\"\n     track-metadata-position=\"nav\">\n  \n    <span class=\"devsite-nav-text\" tooltip >\n      Infrastructure as code\n   </span>\n    \n  \n  </a>\n  \n\n</li>\n\n            \n              \n<li class=\"devsite-nav-item\">\n\n  \n  <a href=\"/docs/devtools\"\n    \n       class=\"devsite-nav-title gc-analytics-event\n              \n              \"\n    \n\n    \n     data-category=\"Site-Wide Custom Events\"\n     data-label=\"Responsive Tab: SDK, languages, frameworks, and tools\"\n     track-type=\"navMenu\"\n     track-metadata-eventDetail=\"globalMenu\"\n     track-metadata-position=\"nav\">\n  \n    <span class=\"devsite-nav-text\" tooltip >\n      SDK, languages, frameworks, and tools\n   </span>\n    \n  \n  </a>\n  \n\n</li>\n\n            \n          \n        \n      </ul>\n    \n  \n        \n        \n          \n    \n  \n    \n  \n    \n  \n    \n  \n    \n  \n        \n      </div>\n    \n  </div>\n</nav>\n          \n        </devsite-book-nav>\n      \n      <section id=\"gc-wrapper\">\n        <main role=\"main\" id=\"main-content\" class=\"devsite-main-content\"\n            \n              has-book-nav\n              has-sidebar\n            >\n          <div class=\"devsite-sidebar\">\n            <div class=\"devsite-sidebar-content\">\n                \n                <devsite-toc class=\"devsite-nav\"\n                            role=\"navigation\"\n                            aria-label=\"On this page\"\n                            depth=\"2\"\n                            scrollbars\n                            data-nosnippet\n                  ></devsite-toc>\n                <devsite-recommendations-sidebar class=\"nocontent devsite-nav\" data-nosnippet>\n                </devsite-recommendations-sidebar>\n            </div>\n          </div>\n          <devsite-content>\n            \n              \n\n\n\n\n\n\n\n\n\n\n<article class=\"devsite-article\">\n  \n  \n  \n  \n  \n\n  <div class=\"devsite-article-meta nocontent\" role=\"navigation\" data-nosnippet>\n    \n    \n    <ul class=\"devsite-breadcrumb-list\"\n  \n    aria-label=\"Breadcrumb\">\n  \n  <li class=\"devsite-breadcrumb-item\n             \">\n    \n    \n    \n      \n        \n  <a href=\"https://docs.cloud.google.com/\"\n      \n        class=\"devsite-breadcrumb-link gc-analytics-event\"\n      \n        data-category=\"Site-Wide Custom Events\"\n      \n        data-label=\"Breadcrumbs\"\n      \n        data-value=\"1\"\n      \n        track-type=\"globalNav\"\n      \n        track-name=\"breadcrumb\"\n      \n        track-metadata-position=\"1\"\n      \n        track-metadata-eventdetail=\"Google Cloud Documentation\"\n      \n    >\n    \n          Home\n        \n  </a>\n  \n      \n    \n  </li>\n  \n  <li class=\"devsite-breadcrumb-item\n             \">\n    \n      \n      <div class=\"devsite-breadcrumb-guillemet material-icons\" aria-hidden=\"true\"></div>\n    \n    \n    \n      \n        \n  <a href=\"https://docs.cloud.google.com/docs\"\n      \n        class=\"devsite-breadcrumb-link gc-analytics-event\"\n      \n        data-category=\"Site-Wide Custom Events\"\n      \n        data-label=\"Breadcrumbs\"\n      \n        data-value=\"2\"\n      \n        track-type=\"globalNav\"\n      \n        track-name=\"breadcrumb\"\n      \n        track-metadata-position=\"2\"\n      \n        track-metadata-eventdetail=\"Documentation\"\n      \n    >\n    \n          Documentation\n        \n  </a>\n  \n      \n    \n  </li>\n  \n  <li class=\"devsite-breadcrumb-item\n             \">\n    \n      \n      <div class=\"devsite-breadcrumb-guillemet material-icons\" aria-hidden=\"true\"></div>\n    \n    \n    \n      \n        \n  <a href=\"https://docs.cloud.google.com/docs/security\"\n      \n        class=\"devsite-breadcrumb-link gc-analytics-event\"\n      \n        data-category=\"Site-Wide Custom Events\"\n      \n        data-label=\"Breadcrumbs\"\n      \n        data-value=\"3\"\n      \n        track-type=\"globalNav\"\n      \n        track-name=\"breadcrumb\"\n      \n        track-metadata-position=\"3\"\n      \n        track-metadata-eventdetail=\"Security\"\n      \n    >\n    \n          Security\n        \n  </a>\n  \n      \n    \n  </li>\n  \n  <li class=\"devsite-breadcrumb-item\n             \">\n    \n      \n      <div class=\"devsite-breadcrumb-guillemet material-icons\" aria-hidden=\"true\"></div>\n    \n    \n    \n      \n        \n  <a href=\"https://docs.cloud.google.com/iam/docs\"\n      \n        class=\"devsite-breadcrumb-link gc-analytics-event\"\n      \n        data-category=\"Site-Wide Custom Events\"\n      \n        data-label=\"Breadcrumbs\"\n      \n        data-value=\"4\"\n      \n        track-type=\"globalNav\"\n      \n        track-name=\"breadcrumb\"\n      \n        track-metadata-position=\"4\"\n      \n        track-metadata-eventdetail=\"Identity and Access Management (IAM)\"\n      \n    >\n    \n          IAM\n        \n  </a>\n  \n      \n    \n  </li>\n  \n  <li class=\"devsite-breadcrumb-item\n             \">\n    \n      \n      <div class=\"devsite-breadcrumb-guillemet material-icons\" aria-hidden=\"true\"></div>\n    \n    \n    \n      \n        \n  <a href=\"https://docs.cloud.google.com/iam/docs\"\n      \n        class=\"devsite-breadcrumb-link gc-analytics-event\"\n      \n        data-category=\"Site-Wide Custom Events\"\n      \n        data-label=\"Breadcrumbs\"\n      \n        data-value=\"5\"\n      \n        track-type=\"globalNav\"\n      \n        track-name=\"breadcrumb\"\n      \n        track-metadata-position=\"5\"\n      \n        track-metadata-eventdetail=\"Identity and Access Management (IAM)\"\n      \n    >\n    \n          Identity and Access Management (IAM)\n        \n  </a>\n  \n      \n    \n  </li>\n  \n  <li class=\"devsite-breadcrumb-item\n             \">\n    \n      \n      <div class=\"devsite-breadcrumb-guillemet material-icons\" aria-hidden=\"true\"></div>\n    \n    \n    \n      \n        \n  <a href=\"https://docs.cloud.google.com/iam/docs/overview\"\n      \n        class=\"devsite-breadcrumb-link gc-analytics-event\"\n      \n        data-category=\"Site-Wide Custom Events\"\n      \n        data-label=\"Breadcrumbs\"\n      \n        data-value=\"6\"\n      \n        track-type=\"globalNav\"\n      \n        track-name=\"breadcrumb\"\n      \n        track-metadata-position=\"6\"\n      \n        track-metadata-eventdetail=\"\"\n      \n    >\n    \n          Guides\n        \n  </a>\n  \n      \n    \n  </li>\n  \n</ul>\n    \n      \n    <devsite-thumb-rating position=\"header\">\n    </devsite-thumb-rating>\n  \n    \n  </div>\n  \n    <devsite-feedback\n  position=\"header\"\n  project-name=\"Identity and Access Management (IAM)\"\n  product-id=\"717553\"\n  bucket=\"BYOID\"\n  context=\"\"\n  version=\"t-devsite-webserver-20260721-r00-rc00.479104951173052044\"\n  data-label=\"Send Feedback Button\"\n  track-type=\"feedback\"\n  track-name=\"sendFeedbackLink\"\n  track-metadata-position=\"header\"\n  class=\"nocontent\"\n  data-nosnippet\n  \n  \n  \n    \n      project-icon=\"https://docs.cloud.google.com/_static/clouddocs/images/icons/categories/security-and-identity-color.svg\"\n    \n  \n  \n  \n  >\n\n  <button>\n  \n    \n    Send feedback\n  \n  </button>\n</devsite-feedback>\n  \n    <h1 class=\"devsite-page-title\" tabindex=\"-1\">\n      Agent Identity overview<devsite-actions hidden data-nosnippet><devsite-feature-tooltip\n      ack-key=\"AckCollectionsBookmarkTooltipDismiss\"\n      analytics-category=\"Site-Wide Custom Events\"\n      analytics-action-show=\"Callout Profile displayed\"\n      analytics-action-close=\"Callout Profile dismissed\"\n      analytics-label=\"Create Collection Callout\"\n      class=\"devsite-page-bookmark-tooltip nocontent\"\n      data-nosnippet\n      dismiss-button=\"true\"\n      id=\"devsite-collections-dropdown\"\n      \n      dismiss-button-text=\"Dismiss\"\n\n      \n      close-button-text=\"Got it\">\n\n    \n    \n      <devsite-bookmark></devsite-bookmark>\n    \n\n    <span slot=\"popout-heading\">\n      \n      Stay organized with collections\n    </span>\n    <span slot=\"popout-contents\">\n      \n      Save and categorize content based on your preferences.\n    </span>\n  </devsite-feature-tooltip>\n    <devsite-llm-tools></devsite-llm-tools></devsite-actions>\n  \n      \n    </h1>\n  \n\n  <devsite-toc class=\"devsite-nav\"\n    depth=\"2\"\n    devsite-toc-embedded\n    >\n  </devsite-toc>\n  \n    \n  <div class=\"devsite-article-body clearfix\n  \">\n\n  \n    \n    \n    \n  \n\n<p>Agent Identity provides a strongly attested, cryptographic identity for each agent that is based on the <a href=\"#spiffe-identity\">SPIFFE standard</a>. With Agent Identity, your agent can securely authenticate to MCP servers, cloud resources, endpoints, and other agents, acting either on its own behalf or on behalf of an end user. Agent Identity uses the <a href=\"#agent-credentials\">agent's own credential</a> and <a href=\"#agent-auth-manager\">Agent Identity auth manager</a>. You can use the auth manager to create and manage <i>auth providers</i>, which are the specific configurations used to acquire, manage, and secure API keys, OAuth client IDs, OAuth client secrets, and delegated end-user OAuth tokens.</p><p>Unlike service accounts, agent identities are not shared by multiple workloads\nby default, can't be impersonated, and don't allow developers to generate\nlong-lived service account keys. Access tokens generated for Google Cloud\nare cryptographically bound to the agent's unique X.509 certificates to prevent\ntoken theft.</p>\n\n<p>When Agent Identity is used with Agent Gateway and Gemini Enterprise,\nend-user credentials, such as those provisioned by Gemini Enterprise connectors,\nare encrypted by the auth manager and decrypted at the gateway, ensuring\nthat the agent can never access the raw credential.</p>\n\n<p>The following services support Agent Identity:</p>\n\n<ul>\n<li><a href=\"/gemini-enterprise-agent-platform/scale/runtime/agent-identity\">Gemini Enterprise Agent Platform Runtime</a> (<i>Agent Runtime</i>)</li>\n<li><a href=\"/gemini/enterprise/docs\">Gemini Enterprise</a>\n</li>\n</ul>\n\n<h2 id=\"auth-models\" data-text=\"Authentication models\" tabindex=\"-1\">Authentication models</h2>\n\n<p>To authenticate with various tools and services, Agent Identity supports several authentication models. The model that an agent uses depends on the authentication method offered by the target resource and whether the agent acts on its own authority or on behalf of an end user.</p>\n\n<table>\n  <thead>\n    <tr>\n      <th>Authority</th>\n      <th>Authentication method</th>\n      <th>Target resource</th>\n      <th>Use case and solution</th>\n    </tr>\n  </thead>\n  <tbody>\n    <tr>\n      <td><b>User-delegated authority</b></td>\n      <td>OAuth 2.0 (3-legged) (<a href=\"https://cloud.google.com/products#product-launch-stages\">Preview</a>) </td>\n      <td>External tools and services</td>\n      <td>When an agent acts on behalf of a specific user (for example, to\n        access a user's Jira tasks or GitHub repositories). You configure a\n        3-legged OAuth auth provider in Agent Identity auth manager\n        to manage user consent and tokens. For more information, see\n        <a href=\"/iam/docs/auth-with-3lo-v2\">Authenticate using 3-legged OAuth with\n        auth manager</a>.</td>\n    </tr>\n    <tr>\n      <td rowspan=\"4\"><b>Agent's own authority</b></td>\n      <td>Cloud-based identity (Agent Identity)</td>\n      <td>Google Cloud services</td>\n      <td>When an agent hosted on Google Cloud needs to access other\n        Google Cloud services using its own identity. For more\n        information, see <a href=\"/iam/docs/auth-agent-own-identity\">Authenticate\n        using an agent's own identity</a>.</td>\n    </tr>\n    <tr>\n      <td>OAuth 2.0 (2-legged) (<a href=\"https://cloud.google.com/products#product-launch-stages\">Preview</a>) </td>\n      <td>External tools and services</td>\n      <td>Recommended for machine-to-machine authentication with external\n        services that support OAuth. You configure a 2-legged OAuth\n        auth provider in Agent Identity auth manager to handle\n        client credentials and access tokens. For more information, see\n        <a href=\"/iam/docs/auth-with-2lo-v2\">Authenticate using 2-legged OAuth with\n        auth manager</a>.</td>\n    </tr>\n    <tr>\n      <td>API key (<a href=\"https://cloud.google.com/products#product-launch-stages\">Preview</a>) </td>\n      <td>External tools and services</td>\n      <td>For external services that require a cryptographic key or password for\n        authentication. You configure an API key auth provider in\n        Agent Identity auth manager to help securely store and manage the\n        keys. For more information, see\n        <a href=\"/iam/docs/auth-with-api-key-v2\">Authenticate using API key with\n        auth manager</a>.</td>\n    </tr>\n    <tr>\n      <td>HTTP basic auth</td>\n      <td>External tools and services</td>\n      <td>Uses plaintext passwords. This method is <b>not recommended</b>. You\n        can store passwords similar to API key. For more information,\n        see <a href=\"/iam/docs/auth-with-api-key-v2\">Authenticate using API\n        key with auth manager</a>.</td>\n    </tr>\n  </tbody>\n</table>\n\n<h2 id=\"core-components\" data-text=\"Core components\" tabindex=\"-1\">Core components</h2>\n\n<p>Agent Identity involves several key components that together help provide\nsecure authentication and authorization.</p>\n\n<h3 id=\"spiffe-identity\" data-text=\"SPIFFE-based identity\" tabindex=\"-1\">SPIFFE-based identity</h3>\n\n<p>Each agent is assigned a unique identity string, or SPIFFE ID, based on the\n<a href=\"https://spiffe.io/\">SPIFFE standard</a>. This identity is strongly\nattested, tied to the agent's lifecycle, and mapped directly to the resource URI\nwhere the agent is hosted.</p>\n\n<p>The identity follows this format:</p>\n<blockquote><code translate=\"no\" dir=\"ltr\">spiffe://<var translate=\"no\">TRUST_DOMAIN</var>/resources/<var translate=\"no\">SERVICE</var>/<var translate=\"no\">RESOURCE_PATH</var></code></blockquote>\n<p>For example:</p>\n<ul>\n<li><code translate=\"no\" dir=\"ltr\">spiffe://agents.global.org-123456789012.system.id.goog/resources/aiplatform/projects/9876543210/locations/us-central1/reasoningEngines/my-test-agent</code></li>\n</ul>\n<p>When an agent identity is used in an IAM allow policy, the\nprincipal identifier follows this format:</p>\n<blockquote><code translate=\"no\" dir=\"ltr\">principal://<var translate=\"no\">TRUST_DOMAIN</var>/resources/<var translate=\"no\">SERVICE</var>/<var translate=\"no\">RESOURCE_PATH</var></code></blockquote>\n<p>Examples:</p>\n<ul>\n<li><b>Agent Runtime:</b> <code translate=\"no\" dir=\"ltr\">principal://agents.global.org-123456789012.system.id.goog/resources/aiplatform/projects/9876543210/locations/us-central1/reasoningEngines/my-test-agent</code></li>\n<li><b>Gemini Enterprise:</b> <code translate=\"no\" dir=\"ltr\">principal://agents.global.org-123456789012.system.id.goog/resources/discoveryengine/projects/9876543210/locations/global/collections/default_collection/engines/my-test-agent</code></li>\n</ul>\n<p>The identifiers use the following:</p>\n<ul>\n  <li><code translate=\"no\" dir=\"ltr\"><var translate=\"no\">TRUST_DOMAIN</var></code>: Your organization's trust domain (for example, <code translate=\"no\" dir=\"ltr\">agents.global.org-123456789012.system.id.goog</code>).</li>\n  <li><code translate=\"no\" dir=\"ltr\"><var translate=\"no\">SERVICE</var></code>: The short name of the Google Cloud service (for example, <code translate=\"no\" dir=\"ltr\">aiplatform</code> or <code translate=\"no\" dir=\"ltr\">discoveryengine</code>).</li>\n  <li><code translate=\"no\" dir=\"ltr\"><var translate=\"no\">RESOURCE_PATH</var></code>: The full path to the resource that hosts the agent.</li>\n</ul>\n\n<p>Because the agent itself is the principal, you grant permissions directly to\nthis identifier to control which resources the agent can access.</p>\n\n<h3 id=\"agent-credentials\" data-text=\"Agent credentials\" tabindex=\"-1\">Agent credentials</h3>\n\n<p>Agent credentials provide cryptographic proof of an agent's identity. The\nsystem supports X.509 certificates and Google Cloud access tokens. An\nX.509 certificate is auto-provisioned and managed on the agent to help support stronger\nauthentication.</p>\n\n<p>By default, agent identities use mutual TLS (mTLS) with X.509 certificates when communicating directly with Google Cloud APIs. When agents interact across the Agent Gateway, they also use Demonstrating Proof of Possession (DPoP), creating double-bound credentials for end-to-end security. This double binding means that agents authenticate using mTLS for first-party access to the gateway and use DPoP for interactions beyond the gateway.</p>\n\n<h3 id=\"agent-auth-manager\" data-text=\"Agent Identity auth manager\" tabindex=\"-1\">Agent Identity auth manager</h3>\n\n\n\n\n\n\n\n\n\n\n\n\n\n  <aside class=\"beta\">\n\n    <p>\n      <strong>\n      \n        Preview\n      \n        \n    </strong>\n    </p>\n\n    <p>\n      \n      \n        \n          This feature is\n        \n        subject to the \"Pre-GA Offerings Terms\" in the General Service Terms section of the\n        <a href=\"/terms/service-terms#1\" track-type=\"commonIncludes\">Service Specific\n        Terms</a>.\n        \n        Pre-GA features are available \"as is\" and might have limited support.\n      \n      For more information, see the\n      <a href=\"https://cloud.google.com/products/#product-launch-stages\"\n      track-type=\"commonIncludes\">launch stage descriptions</a>.\n  </p>\n  \n  </aside>\n\n\n\n<p>Agent Identity auth manager is a centralized credentials vault and\nauthentication broker that simplifies outbound tool authentication for your\nagents. It lets agents authenticate using an API key or OAuth client ID and\nsecret, or on behalf of a user through OAuth delegation using end-user access\ntokens. Within the auth manager, you configure auth providers that define the\nauthentication type and credentials for specific third-party applications.</p>\n\n<p>Access to Agent Identity auth manager is governed by IAM, and the agent\nuses its own Agent SPIFFE ID to authenticate to the auth manager. All end-user\naccess events are also attributable to the agent's SPIFFE ID, enabling\neasy governance.</p>\n\n<p>Agent Identity auth manager automates OAuth credential acquisition, such as\nopening a dialog for user sign-in and consent. It also provides visibility into\nend-user access and allows for access revocation, ensuring better governance\nover user-delegated permissions.</p>\n\n<p>For more information, see the\n<a href=\"/iam/docs/auth-manager-overview\">Agent Identity auth manager\noverview</a>.</p>\n<h3 id=\"security-governance\" data-text=\"Security and governance\" tabindex=\"-1\">Security and governance</h3>\n\n<p>Agent Identity is fully integrated with Google's policy systems like IAM, Principal Access Boundary (PAB), and VPC Service Controls, which allow for enhanced security and governance. It\nalso integrates with audit logging to ensure accountability and provide clear\naudit logs both when the agent is acting as itself and when it is acting on\nbehalf of an end user.</p>\n\n<ul>\n<li><b>Context-Aware Access:</b> By default, a Google-managed Context-Aware Access\npolicy helps secure <a href=\"#agent-credentials\">agent credentials</a> by\nenforcing mTLS and DPoP token\nbinding. This approach ensures that certificate-bound tokens cannot be replayed outside\ntheir trusted runtime environment.</li>\n<li><b>IAM integration:</b> Support for standard IAM allow\npolicies and deny policies.</li>\n<li><b>Principal Access Boundary (PAB):</b> A PAB limits the resources an agent\ncan access, regardless of other permissions.</li>\n<li><b>VPC Service Controls:</b> Support for using agent identities (<a href=\"https://cloud.google.com/products#product-launch-stages\">Preview</a>)\nin <a href=\"/vpc-service-controls/docs/ingress-egress-rules\">ingress and egress rules</a> to allow access to resources protected by a service perimeter.</li>\n</ul>\n\n<h2 id=\"how-it-works\" data-text=\"How Agent Identity works\" tabindex=\"-1\">How Agent Identity works</h2>\n\n<p>Agent Identity authenticates and authorizes agent actions through a workflow\ndesigned to help enhance security:</p>\n\n<ol>\n<li><b>Identity assignment</b>: When you deploy an agent, Google Cloud\nassigns it a unique SPIFFE identity and an X.509 certificate. Each\nX.509 certificate is valid for 24 hours, and Google Cloud\nautomatically keeps it current to maintain security.</li>\n<li><b>Credential acquisition</b>: The method that agents use to acquire\ncredentials depends on what they are trying to access. The following are\nsome examples:\n    <ul>\n        <li><b>Access Google Cloud services</b>: The agent requests a\n        bound access token. This token is cryptographically bound to the\n        agent's unique X.509 certificate to help prevent token theft. For\n        more information, see\n        <a href=\"#security-governance\">Security and governance</a>.</li>\n    <li><b>Access external tools</b>: The agent uses\n        Agent Identity auth manager to retrieve the required\n        credentials (such as API keys or OAuth tokens) from an\n        auth provider. Auth manager supports both\n        <b>user-delegated authority</b> and the\n        <b>agent's own authority</b>.</li>\n    </ul>\n</li>\n</ol>\n\n<h2 id=\"agent-identity\" data-text=\"Benefits of Agent Identity\" tabindex=\"-1\">Benefits of Agent Identity</h2>\n\n<p>Agent Identity improves security over standard service accounts.</p>\n\n<ul>\n<li><b>Strong isolation:</b> Unlike service accounts, agent identities are not\nshared by multiple workloads by default, can't be impersonated, and don't\nallow developers to generate long-lived service account keys.</li>\n<li><b>Credential security:</b> Default <a href=\"#security-governance\">Context-Aware Access policies</a> make bound tokens\nunreplayable, helping to protect against token theft and account takeover.\nWhen Agent Identity is used with Agent Gateway and Gemini Enterprise,\nend-user credentials, such as those provisioned by Gemini Enterprise\nconnectors, are encrypted by the auth manager and decrypted at the gateway,\nensuring that the agent can never access the raw credential.</li>\n<li><b>Least-privilege approach:</b> Provides per-agent identities instead of\nshared service accounts to eliminate over-permissioned agents.</li>\n<li><b>Reduced friction:</b> Automates complex OAuth flows and manages API keys\nfor simpler tool integration.</li>\n<li><b>Improved observability:</b> Provides clear audit logs. When an agent acts\non a user's behalf, logs show both the agent's and user's identities.</li>\n</ul>\n\n<h2 id=\"limitations\" data-text=\"Limitations\" tabindex=\"-1\">Limitations</h2>\n\n<ul>\n<li><b>Cloud Storage legacy bucket roles:</b> You cannot grant agent\nidentities legacy bucket roles (for example,\n<code translate=\"no\" dir=\"ltr\">storage.legacyBucketReader</code>).</li>\n</ul>\n\n<h2 id=\"what-next\" data-text=\"What's next\" tabindex=\"-1\">What's next</h2>\n\n<ul>\n<li><a href=\"/iam/docs/create-and-deploy-agent\">Create an agent with Agent Identity</a></li>\n<li><a href=\"/iam/docs/auth-agent-own-identity\">Authenticate using an agent&#39;s own authority</a></li>\n<li><a href=\"/iam/docs/auth-with-3lo-v2\">Authenticate using 3-legged OAuth with auth manager</a></li>\n<li><a href=\"/iam/docs/auth-with-2lo-v2\">Authenticate using 2-legged OAuth with auth manager</a></li>\n<li><a href=\"/iam/docs/auth-with-api-key-v2\">Authenticate using API key with auth manager</a></li>\n<li><a href=\"/iam/docs/manage-auth-providers-v2\">Manage Agent Identity auth providers</a></li>\n<li><a href=\"https://spiffe.io/\">SPIFFE concepts</a></li>\n</ul>\n\n\n  \n  \n\n  \n    <devsite-hats-survey class=\"nocontent\" data-nosnippet\n      hats-id=\"mwETRvWii0eU5NUYprb0Y9z5GVbc\"\n      listnr-id=\"83405\"></devsite-hats-survey>\n  \n\n  \n</div>\n\n  \n    \n    \n      \n    <devsite-thumb-rating position=\"footer\">\n    </devsite-thumb-rating>\n  \n       \n         <devsite-feedback\n  position=\"footer\"\n  project-name=\"Identity and Access Management (IAM)\"\n  product-id=\"717553\"\n  bucket=\"BYOID\"\n  context=\"\"\n  version=\"t-devsite-webserver-20260721-r00-rc00.479104951173052044\"\n  data-label=\"Send Feedback Button\"\n  track-type=\"feedback\"\n  track-name=\"sendFeedbackLink\"\n  track-metadata-position=\"footer\"\n  class=\"nocontent\"\n  data-nosnippet\n  \n  \n  \n    \n      project-icon=\"https://docs.cloud.google.com/_static/clouddocs/images/icons/categories/security-and-identity-color.svg\"\n    \n  \n  \n  \n  >\n\n  <button>\n  \n    \n    Send feedback\n  \n  </button>\n</devsite-feedback>\n       \n    \n    \n  \n\n  <div class=\"devsite-floating-action-buttons\"></div></article>\n\n\n<devsite-content-footer class=\"nocontent\" data-nosnippet>\n  <p>Except as otherwise noted, the content of this page is licensed under the <a href=\"https://creativecommons.org/licenses/by/4.0/\">Creative Commons Attribution 4.0 License</a>, and code samples are licensed under the <a href=\"https://www.apache.org/licenses/LICENSE-2.0\">Apache 2.0 License</a>. For details, see the <a href=\"https://developers.google.com/site-policies\">Google Developers Site Policies</a>. Java is a registered trademark of Oracle and/or its affiliates.</p>\n  <p>Last updated 2026-07-21 UTC.</p>\n</devsite-content-footer>\n\n\n<devsite-notification\n>\n</devsite-notification>\n\n\n  \n<div class=\"devsite-content-data\">\n  \n    \n    \n    <template class=\"devsite-thumb-rating-feedback\">\n      <devsite-feedback\n  position=\"thumb-rating\"\n  project-name=\"Identity and Access Management (IAM)\"\n  product-id=\"717553\"\n  bucket=\"BYOID\"\n  context=\"\"\n  version=\"t-devsite-webserver-20260721-r00-rc00.479104951173052044\"\n  data-label=\"Send Feedback Button\"\n  track-type=\"feedback\"\n  track-name=\"sendFeedbackLink\"\n  track-metadata-position=\"thumb-rating\"\n  class=\"nocontent\"\n  data-nosnippet\n  \n  \n  \n    \n      project-icon=\"https://docs.cloud.google.com/_static/clouddocs/images/icons/categories/security-and-identity-color.svg\"\n    \n  \n  \n  \n  >\n\n  <button>\n  \n    Need to tell us more?\n  \n  </button>\n</devsite-feedback>\n    </template>\n  \n  \n    <template class=\"devsite-content-data-template\">\n      [[[\"Easy to understand\",\"easyToUnderstand\",\"thumb-up\"],[\"Solved my problem\",\"solvedMyProblem\",\"thumb-up\"],[\"Other\",\"otherUp\",\"thumb-up\"]],[[\"Hard to understand\",\"hardToUnderstand\",\"thumb-down\"],[\"Incorrect information or sample code\",\"incorrectInformationOrSampleCode\",\"thumb-down\"],[\"Missing the information/samples I need\",\"missingTheInformationSamplesINeed\",\"thumb-down\"],[\"Other\",\"otherDown\",\"thumb-down\"]],[\"Last updated 2026-07-21 UTC.\"],[],[]]\n    </template>\n  \n</div>\n            \n          </devsite-content>\n        </main>\n        <devsite-footer-promos class=\"devsite-footer\">\n          \n            \n          \n        </devsite-footer-promos>\n        <devsite-footer-linkboxes class=\"devsite-footer\">\n          \n            \n<nav class=\"devsite-footer-linkboxes nocontent\"\n     aria-label=\"Footer links\"\n     data-nosnippet>\n  \n  <ul class=\"devsite-footer-linkboxes-list\">\n    \n    <li class=\"devsite-footer-linkbox \">\n    <h3 class=\"devsite-footer-linkbox-heading no-link\">Products and pricing</h3>\n      <ul class=\"devsite-footer-linkbox-list\">\n        \n        <li class=\"devsite-footer-linkbox-item\">\n          \n          <a href=\"//cloud.google.com/products/\"\n             class=\"devsite-footer-linkbox-link gc-analytics-event\"\n             data-category=\"Site-Wide Custom Events\"\n            \n             data-label=\"Footer Link (index 1)\"\n            track-name=\"see all products\"track-metadata-eventDetail=\"cloud.google.com/products/\"track-metadata-child_headline=\"products and pricing\"track-metadata-position=\"footer\"track-metadata-module=\"footer\"track-type=\"footer link\">\n            \n          \n            See all products\n          \n          </a>\n          \n          \n        </li>\n        \n        <li class=\"devsite-footer-linkbox-item\">\n          \n          <a href=\"//cloud.google.com/pricing/\"\n             class=\"devsite-footer-linkbox-link gc-analytics-event\"\n             data-category=\"Site-Wide Custom Events\"\n            \n             data-label=\"Footer Link (index 2)\"\n            track-metadata-eventDetail=\"cloud.google.com/pricing/\"track-metadata-child_headline=\"products and pricing\"track-metadata-position=\"footer\"track-metadata-module=\"footer\"track-type=\"footer link\"track-name=\"google cloud pricing\">\n            \n          \n            Google Cloud pricing\n          \n          </a>\n          \n          \n        </li>\n        \n        <li class=\"devsite-footer-linkbox-item\">\n          \n          <a href=\"//cloud.google.com/marketplace/\"\n             class=\"devsite-footer-linkbox-link gc-analytics-event\"\n             data-category=\"Site-Wide Custom Events\"\n            \n             data-label=\"Footer Link (index 3)\"\n            track-metadata-module=\"footer\"track-type=\"footer link\"track-metadata-position=\"footer\"track-metadata-child_headline=\"resources\"track-metadata-eventDetail=\"cloud.google.com/marketplace/\"track-name=\"google cloud marketplace\">\n            \n          \n            Google Cloud Marketplace\n          \n          </a>\n          \n          \n        </li>\n        \n        <li class=\"devsite-footer-linkbox-item\">\n          \n          <a href=\"//cloud.google.com/contact/\"\n             class=\"devsite-footer-linkbox-link gc-analytics-event\"\n             data-category=\"Site-Wide Custom Events\"\n            \n             data-label=\"Footer Link (index 4)\"\n            track-name=\"contact sales\"track-metadata-module=\"footer\"track-type=\"footer link\"track-metadata-eventDetail=\"cloud.google.com/contact/\"track-metadata-child_headline=\"engage\"track-metadata-position=\"footer\">\n            \n              \n              \n            \n          \n            Contact sales\n          \n          </a>\n          \n          \n        </li>\n        \n      </ul>\n    </li>\n    \n    <li class=\"devsite-footer-linkbox \">\n    <h3 class=\"devsite-footer-linkbox-heading no-link\">Support</h3>\n      <ul class=\"devsite-footer-linkbox-list\">\n        \n        <li class=\"devsite-footer-linkbox-item\">\n          \n          <a href=\"//discuss.google.dev/c/google-cloud/14/\"\n             class=\"devsite-footer-linkbox-link gc-analytics-event\"\n             data-category=\"Site-Wide Custom Events\"\n            \n             data-label=\"Footer Link (index 1)\"\n            track-metadata-eventDetail=\"www.googlecloudcommunity.com\"track-metadata-child_headline=\"engage\"track-metadata-position=\"footer\"track-metadata-module=\"footer\"target=\"_blank\"track-type=\"footer link\"track-name=\"google cloud community\"rel=\"noopener\">\n            \n          \n            Community forums\n          \n          </a>\n          \n          \n        </li>\n        \n        <li class=\"devsite-footer-linkbox-item\">\n          \n          <a href=\"//cloud.google.com/support-hub/\"\n             class=\"devsite-footer-linkbox-link gc-analytics-event\"\n             data-category=\"Site-Wide Custom Events\"\n            \n             data-label=\"Footer Link (index 2)\"\n            track-name=\"support\"track-metadata-module=\"footer\"track-type=\"footer link\"track-metadata-eventDetail=\"cloud.google.com/support-hub/\"track-metadata-child_headline=\"resources\"track-metadata-position=\"footer\">\n            \n          \n            Support\n          \n          </a>\n          \n          \n        </li>\n        \n        <li class=\"devsite-footer-linkbox-item\">\n          \n          <a href=\"//docs.cloud.google.com/release-notes\"\n             class=\"devsite-footer-linkbox-link gc-analytics-event\"\n             data-category=\"Site-Wide Custom Events\"\n            \n             data-label=\"Footer Link (index 3)\"\n            track-metadata-module=\"footer\"track-type=\"footer link\"track-metadata-position=\"footer\"track-metadata-child_headline=\"resources\"track-metadata-eventDetail=\"cloud.google.com/release-notes/\"track-name=\"release notes\">\n            \n          \n            Release Notes\n          \n          </a>\n          \n          \n        </li>\n        \n        <li class=\"devsite-footer-linkbox-item\">\n          \n          <a href=\"//status.cloud.google.com\"\n             class=\"devsite-footer-linkbox-link gc-analytics-event\"\n             data-category=\"Site-Wide Custom Events\"\n            \n             data-label=\"Footer Link (index 4)\"\n            track-metadata-position=\"footer\"track-metadata-child_headline=\"resources\"track-metadata-eventDetail=\"status.cloud.google.com\"track-metadata-module=\"footer\"track-type=\"footer link\"target=\"_blank\"track-name=\"system status\">\n            \n              \n              \n            \n          \n            System status\n          \n          </a>\n          \n          \n        </li>\n        \n      </ul>\n    </li>\n    \n    <li class=\"devsite-footer-linkbox \">\n    <h3 class=\"devsite-footer-linkbox-heading no-link\">Resources</h3>\n      <ul class=\"devsite-footer-linkbox-list\">\n        \n        <li class=\"devsite-footer-linkbox-item\">\n          \n          <a href=\"//github.com/googlecloudPlatform/\"\n             class=\"devsite-footer-linkbox-link gc-analytics-event\"\n             data-category=\"Site-Wide Custom Events\"\n            \n             data-label=\"Footer Link (index 1)\"\n            track-name=\"github\"track-metadata-eventDetail=\"github.com/googlecloudPlatform/\"track-metadata-child_headline=\"resources\"track-metadata-position=\"footer\"track-metadata-module=\"footer\"track-type=\"footer link\">\n            \n          \n            GitHub\n          \n          </a>\n          \n          \n        </li>\n        \n        <li class=\"devsite-footer-linkbox-item\">\n          \n          <a href=\"/docs/get-started/\"\n             class=\"devsite-footer-linkbox-link gc-analytics-event\"\n             data-category=\"Site-Wide Custom Events\"\n            \n             data-label=\"Footer Link (index 2)\"\n            track-name=\"google cloud quickstarts\"track-metadata-module=\"footer\"track-type=\"footer link\"track-metadata-position=\"footer\"track-metadata-child_headline=\"resources\"track-metadata-eventDetail=\"cloud.google.com/docs/get-started/\">\n            \n          \n            Getting Started with Google Cloud\n          \n          </a>\n          \n          \n        </li>\n        \n        <li class=\"devsite-footer-linkbox-item\">\n          \n          <a href=\"/docs/samples\"\n             class=\"devsite-footer-linkbox-link gc-analytics-event\"\n             data-category=\"Site-Wide Custom Events\"\n            \n             data-label=\"Footer Link (index 3)\"\n            track-type=\"footer link\"track-metadata-module=\"footer\"track-metadata-eventDetail=\"cloud.google.com/docs/samples\"track-metadata-child_headline=\"resources\"track-metadata-position=\"footer\"track-name=\"code samples\">\n            \n          \n            Code samples\n          \n          </a>\n          \n          \n        </li>\n        \n        <li class=\"devsite-footer-linkbox-item\">\n          \n          <a href=\"/architecture/\"\n             class=\"devsite-footer-linkbox-link gc-analytics-event\"\n             data-category=\"Site-Wide Custom Events\"\n            \n             data-label=\"Footer Link (index 4)\"\n            track-metadata-eventDetail=\"cloud.google.com/architecture/\"track-metadata-child_headline=\"resources\"track-metadata-position=\"footer\"track-type=\"footer link\"track-metadata-module=\"footer\"track-name=\"cloud architecture center\">\n            \n          \n            Cloud Architecture Center\n          \n          </a>\n          \n          \n        </li>\n        \n        <li class=\"devsite-footer-linkbox-item\">\n          \n          <a href=\"//cloud.google.com/learn/training/\"\n             class=\"devsite-footer-linkbox-link gc-analytics-event\"\n             data-category=\"Site-Wide Custom Events\"\n            \n             data-label=\"Footer Link (index 5)\"\n            track-name=\"training\"track-metadata-eventDetail=\"cloud.google.com/learn/training/\"track-metadata-child_headline=\"resources\"track-metadata-position=\"footer\"track-type=\"footer link\"track-metadata-module=\"footer\">\n            \n              \n              \n            \n          \n            Training and Certification\n          \n          </a>\n          \n          \n        </li>\n        \n      </ul>\n    </li>\n    \n    <li class=\"devsite-footer-linkbox \">\n    <h3 class=\"devsite-footer-linkbox-heading no-link\">Engage</h3>\n      <ul class=\"devsite-footer-linkbox-list\">\n        \n        <li class=\"devsite-footer-linkbox-item\">\n          \n          <a href=\"//cloud.google.com/blog/\"\n             class=\"devsite-footer-linkbox-link gc-analytics-event\"\n             data-category=\"Site-Wide Custom Events\"\n            \n             data-label=\"Footer Link (index 1)\"\n            track-name=\"blog\"track-type=\"footer link\"track-metadata-module=\"footer\"track-metadata-position=\"footer\"track-metadata-child_headline=\"engage\"track-metadata-eventDetail=\"cloud.google.com/blog/\">\n            \n          \n            Blog\n          \n          </a>\n          \n          \n        </li>\n        \n        <li class=\"devsite-footer-linkbox-item\">\n          \n          <a href=\"//cloud.google.com/events/\"\n             class=\"devsite-footer-linkbox-link gc-analytics-event\"\n             data-category=\"Site-Wide Custom Events\"\n            \n             data-label=\"Footer Link (index 2)\"\n            track-metadata-eventDetail=\"cloud.google.com/events/\"track-metadata-child_headline=\"engage\"track-metadata-position=\"footer\"track-type=\"footer link\"track-metadata-module=\"footer\"track-name=\"events\">\n            \n          \n            Events\n          \n          </a>\n          \n          \n        </li>\n        \n        <li class=\"devsite-footer-linkbox-item\">\n          \n          <a href=\"//x.com/googlecloud\"\n             class=\"devsite-footer-linkbox-link gc-analytics-event\"\n             data-category=\"Site-Wide Custom Events\"\n            \n             data-label=\"Footer Link (index 3)\"\n            track-metadata-eventDetail=\"x.com/googlecloud\"track-metadata-child_headline=\"engage\"track-metadata-position=\"footer\"target=\"_blank\"track-type=\"footer link\"track-metadata-module=\"footer\"track-name=\"follow on x\"rel=\"noopener\">\n            \n          \n            X (Twitter)\n          \n          </a>\n          \n          \n        </li>\n        \n        <li class=\"devsite-footer-linkbox-item\">\n          \n          <a href=\"//www.youtube.com/googlecloud\"\n             class=\"devsite-footer-linkbox-link gc-analytics-event\"\n             data-category=\"Site-Wide Custom Events\"\n            \n             data-label=\"Footer Link (index 4)\"\n            rel=\"noopener\"track-name=\"google cloud on youtube\"track-type=\"footer link\"target=\"_blank\"track-metadata-module=\"footer\"track-metadata-position=\"footer\"track-metadata-child_headline=\"engage\"track-metadata-eventDetail=\"www.youtube.com/googlecloud\">\n            \n          \n            Google Cloud on YouTube\n          \n          </a>\n          \n          \n        </li>\n        \n        <li class=\"devsite-footer-linkbox-item\">\n          \n          <a href=\"//www.youtube.com/googlecloudplatform\"\n             class=\"devsite-footer-linkbox-link gc-analytics-event\"\n             data-category=\"Site-Wide Custom Events\"\n            \n             data-label=\"Footer Link (index 5)\"\n            rel=\"noopener\"track-name=\"google cloud tech on youtube\"target=\"_blank\"track-type=\"footer link\"track-metadata-module=\"footer\"track-metadata-eventDetail=\"www.youtube.com/googlecloudplatform\"track-metadata-child_headline=\"engage\"track-metadata-position=\"footer\">\n            \n              \n              \n            \n          \n            Google Cloud Tech on YouTube\n          \n          </a>\n          \n          \n        </li>\n        \n      </ul>\n    </li>\n    \n  </ul>\n  \n</nav>\n          \n        </devsite-footer-linkboxes>\n        <devsite-footer-utility class=\"devsite-footer\">\n          \n            \n\n<div class=\"devsite-footer-utility nocontent\" data-nosnippet>\n  \n\n  \n  <nav class=\"devsite-footer-utility-links\" aria-label=\"Utility links\">\n    \n    <ul class=\"devsite-footer-utility-list\">\n      \n      <li class=\"devsite-footer-utility-item\n                 \">\n        \n        \n        <a class=\"devsite-footer-utility-link gc-analytics-event\"\n           href=\"//about.google/\"\n           data-category=\"Site-Wide Custom Events\"\n           data-label=\"Footer About Google link\"\n         \n           track-name=\"about google\"\n         \n           track-metadata-eventDetail=\"//about.google/\"\n         \n           track-metadata-position=\"footer\"\n         \n           target=\"_blank\"\n         \n           track-type=\"footer link\"\n         \n           track-metadata-module=\"utility footer\"\n         >\n          About Google\n        </a>\n        \n      </li>\n      \n      <li class=\"devsite-footer-utility-item\n                 devsite-footer-privacy-link\">\n        \n        \n        <a class=\"devsite-footer-utility-link gc-analytics-event\"\n           href=\"//policies.google.com/privacy\"\n           data-category=\"Site-Wide Custom Events\"\n           data-label=\"Footer Privacy link\"\n         \n           track-type=\"footer link\"\n         \n           target=\"_blank\"\n         \n           track-metadata-module=\"utility footer\"\n         \n           track-metadata-position=\"footer\"\n         \n           track-metadata-eventDetail=\"//policies.google.com/privacy\"\n         \n           track-name=\"privacy\"\n         >\n          Privacy\n        </a>\n        \n      </li>\n      \n      <li class=\"devsite-footer-utility-item\n                 \">\n        \n        \n        <a class=\"devsite-footer-utility-link gc-analytics-event\"\n           href=\"//policies.google.com/terms?hl=en\"\n           data-category=\"Site-Wide Custom Events\"\n           data-label=\"Footer Site terms link\"\n         \n           track-metadata-position=\"footer\"\n         \n           track-metadata-eventDetail=\"//www.google.com/intl/en/policies/terms/regional.html\"\n         \n           track-type=\"footer link\"\n         \n           target=\"_blank\"\n         \n           track-metadata-module=\"utility footer\"\n         \n           track-name=\"site terms\"\n         >\n          Site terms\n        </a>\n        \n      </li>\n      \n      <li class=\"devsite-footer-utility-item\n                 \">\n        \n        \n        <a class=\"devsite-footer-utility-link gc-analytics-event\"\n           href=\"//cloud.google.com/product-terms\"\n           data-category=\"Site-Wide Custom Events\"\n           data-label=\"Footer Google Cloud terms link\"\n         \n           track-name=\"google cloud terms\"\n         \n           track-metadata-eventDetail=\"//cloud.google.com/product-terms\"\n         \n           track-metadata-position=\"footer\"\n         \n           track-metadata-module=\"utility footer\"\n         \n           track-type=\"footer link\"\n         >\n          Google Cloud terms\n        </a>\n        \n      </li>\n      \n      <li class=\"devsite-footer-utility-item\n                 glue-cookie-notification-bar-control\">\n        \n        \n        <a class=\"devsite-footer-utility-link gc-analytics-event\"\n           href=\"#\"\n           data-category=\"Site-Wide Custom Events\"\n           data-label=\"Footer Manage cookies link\"\n         \n           track-metadata-module=\"utility footer\"\n         \n           track-type=\"footer link\"\n         \n           track-metadata-eventDetail=\"#\"\n         \n           track-metadata-position=\"footer\"\n         \n           track-name=\"Manage cookies\"\n         \n           aria-hidden=\"true\"\n         >\n          Manage cookies\n        </a>\n        \n      </li>\n      \n      <li class=\"devsite-footer-utility-item\n                 devsite-footer-carbon-button\">\n        \n        \n        <a class=\"devsite-footer-utility-link gc-analytics-event\"\n           href=\"//cloud.google.com/sustainability\"\n           data-category=\"Site-Wide Custom Events\"\n           data-label=\"Footer Our third decade of climate action: join us link\"\n         \n           track-metadata-eventDetail=\"/sustainability/\"\n         \n           track-metadata-position=\"footer\"\n         \n           track-metadata-module=\"utility footer\"\n         \n           track-type=\"footer link\"\n         \n           track-name=\"Our third decade of climate action: join us\"\n         >\n          Our third decade of climate action: join us\n        </a>\n        \n      </li>\n      \n      <li class=\"devsite-footer-utility-item\n                 devsite-footer-utility-button\">\n        \n        <span class=\"devsite-footer-utility-description\">Sign up for the Google Cloud newsletter</span>\n        \n        \n        <a class=\"devsite-footer-utility-link gc-analytics-event\"\n           href=\"//cloud.google.com/newsletter/\"\n           data-category=\"Site-Wide Custom Events\"\n           data-label=\"Footer Subscribe link\"\n         \n           track-name=\"subscribe\"\n         \n           track-metadata-module=\"utility footer\"\n         \n           track-type=\"footer link\"\n         \n           track-metadata-position=\"footer\"\n         \n           track-metadata-eventDetail=\"/newsletter/\"\n         >\n          Subscribe\n        </a>\n        \n      </li>\n      \n    </ul>\n    \n    \n<devsite-language-selector>\n  <ul role=\"presentation\">\n    \n    \n    <li role=\"presentation\">\n      <a role=\"menuitem\" lang=\"en\"\n        >English</a>\n    </li>\n    \n    <li role=\"presentation\">\n      <a role=\"menuitem\" lang=\"de\"\n        >Deutsch</a>\n    </li>\n    \n    <li role=\"presentation\">\n      <a role=\"menuitem\" lang=\"es_419\"\n        >Español – América Latina</a>\n    </li>\n    \n    <li role=\"presentation\">\n      <a role=\"menuitem\" lang=\"fr\"\n        >Français</a>\n    </li>\n    \n    <li role=\"presentation\">\n      <a role=\"menuitem\" lang=\"id\"\n        >Indonesia</a>\n    </li>\n    \n    <li role=\"presentation\">\n      <a role=\"menuitem\" lang=\"it\"\n        >Italiano</a>\n    </li>\n    \n    <li role=\"presentation\">\n      <a role=\"menuitem\" lang=\"pt_br\"\n        >Português – Brasil</a>\n    </li>\n    \n    <li role=\"presentation\">\n      <a role=\"menuitem\" lang=\"he\"\n        >עברית</a>\n    </li>\n    \n    <li role=\"presentation\">\n      <a role=\"menuitem\" lang=\"zh_cn\"\n        >中文 – 简体</a>\n    </li>\n    \n    <li role=\"presentation\">\n      <a role=\"menuitem\" lang=\"zh_tw\"\n        >中文 – 繁體</a>\n    </li>\n    \n    <li role=\"presentation\">\n      <a role=\"menuitem\" lang=\"ja\"\n        >日本語</a>\n    </li>\n    \n    <li role=\"presentation\">\n      <a role=\"menuitem\" lang=\"ko\"\n        >한국어</a>\n    </li>\n    \n  </ul>\n</devsite-language-selector>\n\n  </nav>\n</div>\n          \n        </devsite-footer-utility>\n        <devsite-panel>\n          \n        </devsite-panel>\n        \n      </section>\n      </section>\n    <devsite-sitemask></devsite-sitemask>\n    <devsite-snackbar></devsite-snackbar>\n    <devsite-tooltip ></devsite-tooltip>\n    <devsite-heading-link></devsite-heading-link>\n    <devsite-analytics>\n      \n        <script type=\"application/json\" analytics>[]</script>\n<script type=\"application/json\" tag-management>{&#34;at&#34;: &#34;True&#34;, &#34;ga4&#34;: [], &#34;ga4p&#34;: [], &#34;gtm&#34;: [{&#34;id&#34;: &#34;GTM-5CVQBG&#34;, &#34;purpose&#34;: 1}], &#34;parameters&#34;: {&#34;internalUser&#34;: &#34;False&#34;, &#34;language&#34;: {&#34;machineTranslated&#34;: &#34;False&#34;, &#34;requested&#34;: &#34;en&#34;, &#34;served&#34;: &#34;en&#34;}, &#34;pageType&#34;: &#34;article&#34;, &#34;projectName&#34;: &#34;Identity and Access Management (IAM)&#34;, &#34;signedIn&#34;: &#34;False&#34;, &#34;tenant&#34;: &#34;clouddocs&#34;, &#34;recommendations&#34;: {&#34;sourcePage&#34;: &#34;&#34;, &#34;sourceType&#34;: 0, &#34;sourceRank&#34;: 0, &#34;sourceIdenticalDescriptions&#34;: 0, &#34;sourceTitleWords&#34;: 0, &#34;sourceDescriptionWords&#34;: 0, &#34;experiment&#34;: &#34;&#34;}, &#34;experiment&#34;: {&#34;ids&#34;: &#34;&#34;}}}</script>\n      \n    </devsite-analytics>\n    \n      <devsite-badger></devsite-badger>\n    \n    \n    <cloudx-user></cloudx-user>\n\n\n\n  <cloudx-free-trial-eligible-store freeTrialEligible=\"true\"></cloudx-free-trial-eligible-store>\n\n    \n<script nonce=\"7nlp0WCylV2Yjmp8n/eSSXhP7/Zbts\">\n  \n  (function(d,e,v,s,i,t,E){d['GoogleDevelopersObject']=i;\n    t=e.createElement(v);t.async=1;t.src=s;E=e.getElementsByTagName(v)[0];\n    E.parentNode.insertBefore(t,E);})(window, document, 'script',\n    'https://www.gstatic.com/devrel-devsite/prod/v303cfab58e2ecfbd382191434137bc118fc92bc795e9241c9d005d07c4d0550a/clouddocs/js/app_loader.js', '[39,\"en\",null,\"/js/devsite_app_module.js\",\"https://www.gstatic.com/devrel-devsite/prod/v303cfab58e2ecfbd382191434137bc118fc92bc795e9241c9d005d07c4d0550a\",\"https://www.gstatic.com/devrel-devsite/prod/v303cfab58e2ecfbd382191434137bc118fc92bc795e9241c9d005d07c4d0550a/clouddocs\",\"https://clouddocs-dot-devsite-v2-prod.appspot.com\",null,null,[\"/_pwa/clouddocs/manifest.json\",\"https://www.gstatic.com/devrel-devsite/prod/v303cfab58e2ecfbd382191434137bc118fc92bc795e9241c9d005d07c4d0550a/images/video-placeholder.svg\",\"https://www.gstatic.com/devrel-devsite/prod/v303cfab58e2ecfbd382191434137bc118fc92bc795e9241c9d005d07c4d0550a/clouddocs/images/favicons/onecloud/favicon.ico\",\"https://www.gstatic.com/devrel-devsite/prod/v303cfab58e2ecfbd382191434137bc118fc92bc795e9241c9d005d07c4d0550a/clouddocs/images/lockup_full_color.svg\",\"https://fonts.googleapis.com/css?family=Google+Sans:400,500|Roboto:400,400italic,500,500italic,700,700italic|Roboto+Mono:400,500,700&display=swap\"],1,null,[1,6,8,12,14,17,21,25,50,52,63,70,75,76,80,87,91,92,93,97,98,100,101,102,103,104,105,107,108,109,110,112,113,117,118,120,122,124,125,126,127,129,130,131,132,133,134,135,136,138,140,141,147,148,149,151,152,156,157,158,159,161,163,164,168,169,170,179,180,182,183,186,191,193,196],\"AIzaSyAP-jjEJBzmIyKR4F-3XITp8yM9T1gEEI8\",\"AIzaSyB6xiKGDR5O3Ak2okS4rLkauxGUG7XP0hg\",\"docs.cloud.google.com\",\"AIzaSyAQk0fBONSGUqCNznf6Krs82Ap1-NV6J4o\",\"AIzaSyCCxcqdrZ_7QMeLCRY20bh_SXdAYqy70KY\",null,null,null,[\"Search__enable_ai_eligibility_checks\",\"Concierge__enable_remove_info_panel_tags\",\"MiscFeatureFlags__enable_variable_operator\",\"DevPro__enable_cloud_innovators_plus\",\"Profiles__enable_developer_profile_pages_as_content\",\"MiscFeatureFlags__developers_footer_image\",\"DevPro__enable_nvidia_credits_card\",\"DevPro__enable_google_payments_buyflow\",\"MiscFeatureFlags__enable_framebox_badge_methods\",\"MiscFeatureFlags__remove_cross_domain_tracking_params\",\"Concierge__enable_devsite_llm_tools\",\"DevPro__enable_google_payments\",\"Profiles__enable_complete_playlist_endpoint\",\"Profiles__enable_dashboard_curated_recommendations\",\"Profiles__enable_completequiz_endpoint\",\"MiscFeatureFlags__enable_project_variables\",\"Concierge__enable_pushui\",\"Profiles__enable_developer_profiles_callout\",\"Experiments__reqs_query_experiments\",\"DevPro__enable_firebase_workspaces_card\",\"Cloud__enable_cloud_dlp_service\",\"DevPro__enable_g1_integration\",\"DevPro__enable_devsite_captcha\",\"Profiles__enable_callout_notifications\",\"Profiles__enable_completecodelab_endpoint\",\"MiscFeatureFlags__enable_appearance_cookies\",\"Cloud__enable_cloud_shell\",\"Search__enable_page_map\",\"EngEduTelemetry__enable_engedu_telemetry\",\"Search__enable_ai_search_summaries_for_all\",\"MiscFeatureFlags__enable_firebase_utm\",\"DevPro__enable_developer_subscriptions\",\"TpcFeatures__enable_unmirrored_page_left_nav\",\"DevPro__enable_embed_profile_creation\",\"SignIn__enable_l1_signup_flow\",\"BookNav__enable_tenant_cache_key\",\"AIStudioInteractionsToggle__interactions_are_default\",\"Profiles__enable_profile_collections\",\"DevPro__enable_vertex_credit_card\",\"DevPro__enable_free_benefits\",\"Profiles__enable_playlist_community_acl\",\"MiscFeatureFlags__enable_explain_this_code\",\"DevPro__enable_google_one_card\",\"Analytics__enable_devpro_interaction_logging\",\"Cloud__cache_serialized_dynamic_content\",\"CloudShell__cloud_shell_button\",\"Profiles__enable_stripe_subscription_management\",\"MiscFeatureFlags__enable_dark_theme\",\"MiscFeatureFlags__enable_variable_operator_index_yaml\",\"Profiles__enable_recognition_badges\",\"CloudShell__cloud_code_overflow_menu\",\"Profiles__enable_public_developer_profiles\",\"Cloud__enable_free_trial_server_call\",\"MiscFeatureFlags__gdp_dashboard_reskin_enabled\",\"Profiles__enable_user_type\",\"Profiles__require_profile_eligibility_for_signin\",\"Cloud__enable_legacy_calculator_redirect\",\"MiscFeatureFlags__fix_lower_breadcrumbs\",\"DevPro__enable_code_assist\",\"MiscFeatureFlags__enable_explicit_template_dependencies\",\"MiscFeatureFlags__developers_footer_dark_image\",\"Cloud__enable_cloud_shell_fte_user_flow\",\"Profiles__enable_page_saving\",\"DevPro__enable_enterprise\",\"DevPro__remove_eu_tax_intake_form\",\"Profiles__enable_targeted_hero\",\"DevPro__enable_g1_ineligible_redirect\",\"DevPro__enable_credits_banner\",\"Search__enable_suggestions_from_borg\",\"DevPro__enable_devpro_offers\",\"OnSwitch__enable\",\"Concierge__enable_actions_menu\",\"Profiles__enable_join_program_group_endpoint\",\"Search__enable_dynamic_content_confidential_banner\",\"MiscFeatureFlags__enable_view_transitions\",\"Profiles__enable_awarding_url\",\"Profiles__enable_developer_profile_benefits_ui_redesign\",\"Cloud__enable_cloudx_experiment_ids\",\"Concierge__enable_concierge_restricted\",\"Analytics__enable_clearcut_logging\",\"Profiles__enable_auto_apply_credits\",\"Profiles__enable_purchase_prompts\",\"TpcFeatures__proxy_prod_host\",\"Cloud__fast_free_trial\"],null,null,\"AIzaSyBLEMok-5suZ67qRPzx0qUtbnLmyT_kCVE\",\"https://developerscontentserving-pa.clients6.google.com\",\"AIzaSyCM4QpTRSqP5qI4Dvjt4OAScIN8sOUlO-k\",\"https://developerscontentsearch-pa.clients6.google.com\",1,4,1,\"https://developerprofiles-pa.clients6.google.com\",[39,\"clouddocs\",\"Google Cloud Documentation\",\"docs.cloud.google.com\",null,\"clouddocs-dot-devsite-v2-prod.appspot.com\",null,null,[1,1,null,null,null,null,null,null,null,null,null,[1],null,null,null,null,null,1,[1],[null,null,null,[1,20],\"/terms/recommendations\"],[1],null,[1],[1,null,1],null,[1]],null,[54,null,null,null,null,null,\"/images/lockup_full_color.svg\",\"/images/favicons/onecloud/apple-icon.png\",null,null,null,1,1,1,1,null,[],null,null,[[],[],[],[],[],[],[],[]],null,1,null,null,null,\"/images/lockup_dark_theme.svg\",[]],[],null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,[6,1,14,15,22,23,29,37],null,[[null,null,null,null,null,null,[1,[[\"docType\",\"Choose a content type\",[[\"ApiReference\",null,null,null,null,null,null,null,null,\"API reference\"],[\"Sample\",null,null,null,null,null,null,null,null,\"Code sample\"],[\"ReferenceArchitecture\",null,null,null,null,null,null,null,null,\"Reference architecture\"],[\"Tutorial\",null,null,null,null,null,null,null,null,\"Tutorial\"]]],[\"category\",\"Choose a topic\",[[\"AiAndMachineLearning\",null,null,null,null,null,null,null,null,\"Artificial intelligence and machine learning (AI/ML)\"],[\"ApplicationDevelopment\",null,null,null,null,null,null,null,null,\"Application development\"],[\"BigDataAndAnalytics\",null,null,null,null,null,null,null,null,\"Big data and analytics\"],[\"Compute\",null,null,null,null,null,null,null,null,\"Compute\"],[\"Containers\",null,null,null,null,null,null,null,null,\"Containers\"],[\"Databases\",null,null,null,null,null,null,null,null,\"Databases\"],[\"HybridCloud\",null,null,null,null,null,null,null,null,\"Hybrid and multicloud\"],[\"LoggingAndMonitoring\",null,null,null,null,null,null,null,null,\"Logging and monitoring\"],[\"Migrations\",null,null,null,null,null,null,null,null,\"Migrations\"],[\"Networking\",null,null,null,null,null,null,null,null,\"Networking\"],[\"SecurityAndCompliance\",null,null,null,null,null,null,null,null,\"Security and compliance\"],[\"Serverless\",null,null,null,null,null,null,null,null,\"Serverless\"],[\"Storage\",null,null,null,null,null,null,null,null,\"Storage\"]]]]]],[1],null,1],[[null,null,null,null,null,[\"GTM-5CVQBG\"],null,null,null,null,null,[[\"GTM-5CVQBG\",2]],1],null,null,null,null,null,1],\"mwETRvWii0eU5NUYprb0Y9z5GVbc\",4],null,\"pk_live_5170syrHvgGVmSx9sBrnWtA5luvk9BwnVcvIi7HizpwauFG96WedXsuXh790rtij9AmGllqPtMLfhe2RSwD6Pn38V00uBCydV4m\",1,1,\"https://developerscontentinsights-pa.clients6.google.com\",\"AIzaSyCg-ZUslalsEbXMfIo9ZP8qufZgo3LSBDU\",\"AIzaSyDxT0vkxnY_KeINtA4LSePJO-4MAZPMRsE\",\"https://developers.clients6.google.com\",null,null,\"AIzaSyBQom12tzI-rybN7Sf-KfeL4nwm-Rf7PmI\\n\",null,null,\"https://developers.googleapis.com\"]')\n  \n</script>\n\n    <devsite-a11y-announce></devsite-a11y-announce>\n  </body>\n</html>","snapshot_chars":163271,"live_check":"changed"}]}