mirror of
https://github.com/open-webui/open-webui
synced 2025-04-25 08:48:21 +00:00
feat: make oauth config persist into config.json
This commit is contained in:
parent
4a4e323a44
commit
06dbf59742
@ -295,41 +295,124 @@ ENABLE_OAUTH_SIGNUP = PersistentConfig(
|
|||||||
os.environ.get("ENABLE_OAUTH_SIGNUP", "False").lower() == "true",
|
os.environ.get("ENABLE_OAUTH_SIGNUP", "False").lower() == "true",
|
||||||
)
|
)
|
||||||
|
|
||||||
|
OAUTH_MERGE_ACCOUNTS_BY_EMAIL = PersistentConfig(
|
||||||
|
"OAUTH_MERGE_ACCOUNTS_BY_EMAIL",
|
||||||
|
"oauth.merge_accounts_by_email",
|
||||||
|
os.environ.get("OAUTH_MERGE_ACCOUNTS_BY_EMAIL", "False").lower() == "true",
|
||||||
|
)
|
||||||
|
|
||||||
OAUTH_PROVIDERS = {}
|
OAUTH_PROVIDERS = {}
|
||||||
|
|
||||||
if os.environ.get("GOOGLE_CLIENT_ID") and os.environ.get("GOOGLE_CLIENT_SECRET"):
|
GOOGLE_CLIENT_ID = PersistentConfig(
|
||||||
OAUTH_PROVIDERS["google"] = {
|
"GOOGLE_CLIENT_ID",
|
||||||
"client_id": os.environ.get("GOOGLE_CLIENT_ID"),
|
"oauth.google.client_id",
|
||||||
"client_secret": os.environ.get("GOOGLE_CLIENT_SECRET"),
|
os.environ.get("GOOGLE_CLIENT_ID", ""),
|
||||||
"server_metadata_url": "https://accounts.google.com/.well-known/openid-configuration",
|
)
|
||||||
"scope": os.environ.get("GOOGLE_OAUTH_SCOPE", "openid email profile"),
|
|
||||||
}
|
|
||||||
|
|
||||||
if (
|
GOOGLE_CLIENT_SECRET = PersistentConfig(
|
||||||
os.environ.get("MICROSOFT_CLIENT_ID")
|
"GOOGLE_CLIENT_SECRET",
|
||||||
and os.environ.get("MICROSOFT_CLIENT_SECRET")
|
"oauth.google.client_secret",
|
||||||
and os.environ.get("MICROSOFT_CLIENT_TENANT_ID")
|
os.environ.get("GOOGLE_CLIENT_SECRET", ""),
|
||||||
):
|
)
|
||||||
OAUTH_PROVIDERS["microsoft"] = {
|
|
||||||
"client_id": os.environ.get("MICROSOFT_CLIENT_ID"),
|
|
||||||
"client_secret": os.environ.get("MICROSOFT_CLIENT_SECRET"),
|
|
||||||
"server_metadata_url": f"https://login.microsoftonline.com/{os.environ.get('MICROSOFT_CLIENT_TENANT_ID')}/v2.0/.well-known/openid-configuration",
|
|
||||||
"scope": os.environ.get("MICROSOFT_OAUTH_SCOPE", "openid email profile"),
|
|
||||||
}
|
|
||||||
|
|
||||||
if (
|
GOOGLE_OAUTH_SCOPE = PersistentConfig(
|
||||||
os.environ.get("OAUTH_CLIENT_ID")
|
"GOOGLE_OAUTH_SCOPE",
|
||||||
and os.environ.get("OAUTH_CLIENT_SECRET")
|
"oauth.google.scope",
|
||||||
and os.environ.get("OPENID_PROVIDER_URL")
|
os.environ.get("GOOGLE_OAUTH_SCOPE", "openid email profile"),
|
||||||
):
|
)
|
||||||
OAUTH_PROVIDERS["oidc"] = {
|
|
||||||
"client_id": os.environ.get("OAUTH_CLIENT_ID"),
|
|
||||||
"client_secret": os.environ.get("OAUTH_CLIENT_SECRET"),
|
|
||||||
"server_metadata_url": os.environ.get("OPENID_PROVIDER_URL"),
|
|
||||||
"scope": os.environ.get("OAUTH_SCOPES", "openid email profile"),
|
|
||||||
"name": os.environ.get("OAUTH_PROVIDER_NAME", "SSO"),
|
|
||||||
}
|
|
||||||
|
|
||||||
|
MICROSOFT_CLIENT_ID = PersistentConfig(
|
||||||
|
"MICROSOFT_CLIENT_ID",
|
||||||
|
"oauth.microsoft.client_id",
|
||||||
|
os.environ.get("MICROSOFT_CLIENT_ID", ""),
|
||||||
|
)
|
||||||
|
|
||||||
|
MICROSOFT_CLIENT_SECRET = PersistentConfig(
|
||||||
|
"MICROSOFT_CLIENT_SECRET",
|
||||||
|
"oauth.microsoft.client_secret",
|
||||||
|
os.environ.get("MICROSOFT_CLIENT_SECRET", ""),
|
||||||
|
)
|
||||||
|
|
||||||
|
MICROSOFT_CLIENT_TENANT_ID = PersistentConfig(
|
||||||
|
"MICROSOFT_CLIENT_TENANT_ID",
|
||||||
|
"oauth.microsoft.tenant_id",
|
||||||
|
os.environ.get("MICROSOFT_CLIENT_TENANT_ID", ""),
|
||||||
|
)
|
||||||
|
|
||||||
|
MICROSOFT_OAUTH_SCOPE = PersistentConfig(
|
||||||
|
"MICROSOFT_OAUTH_SCOPE",
|
||||||
|
"oauth.microsoft.scope",
|
||||||
|
os.environ.get("MICROSOFT_OAUTH_SCOPE", "openid email profile"),
|
||||||
|
)
|
||||||
|
|
||||||
|
OAUTH_CLIENT_ID = PersistentConfig(
|
||||||
|
"OAUTH_CLIENT_ID",
|
||||||
|
"oauth.oidc.client_id",
|
||||||
|
os.environ.get("OAUTH_CLIENT_ID", ""),
|
||||||
|
)
|
||||||
|
|
||||||
|
OAUTH_CLIENT_SECRET = PersistentConfig(
|
||||||
|
"OAUTH_CLIENT_SECRET",
|
||||||
|
"oauth.oidc.client_secret",
|
||||||
|
os.environ.get("OAUTH_CLIENT_SECRET", ""),
|
||||||
|
)
|
||||||
|
|
||||||
|
OPENID_PROVIDER_URL = PersistentConfig(
|
||||||
|
"OPENID_PROVIDER_URL",
|
||||||
|
"oauth.oidc.provider_url",
|
||||||
|
os.environ.get("OPENID_PROVIDER_URL", ""),
|
||||||
|
)
|
||||||
|
|
||||||
|
OAUTH_SCOPES = PersistentConfig(
|
||||||
|
"OAUTH_SCOPES",
|
||||||
|
"oauth.oidc.scopes",
|
||||||
|
os.environ.get("OAUTH_SCOPES", "openid email profile"),
|
||||||
|
)
|
||||||
|
|
||||||
|
OAUTH_PROVIDER_NAME = PersistentConfig(
|
||||||
|
"OAUTH_PROVIDER_NAME",
|
||||||
|
"oauth.oidc.provider_name",
|
||||||
|
os.environ.get("OAUTH_PROVIDER_NAME", "SSO"),
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
def load_oauth_providers():
|
||||||
|
OAUTH_PROVIDERS.clear()
|
||||||
|
if GOOGLE_CLIENT_ID.value and GOOGLE_CLIENT_SECRET.value:
|
||||||
|
OAUTH_PROVIDERS["google"] = {
|
||||||
|
"client_id": GOOGLE_CLIENT_ID.value,
|
||||||
|
"client_secret": GOOGLE_CLIENT_SECRET.value,
|
||||||
|
"server_metadata_url": "https://accounts.google.com/.well-known/openid-configuration",
|
||||||
|
"scope": GOOGLE_OAUTH_SCOPE.value,
|
||||||
|
}
|
||||||
|
|
||||||
|
if (
|
||||||
|
MICROSOFT_CLIENT_ID.value
|
||||||
|
and MICROSOFT_CLIENT_SECRET.value
|
||||||
|
and MICROSOFT_CLIENT_TENANT_ID.value
|
||||||
|
):
|
||||||
|
OAUTH_PROVIDERS["microsoft"] = {
|
||||||
|
"client_id": MICROSOFT_CLIENT_ID.value,
|
||||||
|
"client_secret": MICROSOFT_CLIENT_SECRET.value,
|
||||||
|
"server_metadata_url": f"https://login.microsoftonline.com/{MICROSOFT_CLIENT_TENANT_ID.value}/v2.0/.well-known/openid-configuration",
|
||||||
|
"scope": MICROSOFT_OAUTH_SCOPE.value,
|
||||||
|
}
|
||||||
|
|
||||||
|
if (
|
||||||
|
OAUTH_CLIENT_ID.value
|
||||||
|
and OAUTH_CLIENT_SECRET.value
|
||||||
|
and OPENID_PROVIDER_URL.value
|
||||||
|
):
|
||||||
|
OAUTH_PROVIDERS["oidc"] = {
|
||||||
|
"client_id": OAUTH_CLIENT_ID.value,
|
||||||
|
"client_secret": OAUTH_CLIENT_SECRET.value,
|
||||||
|
"server_metadata_url": OPENID_PROVIDER_URL.value,
|
||||||
|
"scope": OAUTH_SCOPES.value,
|
||||||
|
"name": OAUTH_PROVIDER_NAME.value,
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
load_oauth_providers()
|
||||||
|
|
||||||
####################################
|
####################################
|
||||||
# Static DIR
|
# Static DIR
|
||||||
|
Loading…
Reference in New Issue
Block a user