mirror of
https://github.com/rustfs/rustfs.git
synced 2026-07-27 08:38:58 +00:00
110 lines
4.9 KiB
Rust
110 lines
4.9 KiB
Rust
// Copyright 2024 RustFS Team
|
|
//
|
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
// you may not use this file except in compliance with the License.
|
|
// You may obtain a copy of the License at
|
|
//
|
|
// http://www.apache.org/licenses/LICENSE-2.0
|
|
//
|
|
// Unless required by applicable law or agreed to in writing, software
|
|
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
// See the License for the specific language governing permissions and
|
|
// limitations under the License.
|
|
|
|
// OIDC configuration field keys (used in KVS)
|
|
pub const OIDC_CONFIG_URL: &str = "config_url";
|
|
pub const OIDC_ISSUER: &str = "issuer";
|
|
pub const OIDC_CLIENT_ID: &str = "client_id";
|
|
pub const OIDC_CLIENT_SECRET: &str = "client_secret";
|
|
pub const OIDC_SCOPES: &str = "scopes";
|
|
pub const OIDC_OTHER_AUDIENCES: &str = "other_audiences";
|
|
pub const OIDC_REDIRECT_URI: &str = "redirect_uri";
|
|
pub const OIDC_REDIRECT_URI_DYNAMIC: &str = "redirect_uri_dynamic";
|
|
pub const OIDC_CLAIM_NAME: &str = "claim_name";
|
|
pub const OIDC_CLAIM_PREFIX: &str = "claim_prefix";
|
|
pub const OIDC_ROLE_POLICY: &str = "role_policy";
|
|
pub const OIDC_DISPLAY_NAME: &str = "display_name";
|
|
pub const OIDC_GROUPS_CLAIM: &str = "groups_claim";
|
|
pub const OIDC_ROLES_CLAIM: &str = "roles_claim";
|
|
pub const OIDC_EMAIL_CLAIM: &str = "email_claim";
|
|
pub const OIDC_USERNAME_CLAIM: &str = "username_claim";
|
|
pub const OIDC_HIDE_FROM_UI: &str = "hide_from_ui";
|
|
|
|
// Environment variable names for OIDC
|
|
pub const ENV_IDENTITY_OPENID_ENABLE: &str = "RUSTFS_IDENTITY_OPENID_ENABLE";
|
|
pub const ENV_IDENTITY_OPENID_CONFIG_URL: &str = "RUSTFS_IDENTITY_OPENID_CONFIG_URL";
|
|
pub const ENV_IDENTITY_OPENID_ISSUER: &str = "RUSTFS_IDENTITY_OPENID_ISSUER";
|
|
pub const ENV_IDENTITY_OPENID_CLIENT_ID: &str = "RUSTFS_IDENTITY_OPENID_CLIENT_ID";
|
|
pub const ENV_IDENTITY_OPENID_CLIENT_SECRET: &str = "RUSTFS_IDENTITY_OPENID_CLIENT_SECRET";
|
|
pub const ENV_IDENTITY_OPENID_SCOPES: &str = "RUSTFS_IDENTITY_OPENID_SCOPES";
|
|
pub const ENV_IDENTITY_OPENID_OTHER_AUDIENCES: &str = "RUSTFS_IDENTITY_OPENID_OTHER_AUDIENCES";
|
|
pub const ENV_IDENTITY_OPENID_REDIRECT_URI: &str = "RUSTFS_IDENTITY_OPENID_REDIRECT_URI";
|
|
pub const ENV_IDENTITY_OPENID_REDIRECT_URI_DYNAMIC: &str = "RUSTFS_IDENTITY_OPENID_REDIRECT_URI_DYNAMIC";
|
|
pub const ENV_IDENTITY_OPENID_CLAIM_NAME: &str = "RUSTFS_IDENTITY_OPENID_CLAIM_NAME";
|
|
pub const ENV_IDENTITY_OPENID_CLAIM_PREFIX: &str = "RUSTFS_IDENTITY_OPENID_CLAIM_PREFIX";
|
|
pub const ENV_IDENTITY_OPENID_ROLE_POLICY: &str = "RUSTFS_IDENTITY_OPENID_ROLE_POLICY";
|
|
pub const ENV_IDENTITY_OPENID_DISPLAY_NAME: &str = "RUSTFS_IDENTITY_OPENID_DISPLAY_NAME";
|
|
pub const ENV_IDENTITY_OPENID_GROUPS_CLAIM: &str = "RUSTFS_IDENTITY_OPENID_GROUPS_CLAIM";
|
|
pub const ENV_IDENTITY_OPENID_ROLES_CLAIM: &str = "RUSTFS_IDENTITY_OPENID_ROLES_CLAIM";
|
|
pub const ENV_IDENTITY_OPENID_EMAIL_CLAIM: &str = "RUSTFS_IDENTITY_OPENID_EMAIL_CLAIM";
|
|
pub const ENV_IDENTITY_OPENID_USERNAME_CLAIM: &str = "RUSTFS_IDENTITY_OPENID_USERNAME_CLAIM";
|
|
pub const ENV_IDENTITY_OPENID_HIDE_FROM_UI: &str = "RUSTFS_IDENTITY_OPENID_HIDE_FROM_UI";
|
|
|
|
/// List of all environment variable keys for an OIDC provider.
|
|
pub const ENV_IDENTITY_OPENID_KEYS: &[&str; 18] = &[
|
|
ENV_IDENTITY_OPENID_ENABLE,
|
|
ENV_IDENTITY_OPENID_CONFIG_URL,
|
|
ENV_IDENTITY_OPENID_ISSUER,
|
|
ENV_IDENTITY_OPENID_CLIENT_ID,
|
|
ENV_IDENTITY_OPENID_CLIENT_SECRET,
|
|
ENV_IDENTITY_OPENID_SCOPES,
|
|
ENV_IDENTITY_OPENID_OTHER_AUDIENCES,
|
|
ENV_IDENTITY_OPENID_REDIRECT_URI,
|
|
ENV_IDENTITY_OPENID_REDIRECT_URI_DYNAMIC,
|
|
ENV_IDENTITY_OPENID_CLAIM_NAME,
|
|
ENV_IDENTITY_OPENID_CLAIM_PREFIX,
|
|
ENV_IDENTITY_OPENID_ROLE_POLICY,
|
|
ENV_IDENTITY_OPENID_DISPLAY_NAME,
|
|
ENV_IDENTITY_OPENID_GROUPS_CLAIM,
|
|
ENV_IDENTITY_OPENID_ROLES_CLAIM,
|
|
ENV_IDENTITY_OPENID_EMAIL_CLAIM,
|
|
ENV_IDENTITY_OPENID_USERNAME_CLAIM,
|
|
ENV_IDENTITY_OPENID_HIDE_FROM_UI,
|
|
];
|
|
|
|
/// A list of all valid configuration keys for an OIDC provider.
|
|
pub const IDENTITY_OPENID_KEYS: &[&str] = &[
|
|
crate::ENABLE_KEY,
|
|
OIDC_CONFIG_URL,
|
|
OIDC_ISSUER,
|
|
OIDC_CLIENT_ID,
|
|
OIDC_CLIENT_SECRET,
|
|
OIDC_SCOPES,
|
|
OIDC_OTHER_AUDIENCES,
|
|
OIDC_REDIRECT_URI,
|
|
OIDC_REDIRECT_URI_DYNAMIC,
|
|
OIDC_CLAIM_NAME,
|
|
OIDC_CLAIM_PREFIX,
|
|
OIDC_ROLE_POLICY,
|
|
OIDC_DISPLAY_NAME,
|
|
OIDC_GROUPS_CLAIM,
|
|
OIDC_ROLES_CLAIM,
|
|
OIDC_EMAIL_CLAIM,
|
|
OIDC_USERNAME_CLAIM,
|
|
OIDC_HIDE_FROM_UI,
|
|
crate::COMMENT_KEY,
|
|
];
|
|
|
|
// Default values
|
|
pub const OIDC_DEFAULT_SCOPES: &str = "openid,profile,email";
|
|
pub const OIDC_DEFAULT_CLAIM_NAME: &str = "groups";
|
|
pub const OIDC_DEFAULT_GROUPS_CLAIM: &str = "groups";
|
|
/// Empty means do not merge a secondary claim into groups (legacy behavior). Set to e.g. `roles` to opt in.
|
|
pub const OIDC_DEFAULT_ROLES_CLAIM: &str = "";
|
|
pub const OIDC_DEFAULT_EMAIL_CLAIM: &str = "email";
|
|
pub const OIDC_DEFAULT_USERNAME_CLAIM: &str = "preferred_username";
|
|
|
|
// Subsystem identifier
|
|
pub const IDENTITY_OPENID_SUB_SYS: &str = "identity_openid";
|