Open WebUI gives an organization a browser interface for models, tools, knowledge, and user administration. Its API keys are convenient for scripts and integrations. The current documentation also states a material limitation: an API key inherits the full permissions of the user who created it, and the deployment's endpoint restrictions apply to the whole instance rather than to each key. A key is therefore a delegated user identity, not a narrow service token by default.

At about 23:48 UTC on 29 October 2026, count-only ZoomEye SDK queries with sub_type=all and page size 1 returned 92,509 matches for app="Open WebUI" and 92,307 for title="Open WebUI". The app query is the primary observation. These counts do not establish anonymous access or expose any user's key.

Treat each integration as a user

Create a separate account for each integration when the deployment supports it, and assign only the permissions that integration needs. Do not issue an administrator's API key to an automation that only reads models or sends a chat request. The documentation notes that keys do not expire automatically and that an account holds one key, so rotation and account ownership need explicit operational control.

Enable API keys only if the integration requirement justifies it. Review who can create keys and which route-level restrictions are configured. An instance-wide allow list is useful, but it does not separate two users with different data access. Apply user and group permissions first, then add the endpoint restriction as an extra layer.

Harden the session secret

The WEBUI_SECRET_KEY signs login tokens and helps protect encrypted integration data according to the hardening guide. A weak or publicly known secret undermines that boundary. Generate a strong value, store it outside the repository, limit who can read the deployment environment, and plan a rotation that includes reconnecting affected integrations.

Set a finite JWT lifetime unless there is a documented reason for non-expiring sessions. Review whether the deployment supports MFA and whether administrators require it. Disable open registration where membership should be controlled, and remove dormant accounts. A public login page with open registration can turn an internal model interface into an unmanaged user directory.

Inventory public and internal deployments

Use ZoomEye results as a discovery input, then confirm ownership through DNS and cloud inventory. An Open WebUI page may be exposed intentionally to a known audience or may be a test instance that was never retired. Inspect the authentication challenge from outside and the access policy from inside. Do not attempt to recover credentials or enumerate other users.

Record the version, public URL, reverse proxy, identity provider, model gateway, tool integrations, and knowledge collections. Determine whether a browser user can call a tool that reaches the internal network or a model provider with a shared secret. The UI role and the tool's credential are different authorities, and both need a scope.

Test revocation and route limits

In a test deployment, create a non-admin account and enable an API key. Verify that the key can reach only the documented routes. Remove the account's feature permission or disable API keys and confirm that subsequent requests fail. Rotate WEBUI_SECRET_KEY and observe session invalidation and integration reconnection. Restore the previous session state only through the supported procedure.

Monitor API-key creation, permission changes, failed logins, and new administrator accounts. Logs should identify the account and route without storing full model prompts or key values. If an integration key is exposed, first identify the account and its accessible data, then revoke and replace it. Treating it as a single leaked password may miss the user's broader permissions.

Open WebUI can bring useful model access to a team. Its key model makes clear that convenience requires identity design. Each integration should have a named owner, a limited account, a documented route set, and a tested revocation path.

References

[1] Open WebUI hardening guide

[2] Open WebUI API keys

[3] Open WebUI API endpoints

[4] ZoomEye count observation for app="Open WebUI"