[{"data":1,"prerenderedAt":548},["ShallowReactive",2],{"docs-\u002Fdocs\u002Fadmin\u002Fsso\u002F":3,"docs-nav":94},{"id":4,"title":5,"body":6,"description":19,"extension":82,"layout":83,"meta":84,"navGroup":83,"navGroupOrder":83,"navOrder":83,"navTitle":85,"navigation":86,"originalPath":87,"path":88,"redirect":83,"seo":89,"stem":90,"updated":91,"version":92,"__hash__":93},"docs\u002Fdocs\u002Fadmin\u002Fsso\u002Findex.md","Configuring Single Sign-On",{"type":7,"value":8,"toc":75},"minimark",[9,13,20,23,26,29,32,35,40,43,46,57,61,64,67],[10,11,5],"h1",{"id":12},"configuring-single-sign-on",[14,15,16],"p",{},[17,18,19],"em",{},"This feature is only available on self-hosted Enterprise licensed instances of FlowFuse.",[14,21,22],{},"FlowFuse allows users to sign in through their SAML identity provider, such\nas Google Workspace, or using LDAP against a directory service provider.",[14,24,25],{},"The platform can be configured with multiple SSO configurations and uses the\nuser's email domain to identify which provider should be used.",[14,27,28],{},"Since FlowFuse 2.7, the SSO configuration can be configured to automatically\nregisters when they first sign in.",[14,30,31],{},"Otherwise, a user will have to first register on the platform, providing a temporary\npassword in order to create an account. They will then be able to log in via their SSO provider.",[14,33,34],{},"By default, admin users can still log in with their original FlowFuse username and password, which ensures they are not locked out if there is a problem with the SSO configuration.",[36,37,39],"h2",{"id":38},"saml-sso","SAML SSO",[14,41,42],{},"SAML based SSO allows the FlowFuse platform to authenticate users against their\nidentity provider such as Google Workspace.",[14,44,45],{},"Once enabled for a particular email domain, regular users on that domain will be\ndirected to the Identity Provider in order to log in. They will no longer be able\nto log in with their local password, nor will they be able to change their email\naddress in User Settings.",[47,48,49],"ul",{},[50,51,52],"li",{},[53,54,56],"a",{"href":55},"\u002Fdocs\u002Fadmin\u002Fsso\u002Fsaml","Configuring SAML SSO",[36,58,60],{"id":59},"ldap-sso","LDAP SSO",[14,62,63],{},"LDAP based SSO allows the FlowFuse platform to authenticate users against a directory\nservice provider, such as OpenLDAP.",[14,65,66],{},"When logging in, the users credentials are passed to the service provider to verify.",[47,68,69],{},[50,70,71],{},[53,72,74],{"href":73},"\u002Fdocs\u002Fadmin\u002Fsso\u002Fldap","Configuring LDAP SSO",{"title":76,"searchDepth":77,"depth":77,"links":78},"",4,[79,81],{"id":38,"depth":80,"text":39},2,{"id":59,"depth":80,"text":60},"md",null,{},"Configuring Single Sign-On (SSO)",true,"admin\u002Fsso\u002FREADME.md","\u002Fdocs\u002Fadmin\u002Fsso",{"title":5,"description":19},"docs\u002Fadmin\u002Fsso\u002Findex","2026-05-07 18:05:45 +0530","2.33.2","RBwd34f0st-tRqiQ9zQSbdwacbTGpZcZA3yOvFCp0TU",[95,103,123,135],{"name":96,"order":97,"children":98},"FlowFuse User Manuals",1,[99],{"title":100,"path":101,"group":96,"groupOrder":97,"order":80,"children":102},"FlowFuse API","\u002Fdocs\u002Fapi",[],{"name":104,"order":77,"children":105},"FlowFuse Self-Hosted",[106,110],{"title":107,"path":108,"group":104,"groupOrder":77,"order":97,"children":109},"Quick Start","\u002Fdocs\u002Fquick-start",[],{"title":111,"path":112,"group":104,"groupOrder":77,"order":113,"children":114},"Upgrading FlowFuse","\u002Fdocs\u002Fupgrade",3,[115,119],{"title":116,"path":117,"group":-1,"groupOrder":-1,"order":-4,"children":118},"Installing a license","\u002Fdocs\u002Fupgrade\u002Fopen-source-to-premium",[],{"title":120,"path":121,"group":-1,"groupOrder":-1,"order":-4,"children":122},"Upgrading the Node-RED version","\u002Fdocs\u002Fupgrade\u002Fnodered-version",[],{"name":124,"order":125,"children":126},"Support",5,[127,131],{"title":128,"path":129,"group":124,"groupOrder":125,"order":113,"children":130},"Premium Support","\u002Fdocs\u002Fpremium-support",[],{"title":132,"path":133,"group":124,"groupOrder":125,"order":-4,"children":134},"Debugging Node-RED issues","\u002Fdocs\u002Fdebugging",[],{"name":136,"order":-4,"children":137},"Other",[138,180,192,271,320,339,413,424],{"title":139,"path":140,"group":-1,"groupOrder":-1,"order":-4,"children":141},"admin","\u002Fdocs\u002Fadmin",[142,146,152,160,164,168,172,176],{"title":143,"path":144,"group":-1,"groupOrder":-1,"order":97,"children":145},"Administering FlowFuse","\u002Fdocs\u002Fadmin\u002Fintroduction",[],{"title":85,"path":88,"group":-1,"groupOrder":-1,"order":-4,"children":147},[148,150],{"title":60,"path":73,"group":-1,"groupOrder":-1,"order":-4,"children":149},[],{"title":39,"path":55,"group":-1,"groupOrder":-1,"order":-4,"children":151},[],{"title":153,"path":154,"group":-1,"groupOrder":-1,"order":-4,"children":155},"hardening","\u002Fdocs\u002Fadmin\u002Fhardening",[156],{"title":157,"path":158,"group":-1,"groupOrder":-1,"order":-4,"children":159},"Kubernetes Hardening","\u002Fdocs\u002Fadmin\u002Fhardening\u002Fkubernetes",[],{"title":161,"path":162,"group":-1,"groupOrder":-1,"order":-4,"children":163},"Monitoring","\u002Fdocs\u002Fadmin\u002Fmonitoring",[],{"title":165,"path":166,"group":-1,"groupOrder":-1,"order":-4,"children":167},"Observability","\u002Fdocs\u002Fadmin\u002Fobservability",[],{"title":169,"path":170,"group":-1,"groupOrder":-1,"order":-4,"children":171},"Soft Launch Enablement","\u002Fdocs\u002Fadmin\u002Ffeature-flags",[],{"title":173,"path":174,"group":-1,"groupOrder":-1,"order":-4,"children":175},"Telemetry","\u002Fdocs\u002Fadmin\u002Ftelemetry",[],{"title":177,"path":178,"group":-1,"groupOrder":-1,"order":-4,"children":179},"User Management","\u002Fdocs\u002Fadmin\u002Fuser-management",[],{"title":181,"path":182,"group":-1,"groupOrder":-1,"order":-4,"children":183},"cloud","\u002Fdocs\u002Fcloud",[184,188],{"title":185,"path":186,"group":-1,"groupOrder":-1,"order":97,"children":187},"Introduction","\u002Fdocs\u002Fcloud\u002Fintroduction",[],{"title":189,"path":190,"group":-1,"groupOrder":-1,"order":-4,"children":191},"FlowFuse Cloud Billing","\u002Fdocs\u002Fcloud\u002Fbilling",[],{"title":193,"path":194,"group":-1,"groupOrder":-1,"order":-4,"children":195},"contribute","\u002Fdocs\u002Fcontribute",[196,199,203,207,211,215,219,227,263,267],{"title":185,"path":197,"group":-1,"groupOrder":-1,"order":97,"children":198},"\u002Fdocs\u002Fcontribute\u002Fintroduction",[],{"title":200,"path":201,"group":-1,"groupOrder":-1,"order":-4,"children":202},"Adding Template Settings","\u002Fdocs\u002Fcontribute\u002Fadding-template-settings",[],{"title":204,"path":205,"group":-1,"groupOrder":-1,"order":-4,"children":206},"API Design","\u002Fdocs\u002Fcontribute\u002Fapi-design",[],{"title":208,"path":209,"group":-1,"groupOrder":-1,"order":-4,"children":210},"Creating debug stack containers","\u002Fdocs\u002Fcontribute\u002Fcreating-debug-stack-containers",[],{"title":212,"path":213,"group":-1,"groupOrder":-1,"order":-4,"children":214},"Database migrations","\u002Fdocs\u002Fcontribute\u002Fdb-migrations",[],{"title":216,"path":217,"group":-1,"groupOrder":-1,"order":-4,"children":218},"FlowFuse Architecture","\u002Fdocs\u002Fcontribute\u002Farchitecture",[],{"title":220,"path":221,"group":-1,"groupOrder":-1,"order":-4,"children":222},"Local Install","\u002Fdocs\u002Fcontribute\u002Flocal",[223],{"title":224,"path":225,"group":-1,"groupOrder":-1,"order":-4,"children":226},"Local Stacks","\u002Fdocs\u002Fcontribute\u002Flocal\u002Fstacks",[],{"title":228,"path":229,"group":-1,"groupOrder":-1,"order":-4,"children":230},"State Flows","\u002Fdocs\u002Fcontribute\u002Fworkflows",[231,235,239,243,247,251,255,259],{"title":232,"path":233,"group":-1,"groupOrder":-1,"order":-4,"children":234},"Device Editor","\u002Fdocs\u002Fcontribute\u002Fworkflows\u002Fdevice-editor",[],{"title":236,"path":237,"group":-1,"groupOrder":-1,"order":-4,"children":238},"Instance states","\u002Fdocs\u002Fcontribute\u002Fworkflows\u002Fproject-states",[],{"title":240,"path":241,"group":-1,"groupOrder":-1,"order":-4,"children":242},"Invite External Users","\u002Fdocs\u002Fcontribute\u002Fworkflows\u002Finvite-external-user",[],{"title":244,"path":245,"group":-1,"groupOrder":-1,"order":-4,"children":246},"Project Creation","\u002Fdocs\u002Fcontribute\u002Fworkflows\u002Fproject-create",[],{"title":248,"path":249,"group":-1,"groupOrder":-1,"order":-4,"children":250},"Reset Password Flow","\u002Fdocs\u002Fcontribute\u002Fworkflows\u002Fpassword-reset",[],{"title":252,"path":253,"group":-1,"groupOrder":-1,"order":-4,"children":254},"Team creation Flow","\u002Fdocs\u002Fcontribute\u002Fworkflows\u002Fteam-create",[],{"title":256,"path":257,"group":-1,"groupOrder":-1,"order":-4,"children":258},"User Login Flows","\u002Fdocs\u002Fcontribute\u002Fworkflows\u002Flogin",[],{"title":260,"path":261,"group":-1,"groupOrder":-1,"order":-4,"children":262},"User Sign up Flow","\u002Fdocs\u002Fcontribute\u002Fworkflows\u002Fsignup",[],{"title":264,"path":265,"group":-1,"groupOrder":-1,"order":-4,"children":266},"Team Broker","\u002Fdocs\u002Fcontribute\u002Fteam-broker",[],{"title":268,"path":269,"group":-1,"groupOrder":-1,"order":-4,"children":270},"Working with Feature Flags","\u002Fdocs\u002Fcontribute\u002Ffeature-flags",[],{"title":272,"path":273,"group":-1,"groupOrder":-1,"order":-4,"children":274},"device-agent","\u002Fdocs\u002Fdevice-agent",[275,279,282,286,290,295],{"title":276,"path":277,"group":-1,"groupOrder":-1,"order":97,"children":278},"FlowFuse Device Agent Introduction","\u002Fdocs\u002Fdevice-agent\u002Fintroduction",[],{"title":107,"path":280,"group":-1,"groupOrder":-1,"order":80,"children":281},"\u002Fdocs\u002Fdevice-agent\u002Fquickstart",[],{"title":283,"path":284,"group":-1,"groupOrder":-1,"order":77,"children":285},"Register your Remote Instance","\u002Fdocs\u002Fdevice-agent\u002Fregister",[],{"title":287,"path":288,"group":-1,"groupOrder":-1,"order":125,"children":289},"Running the Agent","\u002Fdocs\u002Fdevice-agent\u002Frunning",[],{"title":291,"path":292,"group":-1,"groupOrder":-1,"order":293,"children":294},"Deploying your Flows","\u002Fdocs\u002Fdevice-agent\u002Fdeploy",6,[],{"title":296,"path":297,"group":-1,"groupOrder":-1,"order":-4,"children":298},"install","\u002Fdocs\u002Fdevice-agent\u002Finstall",[299,304,308,312,316],{"title":300,"path":301,"group":302,"groupOrder":-1,"order":97,"children":303},"Overview","\u002Fdocs\u002Fdevice-agent\u002Finstall\u002Foverview","DeviceAgentInstallation",[],{"title":305,"path":306,"group":302,"groupOrder":-1,"order":80,"children":307},"Device Agent Installer","\u002Fdocs\u002Fdevice-agent\u002Finstall\u002Fdevice-agent-installer",[],{"title":309,"path":310,"group":302,"groupOrder":-1,"order":113,"children":311},"Docker Install","\u002Fdocs\u002Fdevice-agent\u002Finstall\u002Fdocker",[],{"title":313,"path":314,"group":302,"groupOrder":-1,"order":77,"children":315},"Kubernetes Install","\u002Fdocs\u002Fdevice-agent\u002Finstall\u002Fkubernetes",[],{"title":317,"path":318,"group":302,"groupOrder":-1,"order":125,"children":319},"Manual Install with NPM","\u002Fdocs\u002Fdevice-agent\u002Finstall\u002Fmanual",[],{"title":321,"path":322,"group":-1,"groupOrder":-1,"order":-4,"children":323},"hardware","\u002Fdocs\u002Fhardware",[324,327,331,335],{"title":300,"path":325,"group":-1,"groupOrder":-1,"order":97,"children":326},"\u002Fdocs\u002Fhardware\u002Fintroduction",[],{"title":328,"path":329,"group":-1,"groupOrder":-1,"order":80,"children":330},"ctrlX - Node-RED","\u002Fdocs\u002Fhardware\u002Fctrlx-node-red",[],{"title":332,"path":333,"group":-1,"groupOrder":-1,"order":113,"children":334},"ctrlX - Device Agent","\u002Fdocs\u002Fhardware\u002Fctrlx-device-agent",[],{"title":336,"path":337,"group":-1,"groupOrder":-1,"order":113,"children":338},"Raspberry Pi with Raspbian","\u002Fdocs\u002Fhardware\u002Fraspbian",[],{"title":296,"path":340,"group":-1,"groupOrder":-1,"order":-4,"children":341},"\u002Fdocs\u002Finstall",[342,345,349,353,373,377,381,385],{"title":300,"path":343,"group":-1,"groupOrder":-1,"order":97,"children":344},"\u002Fdocs\u002Finstall\u002Fintroduction",[],{"title":346,"path":347,"group":-1,"groupOrder":-1,"order":-4,"children":348},"Configuring FlowFuse","\u002Fdocs\u002Finstall\u002Fconfiguration",[],{"title":350,"path":351,"group":-1,"groupOrder":-1,"order":-4,"children":352},"DNS Setup","\u002Fdocs\u002Finstall\u002Fdns-setup",[],{"title":354,"path":355,"group":-1,"groupOrder":-1,"order":-4,"children":356},"Docker install","\u002Fdocs\u002Finstall\u002Fdocker",[357,361,365,369],{"title":358,"path":359,"group":-1,"groupOrder":-1,"order":-4,"children":360},"Add Project Stacks on Docker","\u002Fdocs\u002Finstall\u002Fdocker\u002Fstacks",[],{"title":362,"path":363,"group":-1,"groupOrder":-1,"order":-4,"children":364},"Docker Engine on Windows","\u002Fdocs\u002Finstall\u002Fdocker\u002Fwindows-docker-ce",[],{"title":366,"path":367,"group":-1,"groupOrder":-1,"order":-4,"children":368},"Docker from AWS Market Place","\u002Fdocs\u002Finstall\u002Fdocker\u002Faws-marketplace",[],{"title":370,"path":371,"group":-1,"groupOrder":-1,"order":-4,"children":372},"Docker on Digital Ocean","\u002Fdocs\u002Finstall\u002Fdocker\u002Fdigital-ocean",[],{"title":374,"path":375,"group":-1,"groupOrder":-1,"order":-4,"children":376},"Email configuration","\u002Fdocs\u002Finstall\u002Femail-providers",[],{"title":378,"path":379,"group":-1,"groupOrder":-1,"order":-4,"children":380},"First Run Setup","\u002Fdocs\u002Finstall\u002Ffirst-run",[],{"title":382,"path":383,"group":-1,"groupOrder":-1,"order":-4,"children":384},"FlowFuse File Storage","\u002Fdocs\u002Finstall\u002Ffile-storage",[],{"title":386,"path":387,"group":-1,"groupOrder":-1,"order":-4,"children":388},"Install FlowFuse on Kubernetes","\u002Fdocs\u002Finstall\u002Fkubernetes",[389,393,397,401,405,409],{"title":390,"path":391,"group":-1,"groupOrder":-1,"order":-4,"children":392},"AWS EKS Installation","\u002Fdocs\u002Finstall\u002Fkubernetes\u002Faws",[],{"title":394,"path":395,"group":-1,"groupOrder":-1,"order":-4,"children":396},"AWS EKS Installation with Terraform and Helm","\u002Fdocs\u002Finstall\u002Fkubernetes\u002Faws-terraform",[],{"title":398,"path":399,"group":-1,"groupOrder":-1,"order":-4,"children":400},"Digital Ocean Kubernetes Installation","\u002Fdocs\u002Finstall\u002Fkubernetes\u002Fdigital-ocean",[],{"title":402,"path":403,"group":-1,"groupOrder":-1,"order":-4,"children":404},"Ingress Controller Migration","\u002Fdocs\u002Finstall\u002Fkubernetes\u002Fingress-controller-migration",[],{"title":406,"path":407,"group":-1,"groupOrder":-1,"order":-4,"children":408},"Kubernetes Project Stacks","\u002Fdocs\u002Finstall\u002Fkubernetes\u002Fstacks",[],{"title":410,"path":411,"group":-1,"groupOrder":-1,"order":-4,"children":412},"OpenShift Installation","\u002Fdocs\u002Finstall\u002Fkubernetes\u002Fopenshift",[],{"title":414,"path":415,"group":-1,"groupOrder":-1,"order":-4,"children":416},"migration","\u002Fdocs\u002Fmigration",[417,420],{"title":185,"path":418,"group":-1,"groupOrder":-1,"order":97,"children":419},"\u002Fdocs\u002Fmigration\u002Fintroduction",[],{"title":421,"path":422,"group":-1,"groupOrder":-1,"order":-4,"children":423},"Node-RED Tools plugin","\u002Fdocs\u002Fmigration\u002Fnode-red-tools",[],{"title":425,"path":426,"group":-1,"groupOrder":-1,"order":-4,"children":427},"user","\u002Fdocs\u002Fuser",[428,432,436,440,444,449,453,457,461,465,469,473,485,489,493,497,501,505,509,513,517,521,525,529,533,537,540,544],{"title":429,"path":430,"group":-1,"groupOrder":-1,"order":97,"children":431},"Getting Started","\u002Fdocs\u002Fuser\u002Fintroduction",[],{"title":433,"path":434,"group":-1,"groupOrder":-1,"order":97,"children":435},"Static asset service","\u002Fdocs\u002Fuser\u002Fstatic-asset-service",[],{"title":437,"path":438,"group":-1,"groupOrder":-1,"order":80,"children":439},"Bill of Materials","\u002Fdocs\u002Fuser\u002Fbill-of-materials",[],{"title":441,"path":442,"group":-1,"groupOrder":-1,"order":80,"children":443},"FlowFuse Concepts","\u002Fdocs\u002Fuser\u002Fconcepts",[],{"title":445,"path":446,"group":-1,"groupOrder":-1,"order":447,"children":448},"Instance States","\u002Fdocs\u002Fuser\u002Finstance-states",10,[],{"title":450,"path":451,"group":-1,"groupOrder":-1,"order":-4,"children":452},"Changing the Stack","\u002Fdocs\u002Fuser\u002Fchangestack",[],{"title":454,"path":455,"group":-1,"groupOrder":-1,"order":-4,"children":456},"Custom Hostnames","\u002Fdocs\u002Fuser\u002Fcustom-hostnames",[],{"title":458,"path":459,"group":-1,"groupOrder":-1,"order":-4,"children":460},"Custom Node Packages","\u002Fdocs\u002Fuser\u002Fcustom-npm-packages",[],{"title":462,"path":463,"group":-1,"groupOrder":-1,"order":-4,"children":464},"Dashboards","\u002Fdocs\u002Fuser\u002Fdashboards",[],{"title":466,"path":467,"group":-1,"groupOrder":-1,"order":-4,"children":468},"DevOps Pipelines","\u002Fdocs\u002Fuser\u002Fdevops-pipelines",[],{"title":470,"path":471,"group":-1,"groupOrder":-1,"order":-4,"children":472},"Environment Variables","\u002Fdocs\u002Fuser\u002Fenvvar",[],{"title":474,"path":475,"group":-1,"groupOrder":-1,"order":-4,"children":476},"FlowFuse Expert","\u002Fdocs\u002Fuser\u002Fexpert",[477,481],{"title":478,"path":479,"group":-1,"groupOrder":-1,"order":-4,"children":480},"AI in Node-RED","\u002Fdocs\u002Fuser\u002Fexpert\u002Fnode-red-embedded-ai",[],{"title":482,"path":483,"group":-1,"groupOrder":-1,"order":-4,"children":484},"Chat Interface","\u002Fdocs\u002Fuser\u002Fexpert\u002Fchat",[],{"title":486,"path":487,"group":-1,"groupOrder":-1,"order":-4,"children":488},"FlowFuse File Nodes","\u002Fdocs\u002Fuser\u002Ffilenodes",[],{"title":490,"path":491,"group":-1,"groupOrder":-1,"order":-4,"children":492},"FlowFuse MQTT Nodes","\u002Fdocs\u002Fuser\u002Fmqtt-nodes",[],{"title":494,"path":495,"group":-1,"groupOrder":-1,"order":-4,"children":496},"FlowFuse Persistent Context","\u002Fdocs\u002Fuser\u002Fpersistent-context",[],{"title":498,"path":499,"group":-1,"groupOrder":-1,"order":-4,"children":500},"FlowFuse Project Nodes","\u002Fdocs\u002Fuser\u002Fprojectnodes",[],{"title":502,"path":503,"group":-1,"groupOrder":-1,"order":-4,"children":504},"FlowFuse Tables","\u002Fdocs\u002Fuser\u002Fff-tables",[],{"title":506,"path":507,"group":-1,"groupOrder":-1,"order":-4,"children":508},"Groups","\u002Fdocs\u002Fuser\u002Fdevice-groups",[],{"title":510,"path":511,"group":-1,"groupOrder":-1,"order":-4,"children":512},"High Availability mode","\u002Fdocs\u002Fuser\u002Fhigh-availability",[],{"title":514,"path":515,"group":-1,"groupOrder":-1,"order":-4,"children":516},"HTTP Access Tokens","\u002Fdocs\u002Fuser\u002Fhttp-access-tokens",[],{"title":518,"path":519,"group":-1,"groupOrder":-1,"order":-4,"children":520},"Instance Settings","\u002Fdocs\u002Fuser\u002Finstance-settings",[],{"title":522,"path":523,"group":-1,"groupOrder":-1,"order":-4,"children":524},"Logging","\u002Fdocs\u002Fuser\u002Flogs",[],{"title":526,"path":527,"group":-1,"groupOrder":-1,"order":-4,"children":528},"Role-Based Access Control","\u002Fdocs\u002Fuser\u002Frole-based-access-control",[],{"title":530,"path":531,"group":-1,"groupOrder":-1,"order":-4,"children":532},"Shared Team Library","\u002Fdocs\u002Fuser\u002Fshared-library",[],{"title":534,"path":535,"group":-1,"groupOrder":-1,"order":-4,"children":536},"Snapshots","\u002Fdocs\u002Fuser\u002Fsnapshots",[],{"title":264,"path":538,"group":-1,"groupOrder":-1,"order":-4,"children":539},"\u002Fdocs\u002Fuser\u002Fteambroker",[],{"title":541,"path":542,"group":-1,"groupOrder":-1,"order":-4,"children":543},"Teams","\u002Fdocs\u002Fuser\u002Fteam",[],{"title":545,"path":546,"group":-1,"groupOrder":-1,"order":-4,"children":547},"User Settings","\u002Fdocs\u002Fuser\u002Fuser-settings",[],1786546036483]