Teable trusts the email address returned by your IdP and uses it to automatically link OIDC logins to existing accounts with the same email. The identity provider you connect must guarantee that user email addresses are verified.
Do not connect identity providers that let users set arbitrary, unverified email addresses (for example, multi-tenant IdPs with open registration). On such providers, an attacker can register an account using the email address of an existing user on your instance and take over that account by signing in via OIDC. This risk is especially acute when local password login is also enabled on the same instance.
Recommendations:
Only connect enterprise-grade IdPs under your control (such as Okta, Azure Entra ID, Google Workspace, or Keycloak) with email verification enabled.
If your instance uses SSO exclusively, set PASSWORD_LOGIN_DISABLED=true to disable local password login and further reduce the attack surface.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Teable","colors":{"primary":"#131415","light":"#131415","dark":"#F9FAFB"},"logo":{"light":"https://mintcdn.com/teablecn/Sov59EnEPMakaGyj/images/teable-logo-full.png?fit=max\u0026auto=format\u0026n=Sov59EnEPMakaGyj\u0026q=85\u0026s=24e1fe49258a9a8f76eaec5792623926","dark":"https://mintcdn.com/teablecn/Sov59EnEPMakaGyj/images/teable-logo-full-dark.png?fit=max\u0026auto=format\u0026n=Sov59EnEPMakaGyj\u0026q=85\u0026s=be076104208b417182461b52d697a124","href":"https://teable.ai"},"favicon":"https://mintcdn.com/teablecn/MGUqMJ8iafwbPo_j/images/teable-logo.png?fit=max\u0026auto=format\u0026n=MGUqMJ8iafwbPo_j\u0026q=85\u0026s=bd76b377e5d2b5c43bd18f20ddb0c6ad","seo":{"metatags":{"og:image":"https://teable.ai/assets/images/og-image.png","twitter:site":"@teableio","twitter:card":"summary_large_image","canonical":"https://help.teable.ai","description":"Teable is an AI-powered database and app builder. Build apps, automate workflows, and manage data with ease.","keywords":"database, app builder, AI, no-code, low-code, Airtable alternative, PostgreSQL, automation"},"indexing":"all"},"integrations":{"ga4":{"measurementId":"G-LQ8H9TEDRD"}},"metadata":{"timestamp":true},"styling":{"latex":false},"navigation":{"languages":[{"language":"en","banner":{"content":"🚀 Teable is now on the App Store and Google Play. See our [changelog](/en/changelog#oct-30-2026) for details.","dismissible":true},"navbar":{"links":[{"icon":"comment","href":"https://community.teable.ai/","label":"Support"}]},"href":"en"},{"language":"zh","banner":{"content":"🚀 Teable 正式上架 App Store 和 Google Play。 查看[更新日志](/zh/changelog#2026-10-30)了解详情。","dismissible":true},"navbar":{"links":[{"icon":"comment","href":"https://community.teable.ai/","label":"支持"}]},"href":"zh"},{"language":"ru","banner":{"content":"🚀 Teable теперь в App Store и Google Play. Подробнее в [журнале изменений](/ru/changelog#30-октября-2026-г).","dismissible":true},"navbar":{"links":[{"icon":"comment","href":"https://community.teable.ai/","label":"Поддержка"}]},"href":"ru"},{"language":"de","banner":{"content":"🚀 Teable ist jetzt im App Store und bei Google Play. Mehr im [Changelog](/de/changelog#30-oktober-2026).","dismissible":true},"navbar":{"links":[{"icon":"comment","href":"https://community.teable.ai/","label":"Support"}]},"href":"de"},{"language":"fr","banner":{"content":"🚀 Teable est disponible sur l’App Store et Google Play. Consultez le [journal des modifications](/fr/changelog#30-octobre-2026) pour en savoir plus.","dismissible":true},"navbar":{"links":[{"icon":"comment","href":"https://community.teable.ai/","label":"Assistance"}]},"href":"fr"},{"language":"es","banner":{"content":"🚀 Teable ya está en la App Store y Google Play. Consulta el [registro de cambios](/es/changelog#30-oct-2026) para conocer los detalles.","dismissible":true},"navbar":{"links":[{"icon":"comment","href":"https://community.teable.ai/","label":"Soporte"}]},"href":"es"},{"language":"it","banner":{"content":"🚀 Teable è ora su App Store e Google Play. Leggi il [registro delle modifiche](/it/changelog#30-ott-2026) per i dettagli.","dismissible":true},"navbar":{"links":[{"icon":"comment","href":"https://community.teable.ai/","label":"Supporto"}]},"href":"it"},{"language":"ja","banner":{"content":"🚀 Teable が App Store と Google Play に登場。 詳しくは[更新履歴](/ja/changelog#2026年10月30日)をご覧ください。","dismissible":true},"navbar":{"links":[{"icon":"comment","href":"https://community.teable.ai/","label":"サポート"}]},"href":"ja"},{"language":"tr","banner":{"content":"🚀 Teable artık App Store ve Google Play’de. Ayrıntılar için [değişiklik günlüğüne](/tr/changelog#30-ekim-2026) bakın.","dismissible":true},"navbar":{"links":[{"icon":"comment","href":"https://community.teable.ai/","label":"Destek"}]},"href":"tr"},{"language":"uk","banner":{"content":"🚀 Teable тепер в App Store і Google Play. Докладніше в [журналі змін](/uk/changelog#30-жовтня-2026).","dismissible":true},"navbar":{"links":[{"icon":"comment","href":"https://community.teable.ai/","label":"Підтримка"}]},"href":"uk"},{"language":"ar","banner":{"content":"🚀 Teable متاح الآن على App Store وGoogle Play. راجع [سجل التغييرات](/ar/changelog#30-أكتوبر-2026) للتفاصيل.","dismissible":true},"navbar":{"links":[{"icon":"comment","href":"https://community.teable.ai/","label":"الدعم"}]},"href":"ar"}]}},"deployment":{"deploymentMetadataValue":{"subdomain":"teablecn","hasAudioNarration":false,"actualSubdomain":"teablecn","customDomains":["help.teable.ai"],"gitSource":{"type":"github","owner":"teableio","repo":"docs","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"feedback":{"thumbs":true},"entitlements":{},"buildId":"6af1bc84ab0bbd121500e4c8","clientVersion":"0.0.4088","searchFilterCounts":[{"language":"ar","tag":"واجهة API","count":737},{"language":"de","tag":"API","count":737},{"language":"en","tag":"API","count":737},{"language":"es","tag":"API","count":737},{"language":"fr","tag":"API","count":737},{"language":"it","tag":"API","count":737},{"language":"ja","tag":"API","count":737},{"language":"ru","tag":"API","count":737},{"language":"tr","tag":"API","count":737},{"language":"uk","tag":"API","count":737},{"language":"zh","tag":"API 文档","count":737},{"language":"ar","tag":"مرجع واجهة API","count":726},{"language":"de","tag":"API-Referenz","count":726},{"language":"en","tag":"API Reference","count":726},{"language":"es","tag":"Referencia de la API","count":726},{"language":"fr","tag":"Référence de l’API","count":726},{"language":"it","tag":"Riferimento API","count":726},{"language":"ja","tag":"APIリファレンス","count":726},{"language":"ru","tag":"Справочник API","count":726},{"language":"tr","tag":"API Referansı","count":726},{"language":"uk","tag":"Довідник API","count":726},{"language":"zh","tag":"API Reference","count":726},{"language":"ar","tag":"admin","count":145},{"language":"de","tag":"admin","count":145},{"language":"en","tag":"admin","count":145},{"language":"es","tag":"admin","count":145},{"language":"fr","tag":"admin","count":145},{"language":"it","tag":"admin","count":145},{"language":"ja","tag":"admin","count":145},{"language":"ru","tag":"admin","count":145},{"language":"tr","tag":"admin","count":145},{"language":"uk","tag":"admin","count":145},{"language":"zh","tag":"admin","count":145},{"language":"zh","tag":"功能文档","count":119},{"language":"ar","tag":"الوثائق","count":117},{"language":"de","tag":"Dokumentation","count":117},{"language":"en","tag":"Docs","count":117},{"language":"es","tag":"Documentación","count":117},{"language":"fr","tag":"Documentation","count":117},{"language":"it","tag":"Documentazione","count":117},{"language":"ja","tag":"ドキュメント","count":117},{"language":"ru","tag":"Документация","count":117},{"language":"tr","tag":"Dokümanlar","count":117},{"language":"uk","tag":"Документація","count":117},{"language":"ar","tag":"space","count":45},{"language":"de","tag":"space","count":45},{"language":"en","tag":"space","count":45},{"language":"es","tag":"space","count":45},{"language":"fr","tag":"space","count":45},{"language":"it","tag":"space","count":45},{"language":"ja","tag":"space","count":45},{"language":"ru","tag":"space","count":45},{"language":"tr","tag":"space","count":45},{"language":"uk","tag":"space","count":45},{"language":"zh","tag":"space","count":45},{"language":"ar","tag":"المشروع","count":44},{"language":"de","tag":"Projekt","count":44},{"language":"en","tag":"Project","count":44},{"language":"es","tag":"Proyecto","count":44},{"language":"fr","tag":"Projet","count":44},{"language":"it","tag":"Progetto","count":44},{"language":"ja","tag":"プロジェクト","count":44},{"language":"ru","tag":"Проект","count":44},{"language":"tr","tag":"Proje","count":44},{"language":"uk","tag":"Проєкт","count":44},{"language":"zh","tag":"项目","count":44},{"language":"ar","tag":"project","count":39},{"language":"de","tag":"project","count":39},{"language":"en","tag":"project","count":39},{"language":"es","tag":"project","count":39},{"language":"fr","tag":"project","count":39},{"language":"it","tag":"project","count":39},{"language":"ja","tag":"project","count":39},{"language":"ru","tag":"project","count":39},{"language":"tr","tag":"project","count":39},{"language":"uk","tag":"project","count":39},{"language":"zh","tag":"project","count":39},{"language":"tr","tag":"Alan","count":35},{"language":"ar","tag":"الأتمتة","count":34},{"language":"de","tag":"Automatisierung","count":34},{"language":"en","tag":"Automation","count":34},{"language":"es","tag":"Automatización","count":34},{"language":"fr","tag":"Automatisation","count":34},{"language":"it","tag":"Automazione","count":34},{"language":"ja","tag":"オートメーション","count":34},{"language":"ru","tag":"Автоматизация","count":34},{"language":"tr","tag":"Otomasyon","count":34},{"language":"uk","tag":"Автоматизація","count":34},{"language":"zh","tag":"自动化","count":34},{"language":"ar","tag":"الحقل","count":30},{"language":"ar","tag":"automation","count":30},{"language":"de","tag":"Feld","count":30},{"language":"de","tag":"automation","count":30},{"language":"en","tag":"Field","count":30},{"language":"en","tag":"automation","count":30},{"language":"es","tag":"Campo","count":30},{"language":"es","tag":"automation","count":30},{"language":"fr","tag":"Champ","count":30},{"language":"fr","tag":"automation","count":30},{"language":"it","tag":"Campo","count":30},{"language":"it","tag":"automation","count":30},{"language":"ja","tag":"フィールド","count":30},{"language":"ja","tag":"automation","count":30},{"language":"ru","tag":"Поле","count":30},{"language":"ru","tag":"automation","count":30},{"language":"tr","tag":"automation","count":30},{"language":"uk","tag":"Поле","count":30},{"language":"uk","tag":"automation","count":30},{"language":"zh","tag":"字段","count":30},{"language":"zh","tag":"automation","count":30}]},"assistantConfig":{},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-metadata","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"comment-mode","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[{"filePath":"style.css","content":".nav-logo{width:108px;height:28px;object-fit:contain}[data-continuous-changelog]>[data-changelog-footer],[data-changelog-year]>a{display:none!important}.changelog-year summary{display:flex;align-items:center;justify-content:space-between;list-style:none;cursor:pointer;padding:0.375rem 1rem;font-size:0.875rem;border-radius:0.75rem}.changelog-year summary::-webkit-details-marker{display:none}.changelog-year summary::marker{content:\"\"}.changelog-year summary svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:1.5}.changelog-year[open] summary svg{transform:rotate(90deg)}.changelog-year summary,.changelog-year a{color:#374151}.dark .changelog-year summary,.dark .changelog-year a{color:#9ca3af}.changelog-year summary:hover,.changelog-year a:hover{color:#111827}.dark .changelog-year summary:hover,.dark .changelog-year a:hover{color:#d1d5db}.changelog-year summary:focus-visible,.changelog-year a:focus-visible{outline:2px solid currentColor;outline-offset:-2px}.changelog-year ul{list-style:none;padding:0;margin:0}.changelog-year a{display:block;margin-block:0.125rem;padding:0.375rem 1rem 0.375rem 2rem;border-radius:0.75rem;font-size:0.875rem}.changelog-year a:hover,.changelog-year summary:hover{background:rgb(156 163 175 / 8%)}.changelog-year a[aria-current]{color:rgb(var(--primary));background:rgb(var(--primary) / 10%);text-shadow:-0.2px 0 0 currentColor, 0.2px 0 0 currentColor}.changelog-year a[aria-busy]{opacity:0.5}.changelog-next-month{display:block;padding-block:2rem}.changelog-next-month[hidden]{display:none}.update-container{scroll-margin-top:180px}.update-container[hidden],.toc-item[hidden]{display:none!important}.changelog-title-anchor{display:block;scroll-margin-top:180px}#content[data-continuous-changelog]{display:flex;flex-direction:column}#changelog-month-stream{display:contents}.changelog-next-month{order:1}.update-container>div:first-child{display:none!important}.update-container>div:has(>[data-component-part=\"update-content\"]){overflow:visible;min-width:0}#content .changelog-heading-link{color:inherit;font:inherit;text-decoration:none;border:0}#content .changelog-heading-link:focus-visible{outline:2px solid currentColor;outline-offset:4px}:has(>svg[style*=\"arrow-left-from-line\"]){display:none!important}.eyebrow{display:none!important}.docs-card-link{display:block;color:inherit!important;text-decoration:none!important}.docs-card-link .card{cursor:pointer}.docs-card-link:hover .card,.docs-card-link:focus-visible .card{border-color:rgb(var(--primary))!important}#header:has(~#content[data-page-href*=\"/changelog\"]) #page-title{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip-path:inset(50%);white-space:nowrap;border:0}#header:has(~#content[data-page-href*=\"/changelog\"]){position:relative;height:0!important;min-height:0!important;margin:0!important;padding:0!important}#header:has(~#content[data-page-href*=\"/changelog\"])>*{margin:0!important}#header:has(~#content[data-page-href*=\"/changelog\"]) .prose{display:none}#header:has(~#content[data-page-href*=\"/changelog\"]) #page-context-menu{position:absolute!important;right:0;top:0;z-index:10}#content[data-page-href*=\"/changelog\"]{margin-top:0!important}#content[data-page-href*=\"/changelog\"]>.update-container:first-of-type{padding-top:0!important}#content[data-page-href*=\"/changelog\"] [data-component-part=\"update-content\"]>h2:first-of-type{font-size:2rem;line-height:1.25;font-weight:700;letter-spacing:-0.025em;margin-top:0;margin-bottom:1.25rem;padding-inline-end:2.5rem}#content[data-page-href*=\"/changelog\"] [data-component-part=\"update-content\"]>h3{font-size:1.5rem;line-height:1.4;font-weight:600}@media (width \u003c 640px){#content[data-page-href*=\"/changelog\"] [data-component-part=\"update-content\"]>h2:first-of-type{font-size:1.75rem}}html:not(.dark){--primary: 19 20 21;--primary-light: 19 20 21;--primary-dark: 19 20 21}.dark{--primary: 249 250 251;--primary-light: 249 250 251;--primary-dark: 249 250 251}#banner{background:rgb(var(--primary))!important}@layer utilities{html:not(.dark) #banner,html:not(.dark) #banner *{color:rgb(249, 250, 251)!important}html:not(.dark) #banner a{color:rgb(249, 250, 251)!important;text-decoration-color:rgba(249, 250, 251, 0.7)!important}.dark #banner,.dark #banner *{color:rgb(19, 20, 21)!important}.dark #banner a{color:rgb(19, 20, 21)!important;text-decoration-color:rgba(19, 20, 21, 0.35)!important}}[data-component-part=\"update-label\"]{background:rgba(17, 17, 17, 0.08)!important;color:#111111!important;border:1px solid rgba(17, 17, 17, 0.18)}.dark [data-component-part=\"update-label\"]{background:rgba(255, 255, 255, 0.1)!important;color:#f3f4f6!important;border-color:rgba(255, 255, 255, 0.25)}html[data-current-path*=\"/changelog\"] #table-of-contents .toc-item[data-changelog-active=\"true\"]>a,html[data-current-path*=\"/changelog\"] #table-of-contents .toc-item[data-active]>a,html[data-current-path*=\"/changelog\"] #table-of-contents .toc-item[data-active-deepest]>a{color:rgb(var(--primary))!important;font-weight:600}html[data-current-path*=\"/changelog\"] #table-of-contents .toc-item[data-changelog-active=\"true\"]::before,html[data-current-path*=\"/changelog\"] #table-of-contents .toc-item[data-active]::before,html[data-current-path*=\"/changelog\"] #table-of-contents .toc-item[data-active-deepest]::before{content:\"\";position:absolute;left:-12px;top:6px;bottom:6px;width:3px;border-radius:999px;background:rgb(var(--primary))}html.dark[data-current-path*=\"/changelog\"] #table-of-contents .toc-item[data-changelog-active=\"true\"]>a,html.dark[data-current-path*=\"/changelog\"] #table-of-contents .toc-item[data-active]>a,html.dark[data-current-path*=\"/changelog\"] #table-of-contents .toc-item[data-active-deepest]>a{color:rgb(var(--primary))!important}.callout[data-callout-type=\"note\"]{border-color:rgba(96, 165, 250, 0.45)!important;background:rgba(239, 246, 255, 0.9)!important}.callout[data-callout-type=\"note\"] [data-component-part=\"callout-icon\"] svg{color:rgb(59, 130, 246)!important}.callout[data-callout-type=\"note\"] [data-component-part=\"callout-content\"]{color:rgb(30, 64, 175)!important}.callout[data-callout-type=\"note\"] [data-component-part=\"callout-content\"] strong,.callout[data-callout-type=\"note\"] [data-component-part=\"callout-content\"] a,.callout[data-callout-type=\"note\"] [data-component-part=\"callout-content\"] code,.callout[data-callout-type=\"note\"] [data-component-part=\"callout-content\"] p,.callout[data-callout-type=\"note\"] [data-component-part=\"callout-content\"] li,.callout[data-callout-type=\"note\"] [data-component-part=\"callout-content\"] span{color:inherit!important}.dark .callout[data-callout-type=\"note\"]{border-color:rgba(96, 165, 250, 0.35)!important;background:rgba(30, 58, 138, 0.22)!important}.dark .callout[data-callout-type=\"note\"] [data-component-part=\"callout-icon\"] svg{color:rgb(147, 197, 253)!important}.dark .callout[data-callout-type=\"note\"] [data-component-part=\"callout-content\"]{color:rgb(219, 234, 254)!important}.docs-screenshot{display:block;height:auto;max-width:100%;margin:1.5rem auto;overflow:hidden;vertical-align:middle;border:1px solid rgba(15, 23, 42, 0.08);border-radius:14px;width:auto}.dark .docs-screenshot{border-color:rgba(255, 255, 255, 0.12)}.docs-inline-icon{display:inline-block;width:1.4em;height:1.4em;margin:0 0.1em;vertical-align:-0.35em}.dark .docs-inline-icon{filter:invert(1)}@media (max-width: 640px){.docs-screenshot{margin:1.25rem auto;border-radius:12px}}@media (min-width: 1024px){#localization-select-trigger{position:fixed!important;bottom:16px!important;right:16px!important;left:auto!important;z-index:50!important}}"}],"page":{"pagePath":"en/deploy/oidc","slug":"/en/deploy/oidc","pageMetadata":{"title":"Configure OIDC login for a self-hosted instance","description":"Configure OpenID Connect (OIDC) authentication for your self-hosted Teable instance.","sidebarTitle":"OIDC Single Sign-On","href":"/en/deploy/oidc"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Configure OpenID Connect (OIDC) authentication for your self-hosted Teable instance.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,hr:`hr`,li:`li`,ol:`ol`,p:`p`,pre:`pre`,span:`span`,strong:`strong`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,ul:`ul`,..._provideComponents(),...props.components},{CodeBlock,Heading,Table,Warning}=_components;if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Table)_missingMdxReference(`Table`,true);if(!Warning)_missingMdxReference(`Warning`,true);return _jsxs(_Fragment,{children:[_jsx(_components.p,{children:`Teable supports OIDC single sign-on, allowing you to integrate with external identity providers for user authentication.`}),`\n`,_jsx(Heading,{level:`2`,id:`environment-variables`,children:`Environment Variables`}),`\n`,_jsx(_components.p,{children:`To enable OIDC in your self-hosted Teable, configure these environment variables:`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`16`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`16`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`# Core OIDC Configuration`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`BACKEND_OIDC_CLIENT_ID`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`your_client_id`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`BACKEND_OIDC_CLIENT_SECRET`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`your_client_secret`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`BACKEND_OIDC_CALLBACK_URL`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`https://your-teable-domain.com/api/auth/oidc/callback`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`# OAuth Endpoints (from your IdP)`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`BACKEND_OIDC_AUTHORIZATION_URL`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`https://your-idp.com/authorize`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`BACKEND_OIDC_TOKEN_URL`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`https://your-idp.com/token`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`BACKEND_OIDC_USER_INFO_URL`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`https://your-idp.com/userinfo`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`BACKEND_OIDC_ISSUER`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`https://your-idp.com`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`# Additional Options`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`BACKEND_OIDC_OTHER`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`{`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`\"scope\"`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#DCDCAA`},children:`:`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`[`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`\"email\"`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`,`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`\"profile\"`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`]}`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`# Enable OIDC as auth provider`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`SOCIAL_AUTH_PROVIDERS`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`oidc`})]}),`\n`]})})}),`\n`,_jsx(Heading,{level:`2`,id:`configuration-reference`,children:`Configuration Reference`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Variable`}),_jsx(_components.th,{children:`Description`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`BACKEND_OIDC_CLIENT_ID`})}),_jsx(_components.td,{children:`Client ID from your identity provider`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`BACKEND_OIDC_CLIENT_SECRET`})}),_jsx(_components.td,{children:`Client secret from your identity provider`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`BACKEND_OIDC_CALLBACK_URL`})}),_jsx(_components.td,{children:`Teable’s callback URL (must match IdP configuration)`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`BACKEND_OIDC_AUTHORIZATION_URL`})}),_jsx(_components.td,{children:`IdP’s authorization endpoint`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`BACKEND_OIDC_TOKEN_URL`})}),_jsx(_components.td,{children:`IdP’s token endpoint`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`BACKEND_OIDC_USER_INFO_URL`})}),_jsx(_components.td,{children:`IdP’s user info endpoint`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`BACKEND_OIDC_ISSUER`})}),_jsx(_components.td,{children:`IdP’s issuer identifier`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`BACKEND_OIDC_OTHER`})}),_jsx(_components.td,{children:`Additional options in JSON format (e.g., scopes)`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`SOCIAL_AUTH_PROVIDERS`})}),_jsxs(_components.td,{children:[`Include `,_jsx(_components.code,{children:`oidc`}),` to enable OIDC login button`]})]})]})]}),`\n`,_jsx(Heading,{level:`2`,id:`enabling-multiple-auth-providers`,children:`Enabling Multiple Auth Providers`}),`\n`,_jsx(_components.p,{children:`You can enable multiple authentication methods:`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`1`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`SOCIAL_AUTH_PROVIDERS`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`github,google,oidc`})]}),`\n`]})})}),`\n`,_jsx(_components.p,{children:`This allows users to log in via GitHub, Google, or your OIDC provider.`}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`identity-provider-security-requirements`,children:`Identity Provider Security Requirements`}),`\n`,_jsxs(_components.p,{children:[`Teable trusts the email address returned by your IdP and uses it to automatically link OIDC logins to existing accounts with the same email. The identity provider you connect `,_jsx(_components.strong,{children:`must guarantee that user email addresses are verified`}),`.`]}),`\n`,_jsx(Warning,{children:_jsx(_components.p,{children:`Do not connect identity providers that let users set arbitrary, unverified email addresses (for example, multi-tenant IdPs with open registration). On such providers, an attacker can register an account using the email address of an existing user on your instance and take over that account by signing in via OIDC. This risk is especially acute when local password login is also enabled on the same instance.`})}),`\n`,_jsx(_components.p,{children:`Recommendations:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`Only connect enterprise-grade IdPs under your control (such as Okta, Azure Entra ID, Google Workspace, or Keycloak) with email verification enabled.`}),`\n`,_jsxs(_components.li,{children:[`If your instance uses SSO exclusively, set `,_jsx(_components.a,{href:`/en/deploy/env`,children:_jsx(_components.code,{children:`PASSWORD_LOGIN_DISABLED=true`})}),` to disable local password login and further reduce the attack surface.`]}),`\n`]}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`important-notes`,children:`Important Notes`}),`\n`,_jsxs(_components.ol,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`HTTPS Required`}),`: All URLs must use HTTPS in production`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Callback URL Must Match`}),`: The callback URL in Teable must exactly match what’s configured in your IdP`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Restart Required`}),`: After changing environment variables, restart Teable for changes to take effect`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Secure Storage`}),`: Never commit secrets to version control; use environment variables or secret managers`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`IdP Must Verify Emails`}),`: See `,_jsx(_components.a,{href:`#identity-provider-security-requirements`,children:`Identity Provider Security Requirements`}),` above`]}),`\n`]}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`related-documentation`,children:`Related Documentation`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:_jsx(_components.a,{href:`/en/deploy/env`,children:`Environment Variables Reference`})}),`\n`]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Configure OIDC login for a self-hosted instance","description":"Configure OpenID Connect (OIDC) authentication for your self-hosted Teable instance.","sidebarTitle":"OIDC Single Sign-On","href":"/en/deploy/oidc"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Environment Variables","slug":"environment-variables","depth":2,"children":[]},{"title":"Configuration Reference","slug":"configuration-reference","depth":2,"children":[]},{"title":"Enabling Multiple Auth Providers","slug":"enabling-multiple-auth-providers","depth":2,"children":[]},{"title":"Identity Provider Security Requirements","slug":"identity-provider-security-requirements","depth":2,"children":[]},{"title":"Important Notes","slug":"important-notes","depth":2,"children":[]},{"title":"Related Documentation","slug":"related-documentation","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":["/_mintlify/custom/teablecn/00e327112fed3559/changelog-toc.js","/_mintlify/custom/teablecn/52b6025e1e6e9c39/language-route.js","/_mintlify/custom/teablecn/58987b414332357e/help-link-tracking.js"],"subdomain":"teablecn","siteName":"Teable","title":"Configure OIDC login for a self-hosted instance - Teable","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{"en":{"href":"/en/deploy/oidc","matchLevel":0},"zh":{"href":"/zh/deploy/oidc","matchLevel":1},"ru":{"href":"/ru/deploy/oidc","matchLevel":1},"de":{"href":"/de/deploy/oidc","matchLevel":1},"fr":{"href":"/fr/deploy/oidc","matchLevel":1},"es":{"href":"/es/deploy/oidc","matchLevel":1},"it":{"href":"/it/deploy/oidc","matchLevel":1},"ja":{"href":"/ja/deploy/oidc","matchLevel":1},"tr":{"href":"/tr/deploy/oidc","matchLevel":1},"uk":{"href":"/uk/deploy/oidc","matchLevel":1},"ar":{"href":"/ar/deploy/oidc","matchLevel":1}}},"lastModified":"2026-10-21T12:04:21.247Z","gitLastModified":"2026-10-21T12:01:58.000Z","originalFileLocation":"en/deploy/oidc.mdx","locale":"en"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Configure OpenID Connect (OIDC) authentication for your self-hosted Teable instance.\">\u003cmeta data-mint-head name=\"keywords\" content=\"database, app builder, AI, no-code, low-code, Airtable alternative, PostgreSQL, automation\">\u003cmeta data-mint-head name=\"application-name\" content=\"Teable\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/teablecn/rUjbOrtkw4E-Xgfe/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/teablecn/rUjbOrtkw4E-Xgfe/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/teablecn/rUjbOrtkw4E-Xgfe/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/teablecn/rUjbOrtkw4E-Xgfe/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/teablecn/rUjbOrtkw4E-Xgfe/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/teablecn/rUjbOrtkw4E-Xgfe/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/teablecn/rUjbOrtkw4E-Xgfe/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/teablecn/rUjbOrtkw4E-Xgfe/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/teablecn/rUjbOrtkw4E-Xgfe/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Configure OIDC login for a self-hosted instance - Teable\">\u003cmeta data-mint-head property=\"og:description\" content=\"Configure OpenID Connect (OIDC) authentication for your self-hosted Teable instance.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Teable\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://help.teable.ai/en/deploy/oidc\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://teable.ai/assets/images/og-image.png\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Configure OIDC login for a self-hosted instance - Teable\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Configure OpenID Connect (OIDC) authentication for your self-hosted Teable instance.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://teable.ai/assets/images/og-image.png\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/teablecn/rUjbOrtkw4E-Xgfe/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Teable\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#131415\">\u003clink data-mint-head rel=\"canonical\" href=\"https://help.teable.ai/en/deploy/oidc\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/en/deploy/oidc.md\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"en\" href=\"https://help.teable.ai/en/deploy/oidc\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"zh\" href=\"https://help.teable.ai/zh/deploy/oidc\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"ru\" href=\"https://help.teable.ai/ru/deploy/oidc\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"de\" href=\"https://help.teable.ai/de/deploy/oidc\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"fr\" href=\"https://help.teable.ai/fr/deploy/oidc\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"es\" href=\"https://help.teable.ai/es/deploy/oidc\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"it\" href=\"https://help.teable.ai/it/deploy/oidc\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"ja\" href=\"https://help.teable.ai/ja/deploy/oidc\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"tr\" href=\"https://help.teable.ai/tr/deploy/oidc\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"uk\" href=\"https://help.teable.ai/uk/deploy/oidc\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"ar\" href=\"https://help.teable.ai/ar/deploy/oidc\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"x-default\" href=\"https://help.teable.ai/en/deploy/oidc\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://help.teable.ai/#organization\",\"name\":\"Teable\",\"url\":\"https://help.teable.ai\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/teablecn/Sov59EnEPMakaGyj/images/teable-logo-full.png?fit=max\u0026auto=format\u0026n=Sov59EnEPMakaGyj\u0026q=85\u0026s=24e1fe49258a9a8f76eaec5792623926\"}},{\"@type\":\"WebSite\",\"@id\":\"https://help.teable.ai#website\",\"name\":\"Teable\",\"url\":\"https://help.teable.ai\",\"publisher\":{\"@id\":\"https://help.teable.ai/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://help.teable.ai/en/deploy/oidc#webpage\",\"url\":\"https://help.teable.ai/en/deploy/oidc\",\"name\":\"Configure OIDC login for a self-hosted instance\",\"description\":\"Configure OpenID Connect (OIDC) authentication for your self-hosted Teable instance.\",\"dateModified\":\"2026-10-21T12:01:58.000Z\",\"isPartOf\":{\"@id\":\"https://help.teable.ai#website\"},\"breadcrumb\":{\"@id\":\"https://help.teable.ai/en/deploy/oidc#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://help.teable.ai/en/deploy/oidc#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Configuration\",\"item\":\"https://help.teable.ai/en/deploy/env\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Configure OIDC login for a self-hosted instance\",\"item\":\"https://help.teable.ai/en/deploy/oidc\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://help.teable.ai/en/deploy/oidc#article\",\"headline\":\"Configure OIDC login for a self-hosted instance\",\"name\":\"Configure OIDC login for a self-hosted instance\",\"description\":\"Configure OpenID Connect (OIDC) authentication for your self-hosted Teable instance.\",\"url\":\"https://help.teable.ai/en/deploy/oidc\",\"mainEntityOfPage\":{\"@id\":\"https://help.teable.ai/en/deploy/oidc#webpage\"},\"image\":\"https://teable.ai/assets/images/og-image.png\",\"dateModified\":\"2026-10-21T12:01:58.000Z\",\"publisher\":{\"@id\":\"https://help.teable.ai/#organization\"},\"isPartOf\":{\"@id\":\"https://help.teable.ai#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Teable\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Teable","nav":{"global":null,"languages":[{"language":"en","banner":{"content":"🚀 Teable is now on the App Store and Google Play. See our [changelog](/en/changelog#oct-30-2026) for details.","dismissible":true},"navbar":{"links":[{"icon":"comment","href":"https://community.teable.ai/","label":"Support"}]},"tabs":[{"tab":"Docs","pages":[{"title":"Docs","href":"/en"}]},{"tab":"Self-hosted","groups":[{"group":"Self-Hosted License","pages":[{"title":"Subscribe to and activate a self-hosted license","sidebarTitle":"Subscribe and Activate License","href":"/en/deploy/activate"}]},{"group":"Quick Start","pages":[{"title":"Cloud or self-hosted: choose a deployment option","sidebarTitle":"Deployment","href":"/en/deploy/choose"},{"title":"Self-hosted architecture: app, AI and runtime services","sidebarTitle":"Architecture","href":"/en/deploy/architecture"},{"title":"Deploy a standalone instance with Docker Compose","sidebarTitle":"Docker Deployment","href":"/en/deploy/docker"}]},{"group":"System Admin","pages":[{"title":"Self-hosted System Admin: users, spaces and settings","sidebarTitle":"Self-hosted System Admin","href":"/en/basic/admin-panel/overview"},{"title":"Admin user management: accounts and access","sidebarTitle":"Instance users","href":"/en/basic/admin-panel/users"},{"title":"Admin space management: auto-join and deletion","sidebarTitle":"Spaces","href":"/en/basic/admin-panel/spaces"},{"title":"BYODB: separate PostgreSQL storage for a space","sidebarTitle":"Database Tenant","href":"/en/basic/admin-panel/database-tenant"},{"title":"Admin templates: create and manage project templates","sidebarTitle":"Template Admin","href":"/en/basic/admin-panel/template-admin"},{"title":"Instance settings: accounts, email and system limits","sidebarTitle":"Instance Settings","href":"/en/basic/admin-panel/settings"},{"title":"Configure AI for a self-hosted instance","sidebarTitle":"Instance AI settings","href":"/en/basic/admin-panel/ai-setting"},{"title":"Publish and manage instance-wide AI skills","sidebarTitle":"Skills","href":"/en/basic/admin-panel/skills"},{"title":"Monitor automation runs across an instance","sidebarTitle":"Workflow monitoring","href":"/en/basic/admin-panel/automation-management"},{"title":"Table search and indexes: diagnose slow queries","sidebarTitle":"Table Query Ops","href":"/en/basic/admin-panel/table-query-ops"},{"title":"Computed field queue: diagnose stalled calculations","sidebarTitle":"Computed Outbox","href":"/en/basic/admin-panel/computed-outbox"},{"title":"AI generation queue: monitor and recover tasks","sidebarTitle":"AI Generation Queue","href":"/en/basic/admin-panel/ai-generation-queue"},{"title":"Schema integrity: check and repair field structure","sidebarTitle":"Schema integrity","href":"/en/basic/admin-panel/schema-integrity"},{"title":"Admin audit log: trace and filter instance activity","sidebarTitle":"Audit log","href":"/en/basic/admin-panel/audit-log"},{"title":"Admin announcements: publish and target messages","sidebarTitle":"Announcements","href":"/en/basic/admin-panel/announcements"},{"title":"Sandbox Agent: runtime limits and resources","sidebarTitle":"Sandbox Agent","href":"/en/basic/admin-panel/sandbox-agent"}]},{"group":"Configuration","pages":[{"title":"Self-hosted environment variable reference","mode":"wide","sidebarTitle":"Environment Variables","href":"/en/deploy/env"},{"title":"Configure SMTP for self-hosted email delivery","description":"Set up notification and automation email in System Admin or environment variables. Configure SMTP, test delivery and check configuration priority.","sidebarTitle":"Configure Email Service","href":"/en/deploy/email"},{"title":"Configure OIDC login for a self-hosted instance","sidebarTitle":"OIDC Single Sign-On","href":"/en/deploy/oidc"},{"title":"Nginx reverse proxy: HTTPS and WebSocket setup","description":"Recommended Nginx reverse proxy setup for Teable: HTTPS (certificates), WebSocket, Docker tips, and Nginx Proxy Manager.","sidebarTitle":"Nginx (Reverse Proxy)","href":"/en/deploy/nginx"},{"title":"Custom domains for published apps on self-hosted Teable","sidebarTitle":"App Domains","href":"/en/deploy/app-domains"}]},{"group":"Compliance \u0026 Telemetry","pages":[{"title":"Self-hosted telemetry: reported data and opt-out","sidebarTitle":"Telemetry","href":"/en/deploy/telemetry"}]},{"group":"Maintenance","pages":[{"title":"Upgrade a self-hosted instance: versions and backups","sidebarTitle":"Version Upgrade","href":"/en/deploy/upgrade"}]},{"group":"Deprecated","pages":[{"title":"One-click deployment templates (deprecated)","sidebarTitle":"One-Click Cloud Deployment (Deprecated)","href":"/en/deploy/one-key"},{"title":"Enable the legacy Standalone Dashboard","sidebarTitle":"Enable Standalone Dashboard","href":"/en/deploy/dashboard"}]}]},{"tab":"API","pages":[{"title":"API","href":"/en/api-doc/overview"}]},{"tab":"Security","pages":[{"title":"Security","href":"/en/basic/security"}]},{"tab":"Changelog","pages":[{"title":"Changelog","href":"/en/changelog"}]}]},{"language":"zh","banner":{"content":"🚀 Teable 正式上架 App Store 和 Google Play。 查看[更新日志](/zh/changelog#2026-10-30)了解详情。","dismissible":true},"navbar":{"links":[{"icon":"comment","href":"https://community.teable.ai/","label":"支持"}]},"pages":[{"title":"zh","href":"/zh/deploy/oidc"}]},{"language":"ru","banner":{"content":"🚀 Teable теперь в App Store и Google Play. Подробнее в [журнале изменений](/ru/changelog#30-октября-2026-г).","dismissible":true},"navbar":{"links":[{"icon":"comment","href":"https://community.teable.ai/","label":"Поддержка"}]},"pages":[{"title":"ru","href":"/ru/deploy/oidc"}]},{"language":"de","banner":{"content":"🚀 Teable ist jetzt im App Store und bei Google Play. Mehr im [Changelog](/de/changelog#30-oktober-2026).","dismissible":true},"navbar":{"links":[{"icon":"comment","href":"https://community.teable.ai/","label":"Support"}]},"pages":[{"title":"de","href":"/de/deploy/oidc"}]},{"language":"fr","banner":{"content":"🚀 Teable est disponible sur l’App Store et Google Play. Consultez le [journal des modifications](/fr/changelog#30-octobre-2026) pour en savoir plus.","dismissible":true},"navbar":{"links":[{"icon":"comment","href":"https://community.teable.ai/","label":"Assistance"}]},"pages":[{"title":"fr","href":"/fr/deploy/oidc"}]},{"language":"es","banner":{"content":"🚀 Teable ya está en la App Store y Google Play. Consulta el [registro de cambios](/es/changelog#30-oct-2026) para conocer los detalles.","dismissible":true},"navbar":{"links":[{"icon":"comment","href":"https://community.teable.ai/","label":"Soporte"}]},"pages":[{"title":"es","href":"/es/deploy/oidc"}]},{"language":"it","banner":{"content":"🚀 Teable è ora su App Store e Google Play. Leggi il [registro delle modifiche](/it/changelog#30-ott-2026) per i dettagli.","dismissible":true},"navbar":{"links":[{"icon":"comment","href":"https://community.teable.ai/","label":"Supporto"}]},"pages":[{"title":"it","href":"/it/deploy/oidc"}]},{"language":"ja","banner":{"content":"🚀 Teable が App Store と Google Play に登場。 詳しくは[更新履歴](/ja/changelog#2026年10月30日)をご覧ください。","dismissible":true},"navbar":{"links":[{"icon":"comment","href":"https://community.teable.ai/","label":"サポート"}]},"pages":[{"title":"ja","href":"/ja/deploy/oidc"}]},{"language":"tr","banner":{"content":"🚀 Teable artık App Store ve Google Play’de. Ayrıntılar için [değişiklik günlüğüne](/tr/changelog#30-ekim-2026) bakın.","dismissible":true},"navbar":{"links":[{"icon":"comment","href":"https://community.teable.ai/","label":"Destek"}]},"pages":[{"title":"tr","href":"/tr/deploy/oidc"}]},{"language":"uk","banner":{"content":"🚀 Teable тепер в App Store і Google Play. Докладніше в [журналі змін](/uk/changelog#30-жовтня-2026).","dismissible":true},"navbar":{"links":[{"icon":"comment","href":"https://community.teable.ai/","label":"Підтримка"}]},"pages":[{"title":"uk","href":"/uk/deploy/oidc"}]},{"language":"ar","banner":{"content":"🚀 Teable متاح الآن على App Store وGoogle Play. راجع [سجل التغييرات](/ar/changelog#30-أكتوبر-2026) للتفاصيل.","dismissible":true},"navbar":{"links":[{"icon":"comment","href":"https://community.teable.ai/","label":"الدعم"}]},"pages":[{"title":"ar","href":"/ar/deploy/oidc"}]}]},"basePath":"","title":"Configure OIDC login for a self-hosted instance - Teable","buildId":"dpl_DTau1J5HqS9UTgVSDwGksstFWtPa","deploymentId":"dpl_DTau1J5HqS9UTgVSDwGksstFWtPa","dynamics":["10e4515597"],"chunks":["BannerMarkdown-Cj6eAYhz.js","dist-CdrJecqK.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","clsx-D-TRO5q5.js","html-void-elements-mCSPHezU.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js"]}