FastGPT/docs/guide/admin/sso/index.html

299 lines
86 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!doctype html><script>(function(e,t,n,s,o){e[s]=e[s]||[],e[s].push({"gtm.start":(new Date).getTime(),event:"gtm.js"});var a=t.getElementsByTagName(n)[0],i=t.createElement(n),r=s!="dataLayer"?"&l="+s:"";i.async=!0,i.src="https://www.googletagmanager.com/gtm.js?id="+o+r,a.parentNode.insertBefore(i,a)})(window,document,"script","dataLayer","GTM-W9HPZZ22")</script><html lang=zh-cn><head><meta charset=utf-8><title>SSO & 外部成员同步 | FastGPT</title><meta name=viewport content="width=device-width,initial-scale=1"><meta name=description content="FastGPT 外部成员系统接入设计与配置"><meta name=keywords content="Documentation,Hugo,Hugo Theme,Bootstrap"><meta name=author content="Colin Wilson - Lotus Labs"><meta name=email content="support@aigis.uk"><meta name=website content="https://lotusdocs.dev"><meta name=Version content="v0.1.0"><link rel=icon href=https://doc.tryfastgpt.ai/favicon.ico sizes=any><link rel=icon type=image/svg+xml href=https://doc.tryfastgpt.ai/favicon.svg><link rel=apple-touch-icon sizes=180x180 href=https://doc.tryfastgpt.ai/apple-touch-icon.png><link rel=icon type=image/png sizes=32x32 href=https://doc.tryfastgpt.ai/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=https://doc.tryfastgpt.ai/favicon-16x16.png><link rel=manifest crossorigin=use-credentials href=https://doc.tryfastgpt.ai/site.webmanifest><meta property="og:title" content="SSO & 外部成员同步"><meta property="og:description" content="FastGPT 外部成员系统接入设计与配置"><meta property="og:type" content="article"><meta property="og:url" content="https://doc.tryfastgpt.ai/docs/guide/admin/sso/"><meta property="og:image" content="https://doc.tryfastgpt.ai/opengraph/card-base-2_hu06b1a92291a380a0d2e0ec03dab66b2f_17642_filter_3574344472212324221.png"><meta property="article:section" content="docs"><meta name=twitter:card content="summary_large_image"><meta name=twitter:image content="https://doc.tryfastgpt.ai/opengraph/card-base-2_hu06b1a92291a380a0d2e0ec03dab66b2f_17642_filter_3574344472212324221.png"><meta name=twitter:title content="SSO & 外部成员同步"><meta name=twitter:description content="FastGPT 外部成员系统接入设计与配置"><script>(()=>{var t=window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches,e=localStorage.getItem("theme");t&&e===null&&(localStorage.setItem("theme","dark"),document.documentElement.setAttribute("data-dark-mode","")),t&&e==="dark"&&document.documentElement.setAttribute("data-dark-mode",""),e==="dark"&&document.documentElement.setAttribute("data-dark-mode","")})()</script><link rel=preconnect href=https://gstatic.loli.net/><link rel=preconnect href=https://gstatic.loli.net/ crossorigin><link href="https://fonts.loli.net/css?family=Inter:300,400,600,700|Fira+Code:500,700|JetBrains+Mono:500,700&display=block" rel=stylesheet><link rel=stylesheet href=/docs/scss/style.min.0ec826a837202d1bb0cc402457fc3b09de1d00673bd1fea8591ce85da15706ba66db8c4b0243747a2179524215798bcd.css integrity=sha384-DsgmqDcgLRuwzEAkV/w7Cd4dAGc70f6oWRzoXaFXBrpm24xLAkN0eiF5UkIVeYvN crossorigin=anonymous><script data-id=umami-script async src=https://umami.fastgpt.in/fastgpt data-website-id=69b3f2c6-39a5-4937-b92d-6fdd5c8f5958></script><script type=text/javascript>document.querySelector('script[data-id="umami-script"]').addEventListener("load",function(){const e=document.head.querySelector('meta[property = "og:type"]').getAttribute("content");let t=document.head.querySelector('meta[property = "og:title"]').getAttribute("content"),n=document.head.querySelector('meta[property = "og:url"]').getAttribute("content");umami.track(e+":"+t,{url:n})})</script><script defer>function loadAnalyticsScript(){var e=document.createElement("script");e.async=!0,e.src="https://gaxy.fastgpt.in/gtag/js?id=G-KGYF44Y7TT",document.head.appendChild(e),window.dataLayer=window.dataLayer||[];function t(){dataLayer.push(arguments)}t("js",new Date),t("config","G-KGYF44Y7TT"),window.removeEventListener("scroll",onScrollLoadAnalytics)}function onScrollLoadAnalytics(){window.scrollY>100&&loadAnalyticsScript()}window.addEventListener("scroll",onScrollLoadAnalytics)</script><script defer>function loadScriptOnScroll(){var e,t,n,s=window.scrollY||window.pageYOffset;s>100&&(n=n||[],e=document.createElement("script"),e.src="https://hm.baidu.com/hm.js?537c7867df8f9ae2e7147284ec0dbfdd",t=document.getElementsByTagName("script")[0],t.parentNode.insertBefore(e,t),window.removeEventListener("scroll",loadScriptOnScroll))}window.addEventListener("scroll",loadScriptOnScroll)</script><script defer>function loadClarityScript(){(function(e,t,n,s,o,i,a){e[n]=e[n]||function(){(e[n].q=e[n].q||[]).push(arguments)},i=t.createElement(s),i.async=1,i.src="https://www.clarity.ms/tag/"+o,a=t.getElementsByTagName(s)[0],a.parentNode.insertBefore(i,a)})(window,document,"clarity","script","mjgug8s1pf"),window.removeEventListener("scroll",onScrollLoadClarity)}function onScrollLoadClarity(){window.scrollY>100&&loadClarityScript()}window.addEventListener("scroll",onScrollLoadClarity)</script><link rel=preload href=https://cdn.jsdelivr.net/npm/lxgw-wenkai-screen-webfont@1.1.0/style.css as=style><link rel=stylesheet href=https://cdn.jsdelivr.net/npm/lxgw-wenkai-screen-webfont@1.1.0/style.css></head><body><noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-W9HPZZ22" height=0 width=0 style=display:none;visibility:hidden></iframe></noscript><div class=content><div class="page-wrapper toggled"><nav id=sidebar class=sidebar-wrapper><div class=sidebar-brand><a href=https://tryfastgpt.ai/ aria-label=HomePage alt=HomePage style=text-transform:unset><svg width="26" height="26" viewBox="0 0 1041 1348" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M340.837.33933 681.068.338989V.455643C684.032.378397 686.999.339702 689.967.339702 735.961.3397 781.504 9.62899 823.997 27.6772 866.49 45.7254 905.099 72.1791 937.622 105.528 970.144 138.877 995.942 178.467 1013.54 222.04 1031.14 265.612 1040.2 312.312 1040.2 359.474H340.836V1347.84C296.157 1347.84 251.914 1338.55 210.636 1320.49 169.357 1302.43 131.85 1275.95 100.257 1242.58 68.6636 1209.21 43.6023 1169.59 26.5041 1125.99 11.3834 1087.43 2.75216 1046.42.957956 1004.81H.605869L.605897 368.098H.70363c-.597878-26.267 1.53378-52.655 6.43943-78.687C20.2709 219.745 52.6748 155.754 100.257 105.528 147.839 55.3017 208.462 21.0975 274.461 7.24017 296.426 2.62833 318.657.339101 340.837.33933z" fill="url(#paint0_linear_1172_228)"/><path d="M633.639 904.645H513.029V576.37H635.422V576.377C678.161 576.607 720.454 585.093 759.951 601.37 799.997 617.874 836.384 642.064 867.033 672.559c30.65 30.495 54.963 66.698 71.55 106.542C955.171 818.944 963.709 861.648 963.709 904.775H633.639V904.645z" fill="url(#paint1_linear_1172_228)"/><defs><linearGradient id="paint0_linear_1172_228" x1="520.404" y1=".338989" x2="520.404" y2="1347.84" gradientUnits="userSpaceOnUse"><stop stop-color="#326dff"/><stop offset="1" stop-color="#8eaeff"/></linearGradient><linearGradient id="paint1_linear_1172_228" x1="738.369" y1="576.37" x2="738.369" y2="904.775" gradientUnits="userSpaceOnUse"><stop stop-color="#326dff"/><stop offset="1" stop-color="#8eaeff"/></linearGradient></defs></svg>&nbsp;
FastGPT</a></div><div class=sidebar-content style="height:calc(100% - 131px)"><ul class=sidebar-menu><li><a class=sidebar-root-link href=https://doc.tryfastgpt.ai/docs/intro/><i class="material-icons me-2">rocket_launch</i>
快速了解 FastGPT</a></li><li class="sidebar-dropdown current active"><button class=btn>
<i class="material-icons me-2">import_contacts</i>
功能介绍</button><div class="sidebar-submenu d-block"><ul><li class="sidebar-dropdown nested"><button class=btn>
基础教程</button><div class=sidebar-submenu><ul><li><a class=sidebar-nested-link href=https://doc.tryfastgpt.ai/docs/guide/course/quick-start/>快速上手</a></li><li><a class=sidebar-nested-link href=https://doc.tryfastgpt.ai/docs/guide/course/ai_settings/>AI 相关参数配置说明</a></li><li><a class=sidebar-nested-link href=https://doc.tryfastgpt.ai/docs/guide/course/chat_input_guide/>对话问题引导</a></li><li><a class=sidebar-nested-link href=https://doc.tryfastgpt.ai/docs/guide/course/collection_tags/>知识库集合标签</a></li><li><a class=sidebar-nested-link href=https://doc.tryfastgpt.ai/docs/guide/course/fileinput/>文件输入功能介绍</a></li></ul></div></li><li class="sidebar-dropdown nested"><button class=btn>
工作台</button><div class=sidebar-submenu><ul><li><a class=sidebar-nested-link href=https://doc.tryfastgpt.ai/docs/guide/dashboard/basic-mode/>简易模式</a></li><li><a class=sidebar-nested-link href=https://doc.tryfastgpt.ai/docs/guide/dashboard/intro/>工作流&插件</a></li><li class="sidebar-dropdown nested"><button class=btn>
工作流节点</button><div class=sidebar-submenu><ul><li><a class=sidebar-nested-link href=https://doc.tryfastgpt.ai/docs/guide/dashboard/workflow/ai_chat/>AI 对话</a></li><li><a class=sidebar-nested-link href=https://doc.tryfastgpt.ai/docs/guide/dashboard/workflow/dataset_search/>知识库搜索</a></li><li><a class=sidebar-nested-link href=https://doc.tryfastgpt.ai/docs/guide/dashboard/workflow/tool/>工具调用&终止</a></li><li><a class=sidebar-nested-link href=https://doc.tryfastgpt.ai/docs/guide/dashboard/workflow/question_classify/>问题分类</a></li><li><a class=sidebar-nested-link href=https://doc.tryfastgpt.ai/docs/guide/dashboard/workflow/content_extract/>文本内容提取</a></li><li><a class=sidebar-nested-link href=https://doc.tryfastgpt.ai/docs/guide/dashboard/workflow/user-selection/>用户选择</a></li><li><a class=sidebar-nested-link href=https://doc.tryfastgpt.ai/docs/guide/dashboard/workflow/form_input/>表单输入</a></li><li><a class=sidebar-nested-link href=https://doc.tryfastgpt.ai/docs/guide/dashboard/workflow/text_editor/>文本拼接</a></li><li><a class=sidebar-nested-link href=https://doc.tryfastgpt.ai/docs/guide/dashboard/workflow/reply/>指定回复</a></li><li><a class=sidebar-nested-link href=https://doc.tryfastgpt.ai/docs/guide/dashboard/workflow/document_parsing/>文档解析</a></li><li><a class=sidebar-nested-link href=https://doc.tryfastgpt.ai/docs/guide/dashboard/workflow/http/>HTTP 请求</a></li><li><a class=sidebar-nested-link href=https://doc.tryfastgpt.ai/docs/guide/dashboard/workflow/tfswitch/>判断器</a></li><li><a class=sidebar-nested-link href=https://doc.tryfastgpt.ai/docs/guide/dashboard/workflow/variable_update/>变量更新</a></li><li><a class=sidebar-nested-link href=https://doc.tryfastgpt.ai/docs/guide/dashboard/workflow/sandbox/>代码运行</a></li><li><a class=sidebar-nested-link href=https://doc.tryfastgpt.ai/docs/guide/dashboard/workflow/loop/>批量运行</a></li><li><a class=sidebar-nested-link href=https://doc.tryfastgpt.ai/docs/guide/dashboard/workflow/knowledge_base_search_merge/>知识库搜索引用合并</a></li><li><a class=sidebar-nested-link href=https://doc.tryfastgpt.ai/docs/guide/dashboard/workflow/coreferenceresolution/>问题优化</a></li><li><a class=sidebar-nested-link href=https://doc.tryfastgpt.ai/docs/guide/dashboard/workflow/laf/>Laf 函数调用</a></li><li><a class=sidebar-nested-link href=https://doc.tryfastgpt.ai/docs/guide/dashboard/workflow/custom_feedback/>自定义反馈</a></li></ul></div></li><li><a class=sidebar-nested-link href=https://doc.tryfastgpt.ai/docs/guide/dashboard/mcp_server/>MCP 服务</a></li><li><a class=sidebar-nested-link href=https://doc.tryfastgpt.ai/docs/guide/dashboard/mcp_tools/>MCP 工具集</a></li><li><a class=sidebar-nested-link href=https://doc.tryfastgpt.ai/docs/guide/dashboard/gapier/>使用 Gapier 快速导入Agent工具</a></li></ul></div></li><li class="sidebar-dropdown nested"><button class=btn>
系统插件</button><div class=sidebar-submenu><ul><li><a class=sidebar-nested-link href=https://doc.tryfastgpt.ai/docs/guide/plugins/how_to_submit_system_plugin/>如何提交系统插件</a></li><li><a class=sidebar-nested-link href=https://doc.tryfastgpt.ai/docs/guide/plugins/searxng_plugin_guide/>SearXNG 搜索插件配置与使用说明</a></li><li><a class=sidebar-nested-link href=https://doc.tryfastgpt.ai/docs/guide/plugins/google_search_plugin_guide/>Google 搜索插件填写说明</a></li><li><a class=sidebar-nested-link href=https://doc.tryfastgpt.ai/docs/guide/plugins/bing_search_plugin/>Bing 搜索插件填写说明</a></li><li><a class=sidebar-nested-link href=https://doc.tryfastgpt.ai/docs/guide/plugins/doc2x_plugin_guide/>Doc2x 插件填写说明</a></li></ul></div></li><li class="sidebar-dropdown nested"><button class=btn>
知识库</button><div class=sidebar-submenu><ul><li><a class=sidebar-nested-link href=https://doc.tryfastgpt.ai/docs/guide/knowledge_base/rag/>知识库基础原理介绍</a></li><li><a class=sidebar-nested-link href=https://doc.tryfastgpt.ai/docs/guide/knowledge_base/dataset_engine/>知识库搜索方案和参数</a></li><li><a class=sidebar-nested-link href=https://doc.tryfastgpt.ai/docs/guide/knowledge_base/api_dataset/>API 文件库</a></li><li><a class=sidebar-nested-link href=https://doc.tryfastgpt.ai/docs/guide/knowledge_base/lark_dataset/>飞书知识库</a></li><li><a class=sidebar-nested-link href=https://doc.tryfastgpt.ai/docs/guide/knowledge_base/yuque_dataset/>语雀文件库</a></li><li><a class=sidebar-nested-link href=https://doc.tryfastgpt.ai/docs/guide/knowledge_base/websync/>Web 站点同步</a></li><li><a class=sidebar-nested-link href=https://doc.tryfastgpt.ai/docs/guide/knowledge_base/externalfile/>外部文件知识库</a></li></ul></div></li><li class="sidebar-dropdown nested"><button class=btn>
团队与权限</button><div class=sidebar-submenu><ul><li><a class=sidebar-nested-link href=https://doc.tryfastgpt.ai/docs/guide/team_permissions/team_roles_permissions/>团队&成员组&权限</a></li><li><a class=sidebar-nested-link href=https://doc.tryfastgpt.ai/docs/guide/team_permissions/invitation_link/>邀请链接说明文档</a></li></ul></div></li><li class="sidebar-dropdown nested"><button class=btn>
对话框</button><div class=sidebar-submenu><ul><li><a class=sidebar-nested-link href=https://doc.tryfastgpt.ai/docs/guide/dialogboxes/htmlrendering/>对话框与HTML渲染</a></li><li><a class=sidebar-nested-link href=https://doc.tryfastgpt.ai/docs/guide/dialogboxes/quotelist/>知识库引用分块阅读器</a></li></ul></div></li><li class="sidebar-dropdown nested current active"><button class=btn>
商业版后台</button><div class="sidebar-submenu d-block"><ul><li class=current><a class=sidebar-nested-link href=https://doc.tryfastgpt.ai/docs/guide/admin/sso/>SSO & 外部成员同步</a></li><li><a class=sidebar-nested-link href=https://doc.tryfastgpt.ai/docs/guide/admin/teammode/>团队模式说明文档</a></li></ul></div></li></ul></div></li><li class=sidebar-dropdown><button class=btn>
<i class="material-icons me-2">cases</i>
使用案例</button><div class=sidebar-submenu><ul><li class="sidebar-dropdown nested"><button class=btn>
外部调用 FastGPT</button><div class=sidebar-submenu><ul><li><a class=sidebar-nested-link href=https://doc.tryfastgpt.ai/docs/use-cases/external-integration/openapi/>通过 API 访问应用</a></li><li><a class=sidebar-nested-link href=https://doc.tryfastgpt.ai/docs/use-cases/external-integration/feishu/>接入飞书机器人教程</a></li><li><a class=sidebar-nested-link href=https://doc.tryfastgpt.ai/docs/use-cases/external-integration/dingtalk/>接入钉钉机器人教程</a></li><li><a class=sidebar-nested-link href=https://doc.tryfastgpt.ai/docs/use-cases/external-integration/official_account/>接入微信公众号教程</a></li><li><a class=sidebar-nested-link href=https://doc.tryfastgpt.ai/docs/use-cases/external-integration/onwechat/>对接 chatgpt-on-wechat</a></li><li><a class=sidebar-nested-link href=https://doc.tryfastgpt.ai/docs/use-cases/external-integration/wechat/>接入微信和企业微信</a></li><li><a class=sidebar-nested-link href=https://doc.tryfastgpt.ai/docs/use-cases/external-integration/iframe_integration/>iframe 接入</a></li></ul></div></li><li class="sidebar-dropdown nested"><button class=btn>
应用搭建案例</button><div class=sidebar-submenu><ul><li><a class=sidebar-nested-link href=https://doc.tryfastgpt.ai/docs/use-cases/app-cases/submit_application_template/>如何提交应用模板</a></li><li><a class=sidebar-nested-link href=https://doc.tryfastgpt.ai/docs/use-cases/app-cases/translate-subtitle-using-gpt/>长字幕翻译</a></li><li><a class=sidebar-nested-link href=https://doc.tryfastgpt.ai/docs/use-cases/app-cases/multi_turn_translation_bot/>多轮翻译机器人</a></li><li><a class=sidebar-nested-link href=https://doc.tryfastgpt.ai/docs/use-cases/app-cases/english_essay_correction_bot/>英语作文纠错机器人</a></li><li><a class=sidebar-nested-link href=https://doc.tryfastgpt.ai/docs/use-cases/app-cases/fixingevidence/>固定开头和结尾内容</a></li><li><a class=sidebar-nested-link href=https://doc.tryfastgpt.ai/docs/use-cases/app-cases/lab_appointment/>实验室预约</a></li><li><a class=sidebar-nested-link href=https://doc.tryfastgpt.ai/docs/use-cases/app-cases/dalle3/>Dalle3 绘图</a></li><li><a class=sidebar-nested-link href=https://doc.tryfastgpt.ai/docs/use-cases/app-cases/google_search/>接入谷歌搜索</a></li><li><a class=sidebar-nested-link href=https://doc.tryfastgpt.ai/docs/use-cases/app-cases/feishu_webhook/>发送飞书webhook通知</a></li></ul></div></li></ul></div></li><li class=sidebar-dropdown><button class=btn>
<i class="material-icons me-2">code_blocks</i>
开发与部署指南</button><div class=sidebar-submenu><ul><li><a class=sidebar-nested-link href=https://doc.tryfastgpt.ai/docs/development/intro/>快速开始本地开发</a></li><li><a class=sidebar-nested-link href=https://doc.tryfastgpt.ai/docs/development/sealos/>Sealos 一键部署</a></li><li><a class=sidebar-nested-link href=https://doc.tryfastgpt.ai/docs/development/docker/>Docker Compose 快速部署</a></li><li><a class=sidebar-nested-link href=https://doc.tryfastgpt.ai/docs/development/configuration/>配置文件介绍</a></li><li><a class=sidebar-nested-link href=https://doc.tryfastgpt.ai/docs/development/faq/>私有部署常见问题</a></li><li class="sidebar-dropdown nested"><button class=btn>
模型配置方案</button><div class=sidebar-submenu><ul><li><a class=sidebar-nested-link href=https://doc.tryfastgpt.ai/docs/development/modelconfig/intro/>FastGPT 模型配置说明</a></li><li><a class=sidebar-nested-link href=https://doc.tryfastgpt.ai/docs/development/modelconfig/ai-proxy/>通过 AI Proxy 接入模型</a></li><li><a class=sidebar-nested-link href=https://doc.tryfastgpt.ai/docs/development/modelconfig/one-api/>通过 OneAPI 接入模型</a></li><li><a class=sidebar-nested-link href=https://doc.tryfastgpt.ai/docs/development/modelconfig/siliconcloud/>通过 SiliconCloud 体验开源模型</a></li><li><a class=sidebar-nested-link href=https://doc.tryfastgpt.ai/docs/development/modelconfig/ppio/>通过 PPIO LLM API 接入模型</a></li></ul></div></li><li class="sidebar-dropdown nested"><button class=btn>
版本更新/升级操作</button><div class=sidebar-submenu><ul><li><a class=sidebar-nested-link href=https://doc.tryfastgpt.ai/docs/development/upgrading/intro/>升级说明</a></li><li><a class=sidebar-nested-link href=https://doc.tryfastgpt.ai/docs/development/upgrading/499/>V4.9.9(进行中)</a></li><li><a class=sidebar-nested-link href=https://doc.tryfastgpt.ai/docs/development/upgrading/498/>V4.9.8</a></li><li><a class=sidebar-nested-link href=https://doc.tryfastgpt.ai/docs/development/upgrading/497/>V4.9.7</a></li><li><a class=sidebar-nested-link href=https://doc.tryfastgpt.ai/docs/development/upgrading/496/>V4.9.6</a></li><li><a class=sidebar-nested-link href=https://doc.tryfastgpt.ai/docs/development/upgrading/495/>V4.9.5</a></li><li><a class=sidebar-nested-link href=https://doc.tryfastgpt.ai/docs/development/upgrading/494/>V4.9.4</a></li><li><a class=sidebar-nested-link href=https://doc.tryfastgpt.ai/docs/development/upgrading/493/>V4.9.3</a></li><li><a class=sidebar-nested-link href=https://doc.tryfastgpt.ai/docs/development/upgrading/492/>V4.9.2</a></li><li><a class=sidebar-nested-link href=https://doc.tryfastgpt.ai/docs/development/upgrading/491/>V4.9.1</a></li><li><a class=sidebar-nested-link href=https://doc.tryfastgpt.ai/docs/development/upgrading/490/>V4.9.0(包含升级脚本)</a></li><li><a class=sidebar-nested-link href=https://doc.tryfastgpt.ai/docs/development/upgrading/4823/>V4.8.23</a></li><li><a class=sidebar-nested-link href=https://doc.tryfastgpt.ai/docs/development/upgrading/4822/>V4.8.22(包含升级脚本)</a></li><li><a class=sidebar-nested-link href=https://doc.tryfastgpt.ai/docs/development/upgrading/4821/>V4.8.21</a></li><li><a class=sidebar-nested-link href=https://doc.tryfastgpt.ai/docs/development/upgrading/4820/>V4.8.20(包含升级脚本)</a></li><li><a class=sidebar-nested-link href=https://doc.tryfastgpt.ai/docs/development/upgrading/4819/>V4.8.19(包含升级脚本)</a></li><li><a class=sidebar-nested-link href=https://doc.tryfastgpt.ai/docs/development/upgrading/4818/>V4.8.18(包含升级脚本)</a></li><li><a class=sidebar-nested-link href=https://doc.tryfastgpt.ai/docs/development/upgrading/4817/>V4.8.17(包含升级脚本)</a></li><li><a class=sidebar-nested-link href=https://doc.tryfastgpt.ai/docs/development/upgrading/4816/>V4.8.16(更新配置文件)</a></li><li><a class=sidebar-nested-link href=https://doc.tryfastgpt.ai/docs/development/upgrading/4815/>V4.8.15(包含升级脚本)</a></li><li><a class=sidebar-nested-link href=https://doc.tryfastgpt.ai/docs/development/upgrading/4814/>V4.8.14</a></li><li><a class=sidebar-nested-link href=https://doc.tryfastgpt.ai/docs/development/upgrading/4813/>V4.8.13</a></li><li><a class=sidebar-nested-link href=https://doc.tryfastgpt.ai/docs/development/upgrading/4812/>V4.8.12(包含升级脚本)</a></li><li><a class=sidebar-nested-link href=https://doc.tryfastgpt.ai/docs/development/upgrading/4811/>V4.8.11(商业版初始化)</a></li><li><a class=sidebar-nested-link href=https://doc.tryfastgpt.ai/docs/development/upgrading/4810/>V4.8.10(包含升级脚本)</a></li><li><a class=sidebar-nested-link href=https://doc.tryfastgpt.ai/docs/development/upgrading/489/>V4.8.9(需要初始化)</a></li><li><a class=sidebar-nested-link href=https://doc.tryfastgpt.ai/docs/development/upgrading/488/>V4.8.8(包含升级脚本)</a></li><li><a class=sidebar-nested-link href=https://doc.tryfastgpt.ai/docs/development/upgrading/487/>V4.8.7</a></li><li><a class=sidebar-nested-link href=https://doc.tryfastgpt.ai/docs/development/upgrading/486/>V4.8.6(包含升级脚本)</a></li><li><a class=sidebar-nested-link href=https://doc.tryfastgpt.ai/docs/development/upgrading/485/>V4.8.5(包含升级脚本)</a></li><li><a class=sidebar-nested-link href=https://doc.tryfastgpt.ai/docs/development/upgrading/484/>V4.8.4(包含升级脚本)</a></li><li><a class=sidebar-nested-link href=https://doc.tryfastgpt.ai/docs/development/upgrading/483/>V4.8.3</a></li><li><a class=sidebar-nested-link href=https://doc.tryfastgpt.ai/docs/development/upgrading/482/>V4.8.2</a></li><li><a class=sidebar-nested-link href=https://doc.tryfastgpt.ai/docs/development/upgrading/481/>V4.8.1(包含升级脚本)</a></li><li><a class=sidebar-nested-link href=https://doc.tryfastgpt.ai/docs/development/upgrading/48/>V4.8</a></li><li><a class=sidebar-nested-link href=https://doc.tryfastgpt.ai/docs/development/upgrading/471/>V4.7.1(包含升级脚本)</a></li><li><a class=sidebar-nested-link href=https://doc.tryfastgpt.ai/docs/development/upgrading/47/>V4.7(需要初始化)</a></li><li><a class=sidebar-nested-link href=https://doc.tryfastgpt.ai/docs/development/upgrading/469/>V4.6.9(包含升级脚本)</a></li><li><a class=sidebar-nested-link href=https://doc.tryfastgpt.ai/docs/development/upgrading/468/>V4.6.8(需要初始化)</a></li><li><a class=sidebar-nested-link href=https://doc.tryfastgpt.ai/docs/development/upgrading/467/>V4.6.7(需要初始化)</a></li><li><a class=sidebar-nested-link href=https://doc.tryfastgpt.ai/docs/development/upgrading/466/>V4.6.6(需要改配置文件)</a></li><li><a class=sidebar-nested-link href=https://doc.tryfastgpt.ai/docs/development/upgrading/465/>V4.6.5(需要改配置文件)</a></li><li><a class=sidebar-nested-link href=https://doc.tryfastgpt.ai/docs/development/upgrading/464/>V4.6.4(包含升级脚本)</a></li><li><a class=sidebar-nested-link href=https://doc.tryfastgpt.ai/docs/development/upgrading/463/>V4.6.3(包含升级脚本)</a></li><li><a class=sidebar-nested-link href=https://doc.tryfastgpt.ai/docs/development/upgrading/462/>V4.6.2(包含升级脚本)</a></li><li><a class=sidebar-nested-link href=https://doc.tryfastgpt.ai/docs/development/upgrading/461/>V4.6.1</a></li><li><a class=sidebar-nested-link href=https://doc.tryfastgpt.ai/docs/development/upgrading/46/>V4.6(包含升级脚本)</a></li><li><a class=sidebar-nested-link href=https://doc.tryfastgpt.ai/docs/development/upgrading/452/>V4.5.2</a></li><li><a class=sidebar-nested-link href=https://doc.tryfastgpt.ai/docs/development/upgrading/451/>V4.5.1(需进行初始化)</a></li><li><a class=sidebar-nested-link href=https://doc.tryfastgpt.ai/docs/development/upgrading/45/>V4.5(需进行较为复杂更新)</a></li><li><a class=sidebar-nested-link href=https://doc.tryfastgpt.ai/docs/development/upgrading/447/>V4.4.7(需执行升级脚本)</a></li><li><a class=sidebar-nested-link href=https://doc.tryfastgpt.ai/docs/development/upgrading/446/>V4.4.6</a></li><li><a class=sidebar-nested-link href=https://doc.tryfastgpt.ai/docs/development/upgrading/445/>V4.4.5(包含升级脚本)</a></li><li><a class=sidebar-nested-link href=https://doc.tryfastgpt.ai/docs/development/upgrading/442/>升级到 V4.4.2(包含升级脚本)</a></li><li><a class=sidebar-nested-link href=https://doc.tryfastgpt.ai/docs/development/upgrading/441/>升级到 V4.4.1(包含升级脚本)</a></li><li><a class=sidebar-nested-link href=https://doc.tryfastgpt.ai/docs/development/upgrading/44/>升级到 V4.4(包含升级脚本)</a></li><li><a class=sidebar-nested-link href=https://doc.tryfastgpt.ai/docs/development/upgrading/43/>升级到 V4.3(包含升级脚本)</a></li><li><a class=sidebar-nested-link href=https://doc.tryfastgpt.ai/docs/development/upgrading/421/>升级到 V4.2.1</a></li><li><a class=sidebar-nested-link href=https://doc.tryfastgpt.ai/docs/development/upgrading/42/>升级到 V4.2</a></li><li><a class=sidebar-nested-link href=https://doc.tryfastgpt.ai/docs/development/upgrading/41/>升级到 V4.1</a></li><li><a class=sidebar-nested-link href=https://doc.tryfastgpt.ai/docs/development/upgrading/40/>升级到 V4.0</a></li></ul></div></li><li class="sidebar-dropdown nested"><button class=btn>
OpenAPI 接口文档</button><div class=sidebar-submenu><ul><li><a class=sidebar-nested-link href=https://doc.tryfastgpt.ai/docs/development/openapi/intro/>OpenAPI 介绍</a></li><li><a class=sidebar-nested-link href=https://doc.tryfastgpt.ai/docs/development/openapi/chat/>对话接口</a></li><li><a class=sidebar-nested-link href=https://doc.tryfastgpt.ai/docs/development/openapi/dataset/>知识库接口</a></li><li><a class=sidebar-nested-link href=https://doc.tryfastgpt.ai/docs/development/openapi/share/>分享链接身份鉴权</a></li></ul></div></li><li class="sidebar-dropdown nested"><button class=btn>
本地模型使用</button><div class=sidebar-submenu><ul><li><a class=sidebar-nested-link href=https://doc.tryfastgpt.ai/docs/development/custom-models/marker/>接入 Marker PDF 文档解析</a></li><li><a class=sidebar-nested-link href=https://doc.tryfastgpt.ai/docs/development/custom-models/xinference/>使用 Xinference 接入本地模型</a></li><li><a class=sidebar-nested-link href=https://doc.tryfastgpt.ai/docs/development/custom-models/bge-rerank/>接入 bge-rerank 重排模型</a></li><li><a class=sidebar-nested-link href=https://doc.tryfastgpt.ai/docs/development/custom-models/chatglm2/>接入 ChatGLM2-6B</a></li><li><a class=sidebar-nested-link href=https://doc.tryfastgpt.ai/docs/development/custom-models/m3e/>接入 M3E 向量模型</a></li><li><a class=sidebar-nested-link href=https://doc.tryfastgpt.ai/docs/development/custom-models/chatglm2-m3e/>接入 ChatGLM2-m3e 模型</a></li><li><a class=sidebar-nested-link href=https://doc.tryfastgpt.ai/docs/development/custom-models/ollama/>使用 Ollama 接入本地模型</a></li></ul></div></li><li class="sidebar-dropdown nested"><button class=btn>
代理方案</button><div class=sidebar-submenu><ul><li><a class=sidebar-nested-link href=https://doc.tryfastgpt.ai/docs/development/proxy/nginx/>Nginx 中转</a></li><li><a class=sidebar-nested-link href=https://doc.tryfastgpt.ai/docs/development/proxy/http_proxy/>HTTP 代理中转</a></li><li><a class=sidebar-nested-link href=https://doc.tryfastgpt.ai/docs/development/proxy/cloudflare/>Cloudflare Worker 中转</a></li></ul></div></li><li class="sidebar-dropdown nested"><button class=btn>
迁移&备份</button><div class=sidebar-submenu><ul><li><a class=sidebar-nested-link href=https://doc.tryfastgpt.ai/docs/development/migration/docker_mongo/>Docker Mongo迁移(dump模式)</a></li><li><a class=sidebar-nested-link href=https://doc.tryfastgpt.ai/docs/development/migration/docker_db/>Docker 数据库迁移(无脑操作)</a></li></ul></div></li><li class="sidebar-dropdown nested"><button class=btn>
设计方案</button><div class=sidebar-submenu><ul><li><a class=sidebar-nested-link href=https://doc.tryfastgpt.ai/docs/development/design/dataset/>数据集</a></li></ul></div></li></ul></div></li><li class=sidebar-dropdown><button class=btn>
<i class="material-icons me-2">quiz</i>
FAQ</button><div class=sidebar-submenu><ul><li><a class=sidebar-nested-link href=https://doc.tryfastgpt.ai/docs/faq/docker/>Docker 部署问题</a></li><li><a class=sidebar-nested-link href=https://doc.tryfastgpt.ai/docs/faq/privatedeploy/>私有部署常见问题</a></li><li><a class=sidebar-nested-link href=https://doc.tryfastgpt.ai/docs/faq/chat/>聊天框问题</a></li><li><a class=sidebar-nested-link href=https://doc.tryfastgpt.ai/docs/faq/app/>应用使用问题</a></li><li><a class=sidebar-nested-link href=https://doc.tryfastgpt.ai/docs/faq/dataset/>知识库使用问题</a></li><li><a class=sidebar-nested-link href=https://doc.tryfastgpt.ai/docs/faq/external_channel_integration/>接入外部渠道</a></li><li><a class=sidebar-nested-link href=https://doc.tryfastgpt.ai/docs/faq/error/>报错</a></li><li><a class=sidebar-nested-link href=https://doc.tryfastgpt.ai/docs/faq/points_consumption/>积分消耗</a></li><li><a class=sidebar-nested-link href=https://doc.tryfastgpt.ai/docs/faq/other/>其他问题</a></li></ul></div></li><li class=sidebar-dropdown><button class=btn>
<i class="material-icons me-2">shopping_cart</i>
收费说明</button><div class=sidebar-submenu><ul><li><a class=sidebar-nested-link href=https://doc.tryfastgpt.ai/docs/shopping_cart/saas/>线上版定价</a></li><li><a class=sidebar-nested-link href=https://doc.tryfastgpt.ai/docs/shopping_cart/intro/>商业版</a></li></ul></div></li><li class=sidebar-dropdown><button class=btn>
<i class="material-icons me-2">handshake</i>
协议</button><div class=sidebar-submenu><ul><li><a class=sidebar-nested-link href=https://doc.tryfastgpt.ai/docs/agreement/open-source/>开源协议</a></li><li><a class=sidebar-nested-link href=https://doc.tryfastgpt.ai/docs/agreement/terms/>服务协议</a></li><li><a class=sidebar-nested-link href=https://doc.tryfastgpt.ai/docs/agreement/privacy/>隐私政策</a></li></ul></div></li><li><a class=sidebar-root-link href=https://doc.tryfastgpt.ai/docs/community/><i class="material-icons me-2">forum</i>
加入社区</a></li></ul></div><ul class="sidebar-footer list-unstyled mb-0"></ul></nav><main class="page-content bg-transparent"><div id=top-header class="top-header d-print-none"><div class="header-bar d-flex justify-content-between"><div class="d-flex align-items-center"><a href=https://tryfastgpt.ai/ class="logo-icon me-3" aria-label=HomePage alt=HomePage><div class=small><svg width="26" height="26" viewBox="0 0 1041 1348" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M340.837.33933 681.068.338989V.455643C684.032.378397 686.999.339702 689.967.339702 735.961.3397 781.504 9.62899 823.997 27.6772 866.49 45.7254 905.099 72.1791 937.622 105.528 970.144 138.877 995.942 178.467 1013.54 222.04 1031.14 265.612 1040.2 312.312 1040.2 359.474H340.836V1347.84C296.157 1347.84 251.914 1338.55 210.636 1320.49 169.357 1302.43 131.85 1275.95 100.257 1242.58 68.6636 1209.21 43.6023 1169.59 26.5041 1125.99 11.3834 1087.43 2.75216 1046.42.957956 1004.81H.605869L.605897 368.098H.70363c-.597878-26.267 1.53378-52.655 6.43943-78.687C20.2709 219.745 52.6748 155.754 100.257 105.528 147.839 55.3017 208.462 21.0975 274.461 7.24017 296.426 2.62833 318.657.339101 340.837.33933z" fill="url(#paint0_linear_1172_228)"/><path d="M633.639 904.645H513.029V576.37H635.422V576.377C678.161 576.607 720.454 585.093 759.951 601.37 799.997 617.874 836.384 642.064 867.033 672.559c30.65 30.495 54.963 66.698 71.55 106.542C955.171 818.944 963.709 861.648 963.709 904.775H633.639V904.645z" fill="url(#paint1_linear_1172_228)"/><defs><linearGradient id="paint0_linear_1172_228" x1="520.404" y1=".338989" x2="520.404" y2="1347.84" gradientUnits="userSpaceOnUse"><stop stop-color="#326dff"/><stop offset="1" stop-color="#8eaeff"/></linearGradient><linearGradient id="paint1_linear_1172_228" x1="738.369" y1="576.37" x2="738.369" y2="904.775" gradientUnits="userSpaceOnUse"><stop stop-color="#326dff"/><stop offset="1" stop-color="#8eaeff"/></linearGradient></defs></svg></div><div class=big><svg width="26" height="26" viewBox="0 0 1041 1348" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M340.837.33933 681.068.338989V.455643C684.032.378397 686.999.339702 689.967.339702 735.961.3397 781.504 9.62899 823.997 27.6772 866.49 45.7254 905.099 72.1791 937.622 105.528 970.144 138.877 995.942 178.467 1013.54 222.04 1031.14 265.612 1040.2 312.312 1040.2 359.474H340.836V1347.84C296.157 1347.84 251.914 1338.55 210.636 1320.49 169.357 1302.43 131.85 1275.95 100.257 1242.58 68.6636 1209.21 43.6023 1169.59 26.5041 1125.99 11.3834 1087.43 2.75216 1046.42.957956 1004.81H.605869L.605897 368.098H.70363c-.597878-26.267 1.53378-52.655 6.43943-78.687C20.2709 219.745 52.6748 155.754 100.257 105.528 147.839 55.3017 208.462 21.0975 274.461 7.24017 296.426 2.62833 318.657.339101 340.837.33933z" fill="url(#paint0_linear_1172_228)"/><path d="M633.639 904.645H513.029V576.37H635.422V576.377C678.161 576.607 720.454 585.093 759.951 601.37 799.997 617.874 836.384 642.064 867.033 672.559c30.65 30.495 54.963 66.698 71.55 106.542C955.171 818.944 963.709 861.648 963.709 904.775H633.639V904.645z" fill="url(#paint1_linear_1172_228)"/><defs><linearGradient id="paint0_linear_1172_228" x1="520.404" y1=".338989" x2="520.404" y2="1347.84" gradientUnits="userSpaceOnUse"><stop stop-color="#326dff"/><stop offset="1" stop-color="#8eaeff"/></linearGradient><linearGradient id="paint1_linear_1172_228" x1="738.369" y1="576.37" x2="738.369" y2="904.775" gradientUnits="userSpaceOnUse"><stop stop-color="#326dff"/><stop offset="1" stop-color="#8eaeff"/></linearGradient></defs></svg></div></a><button id=close-sidebar class="btn btn-icon btn-soft">
<span class="material-icons size-20 menu-icon align-middle">menu</span></button>
<span><div id=docsearch></div></span></div><div class="d-flex align-items-center"><ul class="list-unstyled mb-0"><li class="list-inline-item mb-0"><a href=https://github.com/labring/FastGPT alt=github rel="noopener noreferrer" target=_blank><div class="btn btn-icon btn-default border-0"><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"><title>GitHub</title><path d="M9 19c-5 1.5-5-2.5-7-3m14 6v-3.87a3.37 3.37.0 00-.94-2.61c3.14-.35 6.44-1.54 6.44-7A5.44 5.44.0 0020 4.77 5.07 5.07.0 0019.91 1S18.73.65 16 2.48a13.38 13.38.0 00-7 0C6.27.65 5.09 1 5.09 1A5.07 5.07.0 005 4.77 5.44 5.44.0 003.5 8.55c0 5.42 3.3 6.61 6.44 7A3.37 3.37.0 009 18.13V22"/></svg></div></a></li><li class="list-inline-item mb-0"><a href=https://oss.laf.run/htr4n1-images/fastgpt-qr-code.jpg alt=wechat rel="noopener noreferrer" target=_blank><div class="btn btn-icon btn-default border-0"><svg xmlns="http://www.w3.org/2000/svg" width="28" height="28" viewBox="0 0 28 28" fill="none" stroke="currentcolor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><title>微信群</title><path d="M21.6696 15.9962C21.9464 15.9925 22.2107 15.881 22.4064 15.6853 22.6021 15.4896 22.7137 15.2252 22.7173 14.9485c0-.581-.465500000000002-1.0477-1.0477-1.0477C21.0875 13.9008 20.622 14.3675 20.622 14.9485c0 .583300000000001.4666 1.0477 1.0476 1.0477zm-5.1625.0C16.7839 15.9925 17.0482 15.881 17.2439 15.6853S17.5512 15.2252 17.5548 14.9485c0-.581-.466699999999999-1.0477-1.0477-1.0477C15.9238 13.9008 15.4595 14.3675 15.4595 14.9485c0 .583300000000001.4655 1.0477 1.0476 1.0477zm7.6615 5.88C24.0939 21.9177 24.0342 21.9818 23.9981 22.0594 23.9621 22.1369 23.9515 22.2239 23.968 22.3078 23.968 22.3638 23.968 22.421 23.9971 22.4793c.1144.486500000000003.343 1.2612.343 1.2904C24.3401 23.8548 24.3693 23.912 24.3693 23.9703 24.3693 24.0041 24.3626 24.0376 24.3496 24.0688 24.3367 24.1 24.3177 24.1284 24.2937 24.1522 24.2697 24.1761 24.2413 24.195 24.21 24.2078 24.1788 24.2206 24.1453 24.2272 24.1115 24.227 24.0531 24.227 24.0251 24.199 23.968 24.171L22.2775 23.1957C22.154 23.1277 22.0168 23.0886 21.8761 23.0813 21.791 23.0813 21.7046 23.0813 21.6475 23.1093 20.8448 23.3392 20.0141 23.4535 19.1263 23.4535c-4.27.0-7.7082-2.8665-7.7082-6.4225.0-3.5548 3.4382-6.4225 7.7082-6.4225 4.2688.0 7.707 2.8677 7.707 6.4225.0 1.9215-1.0313 3.6703-2.6647 4.8463V21.8762zM19.4518 9.44883C19.3429 9.44521 19.234 9.44327 19.1251 9.443c-4.8696.0-8.8736 3.3367-8.8736 7.5892.0.6463.0932999999999993 1.2716.266 1.8666H10.4136C9.39426 18.8885 8.38067 18.7442 7.39896 18.4695 7.31263 18.4403 7.22629 18.4403 7.13996 18.4403 6.96754 18.444 6.79921 18.4935 6.65229 18.5838L4.61296 19.7563C4.55463 19.7855 4.49746 19.8147 4.44029 19.8147 4.35703 19.8138 4.27744 19.7803 4.21856 19.7214 4.15968 19.6625 4.1262 19.5829 4.12529 19.4997 4.12529 19.4133 4.15329 19.3562 4.18246 19.2698 4.21046 19.2418 4.46946 18.2968 4.61296 17.7252 4.61296 17.6668 4.64096 17.5817 4.64096 17.5245 4.64065 17.4245 4.61721 17.3259 4.57248 17.2364 4.52775 17.147 4.46295 17.0691 4.38313 17.0088c-1.98217-1.4035-3.2165-3.4918-3.2165-5.8111.0-4.26187 4.165-7.6977 9.27497-7.6977 4.3925.0 8.085 2.5305 9.0102 5.94767V9.44883zM13.4388 9.9365c.6685.0 1.197-.5565 1.197-1.197.0-.6685-.528499999999999-1.197-1.197-1.197S12.2418 8.071 12.2418 8.7395 12.7703 9.9365 13.4388 9.9365zm-6.13667.0c.6685.0 1.19816-.5565 1.19816-1.197.0-.6685-.52966-1.197-1.19816-1.197-.66734.0-1.197.528499999999999-1.197 1.197s.52966 1.197 1.197 1.197z"/></svg></div></a></li><li class="list-inline-item mb-0"><a href=https://oss.laf.run/otnvvf-imgs/fastgpt-feishu1.png alt=lark rel="noopener noreferrer" target=_blank><div class="btn btn-icon btn-default border-0"><svg t="1728884315234" class="icon" viewBox="0 0 1224 1024" xmlns="http://www.w3.org/2000/svg" p-id="4847" width="28" height="28" fill="currentcolor"><path d="M1224.146926 401.768509a50.444385 50.444385.0 00-23.813954-38.631991c-6.095363-3.741292-61.752335-36.782364-141.475481-43.949671A317.253146 317.253146.0 00922.972928 336.16979L746.964061 25.579507A50.444385 50.444385.0 00703.077446.0H284.809419A50.444385 50.444385.0 00248.027055 84.97777c3.236848 3.447033 296.360763 315.739814 426.969683 459.653442-59.734559 55.762064-103.558119 83.800735-127.666331 96.832201L346.435643 500.639504a50.045034 50.045034.0 00-6.97814-4.098606L79.416697 314.205464A50.444385 50.444385.0 00.744475 364.124387c.210185 1.177036 20.619142 118.607361 42.036988 237.635091 44.033744 245.538045 48.994109 257.896919 52.272994 266.11515 5.065457 12.611096 14.334613 24.549601 44.895503 44.538188a595.916337 595.916337.0 0069.361029 38.337733c49.519571 23.603769 128.212812 54.437899 221.59798 67.25918a623.009175 623.009175.0 0085.061845 5.948234c131.491697.0 290.055215-44.138837 418.373119-211.404011 73.564728-96.054517 118.250046-163.944252 154.086578-218.592335 44.033745-67.070014 70.622139-107.551633 118.838564-150.177139a50.444385 50.444385.0 0016.877851-42.015969zM673.693591 100.88877 834.443032 384.638437a413.097477 413.097477.0 00-63.055481 59.356226c-8.743693 10.04684-17.256183 19.568218-25.579507 28.711263-89.559802-98.744884-248.774893-269.373017-344.619225-371.817156zM305.491617 882.125167c-59.86067-22.594881-102.065806-47.85911-118.523287-59.692523-10.299062-45.610132-39.935138-209.638457-65.829922-355.780044l391.238243 274.270325a48.132351 48.132351.0 006.725918 3.951477l189.166445 132.689752A398.300458 398.300458.0 01552.85827 921.702991c-97.336645 7.713787-188.262649-17.277202-247.366653-39.577824zm698.654734-343.442189c-34.932737 53.197808-78.398982 119.385045-149.819824 212.496972a503.371908 503.371908.0 01-58.641598 64.33761L637.499745 704.687042c35.31107-23.813953 81.152405-60.070855 135.905581-114.803013a48.342536 48.342536.0 0014.944149-15.154334c18.790533-19.379051 38.568936-40.859952 59.272153-64.694924 57.086229-65.745849 124.009113-96.243683 198.540692-90.673782a247.639894 247.639894.0 0138.589955 6.011289c-28.290893 33.62959-51.936698 69.63427-80.605924 113.3107z" p-id="4848"/></svg></div></a></li></ul><button id=mode class="btn btn-icon btn-default ms-2" type=button aria-label="Toggle user interface mode">
<span class=toggle-dark><svg xmlns="http://www.w3.org/2000/svg" height="30" width="30" viewBox="0 0 48 48" fill="currentcolor"><path d="M24 42q-7.5.0-12.75-5.25T6 24t5.25-12.75T24 6q.4.0.85.025.45.025 1.15.075-1.8 1.6-2.8 3.95t-1 4.95q0 4.5 3.15 7.65Q28.5 25.8 33 25.8q2.6.0 4.95-.925T41.9 22.3q.05.6.075.975Q42 23.65 42 24q0 7.5-5.25 12.75T24 42zm0-3q5.45.0 9.5-3.375t5.05-7.925q-1.25.55-2.675.825Q34.45 28.8 33 28.8q-5.75.0-9.775-4.025T19.2 15q0-1.2.25-2.575t.9-3.125q-4.9 1.35-8.125 5.475Q9 18.9 9 24q0 6.25 4.375 10.625T24 39zm-.2-14.85z"/></svg></span><span class=toggle-light><svg xmlns="http://www.w3.org/2000/svg" height="30" width="30" viewBox="0 0 48 48" fill="currentcolor"><path d="M24 31q2.9.0 4.95-2.05T31 24t-2.05-4.95T24 17t-4.95 2.05T17 24t2.05 4.95T24 31zm0 3q-4.15.0-7.075-2.925T14 24t2.925-7.075T24 14t7.075 2.925T34 24t-2.925 7.075T24 34zM3.5 25.5q-.65.0-1.075-.425Q2 24.65 2 24t.425-1.075Q2.85 22.5 3.5 22.5h5q.65.0 1.075.425Q10 23.35 10 24t-.425 1.075T8.5 25.5zm36 0q-.65.0-1.075-.425Q38 24.65 38 24t.425-1.075T39.5 22.5h5q.65.0 1.075.425Q46 23.35 46 24t-.425 1.075-1.075.425zM24 10q-.65.0-1.075-.425Q22.5 9.15 22.5 8.5v-5q0-.65.425-1.075Q23.35 2 24 2t1.075.425T25.5 3.5v5q0 .65-.425 1.075Q24.65 10 24 10zm0 36q-.65.0-1.075-.425T22.5 44.5v-5q0-.65.425-1.075Q23.35 38 24 38t1.075.425.425 1.075v5q0 .65-.425 1.075Q24.65 46 24 46zM12 14.1l-2.85-2.8q-.45-.45-.425-1.075.025-.625.425-1.075.45-.45 1.075-.45t1.075.45L14.1 12q.4.45.4 1.05.0.6-.4 1-.4.45-1.025.45T12 14.1zm24.7 24.75L33.9 36q-.4-.45-.4-1.075t.45-1.025q.4-.45 1-.45t1.05.45l2.85 2.8q.45.45.425 1.075-.025.625-.425 1.075-.45.45-1.075.45t-1.075-.45zM33.9 14.1q-.45-.45-.45-1.05.0-.6.45-1.05l2.8-2.85q.45-.45 1.075-.425.625.025 1.075.425.45.45.45 1.075t-.45 1.075L36 14.1q-.4.4-1.025.4t-1.075-.4zM9.15 38.85q-.45-.45-.45-1.075t.45-1.075L12 33.9q.45-.45 1.05-.45.6.0 1.05.45.45.45.45 1.05.0.6-.45 1.05l-2.8 2.85q-.45.45-1.075.425-.625-.025-1.075-.425zM24 24z"/></svg></span></button></div></div></div><div class=container-fluid><div class=layout-spacing><div class="d-md-flex justify-content-between align-items-center"><nav aria-label=breadcrumb class="d-inline-block pb-2 mt-1 mt-sm-0"><ul id=breadcrumbs class="breadcrumb bg-transparent mb-0" itemscope itemtype=https://schema.org/BreadcrumbList><li class="breadcrumb-item text-capitalize active" aria-current=page itemprop=itemListElement itemscope itemtype=https://schema.org/ListItem><a itemprop=item href=/docs/><i class="material-icons size-20 align-text-bottom" itemprop=name>Home</i></a><meta itemprop=position content="1"></li><li class="breadcrumb-item text-capitalize" itemprop=itemListElement itemscope itemtype=https://schema.org/ListItem><a itemprop=item href=/docs/guide/><span itemprop=name>功能介绍</span></a><meta itemprop=position content="2"></li><li class="breadcrumb-item text-capitalize" itemprop=itemListElement itemscope itemtype=https://schema.org/ListItem><a itemprop=item href=/docs/guide/admin/><span itemprop=name>商业版后台</span></a><meta itemprop=position content="3"></li><li class="breadcrumb-item text-capitalize active" itemprop=itemListElement itemscope itemtype=https://schema.org/ListItem><span itemprop=name>SSO & 外部成员同步</span><meta itemprop=position content="4"></li></ul></nav></div><div class="row flex-xl-nowrap"><div class="docs-toc col-xl-3 d-xl-block"><toc><div class="fw-bold text-uppercase mb-2">SSO & 外部成员同步</div><nav id=toc><ul><li><ul><li><a href=#介绍>介绍</a></li><li><a href=#系统配置教程>系统配置教程</a><ul><li><a href=#1-部署-sso-service-镜像>1. 部署 SSO-service 镜像</a></li><li><a href=#2-配置-fastgpt-pro>2. 配置 fastgpt-pro</a></li></ul></li><li><a href=#内置的通用协议im-配置示例>内置的通用协议/IM 配置示例</a><ul><li><a href=#飞书>飞书</a></li><li><a href=#钉钉>钉钉</a></li><li><a href=#企业微信>企业微信</a></li><li><a href=#标准-oauth20>标准 OAuth2.0</a></li></ul></li><li><a href=#标准接口文档>标准接口文档</a><ul><li><a href=#获取-sso-登录重定向地址>获取 SSO 登录重定向地址</a></li><li><a href=#sso-获取用户信息>SSO 获取用户信息</a></li><li><a href=#获取组织>获取组织</a></li><li><a href=#获取成员>获取成员</a></li></ul></li><li><a href=#如何对接非标准系统>如何对接非标准系统</a></li></ul></li></ul></nav></toc></div><div class="docs-toc-mobile d-print-none d-xl-none"><button id=toc-dropdown-btn class="btn-secondary dropdown-toggle" type=button data-bs-toggle=dropdown data-bs-offset=0,0 aria-expanded=false>
Table of Contents</button><nav id=toc-mobile><ul class=dropdown-menu><li><ul><li><a href=#介绍>介绍</a></li><li><a href=#系统配置教程>系统配置教程</a><ul><li><a href=#1-部署-sso-service-镜像>1. 部署 SSO-service 镜像</a></li><li><a href=#2-配置-fastgpt-pro>2. 配置 fastgpt-pro</a></li></ul></li><li><a href=#内置的通用协议im-配置示例>内置的通用协议/IM 配置示例</a><ul><li><a href=#飞书>飞书</a></li><li><a href=#钉钉>钉钉</a></li><li><a href=#企业微信>企业微信</a></li><li><a href=#标准-oauth20>标准 OAuth2.0</a></li></ul></li><li><a href=#标准接口文档>标准接口文档</a><ul><li><a href=#获取-sso-登录重定向地址>获取 SSO 登录重定向地址</a></li><li><a href=#sso-获取用户信息>SSO 获取用户信息</a></li><li><a href=#获取组织>获取组织</a></li><li><a href=#获取成员>获取成员</a></li></ul></li><li><a href=#如何对接非标准系统>如何对接非标准系统</a></li></ul></li></ul></nav></div><div class="docs-content col-12 col-xl-9 mt-0"><div class="mb-0 d-flex"><i class="material-icons title-icon me-2">article</i><h1 class="content-title mb-0">SSO & 外部成员同步</h1></div><p class="lead mb-3">FastGPT 外部成员系统接入设计与配置</p><div id=content class=main-content data-bs-spy=scroll data-bs-root-margin="0px 0px -65%" data-bs-target=#toc-mobile><div data-prismjs-copy data-prismjs-copy-success data-prismjs-copy-error><p>如果你不需要用到 SSO/成员同步功能,或者是只需要用 Github、google、microsoft、公众号的快速登录可以跳过本章节。本章适合需要接入自己的成员系统或主流 办公IM 的用户。</p><h2 id=介绍>介绍 <a href=#%e4%bb%8b%e7%bb%8d class=anchor aria-hidden=true><i class="material-icons align-middle">link</i></a></h2><p>为了方便地接入<strong>外部成员系统</strong>FastGPT 提供一套接入外部系统的<strong>标准接口</strong>,以及一个 FastGPT-SSO-Service 镜像作为<strong>适配器</strong></p><p>通过这套标注接口,你可以可以实现:</p><ol><li>SSO 登录。从外部系统回调后,在 FastGPT 中创建一个用户。</li><li>成员和组织架构同步(下面都简称成员同步)。</li></ol><p><strong>原理</strong></p><p>FastGPT-pro 中有一套标准的SSO 和成员同步接口,系统会根据这套接口进行 SSO 和成员同步操作。</p><p>FastGPT-SSO-Service 是为了聚合不同来源的 SSO 和成员同步接口,将他们转成 fastgpt-pro 可识别的接口。</p><p><img src=https://cdn.jsdelivr.net/gh/yangchuansheng/fastgpt-imgs@main/imgs/sso2.png alt loading=lazy class=medium-zoom-image></p><h2 id=系统配置教程>系统配置教程 <a href=#%e7%b3%bb%e7%bb%9f%e9%85%8d%e7%bd%ae%e6%95%99%e7%a8%8b class=anchor aria-hidden=true><i class="material-icons align-middle">link</i></a></h2><h3 id=1-部署-sso-service-镜像>1. 部署 SSO-service 镜像 <a href=#1-%e9%83%a8%e7%bd%b2-sso-service-%e9%95%9c%e5%83%8f class=anchor aria-hidden=true><i class="material-icons align-middle">link</i></a></h3><p>使用 docker-compose 部署:</p><div class=prism-codeblock><pre id=9fd5a38 class=language-yaml>
<code> fastgpt-sso:
image: registry.cn-hangzhou.aliyuncs.com/fastgpt/fastgpt-sso-service:v4.9.0
container_name: fastgpt-sso
restart: always
networks:
- fastgpt
environment:
- SSO_PROVIDER=example
- AUTH_TOKEN=xxxxx # 鉴权信息fastgpt-pro 会用到。
# 具体对接提供商的环境变量。</code>
</pre></div><p>根据不同的提供商,你需要配置不同的环境变量,下面是内置的通用协议/IM</p><table class="table table-hover table-striped-columns"><thead><tr><th>协议/功能</th><th>SSO</th><th>成员同步支持</th></tr></thead><tbody><tr><td>飞书</td><td></td><td></td></tr><tr><td>企业微信</td><td></td><td></td></tr><tr><td>钉钉</td><td></td><td></td></tr><tr><td>Saml2.0</td><td></td><td></td></tr><tr><td>Oauth2.0</td><td></td><td></td></tr></tbody></table><h3 id=2-配置-fastgpt-pro>2. 配置 fastgpt-pro <a href=#2-%e9%85%8d%e7%bd%ae-fastgpt-pro class=anchor aria-hidden=true><i class="material-icons align-middle">link</i></a></h3><h4 id=1-配置环境变量>1. 配置环境变量 <a href=#1-%e9%85%8d%e7%bd%ae%e7%8e%af%e5%a2%83%e5%8f%98%e9%87%8f class=anchor aria-hidden=true><i class="material-icons align-middle">link</i></a></h4><p>环境变量中的 <code>EXTERNAL_USER_SYSTEM_BASE_URL</code> 为内网地址,例如上述例子中的配置,环境变量应该设置为</p><div class=prism-codeblock><pre id=c0b9afa class=language-yaml>
<code>env:
- EXTERNAL_USER_SYSTEM_BASE_URL=http://fastgpt-sso:3000
- EXTERNAL_USER_SYSTEM_AUTH_TOKEN=xxxxx</code>
</pre></div><h4 id=2-在商业版后台配置按钮文字图标等>2. 在商业版后台配置按钮文字,图标等。 <a href=#2-%e5%9c%a8%e5%95%86%e4%b8%9a%e7%89%88%e5%90%8e%e5%8f%b0%e9%85%8d%e7%bd%ae%e6%8c%89%e9%92%ae%e6%96%87%e5%ad%97%e5%9b%be%e6%a0%87%e7%ad%89 class=anchor aria-hidden=true><i class="material-icons align-middle">link</i></a></h4><table class="table table-hover table-striped-columns"><thead><tr><th><div style=text-align:center>企业微信</div></th><th><div style=text-align:center>钉钉</div></th><th><div style=text-align:center>飞书</div></th></tr></thead><tbody><tr><td><img src=https://cdn.jsdelivr.net/gh/yangchuansheng/fastgpt-imgs@main/imgs/sso15.png alt=企业微信 loading=lazy class=medium-zoom-image></td><td><img src=https://cdn.jsdelivr.net/gh/yangchuansheng/fastgpt-imgs@main/imgs/sso16.png alt=钉钉 loading=lazy class=medium-zoom-image></td><td><img src=https://cdn.jsdelivr.net/gh/yangchuansheng/fastgpt-imgs@main/imgs/sso17.png alt=飞书 loading=lazy class=medium-zoom-image></td></tr></tbody></table><h4 id=3-开启成员同步可选>3. 开启成员同步(可选) <a href=#3-%e5%bc%80%e5%90%af%e6%88%90%e5%91%98%e5%90%8c%e6%ad%a5%e5%8f%af%e9%80%89 class=anchor aria-hidden=true><i class="material-icons align-middle">link</i></a></h4><p>如果需要同步外部系统的成员,可以选择开启成员同步。团队模式具体可参考:<a data-bs-delay='{"hide":300,"show":550}' data-bs-html=true data-bs-title="<a href='/docs/guide/admin/teammode/'><p>商业版后台</p><strong>团队模式说明文档</strong><br>FastGPT 团队模式说明文档</a>" data-bs-toggle=tooltip href=/docs/guide/admin/teammode/>团队模式说明文档</a></p><p><img src=https://cdn.jsdelivr.net/gh/yangchuansheng/fastgpt-imgs@main/imgs/sso1.png alt loading=lazy class=medium-zoom-image></p><h4 id=4-可选配置>4. 可选配置 <a href=#4-%e5%8f%af%e9%80%89%e9%85%8d%e7%bd%ae class=anchor aria-hidden=true><i class="material-icons align-middle">link</i></a></h4><ol><li>自动定时成员同步</li></ol><p>设置 fastgpt-pro 环境变量则可开启自动成员同步</p><div class=prism-codeblock><pre id=1636354 class=language-bash>
<code>env:
- &#34;SYNC_MEMBER_CRON=0 0 * * *&#34; # Cron 表达式,每天 0 点执行</code>
</pre></div><h2 id=内置的通用协议im-配置示例>内置的通用协议/IM 配置示例 <a href=#%e5%86%85%e7%bd%ae%e7%9a%84%e9%80%9a%e7%94%a8%e5%8d%8f%e8%ae%aeim-%e9%85%8d%e7%bd%ae%e7%a4%ba%e4%be%8b class=anchor aria-hidden=true><i class="material-icons align-middle">link</i></a></h2><h3 id=飞书>飞书 <a href=#%e9%a3%9e%e4%b9%a6 class=anchor aria-hidden=true><i class="material-icons align-middle">link</i></a></h3><h4 id=1-参数获取>1. 参数获取 <a href=#1-%e5%8f%82%e6%95%b0%e8%8e%b7%e5%8f%96 class=anchor aria-hidden=true><i class="material-icons align-middle">link</i></a></h4><p>App ID和App Secret</p><p>进入开发者后台,点击企业自建应用,在凭证与基础信息页面查看应用凭证。</p><p><img src=https://cdn.jsdelivr.net/gh/yangchuansheng/fastgpt-imgs@main/imgs/sso3.png alt loading=lazy class=medium-zoom-image></p><h4 id=2-权限配置>2. 权限配置 <a href=#2-%e6%9d%83%e9%99%90%e9%85%8d%e7%bd%ae class=anchor aria-hidden=true><i class="material-icons align-middle">link</i></a></h4><p>进入开发者后台,点击企业自建应用,在开发配置的权限管理页面开通权限。</p><p><img src=https://cdn.jsdelivr.net/gh/yangchuansheng/fastgpt-imgs@main/imgs/sso4.png alt loading=lazy class=medium-zoom-image></p><p>对于开通用户SSO登录而言开启用户身份权限的以下内容</p><ol><li><em><strong>获取通讯录基本信息</strong></em></li><li><em><strong>获取用户基本信息</strong></em></li><li><em><strong>获取用户邮箱信息</strong></em></li><li><em><strong>获取用户 user ID</strong></em></li></ol><p>对于开启企业同步相关内容而言,开启身份权限的内容与上面一致,但要注意是开启应用权限</p><h4 id=3-重定向url>3. 重定向URL <a href=#3-%e9%87%8d%e5%ae%9a%e5%90%91url class=anchor aria-hidden=true><i class="material-icons align-middle">link</i></a></h4><p>进入开发者后台点击企业自建应用在开发配置的安全设置中设置重定向URL
<img src=https://cdn.jsdelivr.net/gh/yangchuansheng/fastgpt-imgs@main/imgs/sso5.png alt loading=lazy class=medium-zoom-image></p><h4 id=4-yml-配置示例>4. yml 配置示例 <a href=#4-yml-%e9%85%8d%e7%bd%ae%e7%a4%ba%e4%be%8b class=anchor aria-hidden=true><i class="material-icons align-middle">link</i></a></h4><div class=prism-codeblock><pre id=c2b2f79 class=language-bash>
<code>fastgpt-sso:
image: registry.cn-hangzhou.aliyuncs.com/fastgpt/fastgpt-sso-service:v4.9.0
container_name: fastgpt-sso
restart: always
networks:
- fastgpt
environment:
- SSO_PROVIDER=example
- AUTH_TOKEN=xxxxx
# 飞书 - feishu -如果是私有化部署,这里的配置前缀可能会有变化
- SSO_PROVIDER=feishu
# oauth 接口(公开的飞书不用改)
- SSO_TARGET_URL=https://accounts.feishu.cn/open-apis/authen/v1/authorize
# 获取token 接口(公开的飞书不用改)
- FEISHU_TOKEN_URL=https://open.feishu.cn/open-apis/authen/v2/oauth/token
# 获取用户信息接口(公开的飞书不用改)
- FEISHU_GET_USER_INFO_URL=https://open.feishu.cn/open-apis/authen/v1/user_info
# 重定向地址,因为飞书获取用户信息要校验所以需要填
- FEISHU_REDIRECT_URI=xxx
#飞书APP的应用ID一般以cli开头
- FEISHU_APP_ID=xxx
#飞书APP的应用密钥
- FEISHU_APP_SECRET=xxx</code>
</pre></div><h3 id=钉钉>钉钉 <a href=#%e9%92%89%e9%92%89 class=anchor aria-hidden=true><i class="material-icons align-middle">link</i></a></h3><h4 id=1-参数获取-1>1. 参数获取 <a href=#1-%e5%8f%82%e6%95%b0%e8%8e%b7%e5%8f%96-1 class=anchor aria-hidden=true><i class="material-icons align-middle">link</i></a></h4><p>CLIENT_ID 与 CLIENT_SECRET</p><p>进入钉钉开放平台点击应用开发选择自己的应用进入记录在凭证与基础信息页面下的Client ID与Client secret。
<img src=https://cdn.jsdelivr.net/gh/yangchuansheng/fastgpt-imgs@main/imgs/sso6.png alt loading=lazy class=medium-zoom-image></p><h4 id=2-权限配置-1>2. 权限配置 <a href=#2-%e6%9d%83%e9%99%90%e9%85%8d%e7%bd%ae-1 class=anchor aria-hidden=true><i class="material-icons align-middle">link</i></a></h4><p>进入钉钉开放平台,点击应用开发,选择自己的应用进入,在开发配置的权限管理页面操作,需要开通的权限包括:</p><ol><li><em><strong>个人手机号信息</strong></em></li><li><em><strong>通讯录个人信息读权限</strong></em></li><li><em><strong>获取钉钉开放接口用户访问凭证的基础权限</strong></em></li></ol><h4 id=3-重定向url-1>3. 重定向URL <a href=#3-%e9%87%8d%e5%ae%9a%e5%90%91url-1 class=anchor aria-hidden=true><i class="material-icons align-middle">link</i></a></h4><p>进入钉钉开放平台,点击应用开发,选择自己的应用进入,在开发配置的安全设置页面操作
需要填写的内容有两个:</p><ol><li>服务器出口IP 调用钉钉服务端API的服务器IP列表</li><li>重定向URL回调域名</li></ol><h4 id=4-yml-配置示例-1>4. yml 配置示例 <a href=#4-yml-%e9%85%8d%e7%bd%ae%e7%a4%ba%e4%be%8b-1 class=anchor aria-hidden=true><i class="material-icons align-middle">link</i></a></h4><div class=prism-codeblock><pre id=3949622 class=language-bash>
<code>fastgpt-sso:
image: registry.cn-hangzhou.aliyuncs.com/fastgpt/fastgpt-sso-service:v4.9.0
container_name: fastgpt-sso
restart: always
networks:
- fastgpt
environment:
- SSO_PROVIDER=dingtalk
- AUTH_TOKEN=xxxxx
#oauth 接口
- SSO_TARGET_URL=https://login.dingtalk.com/oauth2/auth
#获取token 接口
- DINGTALK_TOKEN_URL=https://api.dingtalk.com/v1.0/oauth2/userAccessToken
#获取用户信息接口
- DINGTALK_GET_USER_INFO_URL=https://oapi.dingtalk.com/v1.0/contact/users/me
#钉钉APP的应用ID
- DINGTALK_CLIENT_ID=xxx
#钉钉APP的应用密钥
- DINGTALK_CLIENT_SECRET=xxx</code>
</pre></div><h3 id=企业微信>企业微信 <a href=#%e4%bc%81%e4%b8%9a%e5%be%ae%e4%bf%a1 class=anchor aria-hidden=true><i class="material-icons align-middle">link</i></a></h3><h4 id=1-参数获取-2>1. 参数获取 <a href=#1-%e5%8f%82%e6%95%b0%e8%8e%b7%e5%8f%96-2 class=anchor aria-hidden=true><i class="material-icons align-middle">link</i></a></h4><ol><li><p>企业的 CorpID</p><p>a. 使用管理员账号登陆企业微信管理后台 <code>https://work.weixin.qq.com/wework_admin/loginpage_wx</code></p><p>b. 点击 【我的企业】 页面,查看企业的 <strong>企业ID</strong></p><p><img src=https://cdn.jsdelivr.net/gh/yangchuansheng/fastgpt-imgs@main/imgs/sso7.png alt loading=lazy class=medium-zoom-image></p></li><li><p>创建一个供 FastGPT 使用的内部应用:</p><p>a. 获取应用的 AgentID 和 Secret</p><p>b. 保证这个应用的可见范围为全部(也就是根部门)</p><p><img src=https://cdn.jsdelivr.net/gh/yangchuansheng/fastgpt-imgs@main/imgs/sso8.png alt loading=lazy class=medium-zoom-image></p><p><img src=https://cdn.jsdelivr.net/gh/yangchuansheng/fastgpt-imgs@main/imgs/sso9.png alt loading=lazy class=medium-zoom-image></p></li><li><p>一个域名。并且要求:</p><p>a. 解析到可公网访问的服务器上</p><p>b. 可以在该服务的根目录地址上挂载静态文件(以便进行域名归属认证 ,按照配置处的提示进行操作,只需要挂载一个静态文件,认证后可以删除)</p><p>c. 配置网页授权JS-SDK以及企业微信授权登陆</p><p>d. 可以在【企业微信授权登陆】页面下方设置“在工作台隐藏应用”</p><p><img src=https://cdn.jsdelivr.net/gh/yangchuansheng/fastgpt-imgs@main/imgs/sso10.png alt loading=lazy class=medium-zoom-image></p><p><img src=https://cdn.jsdelivr.net/gh/yangchuansheng/fastgpt-imgs@main/imgs/sso11.png alt loading=lazy class=medium-zoom-image></p><p><img src=https://cdn.jsdelivr.net/gh/yangchuansheng/fastgpt-imgs@main/imgs/sso12.png alt loading=lazy class=medium-zoom-image></p></li><li><p>获取 “通讯录同步助手” secret</p><p>获取通讯录,组织成员 ID 需要使用 “通讯录同步助手” secret</p><p>【安全与管理】&ndash; 【管理工具】 &ndash; 【通讯录同步】</p><p><img src=https://cdn.jsdelivr.net/gh/yangchuansheng/fastgpt-imgs@main/imgs/sso13.png alt loading=lazy class=medium-zoom-image></p></li><li><p>开启接口同步</p></li><li><p>获取 Secret</p></li><li><p>配置企业可信 IP</p><p><img src=https://cdn.jsdelivr.net/gh/yangchuansheng/fastgpt-imgs@main/imgs/sso14.png alt loading=lazy class=medium-zoom-image></p></li></ol><h4 id=2-yml-配置示例>2. yml 配置示例 <a href=#2-yml-%e9%85%8d%e7%bd%ae%e7%a4%ba%e4%be%8b class=anchor aria-hidden=true><i class="material-icons align-middle">link</i></a></h4><div class=prism-codeblock><pre id=b16f589 class=language-bash>
<code>fastgpt-sso:
image: registry.cn-hangzhou.aliyuncs.com/fastgpt/fastgpt-sso-service:v4.9.0
container_name: fastgpt-sso
restart: always
networks:
- fastgpt
environment:
- AUTH_TOKEN=xxxxx
- SSO_PROVIDER=wecom
# oauth 接口,在企微终端使用
- WECOM_TARGET_URL_OAUTH=https://open.weixin.qq.com/connect/oauth2/authorize
# sso 接口,扫码
- WECOM_TARGET_URL_SSO=https://login.work.weixin.qq.com/wwlogin/sso/login
# 获取用户id只能拿id)
- WECOM_GET_USER_ID_URL=https://qyapi.weixin.qq.com/cgi-bin/auth/getuserinfo
# 获取用户详细信息(除了名字都有)
- WECOM_GET_USER_INFO_URL=https://qyapi.weixin.qq.com/cgi-bin/auth/getuserdetail
# 获取用户信息(有名字,没其他信息)
- WECOM_GET_USER_NAME_URL=https://qyapi.weixin.qq.com/cgi-bin/user/get
# 获取组织 id 列表
- WECOM_GET_DEPARTMENT_LIST_URL=https://qyapi.weixin.qq.com/cgi-bin/department/list
# 获取用户 id 列表
- WECOM_GET_USER_LIST_URL=https://qyapi.weixin.qq.com/cgi-bin/user/list_id
# 企微 CorpId
- WECOM_CORPID=
# 企微 App 的 AgentId 一般是 1000xxx
- WECOM_AGENTID=
# 企微 App 的 Secret
- WECOM_APP_SECRET=
# 通讯录同步助手的 Secret
- WECOM_SYNC_SECRET=</code>
</pre></div><h3 id=标准-oauth20>标准 OAuth2.0 <a href=#%e6%a0%87%e5%87%86-oauth20 class=anchor aria-hidden=true><i class="material-icons align-middle">link</i></a></h3><p>我们提供一套 RFC 6749 中鉴权码模式的 OAuth2.0 接入支持。
参考:</p><ul><li><a href=https://datatracker.ietf.org/doc/html/rfc6749 rel=external target=_blank>RFC 6749<svg width="16" height="16" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path fill="currentcolor" d="M14 5c-.552.0-1-.448-1-1s.448-1 1-1h6c.552.0 1 .448 1 1v6c0 .552-.448 1-1 1s-1-.448-1-1V6.414l-7.293 7.293c-.391.39-1.024.39-1.414.0-.391-.391-.391-1.024.0-1.414L17.586 5H14zM5 7c-.552.0-1 .448-1 1v11c0 .552.448 1 1 1h11c.552.0 1-.448 1-1v-4.563c0-.552.448-1 1-1s1 .448 1 1V19c0 1.657-1.343 3-3 3H5c-1.657.0-3-1.343-3-3V8c0-1.657 1.343-3 3-3h4.563c.552.0 1 .448 1 1s-.448 1-1 1H5z"/></svg></a> 文档。</li><li><a href=https://www.ruanyifeng.com/blog/2014/05/oauth_2_0.html rel=external target=_blank>阮一峰的网络日志<svg width="16" height="16" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path fill="currentcolor" d="M14 5c-.552.0-1-.448-1-1s.448-1 1-1h6c.552.0 1 .448 1 1v6c0 .552-.448 1-1 1s-1-.448-1-1V6.414l-7.293 7.293c-.391.39-1.024.39-1.414.0-.391-.391-.391-1.024.0-1.414L17.586 5H14zM5 7c-.552.0-1 .448-1 1v11c0 .552.448 1 1 1h11c.552.0 1-.448 1-1v-4.563c0-.552.448-1 1-1s1 .448 1 1V19c0 1.657-1.343 3-3 3H5c-1.657.0-3-1.343-3-3V8c0-1.657 1.343-3 3-3h4.563c.552.0 1 .448 1 1s-.448 1-1 1H5z"/></svg></a></li></ul><h4 id=参数需求>参数需求 <a href=#%e5%8f%82%e6%95%b0%e9%9c%80%e6%b1%82 class=anchor aria-hidden=true><i class="material-icons align-middle">link</i></a></h4><h5 id=三个地址>三个地址 <a href=#%e4%b8%89%e4%b8%aa%e5%9c%b0%e5%9d%80 class=anchor aria-hidden=true><i class="material-icons align-middle">link</i></a></h5><p>我们提供一套标准的 OAuth2.0 接入流程。需要三个地址:</p><ol><li>登陆鉴权地址(用户点击 SSO 按钮后将携带参数直接跳转到该地址), 例如:<code>http://example.com/oauth/authorize</code><div class=prism-codeblock><pre id=e411ea9 class=language-bash>
<code>curl -X GET\
&#34;http://example.com/oauth/authorize?response_type=code&amp;client_id=s6BhdRkqt3&amp;state=xyz&amp;redirect_uri=https%3A%2F%2Ffastgpt.cn%2Flogin%2Fprovider&#34;</code>
</pre></div>用户输入账号密码后,会跳转到 redirect_uri 中,并携带 code 参数:
<code>https://fastgpt.cn/login/provider?code=4/P7qD2qAz4&amp;state=xyz</code></li><li>获取 access_token 的地址,获取到 code 后,通过<em>服务器请求</em>该地址获取 access_token 例如:<code>http://example.com/oauth/access_token</code><div class=prism-codeblock><pre id=b8fa479 class=language-bash>
<code>curl -X POST\
-H &#34;Content-Type: application/x-www-form-urlencoded&#34;\
&#34;http://example.com/oauth/access_token?grant_type=authorization_code&amp;client_id=s6BhdRkqt3&amp;client_secret=xxx&amp;code=4/P7qD2qAz4&amp;redirect_uri=https%3A%2F%2Ffastgpt.cn%2Flogin%2Fprovider&#34;</code>
</pre></div>注意Content-Type 必须是 application/x-www-form-urlencoded, 而不是 application/json</li><li>获取用户信息的地址,需要传入 access_token 例如:<code>http://example.com/oauth/user_info</code><div class=prism-codeblock><pre id=934168a class=language-bash>
<code>curl -X GET\
-H &#34;Authorization: Bearer 4/P7qD2qAz4&#34;\
&#34;http://example.com/oauth/user_info&#34;</code>
</pre></div>注意: access_token 作为 Authorization 头部传入, 格式为 Bearer xxxx</li></ol><h5 id=参数配置>参数配置 <a href=#%e5%8f%82%e6%95%b0%e9%85%8d%e7%bd%ae class=anchor aria-hidden=true><i class="material-icons align-middle">link</i></a></h5><ul><li>CLIENT_ID: 必须</li><li>CLIENT_SECRET: 非必须,如果没有可以不配置</li><li>SCOPE: 非必须,如果没有可以不配置</li></ul><blockquote><p>redirect_uri 参数会根据运行环境自动补全</p><p>其他固定参数如 grant_type, response_type 等会自动补全</p></blockquote><h4 id=配置示例>配置示例 <a href=#%e9%85%8d%e7%bd%ae%e7%a4%ba%e4%be%8b class=anchor aria-hidden=true><i class="material-icons align-middle">link</i></a></h4><div class=prism-codeblock><pre id=840bc0b class=language-bash>
<code>fastgpt-sso:
image: registry.cn-hangzhou.aliyuncs.com/fastgpt/fastgpt-sso-service:v4.9.0
container_name: fastgpt-sso
restart: always
networks:
- fastgpt
environment:
# OAuth2.0
# === 请求地址 ===
# 1. OAuth2 登陆鉴权地址 (必填)
- OAUTH2_AUTHORIZE_URL=
# 2. OAuth2 获取 AccessToken 地址 (必填)
- OAUTH2_TOKEN_URL=
# 3. OAuth2 获取用户信息地址 (必填)
- OAUTH2_USER_INFO_URL=
# === 参数 ===
# 1. client_id (必填)
- OAUTH2_CLIENT_ID=
# 2. client_secret (选填,如果没有则不传)
- OAUTH2_CLIENT_SECRET=
# 3. scope (选填)
- OAUTH2_SCOPE=
# === 字段映射 ===
# OAuth2 用户名字段映射(必填)
- OAUTH2_USERNAME_MAP=
# OAuth2 头像字段映射(选填)
- OAUTH2_AVATAR_MAP=
# OAuth2 成员名字段映射(选填)
- OAUTH2_MEMBER_NAME_MAP=
# OAuth2 联系方式字段映射(选填)
- OAUTH2_CONTACT_MAP=</code>
</pre></div><h2 id=标准接口文档>标准接口文档 <a href=#%e6%a0%87%e5%87%86%e6%8e%a5%e5%8f%a3%e6%96%87%e6%a1%a3 class=anchor aria-hidden=true><i class="material-icons align-middle">link</i></a></h2><p>以下是 FastGPT-pro 中SSO 和成员同步的标准接口文档,如果需要对接非标准系统,可以参考该章节进行开发。</p><p><img src=https://cdn.jsdelivr.net/gh/yangchuansheng/fastgpt-imgs@main/imgs/sso18.png alt loading=lazy class=medium-zoom-image></p><p>FastGPT 提供如下标准接口支持:</p><ol><li><a href=https://example.com/login/oauth/getAuthURL rel=external target=_blank>https://example.com/login/oauth/getAuthURL<svg width="16" height="16" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path fill="currentcolor" d="M14 5c-.552.0-1-.448-1-1s.448-1 1-1h6c.552.0 1 .448 1 1v6c0 .552-.448 1-1 1s-1-.448-1-1V6.414l-7.293 7.293c-.391.39-1.024.39-1.414.0-.391-.391-.391-1.024.0-1.414L17.586 5H14zM5 7c-.552.0-1 .448-1 1v11c0 .552.448 1 1 1h11c.552.0 1-.448 1-1v-4.563c0-.552.448-1 1-1s1 .448 1 1V19c0 1.657-1.343 3-3 3H5c-1.657.0-3-1.343-3-3V8c0-1.657 1.343-3 3-3h4.563c.552.0 1 .448 1 1s-.448 1-1 1H5z"/></svg></a> 获取鉴权重定向地址</li><li><a href="https://example.com/login/oauth/getUserInfo?code=xxxxx" rel=external target=_blank>https://example.com/login/oauth/getUserInfo?code=xxxxx<svg width="16" height="16" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path fill="currentcolor" d="M14 5c-.552.0-1-.448-1-1s.448-1 1-1h6c.552.0 1 .448 1 1v6c0 .552-.448 1-1 1s-1-.448-1-1V6.414l-7.293 7.293c-.391.39-1.024.39-1.414.0-.391-.391-.391-1.024.0-1.414L17.586 5H14zM5 7c-.552.0-1 .448-1 1v11c0 .552.448 1 1 1h11c.552.0 1-.448 1-1v-4.563c0-.552.448-1 1-1s1 .448 1 1V19c0 1.657-1.343 3-3 3H5c-1.657.0-3-1.343-3-3V8c0-1.657 1.343-3 3-3h4.563c.552.0 1 .448 1 1s-.448 1-1 1H5z"/></svg></a> 消费 code换取用户信息</li><li><a href=https://example.com/org/list rel=external target=_blank>https://example.com/org/list<svg width="16" height="16" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path fill="currentcolor" d="M14 5c-.552.0-1-.448-1-1s.448-1 1-1h6c.552.0 1 .448 1 1v6c0 .552-.448 1-1 1s-1-.448-1-1V6.414l-7.293 7.293c-.391.39-1.024.39-1.414.0-.391-.391-.391-1.024.0-1.414L17.586 5H14zM5 7c-.552.0-1 .448-1 1v11c0 .552.448 1 1 1h11c.552.0 1-.448 1-1v-4.563c0-.552.448-1 1-1s1 .448 1 1V19c0 1.657-1.343 3-3 3H5c-1.657.0-3-1.343-3-3V8c0-1.657 1.343-3 3-3h4.563c.552.0 1 .448 1 1s-.448 1-1 1H5z"/></svg></a> 获取组织列表</li><li><a href=https://example.com/user/list rel=external target=_blank>https://example.com/user/list<svg width="16" height="16" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path fill="currentcolor" d="M14 5c-.552.0-1-.448-1-1s.448-1 1-1h6c.552.0 1 .448 1 1v6c0 .552-.448 1-1 1s-1-.448-1-1V6.414l-7.293 7.293c-.391.39-1.024.39-1.414.0-.391-.391-.391-1.024.0-1.414L17.586 5H14zM5 7c-.552.0-1 .448-1 1v11c0 .552.448 1 1 1h11c.552.0 1-.448 1-1v-4.563c0-.552.448-1 1-1s1 .448 1 1V19c0 1.657-1.343 3-3 3H5c-1.657.0-3-1.343-3-3V8c0-1.657 1.343-3 3-3h4.563c.552.0 1 .448 1 1s-.448 1-1 1H5z"/></svg></a> 获取成员列表</li></ol><h3 id=获取-sso-登录重定向地址>获取 SSO 登录重定向地址 <a href=#%e8%8e%b7%e5%8f%96-sso-%e7%99%bb%e5%bd%95%e9%87%8d%e5%ae%9a%e5%90%91%e5%9c%b0%e5%9d%80 class=anchor aria-hidden=true><i class="material-icons align-middle">link</i></a></h3><p>返回一个重定向登录地址fastgpt 会自动重定向到该地址。redirect_uri 会自动拼接到该地址的 query中。</p><nav><div class="nav nav-tabs" id=nav-tab role=tablist><a class="nav-link active" id=caefbdTab data-bs-toggle=tab data-bs-target=#caefbd type=button role=tab aria-controls=caefbd aria-selected=true>请求示例</a>
<a class=nav-link id=dcbafeTab data-bs-toggle=tab data-bs-target=#dcbafe type=button role=tab aria-controls=dcbafe aria-selected=true>响应示例</a></div></nav><div class=tab-content id=nav-tab-content><div class="tab-pane fade show active" id=caefbd role=tabpanel aria-labelledby=nav-1><div class=prism-codeblock><pre id=3970eeb class=language-bash>
<code>curl -X GET &#34;https://redict.example/login/oauth/getAuthURL?redirect_uri=xxx&amp;state=xxxx&#34; \
-H &#34;Authorization: Bearer your_token_here&#34; \
-H &#34;Content-Type: application/json&#34;</code>
</pre></div></div><div class="tab-pane fade" id=dcbafe role=tabpanel aria-labelledby=nav-1><p>成功:</p><div class=prism-codeblock><pre id=8296736 class=language-JSON>
<code>{
&#34;success&#34;: true,
&#34;message&#34;: &#34;&#34;,
&#34;authURL&#34;: &#34;https://example.com/somepath/login/oauth?redirect_uri=https%3A%2F%2Ffastgpt.cn%2Flogin%2Fprovider%0A&#34;
}</code>
</pre></div><p>失败:</p><div class=prism-codeblock><pre id=a67b1ae class=language-JSON>
<code>{
&#34;success&#34;: false,
&#34;message&#34;: &#34;错误信息&#34;,
&#34;authURL&#34;: &#34;&#34;
}</code>
</pre></div></div></div><h3 id=sso-获取用户信息>SSO 获取用户信息 <a href=#sso-%e8%8e%b7%e5%8f%96%e7%94%a8%e6%88%b7%e4%bf%a1%e6%81%af class=anchor aria-hidden=true><i class="material-icons align-middle">link</i></a></h3><p>该接口接受一个 code 参数作为鉴权,消费 code 返回用户信息。</p><nav><div class="nav nav-tabs" id=nav-tab role=tablist><a class="nav-link active" id=dbafceTab data-bs-toggle=tab data-bs-target=#dbafce type=button role=tab aria-controls=dbafce aria-selected=true>请求示例</a>
<a class=nav-link id=ceabfdTab data-bs-toggle=tab data-bs-target=#ceabfd type=button role=tab aria-controls=ceabfd aria-selected=true>响应示例</a></div></nav><div class=tab-content id=nav-tab-content><div class="tab-pane fade show active" id=dbafce role=tabpanel aria-labelledby=nav-1><div class=prism-codeblock><pre id=532f1a3 class=language-bash>
<code>curl -X GET &#34;https://oauth.example/login/oauth/getUserInfo?code=xxxxxx&#34; \
-H &#34;Authorization: Bearer your_token_here&#34; \
-H &#34;Content-Type: application/json&#34;</code>
</pre></div></div><div class="tab-pane fade" id=ceabfd role=tabpanel aria-labelledby=nav-1><p>成功:</p><div class=prism-codeblock><pre id=71afe34 class=language-JSON>
<code>{
&#34;success&#34;: true,
&#34;message&#34;: &#34;&#34;,
&#34;username&#34;: &#34;fastgpt-123456789&#34;,
&#34;avatar&#34;: &#34;https://example.webp&#34;,
&#34;contact&#34;: &#34;&#43;861234567890&#34;,
&#34;memberName&#34;: &#34;成员名(非必填)&#34;,
}</code>
</pre></div><p>失败:</p><div class=prism-codeblock><pre id=4509205 class=language-JSON>
<code>{
&#34;success&#34;: false,
&#34;message&#34;: &#34;错误信息&#34;,
&#34;username&#34;: &#34;&#34;,
&#34;avatar&#34;: &#34;&#34;,
&#34;contact&#34;: &#34;&#34;
}</code>
</pre></div></div></div><h3 id=获取组织>获取组织 <a href=#%e8%8e%b7%e5%8f%96%e7%bb%84%e7%bb%87 class=anchor aria-hidden=true><i class="material-icons align-middle">link</i></a></h3><nav><div class="nav nav-tabs" id=nav-tab role=tablist><a class="nav-link active" id=bcadefTab data-bs-toggle=tab data-bs-target=#bcadef type=button role=tab aria-controls=bcadef aria-selected=true>请求示例</a>
<a class=nav-link id=cdefbaTab data-bs-toggle=tab data-bs-target=#cdefba type=button role=tab aria-controls=cdefba aria-selected=true>响应示例</a></div></nav><div class=tab-content id=nav-tab-content><div class="tab-pane fade show active" id=bcadef role=tabpanel aria-labelledby=nav-1><div class=prism-codeblock><pre id=d289d9a class=language-bash>
<code>curl -X GET &#34;https://example.com/org/list&#34; \
-H &#34;Authorization: Bearer your_token_here&#34; \
-H &#34;Content-Type: application/json&#34;</code>
</pre></div></div><div class="tab-pane fade" id=cdefba role=tabpanel aria-labelledby=nav-1><p>⚠️注意:只能存在一个根部门。如果你的系统中存在多个根部门,需要先进行处理,加一个虚拟的根部门。返回值类型:</p><div class=prism-codeblock><pre id=1224f6e class=language-ts>
<code>type OrgListResponseType = {
message?: string; // 报错信息
success: boolean;
orgList: {
id: string; // 部门的唯一 id
name: string; // 名字
parentId: string; // parentId如果为根部门传空字符串。
}[];
}</code>
</pre></div><div class=prism-codeblock><pre id=ed13527 class=language-JSON>
<code>{
&#34;success&#34;: true,
&#34;message&#34;: &#34;&#34;,
&#34;orgList&#34;: [
{
&#34;id&#34;: &#34;od-125151515&#34;,
&#34;name&#34;: &#34;根部门&#34;,
&#34;parentId&#34;: &#34;&#34;
},
{
&#34;id&#34;: &#34;od-51516152&#34;,
&#34;name&#34;: &#34;子部门&#34;,
&#34;parentId&#34;: &#34;od-125151515&#34;
}
]
}</code>
</pre></div></div></div><h3 id=获取成员>获取成员 <a href=#%e8%8e%b7%e5%8f%96%e6%88%90%e5%91%98 class=anchor aria-hidden=true><i class="material-icons align-middle">link</i></a></h3><nav><div class="nav nav-tabs" id=nav-tab role=tablist><a class="nav-link active" id=daebfcTab data-bs-toggle=tab data-bs-target=#daebfc type=button role=tab aria-controls=daebfc aria-selected=true>请求示例</a>
<a class=nav-link id=bdecafTab data-bs-toggle=tab data-bs-target=#bdecaf type=button role=tab aria-controls=bdecaf aria-selected=true>响应示例</a></div></nav><div class=tab-content id=nav-tab-content><div class="tab-pane fade show active" id=daebfc role=tabpanel aria-labelledby=nav-1><div class=prism-codeblock><pre id=bc9e9ec class=language-bash>
<code>curl -X GET &#34;https://example.com/user/list&#34; \
-H &#34;Authorization: Bearer your_token_here&#34; \
-H &#34;Content-Type: application/json&#34;</code>
</pre></div></div><div class="tab-pane fade" id=bdecaf role=tabpanel aria-labelledby=nav-1><p>返回值类型:</p><div class=prism-codeblock><pre id=0315dd3 class=language-typescript>
<code>type UserListResponseListType = {
message?: string; // 报错信息
success: boolean;
userList: {
username: string; // 唯一 id username 必须与 SSO 接口返回的用户 username 相同。并且必须携带一个前缀,例如: sync-aaaaa和 sso 接口返回的前缀一致
memberName?: string; // 名字,作为 tmbname
avatar?: string;
contact?: string; // email or phone number
orgs?: string[]; // 人员所在组织的 ID。没有组织传 []
}[];
}</code>
</pre></div><p>curl示例</p><div class=prism-codeblock><pre id=29e8c2a class=language-JSON>
<code>{
&#34;success&#34;: true,
&#34;message&#34;: &#34;&#34;,
&#34;userList&#34;: [
{
&#34;username&#34;: &#34;fastgpt-123456789&#34;,
&#34;memberName&#34;: &#34;张三&#34;,
&#34;avatar&#34;: &#34;https://example.webp&#34;,
&#34;contact&#34;: &#34;&#43;861234567890&#34;,
&#34;orgs&#34;: [&#34;od-125151515&#34;, &#34;od-51516152&#34;]
},
{
&#34;username&#34;: &#34;fastgpt-12345678999&#34;,
&#34;memberName&#34;: &#34;李四&#34;,
&#34;avatar&#34;: &#34;&#34;,
&#34;contact&#34;: &#34;&#34;,
&#34;orgs&#34;: [&#34;od-125151515&#34;]
}
]
}</code>
</pre></div></div></div><h2 id=如何对接非标准系统>如何对接非标准系统 <a href=#%e5%a6%82%e4%bd%95%e5%af%b9%e6%8e%a5%e9%9d%9e%e6%a0%87%e5%87%86%e7%b3%bb%e7%bb%9f class=anchor aria-hidden=true><i class="material-icons align-middle">link</i></a></h2><ol><li>客户自己开发:按 fastgpt 提供的标准接口进行开发,并将部署后的服务地址填入 fastgpt-pro
可以参考该模版库:<a href=https://github.com/labring/fastgpt-sso-template rel=external target=_blank>fastgpt-sso-template<svg width="16" height="16" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path fill="currentcolor" d="M14 5c-.552.0-1-.448-1-1s.448-1 1-1h6c.552.0 1 .448 1 1v6c0 .552-.448 1-1 1s-1-.448-1-1V6.414l-7.293 7.293c-.391.39-1.024.39-1.414.0-.391-.391-.391-1.024.0-1.414L17.586 5H14zM5 7c-.552.0-1 .448-1 1v11c0 .552.448 1 1 1h11c.552.0 1-.448 1-1v-4.563c0-.552.448-1 1-1s1 .448 1 1V19c0 1.657-1.343 3-3 3H5c-1.657.0-3-1.343-3-3V8c0-1.657 1.343-3 3-3h4.563c.552.0 1 .448 1 1s-.448 1-1 1H5z"/></svg></a> 进行开发</li><li>由 fastgpt 团队定制开发:
a. 提供系统的 SSO 文档、获取成员和组织的文档、以及外网测试地址。
b. 在 fastgpt-sso-service 中,增加对应的 provider 和环境变量,并编写代码来对接。</li></ol></div><div class="gitinfo d-flex flex-wrap justify-content-between align-items-center opacity-85 pt-3"><div id=edit-this-page class=mt-1><a href=https://github.com/labring/FastGPT/blob/main/docSite/content/zh-cn/docs/guide/admin/sso.md alt="SSO & 外部成员同步" rel="noopener noreferrer" target=_blank><span class="me-1 align-text-bottom"><svg width="20" height="20" viewBox="0 0 32 32" xmlns="http://www.w3.org/2000/svg" fill="currentcolor"><path d="M16 .396c-8.839.0-16 7.167-16 16 0 7.073 4.584 13.068 10.937 15.183.803.151 1.093-.344 1.093-.772.0-.38-.009-1.385-.015-2.719-4.453.964-5.391-2.151-5.391-2.151-.729-1.844-1.781-2.339-1.781-2.339-1.448-.989.115-.968.115-.968 1.604.109 2.448 1.645 2.448 1.645 1.427 2.448 3.744 1.74 4.661 1.328.14-1.031.557-1.74 1.011-2.135-3.552-.401-7.287-1.776-7.287-7.907.0-1.751.62-3.177 1.645-4.297-.177-.401-.719-2.031.141-4.235.0.0 1.339-.427 4.4 1.641 1.281-.355 2.641-.532 4-.541 1.36.009 2.719.187 4 .541 3.043-2.068 4.381-1.641 4.381-1.641.859 2.204.317 3.833.161 4.235 1.015 1.12 1.635 2.547 1.635 4.297.0 6.145-3.74 7.5-7.296 7.891.556.479 1.077 1.464 1.077 2.959.0 2.14-.02 3.864-.02 4.385.0.416.28.916 1.104.755 6.4-2.093 10.979-8.093 10.979-15.156.0-8.833-7.161-16-16-16z"/></svg></span>编辑此页面</a></div></div></div><div><hr class=doc-hr><div id=doc-nav class=d-print-none><div class="row flex-xl-nowrap"><div class="col-sm-6 pt-2 doc-next"><a href=/docs/development/docker/><div class="card h-100 my-1"><div class="card-body py-2"><p class="card-title fs-5 fw-semibold lh-base mb-0"><i class="material-icons align-middle">navigate_before</i> Docker Compose 快速部署</p><p class="card-text ms-2">使用 Docker Compose 快速部署 FastGPT</p></div></div></a></div><div class="col-sm-6 pt-2 doc-prev"><a class=ms-auto href=/docs/development/configuration/><div class="card h-100 my-1 text-end"><div class="card-body py-2"><p class="card-title fs-5 fw-semibold lh-base mb-0">配置文件介绍 <i class="material-icons align-middle">navigate_next</i></p><p class="card-text me-2">FastGPT 配置参数介绍</p></div></div></a></div></div></div></div></div></div></div></div><footer class="shadow py-3 d-print-none"><div class="row align-items-center" style=height:90px><div class=col><div class="text-sm-start text-center mx-md-2"><p class=mb-0>© 2025 the FastGPT Authors.</p><p class=github-badge><span class=badge-subject>云操作系统</span><span class="badge-value bg-blue"><a style=color:#fff href=https://sealos.io/ target=_blank>Sealos</a></span>
<span class=badge-subject>云开发</span><span class="badge-value bg-brightgreen"><a style=color:#fff href=https://laf.run target=_blank>Laf</a></span>
<span class=badge-subject>云原生存储</span><span class="badge-value bg-orange"><a style=color:#fff href=https://github.com/labring/sealfs target=_blank>Sealfs</a></span></p><div id=fixed-box><div class=feedback-btn-wrapper><a href=https://fael3z0zfze.feishu.cn/share/base/form/shrcnRxj3utrzjywsom96Px4sud style=text-decoration:none target=_blank><button id=feedback-btn title="Give feedback"><svg class="inline w-5 h-5" viewBox="0 0 20 20" fill="currentcolor"><path fill-rule="evenodd" d="M18 13V5a2 2 0 00-2-2H4A2 2 0 002 5v8a2 2 0 002 2h3l3 3 3-3h3a2 2 0 002-2zM5 7a1 1 0 011-1h8a1 1 0 110 2H6A1 1 0 015 7zm1 3a1 1 0 100 2h3a1 1 0 100-2H6z" clip-rule="evenodd"/></svg>
<span _msttexthash=6039839 _msthash=295>咨询合作</span></button></a></div></div></div></div></div></footer></main></div></div><button onclick=topFunction() id=back-to-top aria-label="Back to Top Button" class="back-to-top fs-5"><svg width="24" height="24"><path d="M12 10.224l-6.3 6.3-1.38-1.372L12 7.472l7.68 7.68-1.38 1.376z" style="fill:#fff"/></svg></button>
<script>(()=>{var e=document.getElementById("mode");e!==null&&(window.matchMedia("(prefers-color-scheme: dark)").addEventListener("change",e=>{e.matches?(localStorage.setItem("theme","dark"),document.documentElement.setAttribute("data-dark-mode","")):(localStorage.setItem("theme","light"),document.documentElement.removeAttribute("data-dark-mode"))}),e.addEventListener("click",()=>{document.documentElement.toggleAttribute("data-dark-mode"),localStorage.setItem("theme",document.documentElement.hasAttribute("data-dark-mode")?"dark":"light")}),localStorage.getItem("theme")==="dark"?document.documentElement.setAttribute("data-dark-mode",""):document.documentElement.removeAttribute("data-dark-mode"))})()</script><script src=/docs/js/bootstrap.58faa4dc6cac13820c8a72b1fdd5d716641b3129ef981b1956fa23d69ad59f180fed6d42cb92030ac272ba85e7f8247d.js integrity=sha384-WPqk3GysE4IMinKx/dXXFmQbMSnvmBsZVvoj1prVnxgP7W1Cy5IDCsJyuoXn+CR9 defer></script>
<script type=text/javascript src=https://doc.tryfastgpt.ai/docs/js/bundle.min.68e80f383e0615acc689eae489a8c1d728bea3861d874ec1044cc85566fd9ff1b10385a1feadd324701c587f66e425bc.js integrity=sha384-aOgPOD4GFazGierkiajB1yi+o4Ydh07BBEzIVWb9n/GxA4Wh/q3TJHAcWH9m5CW8 crossorigin=anonymous defer></script>
<script src=https://cdn.jsdelivr.net/npm/medium-zoom/dist/medium-zoom.min.js crossorigin=anonymous referrerpolicy=no-referrer></script>
<script>const images=Array.from(document.querySelectorAll(".medium-zoom-image"));images.forEach(e=>{mediumZoom(e,{margin:0,scrollOffset:40,container:null,template:null,background:"rgba(0, 0, 0, 0.8)"})})</script><script>window.addEventListener("DOMContentLoaded",function(){docsearch({container:"#docsearch",appId:"5BEWEMH0YA",apiKey:"14834e919a87217d919d6d881fcacac3",indexName:"fastgpt",placeholder:"搜索",translations:{button:{buttonText:"搜索",buttonAriaLabel:"搜索"},modal:{startScreen:{noRecentSearchesText:"没有最近搜索"},footer:{selectText:"选中",selectKeyAriaLabel:"Enter key",navigateText:"导航",navigateUpKeyAriaLabel:"Arrow up",navigateDownKeyAriaLabel:"Arrow down",closeText:"关闭",closeKeyAriaLabel:"Escape key",searchByText:"搜索提供"},noResultsScreen:{noResultsText:"没有结果:",suggestedQueryText:"试试搜索",reportMissingResultsText:"Believe this query should return results?",reportMissingResultsLinkText:"Let us know."}}}})})</script></body></html>