| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145 |
- // Copyright 2019 Yunion
- //
- // 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.
- package identity
- import "yunion.io/x/jsonutils"
- const (
- QueryScopeOne = "one"
- QUeryScopeSub = "sub"
- )
- type TConfigs map[string]map[string]jsonutils.JSONObject
- type SLDAPIdpConfigBaseOptions struct {
- Url string `json:"url,omitempty" help:"LDAP server URL" required:"true"`
- Suffix string `json:"suffix,omitempty" required:"true"`
- User string `json:"user,omitempty" required:"true"`
- Password string `json:"password,omitempty" required:"true"`
- DisableUserOnImport bool `json:"disable_user_on_import"`
- }
- type SLDAPIdpConfigSingleDomainOptions struct {
- SLDAPIdpConfigBaseOptions
- UserTreeDN string `json:"user_tree_dn,omitempty" help:"Base user tree distinguished name" required:"true"`
- GroupTreeDN string `json:"group_tree_dn,omitempty" help:"Base group tree distinguished name" required:"true"`
- }
- type SLDAPIdpConfigMultiDomainOptions struct {
- SLDAPIdpConfigBaseOptions
- DomainTreeDN string `json:"domain_tree_dn,omitempty" help:"Base domain tree distinguished name" required:"true"`
- }
- type SLDAPIdpConfigOptions struct {
- Url string `json:"url,omitempty" help:"LDAP server URL" required:"true"`
- Suffix string `json:"suffix,omitempty" required:"true"`
- QueryScope string `json:"query_scope,omitempty" help:"Query scope" choices:"one|sub"`
- User string `json:"user,omitempty"`
- Password string `json:"password,omitempty"`
- DisableUserOnImport bool `json:"disable_user_on_import"`
- DomainTreeDN string `json:"domain_tree_dn,omitempty" help:"Domain tree root node dn(distinguished name)"`
- DomainFilter string `json:"domain_filter,omitempty"`
- DomainObjectclass string `json:"domain_objectclass,omitempty"`
- DomainIdAttribute string `json:"domain_id_attribute,omitempty"`
- DomainNameAttribute string `json:"domain_name_attribute,omitempty"`
- DomainQueryScope string `json:"domain_query_scope,omitempty" help:"Query scope" choices:"one|sub"`
- UserTreeDN string `json:"user_tree_dn,omitempty" help:"User tree distinguished name"`
- UserFilter string `json:"user_filter,omitempty"`
- UserObjectclass string `json:"user_objectclass,omitempty"`
- UserIdAttribute string `json:"user_id_attribute,omitempty"`
- UserNameAttribute string `json:"user_name_attribute,omitempty"`
- UserEnabledAttribute string `json:"user_enabled_attribute,omitempty"`
- UserEnabledMask int64 `json:"user_enabled_mask,allowzero" default:"-1"`
- UserEnabledDefault string `json:"user_enabled_default,omitempty"`
- UserEnabledInvert bool `json:"user_enabled_invert,allowfalse"`
- UserAdditionalAttribute []string `json:"user_additional_attribute_mapping,omitempty" token:"user_additional_attribute"`
- UserQueryScope string `json:"user_query_scope,omitempty" help:"Query scope" choices:"one|sub"`
- GroupTreeDN string `json:"group_tree_dn,omitempty" help:"Group tree distinguished name"`
- GroupFilter string `json:"group_filter,omitempty"`
- GroupObjectclass string `json:"group_objectclass,omitempty"`
- GroupIdAttribute string `json:"group_id_attribute,omitempty"`
- GroupNameAttribute string `json:"group_name_attribute,omitempty"`
- GroupMemberAttribute string `json:"group_member_attribute,omitempty"`
- GroupMembersAreIds bool `json:"group_members_are_ids,allowfalse"`
- GroupQueryScope string `json:"group_query_scope,omitempty" help:"Query scope" choices:"one|sub"`
- }
- const (
- IdpTemplateMSSingleDomain = "msad_one_domain"
- IdpTemplateMSMultiDomain = "msad_multi_domain"
- IdpTemplateOpenLDAPSingleDomain = "openldap_one_domain"
- IdpTemplateSAMLTest = "samltest_saml"
- IdpTemplateAzureADSAML = "azure_ad_saml"
- IdpTemplateDex = "dex_oidc"
- IdpTemplateGithub = "github_oidc"
- IdpTemplateAzureOAuth2 = "azure_oidc"
- IdpTemplateGoogle = "google_oidc"
- IdpTemplateAlipay = "alipay_oauth2"
- IdpTemplateWechat = "wechat_oauth2"
- IdpTemplateDingtalk = "dingtalk_oauth2"
- IdpTemplateFeishu = "feishu_oauth2"
- IdpTemplateQywechat = "qywechat_oauth2"
- IdpTemplateBingoIAM = "bingoiam_oauth2"
- )
- var (
- IdpTemplateDriver = map[string]string{
- IdpTemplateMSSingleDomain: IdentityDriverLDAP,
- IdpTemplateMSMultiDomain: IdentityDriverLDAP,
- IdpTemplateOpenLDAPSingleDomain: IdentityDriverLDAP,
- IdpTemplateSAMLTest: IdentityDriverSAML,
- IdpTemplateAzureADSAML: IdentityDriverSAML,
- IdpTemplateDex: IdentityDriverOIDC,
- IdpTemplateGithub: IdentityDriverOIDC,
- IdpTemplateAzureOAuth2: IdentityDriverOIDC,
- IdpTemplateGoogle: IdentityDriverOIDC,
- IdpTemplateAlipay: IdentityDriverOAuth2,
- IdpTemplateFeishu: IdentityDriverOAuth2,
- IdpTemplateDingtalk: IdentityDriverOAuth2,
- IdpTemplateWechat: IdentityDriverOAuth2,
- IdpTemplateQywechat: IdentityDriverOAuth2,
- IdpTemplateBingoIAM: IdentityDriverOAuth2,
- }
- )
- type PerformConfigInput struct {
- // 更新配置的方式
- // example: update
- //
- // | action | 含义 |
- // |---------|-----------------------------------------------|
- // | update | 增量更新配置 |
- // | remove | 删除指定配置 |
- // | replace | 全量替换配置,如果action为空,则默认为replace |
- //
- Action string `json:"action"`
- // 配置信息
- Config TConfigs `json:"config"`
- }
|