From f36711fa2f08e43eb1c4e34d88b9ce2ec0542116 Mon Sep 17 00:00:00 2001 From: Sarah Rambacher Date: Wed, 13 Jan 2021 14:28:53 -0500 Subject: [PATCH 1/3] adds user fed mappers text --- src/user-federation/help.json | 64 ++++++++++++++++++++++++++++++- src/user-federation/messages.json | 62 +++++++++++++++++++++++++++++- 2 files changed, 124 insertions(+), 2 deletions(-) diff --git a/src/user-federation/help.json b/src/user-federation/help.json index d375c7226e..a56edfb7c1 100644 --- a/src/user-federation/help.json +++ b/src/user-federation/help.json @@ -64,6 +64,68 @@ "editModeKerberosHelp": "READ_ONLY means that password updates are not allowed and user always authenticates with Kerberos password. UNSYNCED means that the user can change the password in the Keycloak database and this one will be used instead of the Kerberos password", "updateFirstLoginHelp": "Update profile on first login", - "kerberosCacheSettingsDescription": "This section contains a few basic options common to all user storage providers" + "kerberosCacheSettingsDescription": "This section contains a few basic options common to all user storage providers", + + "nameHelp": "Name of the mapper", + "mapperTypeHelp": "", + + "mapperTypeMsadUserAccountControlManagerHelp": "Mapper specific to MSAD. It's able to integrate the MSAD user account state into Keycloak account state (account enabled, password is expired etc). It's using userAccountControl and pwdLastSet MSAD attributes for that. For example if pwdLastSet is 0, the Keycloak user is required to update password; if userAccountControl is 514 (disabled account) the Keycloak user is disabled as well etc. Mapper is also able to handle the exception code from LDAP user authentication", + "mapperTypeMsadLdsUserAccountControlMapperHelp": "Mapper specific to MSAD LDS. It's able to integrate the MSAD LDS user account state into Keycloak account state (account enabled, password is expired etc). It's using msDS-UserAccountDisabled and pwdLastSet is 0, the Keycloak user is required to update password, if msDS-UserAccountDisabled is 'TRUE' the Keycloak user is disabled as well etc. Mapper is also able to handle exception code from LDAP user authentication.", + "mapperTypeGroupLdapMapperHelp": "Used to map group mappings of groups from some LDAP DN to Keycloak group mappings", + "mapperTypeUserAttributeLdapMapperHelp": "Used to map single attribute from LDAP user to attribute of UserModel in Keycloak DB", + "mapperTypeRoleLdapMapperHelp": "Used to map role mappings of roles from some LDAP DN to Keycloak role mappings of either realm roles or client roles of particular client", + "mapperTypeHardcodedAttributeMapperHelp": "This mapper will hardcode any model user attribute and some property (like emailVerified or enabled) when importing user from LDAP.", + "mapperTypeHardcodedLdapRoleMapperHelp": "When user is imported from LDAP, they will be automatically added into this configured role.", + "mapperTypeCertificateLdapMapperHelp": "Used to map single attribute which contains a certificate from LDAP user to attribute of UserModel in Keycloak DB", + "mapperTypeFullNameLdapMapperHelp": "Used to map full-name of user from single attribute in LDAP (usually 'cn' attribute) to firstName and lastName attributes of UserModel in Keycloak DB", + "mapperTypeHardcodedLdapGroupMapperHelp": "When user is imported from LDAP, they will be automatically added into this configured group.", + "mapperTypeLdapAttributeMapperHelp": "This mapper is supported just if syncRegistrations is enabled. When new user is registered in Keycloak, he will be written to the LDAP with the hardcoded value of some specified attribute.", + + "passwordPolicyHintsEnabledHelp": "Applicable just for writable MSAD. If on, then updating password of MSAD user will use LDAP_SERVER_POLICY_HINTS_OID extension, which means that advanced MSAD password policies like 'password history' or 'minimal password age' will be applied. This extension works just for MSAD 2008 R2 or newer.", + + "ldapGroupsDnHelp": "LDAP DN where groups of this tree are saved. For example 'ou=groups,dc=example,dc=org'", + "groupNameLDAPAttributeHelp": "Name of LDAP attribute, which is used in group objects for name and RDN of group. Usually it will be 'cn'. In this case typical group/role object may have DN like 'cn=Group1,ouu=groups,dc=example,dc=org'", + "groupObjectClassesHelp": "Object class (or classes) of the group object. It's divided by comma if more classes needed. In typical LDAP deployment it could be 'groupOfNames'. In Active Directory it's usually 'group'", + "preserveGroupInheritanceHelp": "Flag whether group inheritance from LDAP should be propagated to Keycloak. If false, then all LDAP groups will be mapped as flat top-level groups in Keycloak. Otherwise group inheritance is preserved into Keycloak, but the group sync might fail if LDAP structure contains recursions or multiple parent groups per child groups", + "ignoreMissingGroupsHelp": "Ignore missing groups in the group hierarchy", + "membershipLdapAttributeHelp": "Name of LDAP attribute on group, which is used for membership mappings. Usually it will be 'member' .However when 'Membership Attribute Type' is 'UID' then 'Membership LDAP Attribute' could be typically 'memberUid' .", + "membershipAttributeTypeHelp": "DN means that LDAP group has it's members declared in form of their full DN. For example 'member: uid=john,ou=users,dc=example,dc=com'. UID means that LDAP group has it's members declared in form of pure user uids. For example 'memberUid: john'.", + "membershipUserLdapAttributeHelp": "Used just if Membership Attribute Type is UID. It is name of LDAP attribute on user, which is used for membership mappings. Usually it will be 'uid'. For example if value of 'Membership User LDAP Attribute' is 'uid' and LDAP group has 'memberUid: john', then it is expected that particular LDAP user will have attribute 'uid: john'.", + "ldapFilterHelp": "LDAP Filter adds an additional custom filter to the whole query for retrieve LDAP groups. Leave this empty if no additional filtering is needed and you want to retrieve all groups from LDAP. Otherwise make sure that filter starts with '(' and ends with ')'", + "modeHelp": "LDAP_ONLY means that all group mappings of users are retrieved from LDAP and saved into LDAP. READ_ONLY is Read-only LDAP mode where group mappings are retrieved from both LDAP and DB and merged together. New group joins are not saved to LDAP but to DB. IMPORT is Read-only LDAP mode where group mappings are retrieved from LDAP just at the time when user is imported from LDAP and then they are saved to local keycloak DB.", + "userGroupsRetrieveStrategyHelp": "Specify how to retrieve groups of user. LOAD_GROUPS_BY_MEMBER_ATTRIBUTE means that roles of user will be retrieved by sending LDAP query to retrieve all groups where 'member' is our user. GET_GROUPS_FROM_USER_MEMBEROF_ATTRIBUTE means that groups of user will be retrieved from 'memberOf' attribute of our user. Or from the other attribute specified by 'Member-Of LDAP Attribute'.", + "memberofLdapAttributeHelp": "Used just when 'User Roles Retrieve Strategy' is GET_GROUPS_FROM_USER_MEMBEROF_ATTRIBUTE. It specifies the name of the LDAP attribute on the LDAP user, which contains the groups, which the user is member of. Usually it will be 'memberOf' and that's also the default value.", + "mappedGroupAttributesHelp": "List of names of attributes divided by comma. This points to the list of attributes on LDAP group, which will be mapped as attributes of Group in Keycloak. Leave this empty if no additional group attributes are required to be mapped in Keycloak.", + "dropNonexistingGroupsDuringSync": "If this flag is true, then during sync of groups from LDAP to Keycloak, we will keep just those Keycloak groups, which still exists in LDAP. Rest will be deleted", + "groupsPath": "Keycloak group path the LDAP groups are added to. For example if value '/Applications/App1' is used, then LDAP groups will be available in Keycloak under group 'App1', which is child of top level group 'Applications'. The default value is '/' so LDAP groups will be mapped to the Keycloak groups at the top level. The configured group path must already exists in the Keycloak when creating this mapper.", + + "userModelAttributeHelp": "Name of the UserModel property or attribute you want to map the LDAP attribute into. For example 'firstName', 'lastName, 'email', 'street' etc.", + "ldapAttribute": "Name of mapped attribute on LDAP object. For example 'cn', 'sn, 'mail', 'street' etc.", + "readOnlyHelp": "Read-only attribute is imported from LDAP to UserModel, but it's not saved back to LDAP when user is updated in Keycloak.", + "alwaysReadValueFromLdapHelp": "If on, then during reading of the LDAP attribute value will always used instead of the value from Keycloak DB", + "isMandatoryInLdapHelp": "If true, attribute is mandatory in LDAP. Hence if there is no value in Keycloak DB, the empty value will be set to be propagated to LDAP", + "isBinaryAttributeHelp": "Should be true for binary LDAP attributes", + + "ldapRolesDNHelp": "LDAP DN where are roles of this tree saved. For example 'ou=finance,dc=example,dc=org'", + "roleNameLdapAttributeHelp": "Name of LDAP attribute, which is used in role objects for name and RDN of role. Usually it will be 'cn'. In this case typical group/role object may have DN like 'cn=role1,ou=finance,dc=example,dc=org'", + "roleObjectClassesHelp": "Object class (or classes) of the role object. It's divided by comma if more classes needed. In typical LDAP deployment it could be 'groupOfNames'. In Active Directory it's usually 'group'", + "useRealmRolesMappingHelp": "If true, then LDAP role mappings will be mapped to realm role mappings in Keycloak. Otherwise it will be mapped to client role mappings", + "clientIdHelp": "Client ID of client to which LDAP role mappings will be mapped. Applicable just if 'Use Realm Roles Mapping' is false", + + "userModelAttributeNameHelp": "Name of the model attribute, which will be added when importing user from ldap", + "attributeValueHelp": "Value of the model attribute, which will be added when importing user from ldap.", + + "roleHelp": "Role to grant to user. Click 'Select Role' button to browse roles, or just type it in the textbox. To reference an application role the syntax is appname.approle, i.e. myapp.myrole", + + "derFormattedHelp": "Activate this if the certificate is DER formatted in LDAP and not PEM formatted.", + + "ldapFullNameAttributeHelp": "Name of LDAP attribute, which contains fullName of user. Usually it will be 'cn'", + "fullNameLdapMapperReadOnlyHelp": "For Read-only is data imported from LDAP to Keycloak DB, but it's not saved back to LDAP when user is updated in Keycloak.", + "fullNameLdapMapperWriteOnlyHelp": "For Write-only is data propagated to LDAP when user is created or updated in Keycloak. But this mapper is not used to propagate data from LDAP back into Keycloak. This setting is useful if you configured separate firstName and lastName attribute mappers and you want to use those to read attribute from LDAP into Keycloak", + + "groupHelp": "When user is imported from LDAP, he will be automatically added into this configured group.", + + "ldapAttributeNameHelp": "Name of the LDAP attribute, which will be added to the new user during registration", + "ldapAttributeValueHelp": "Value of the LDAP attribute, which will be added to the new user during registration. You can either hardcode any value like 'foo' but you can also use some special tokens. Only supported token right now is '${RANDOM}' , which will be replaced with some randomly generated String." } } diff --git a/src/user-federation/messages.json b/src/user-federation/messages.json index 630b4408e1..2f1b26f26b 100644 --- a/src/user-federation/messages.json +++ b/src/user-federation/messages.json @@ -83,6 +83,66 @@ "userFedDeletedSuccess": "The user federation provider has been deleted.", "userFedDeleteError": "Could not delete user federation provider: '{{error}}'", "userFedDeleteConfirmTitle": "Delete user federation provider?", - "userFedDeleteConfirm": "If you delete this user federation provider, all associated data will be removed." + "userFedDeleteConfirm": "If you delete this user federation provider, all associated data will be removed.", + + "*** mappers ***": "", + "id": "ID", + "name": "Name", + + "mapperType": "Mapper type", + "mapperTypeMsadUserAccountControlManager": "msad-user-account-control-mapper", + "mapperTypeMsadLdsUserAccountControlMapper": "msad-user-account-control-mapper", + "mapperTypeGroupLdapMapper": "group-ldap-mapper", + "mapperTypeUserAttributeLdapMapper": "user-attribute-ldap-mapper", + "mapperTypeRoleLdapMapper": "role-ldap-mapper", + "mapperTypeHardcodedAttributeMapper": "hardcoded-attribute-mapper", + "mapperTypeHardcodedLdapRoleMapper": "hardcoded-ldap-role-mapper", + "mapperTypeCertificateLdapMapper": "certificate-ldap-mapper", + "mapperTypeFullNameLdapMapper": "full-name-ldap-mapper", + "mapperTypeHardcodedLdapGroupMapper": "hardcoded-ldap-group-mapper", + "mapperTypeLdaoAttributeMapper": "hardcoded-ldap-attribute-mapper", + + "passwordPolicyHintsEnabled": "Password policy hints enabled", + + "ldapGroupsDn": "LDAP Groups DN", + "groupNameLDAPAttribute": "Group name LDAP attribute", + "groupObjectClasses": "Group object classes", + "preserveGroupInheritance": "Preserve group inheritance", + "ignoreMissingGroups": "Ignore missing groups", + "membershipLdapAttribute": "Membership LDAP attribute", + "membershipAttributeType": "Membership attribute type", + "membershipUserLdapAttribute": "Membership user LDAP attribute", + "ldapFilter": "LDAP filter", + "mode": "Mode", + "userGroupsRetrieveStrategy": "User groups retrieve strategy", + "memberofLdapAttribute": "Member-of LDAP attribute", + "mappedGroupAttributes": "Mapped group attributes", + "dropNonexistingGroupsDuringSync": "Drop non-existing groups during sync", + "groupsPath": "Groups path", + + "userModelAttribute": "User model attribute", + "ldapAttribute": "LDAP attribute", + "readOnly": "Read only", + "alwaysReadValueFromLdap": "Always read value from LDAP", + "isMandatoryInLdap": "Is mandatory in LDAP", + "isBinaryAttribute": "Is binary attribute", + + "ldapRolesDN": "LDAP roles DN", + "roleNameLdapAttribute": "Role Name LDAP attribute", + "roleObjectClasses": "Role object classes", + "useRealmRolesMapping": "Use realm roles mapping", + "clientId": "Client ID", + + "role": "Role", + + "derFormatted": "DER formatted", + + "ldapFullNameAttribute": "LDAP full name attribute", + "writeOnly": "Write only", + + "group": "Group", + + "ldapAttributeName": "LDAP attribute name", + "ldapAttributeValue": "LDAP attribute value" } } From c567fdca93e3c007094a39ede400bb2c66695528 Mon Sep 17 00:00:00 2001 From: Sarah Rambacher Date: Wed, 13 Jan 2021 15:48:16 -0500 Subject: [PATCH 2/3] deduplicates some common text strings --- src/client-scopes/ClientScopesSection.tsx | 6 +++--- src/client-scopes/add/MapperDialog.tsx | 2 +- src/client-scopes/add/RoleMappingForm.tsx | 8 ++++---- src/client-scopes/details/MapperList.tsx | 7 ++++++- src/client-scopes/details/MappingDetails.tsx | 4 ++-- src/client-scopes/form/ClientScopeForm.tsx | 8 ++++---- src/client-scopes/messages.json | 6 ------ src/clients/ClientDescription.tsx | 4 ++-- src/clients/ClientsSection.tsx | 4 ++-- src/clients/import/ImportForm.tsx | 2 +- src/clients/messages.json | 10 ++-------- src/clients/scopes/AddScopeDialog.tsx | 2 +- src/clients/scopes/ClientScopes.tsx | 4 ++-- src/clients/scopes/EvaluateScopes.tsx | 4 ++-- src/clients/service-account/ServiceAccount.tsx | 5 ++++- src/common-messages.json | 6 ++++++ src/groups/GroupsCreateModal.tsx | 2 +- src/groups/messages.json | 1 - src/realm-roles/RealmRoleForm.tsx | 2 +- src/realm-roles/RealmRolesSection.tsx | 2 +- src/realm-roles/messages.json | 2 -- src/stories/KeycloakDataTable.stories.tsx | 4 ++-- src/user-federation/help.json | 16 ++++++++-------- src/user-federation/messages.json | 4 ---- 24 files changed, 55 insertions(+), 60 deletions(-) diff --git a/src/client-scopes/ClientScopesSection.tsx b/src/client-scopes/ClientScopesSection.tsx index 0dc07a6cb5..f782124c78 100644 --- a/src/client-scopes/ClientScopesSection.tsx +++ b/src/client-scopes/ClientScopesSection.tsx @@ -68,12 +68,12 @@ export const ClientScopesSection = () => { ]} columns={[ { - name: "name", + name: t("common:name"), cellRenderer: ClientScopeDetailLink, }, - { name: "description" }, + { name: t("common:description") }, { - name: "protocol", + name: t("protocol"), }, ]} /> diff --git a/src/client-scopes/add/MapperDialog.tsx b/src/client-scopes/add/MapperDialog.tsx index 680f5a3d2e..1ff5ffba87 100644 --- a/src/client-scopes/add/MapperDialog.tsx +++ b/src/client-scopes/add/MapperDialog.tsx @@ -142,7 +142,7 @@ export const AddMapperDialog = (props: AddMapperDialogProps) => { {isBuiltIn && rows.length > 0 && ( { rows[rowIndex].selected = isSelected; setRows([...rows]); diff --git a/src/client-scopes/add/RoleMappingForm.tsx b/src/client-scopes/add/RoleMappingForm.tsx index e74b5ebbf5..d528ec5221 100644 --- a/src/client-scopes/add/RoleMappingForm.tsx +++ b/src/client-scopes/add/RoleMappingForm.tsx @@ -170,11 +170,11 @@ export const RoleMappingForm = () => { /> } @@ -196,11 +196,11 @@ export const RoleMappingForm = () => { /> } diff --git a/src/client-scopes/details/MapperList.tsx b/src/client-scopes/details/MapperList.tsx index aa72b61336..7894258f1e 100644 --- a/src/client-scopes/details/MapperList.tsx +++ b/src/client-scopes/details/MapperList.tsx @@ -189,7 +189,12 @@ export const MapperList = ({ clientScope, refresh }: MapperListProps) => { />
{ return { cells: Object.values(cell.cells), mapper: cell.mapper }; })} diff --git a/src/client-scopes/details/MappingDetails.tsx b/src/client-scopes/details/MappingDetails.tsx index 1c24ff4333..1c9de5366e 100644 --- a/src/client-scopes/details/MappingDetails.tsx +++ b/src/client-scopes/details/MappingDetails.tsx @@ -157,11 +157,11 @@ export const MappingDetails = () => { {!id.match(isGuid) && ( } diff --git a/src/client-scopes/form/ClientScopeForm.tsx b/src/client-scopes/form/ClientScopeForm.tsx index d2233b1fe8..a44efdf703 100644 --- a/src/client-scopes/form/ClientScopeForm.tsx +++ b/src/client-scopes/form/ClientScopeForm.tsx @@ -118,11 +118,11 @@ export const ClientScopeForm = () => { className="pf-u-mt-md" > } @@ -148,11 +148,11 @@ export const ClientScopeForm = () => { /> } diff --git a/src/client-scopes/messages.json b/src/client-scopes/messages.json index ea712c290b..c8f66c1582 100644 --- a/src/client-scopes/messages.json +++ b/src/client-scopes/messages.json @@ -5,11 +5,6 @@ "clientScopeDetails": "Client scope details", "clientScopeExplain": "Client scopes allow you to define a common set of protocol mappers and roles, which are shared between multiple clients", "searchFor": "Search for client scope", - "name": "Name", - "description": "Description", - "category": "Category", - "type": "Type", - "priority": "Priority", "protocol": "Protocol", "deletedSuccess": "The client scope has been deleted", "deleteError": "Could not delete client scope: {{error}}", @@ -38,7 +33,6 @@ "addMapper": "Add mapper", "addMapperExplain": "If you want more fine-grain control, you can create protocol mapper on this client", "protocolMapper": "Mapper type", - "role": "Role", "realmRoles": "Realm roles", "selectARole": "Select a role", "clientRoles": "Client roles", diff --git a/src/clients/ClientDescription.tsx b/src/clients/ClientDescription.tsx index e238017ce9..12ef3b58b6 100644 --- a/src/clients/ClientDescription.tsx +++ b/src/clients/ClientDescription.tsx @@ -32,10 +32,10 @@ export const ClientDescription = ({ form }: ClientDescriptionProps) => { } /> - + - + { displayKey: "clients:clientID", cellRenderer: ClientDetailLink, }, - { name: "protocol", displayKey: "clients:type" }, + { name: "protocol", displayKey: "common:type" }, { name: "description", - displayKey: "clients:description", + displayKey: "common:description", cellFormatters: [emptyFormatter()], }, { diff --git a/src/clients/import/ImportForm.tsx b/src/clients/import/ImportForm.tsx index 7c262e0460..b3f909445d 100644 --- a/src/clients/import/ImportForm.tsx +++ b/src/clients/import/ImportForm.tsx @@ -58,7 +58,7 @@ export const ImportForm = () => { - +
{ if (rowIndex === -1) { setRows( diff --git a/src/clients/scopes/ClientScopes.tsx b/src/clients/scopes/ClientScopes.tsx index 3c011d65d2..480ec399e1 100644 --- a/src/clients/scopes/ClientScopes.tsx +++ b/src/clients/scopes/ClientScopes.tsx @@ -404,9 +404,9 @@ export const ClientScopes = ({ clientId, protocol }: ClientScopesProps) => { }} variant={TableVariant.compact} cells={[ - t("name"), + t("common:name"), { title: t("assignedType"), cellFormatters: [dropdown()] }, - t("description"), + t("common:description"), ]} rows={rows} actions={[ diff --git a/src/clients/scopes/EvaluateScopes.tsx b/src/clients/scopes/EvaluateScopes.tsx index 5977e6d408..a19c5e9fa8 100644 --- a/src/clients/scopes/EvaluateScopes.tsx +++ b/src/clients/scopes/EvaluateScopes.tsx @@ -71,11 +71,11 @@ const ProtocolMappers = ({ }, { name: "type.category", - displayKey: "clients:category", + displayKey: "common:category", }, { name: "type.priority", - displayKey: "clients:priority", + displayKey: "commmon:priority", }, ]} /> diff --git a/src/clients/service-account/ServiceAccount.tsx b/src/clients/service-account/ServiceAccount.tsx index f870f58922..b5a4f435e8 100644 --- a/src/clients/service-account/ServiceAccount.tsx +++ b/src/clients/service-account/ServiceAccount.tsx @@ -150,7 +150,10 @@ export const ServiceAccount = ({ clientId }: ServiceAccountProps) => { title: t("inherentFrom"), cellFormatters: [emptyFormatter()], }, - { title: t("description"), cellFormatters: [emptyFormatter()] }, + { + title: t("common:description"), + cellFormatters: [emptyFormatter()], + }, ]} rows={clientRoles} aria-label="roleList" diff --git a/src/common-messages.json b/src/common-messages.json index 14bada44a8..6324e8a483 100644 --- a/src/common-messages.json +++ b/src/common-messages.json @@ -39,6 +39,12 @@ "enableHelpMode": "Enable help mode", "learnMore": "Learn more", "test": "Test", + "name": "Name", + "role": "Role", + "description": "Description", + "type": "Type", + "category": "Category", + "priority": "Priority", "home": "Home", "manage": "Manage", diff --git a/src/groups/GroupsCreateModal.tsx b/src/groups/GroupsCreateModal.tsx index 53677f551f..7639954c66 100644 --- a/src/groups/GroupsCreateModal.tsx +++ b/src/groups/GroupsCreateModal.tsx @@ -75,7 +75,7 @@ export const GroupsCreateModal = ({ { /> { }, { name: "description", - displayKey: "roles:description", + displayKey: "common:description", cellFormatters: [emptyFormatter()], }, ]} diff --git a/src/realm-roles/messages.json b/src/realm-roles/messages.json index d182b5c422..e962946d2c 100644 --- a/src/realm-roles/messages.json +++ b/src/realm-roles/messages.json @@ -7,7 +7,6 @@ "createRole": "Create role", "importRole": "Import role", "roleID": "Role ID", - "type": "Type", "homeURL": "Home URL", "roleExplain": "Realm-level roles are a global namespace to define your roles.", "roleCreateExplain": "This is some description", @@ -15,7 +14,6 @@ "roleDetails": "Role details", "composite": "Composite", "deleteRole": "Delete this role", - "description": "Description", "details": "Details", "roleList": "Role list", "searchFor": "Search for role", diff --git a/src/stories/KeycloakDataTable.stories.tsx b/src/stories/KeycloakDataTable.stories.tsx index dfe157b246..58fdfbe23e 100644 --- a/src/stories/KeycloakDataTable.stories.tsx +++ b/src/stories/KeycloakDataTable.stories.tsx @@ -27,10 +27,10 @@ SimpleList.args = { searchPlaceholderKey: "common:search", columns: [ { name: "clientId", displayKey: "clients:clientID" }, - { name: "protocol", displayKey: "clients:type" }, + { name: "protocol", displayKey: "common:type" }, { name: "description", - displayKey: "clients:description", + displayKey: "common:description", cellFormatters: [ (data?: IFormatterValueType) => { return data ? data : "—"; diff --git a/src/user-federation/help.json b/src/user-federation/help.json index a56edfb7c1..3228d0b019 100644 --- a/src/user-federation/help.json +++ b/src/user-federation/help.json @@ -97,35 +97,35 @@ "memberofLdapAttributeHelp": "Used just when 'User Roles Retrieve Strategy' is GET_GROUPS_FROM_USER_MEMBEROF_ATTRIBUTE. It specifies the name of the LDAP attribute on the LDAP user, which contains the groups, which the user is member of. Usually it will be 'memberOf' and that's also the default value.", "mappedGroupAttributesHelp": "List of names of attributes divided by comma. This points to the list of attributes on LDAP group, which will be mapped as attributes of Group in Keycloak. Leave this empty if no additional group attributes are required to be mapped in Keycloak.", "dropNonexistingGroupsDuringSync": "If this flag is true, then during sync of groups from LDAP to Keycloak, we will keep just those Keycloak groups, which still exists in LDAP. Rest will be deleted", - "groupsPath": "Keycloak group path the LDAP groups are added to. For example if value '/Applications/App1' is used, then LDAP groups will be available in Keycloak under group 'App1', which is child of top level group 'Applications'. The default value is '/' so LDAP groups will be mapped to the Keycloak groups at the top level. The configured group path must already exists in the Keycloak when creating this mapper.", + "groupsPath": "Keycloak group path the LDAP groups are added to. For example if value '/Applications/App1' is used, then LDAP groups will be available in Keycloak under group 'App1', which is child of top level group 'Applications'. The default value is '/' so LDAP groups will be mapped to the Keycloak groups at the top level. The configured group path must already exist in the Keycloak when creating this mapper.", "userModelAttributeHelp": "Name of the UserModel property or attribute you want to map the LDAP attribute into. For example 'firstName', 'lastName, 'email', 'street' etc.", - "ldapAttribute": "Name of mapped attribute on LDAP object. For example 'cn', 'sn, 'mail', 'street' etc.", + "ldapAttribute": "Name of mapped attribute on LDAP object. For example 'cn', 'sn', 'mail', 'street' etc.", "readOnlyHelp": "Read-only attribute is imported from LDAP to UserModel, but it's not saved back to LDAP when user is updated in Keycloak.", "alwaysReadValueFromLdapHelp": "If on, then during reading of the LDAP attribute value will always used instead of the value from Keycloak DB", "isMandatoryInLdapHelp": "If true, attribute is mandatory in LDAP. Hence if there is no value in Keycloak DB, the empty value will be set to be propagated to LDAP", "isBinaryAttributeHelp": "Should be true for binary LDAP attributes", - "ldapRolesDNHelp": "LDAP DN where are roles of this tree saved. For example 'ou=finance,dc=example,dc=org'", + "ldapRolesDNHelp": "LDAP DN where roles of this tree are saved. For example 'ou=finance,dc=example,dc=org'", "roleNameLdapAttributeHelp": "Name of LDAP attribute, which is used in role objects for name and RDN of role. Usually it will be 'cn'. In this case typical group/role object may have DN like 'cn=role1,ou=finance,dc=example,dc=org'", "roleObjectClassesHelp": "Object class (or classes) of the role object. It's divided by comma if more classes needed. In typical LDAP deployment it could be 'groupOfNames'. In Active Directory it's usually 'group'", "useRealmRolesMappingHelp": "If true, then LDAP role mappings will be mapped to realm role mappings in Keycloak. Otherwise it will be mapped to client role mappings", "clientIdHelp": "Client ID of client to which LDAP role mappings will be mapped. Applicable just if 'Use Realm Roles Mapping' is false", - "userModelAttributeNameHelp": "Name of the model attribute, which will be added when importing user from ldap", - "attributeValueHelp": "Value of the model attribute, which will be added when importing user from ldap.", + "userModelAttributeNameHelp": "Name of the model attribute, which will be added when importing user from LDAP", + "attributeValueHelp": "Value of the model attribute, which will be added when importing user from LDAP.", "roleHelp": "Role to grant to user. Click 'Select Role' button to browse roles, or just type it in the textbox. To reference an application role the syntax is appname.approle, i.e. myapp.myrole", "derFormattedHelp": "Activate this if the certificate is DER formatted in LDAP and not PEM formatted.", "ldapFullNameAttributeHelp": "Name of LDAP attribute, which contains fullName of user. Usually it will be 'cn'", - "fullNameLdapMapperReadOnlyHelp": "For Read-only is data imported from LDAP to Keycloak DB, but it's not saved back to LDAP when user is updated in Keycloak.", + "fullNameLdapMapperReadOnlyHelp": "For Read-only data is imported from LDAP to Keycloak DB, but it's not saved back to LDAP when user is updated in Keycloak.", "fullNameLdapMapperWriteOnlyHelp": "For Write-only is data propagated to LDAP when user is created or updated in Keycloak. But this mapper is not used to propagate data from LDAP back into Keycloak. This setting is useful if you configured separate firstName and lastName attribute mappers and you want to use those to read attribute from LDAP into Keycloak", - "groupHelp": "When user is imported from LDAP, he will be automatically added into this configured group.", + "groupHelp": "When user is imported from LDAP, they will be automatically added into this configured group.", "ldapAttributeNameHelp": "Name of the LDAP attribute, which will be added to the new user during registration", - "ldapAttributeValueHelp": "Value of the LDAP attribute, which will be added to the new user during registration. You can either hardcode any value like 'foo' but you can also use some special tokens. Only supported token right now is '${RANDOM}' , which will be replaced with some randomly generated String." + "ldapAttributeValueHelp": "Value of the LDAP attribute, which will be added to the new user during registration. You can either hardcode any value like 'foo' but you can also use some special tokens. Only supported token right now is '${RANDOM}', which will be replaced with some randomly generated String." } } diff --git a/src/user-federation/messages.json b/src/user-federation/messages.json index 2f1b26f26b..971f094232 100644 --- a/src/user-federation/messages.json +++ b/src/user-federation/messages.json @@ -85,9 +85,7 @@ "userFedDeleteConfirmTitle": "Delete user federation provider?", "userFedDeleteConfirm": "If you delete this user federation provider, all associated data will be removed.", - "*** mappers ***": "", "id": "ID", - "name": "Name", "mapperType": "Mapper type", "mapperTypeMsadUserAccountControlManager": "msad-user-account-control-mapper", @@ -133,8 +131,6 @@ "useRealmRolesMapping": "Use realm roles mapping", "clientId": "Client ID", - "role": "Role", - "derFormatted": "DER formatted", "ldapFullNameAttribute": "LDAP full name attribute", From c1d13650dfc52c9400ba6efdb66731b616141576 Mon Sep 17 00:00:00 2001 From: Sarah Rambacher Date: Thu, 14 Jan 2021 10:56:03 -0500 Subject: [PATCH 3/3] fixes typos and some grammar --- src/user-federation/help.json | 100 +++++++++++++++--------------- src/user-federation/messages.json | 2 +- 2 files changed, 51 insertions(+), 51 deletions(-) diff --git a/src/user-federation/help.json b/src/user-federation/help.json index 3228d0b019..81f242ba5d 100644 --- a/src/user-federation/help.json +++ b/src/user-federation/help.json @@ -10,8 +10,8 @@ "ldapConnectionAndAuthorizationSettingsDescription": "This section contains options related to the configuration of the connection to the LDAP server. It also contains options related to authentication of the LDAP connection to the LDAP server.", "consoleDisplayConnectionUrlHelp": "Connection URL to your LDAP server", "enableStarttlsHelp": "Encrypts the connection to LDAP using STARTTLS, which will disable connection pooling", - "useTruststoreSpiHelp": "Specifies whether LDAP connection will use the Truststore SPI with the truststore configured in standalone.xml/domain.sml. 'Always' means that it will always use it. 'Never' means that it will not use it. 'Only for ldaps' means that it will use it if your connection URL use ldaps. Note even if standalone.xml/domain.xml is not configured, the default java cacerts or certificate specified by 'javax.net.ssl.trustStore' property will be used.", - "connectionPoolingHelp": "Determines if Keycloak should use connection pooling for accessing LDAP server", + "useTruststoreSpiHelp": "Specifies whether LDAP connection will use the Truststore SPI with the truststore configured in standalone.xml/domain.sml. 'Always' means that it will always use it. 'Never' means that it will not use it. 'Only for ldaps' means that it will use it if your connection URL use ldaps. Note that even if standalone.xml/domain.xml is not configured, the default java cacerts or certificate specified by 'javax.net.ssl.trustStore' property will be used.", + "connectionPoolingHelp": "Determines if Keycloak should use connection pooling for accessing LDAP server.", "connectionTimeoutHelp": "LDAP connection timeout in milliseconds", "bindTypeHelp": "Type of the authentication method used during LDAP bind operation. It is used in most of the requests sent to the LDAP server. Currently only 'none' (anonymous LDAP authentication) or 'simple' (bind credential + bind password authentication) mechanisms are available.", "bindDnHelp": "DN of the LDAP admin, which will be used by Keycloak to access LDAP server", @@ -19,15 +19,15 @@ "ldapSearchingAndUpdatingSettingsDescription": "This section contains options related to searching the LDAP server for the available users.", "editModeLdapHelp": "READ_ONLY is a read-only LDAP store. WRITABLE means data will be synced back to LDAP on demand. UNSYNCED means user data will be imported, but not synced back to LDAP.", - "usersDNHelp": "Full DN of LDAP tree where your users are. This DN is the parent of LDAP users. It could be for example 'ou=users,dc=example,dc=com' assuming that your typical user will have DN like 'uid='john',ou=users,dc=example,dc=com'", - "usernameLdapAttributeHelp": "Name of LDAP attribute, which is mapped as Keycloak username. For many LDAP server vendors it can be 'uid'. For Active directory it can be 'sAMAccountName' or 'cn'. The attribute should be filled for all LDAP user records you want to import from LDAP to Keycloak.", - "rdnLdapAttributeHelp": "Name of LDAP attribute, which is used as RDN (top attribute) of typical user DN. Usually it's the same as Username LDAP attribute, however it is not required. For example for Active directory, it is common to use 'cn' as RDN attribute when username attribute might be 'sAMAccountName'.", - "uuidLdapAttributeHelp": "Name of LDAP attribute, which is used as unique object identifier (UUID) for objects in LDAP. For many LDAP server vendors, is is 'entryUUID'; however some are different. For example for Active directory it should be 'objectGUID'. If your LDAP server does not support the notion of UUID, you can use any other attribute that is supposed to be unique among LDAP users in tree. For example 'uid' or 'entryDN'.", - "userObjectClassesHelp": "All values of LDAP objectClass attribute for users in LDAP divided by comma. For example: 'inetOrgPerson, organizationalPerson'. Newly created Keycloak users will be written to LDAP with all those object classes and existing LDAP user records are found just if they contain all those object classes.", - "userLdapFilterHelp": "Additional LDAP filter for filtering searched users. Leave this empty if you don't need additional filter. Make sure that it starts with '(' and ends with ')'", + "usersDNHelp": "Full DN of LDAP tree where your users are. This DN is the parent of LDAP users. It could be for example 'ou=users,dc=example,dc=com' assuming that your typical user will have DN like 'uid='john',ou=users,dc=example,dc=com'.", + "usernameLdapAttributeHelp": "Name of the LDAP attribute, which is mapped as Keycloak username. For many LDAP server vendors it can be 'uid'. For Active directory it can be 'sAMAccountName' or 'cn'. The attribute should be filled for all LDAP user records you want to import from LDAP to Keycloak.", + "rdnLdapAttributeHelp": "Name of the LDAP attribute, which is used as RDN (top attribute) of typical user DN. Usually it's the same as the Username LDAP attribute, however it is not required. For example for Active directory, it is common to use 'cn' as RDN attribute when username attribute might be 'sAMAccountName'.", + "uuidLdapAttributeHelp": "Name of the LDAP attribute, which is used as a unique object identifier (UUID) for objects in LDAP. For many LDAP server vendors, it is 'entryUUID'; however some are different. For example, for Active directory it should be 'objectGUID'. If your LDAP server does not support the notion of UUID, you can use any other attribute that is supposed to be unique among LDAP users in tree. For example 'uid' or 'entryDN'.", + "userObjectClassesHelp": "All values of LDAP objectClass attribute for users in LDAP, divided by commas. For example: 'inetOrgPerson, organizationalPerson'. Newly created Keycloak users will be written to LDAP with all those object classes and existing LDAP user records are found just if they contain all those object classes.", + "userLdapFilterHelp": "Additional LDAP filter for filtering searched users. Leave this empty if you don't need an additional filter. Make sure that it starts with '(' and ends with ')'.", "searchScopeHelp": "For one level, the search applies only for users in the DNs specified by User DNs. For subtree, the search applies to the whole subtree. See LDAP documentation for more details.", "readTimeoutHelp": "LDAP read timeout in milliseconds. This timeout applies for LDAP read operations.", - "paginationHelp": "Does the LDAP server support pagination", + "paginationHelp": "Whether the LDAP server supports pagination", "ldapSynchronizationSettingsDescription": "This section contains options related to synchronization of users from LDAP to the Keycloak database.", "importUsersHelp": "Import users", @@ -35,11 +35,11 @@ "periodicFullSyncHelp": "Whether periodic full synchronization of LDAP users to Keycloak should be enabled or not", "periodicChangedUsersSyncHelp": "Whether periodic synchronization of changed or newly created LDAP users to Keycloak should be enabled or not", - "ldapKerberosSettingsDescription": "This section contains options useful for the Kerberos integraion. This is used just when the LDAP server is used together with Kerberos/SPNEGO for user authentication.", - "allowKerberosAuthenticationHelp": "Enable/disable HTTP authentication of users with SPNEGO/Kerberos tokens. The data about authenticated users will be provisioned from this LDAP server", - "useKerberosForPasswordAuthenticationHelp": "User Kerberos login module for authenticate username/password against Kerberos server instead of authenticating against LDAP server with Directory Service API", + "ldapKerberosSettingsDescription": "This section contains options useful for the Kerberos integration. This is used only when the LDAP server is used together with Kerberos/SPNEGO for user authentication.", + "allowKerberosAuthenticationHelp": "Enable/disable HTTP authentication of users with SPNEGO/Kerberos tokens. The data about authenticated users will be provisioned from this LDAP server.", + "useKerberosForPasswordAuthenticationHelp": "User Kerberos login module for authenticating username/password against Kerberos server instead of authenticating against LDAP server with Directory Service API", - "ldapCacheSettingsDescription": "This section contains options useful for caching users, which were loaded from this user storage provider", + "ldapCacheSettingsDescription": "This section contains options useful for caching users, which were loaded from this user storage provider.", "cachePolicyHelp": "Cache Policy for this storage provider. 'DEFAULT' is whatever the default settings are for the global cache. 'EVICT_DAILY' is a time of day every day that the cache will be invalidated. 'EVICT_WEEKLY' is a day of the week and time the cache will be invalidated. 'MAX_LIFESPAN' is the time in milliseconds that will be the lifespan of a cache entry.", "evictionDayHelp": "Day of the week the entry will become invalid", "evictionHourHelp": "Hour of the day the entry will become invalid", @@ -53,79 +53,79 @@ "IDK-periodicChangedUsersSyncHelp": "Should newly created users be created within LDAP store? Priority affects which provider is chosen to sync the new user.", - "kerberosWizardDescription": "Text needed here", + "kerberosWizardDescription": "Text needed here.", "kerberosRequiredSettingsDescription": "This section contains a few basic options common to all user storage providers.", "kerberosRealmHelp": "Name of kerberos realm. For example, FOO.ORG", "serverPrincipalHelp": "Full name of server principal for HTTP service including server and domain name. For example, HTTP/host.foo.org@FOO.ORG", "keyTabHelp": "Location of Kerberos KeyTab file containing the credentials of server principal. For example, /etc/krb5.keytab", - "debugHelp": "Enable/disable debug logging to standard output for Krb5LoginModule", + "debugHelp": "Enable/disable debug logging to standard output for Krb5LoginModule.", "allowPasswordAuthenticationHelp": "Enable/disable possibility of username/password authentication against Kerberos database", - "editModeKerberosHelp": "READ_ONLY means that password updates are not allowed and user always authenticates with Kerberos password. UNSYNCED means that the user can change the password in the Keycloak database and this one will be used instead of the Kerberos password", + "editModeKerberosHelp": "READ_ONLY means that password updates are not allowed and user always authenticates with Kerberos password. UNSYNCED means that the user can change the password in the Keycloak database and this one will be used instead of the Kerberos password.", "updateFirstLoginHelp": "Update profile on first login", - "kerberosCacheSettingsDescription": "This section contains a few basic options common to all user storage providers", + "kerberosCacheSettingsDescription": "This section contains a few basic options common to all user storage providers.", "nameHelp": "Name of the mapper", "mapperTypeHelp": "", - "mapperTypeMsadUserAccountControlManagerHelp": "Mapper specific to MSAD. It's able to integrate the MSAD user account state into Keycloak account state (account enabled, password is expired etc). It's using userAccountControl and pwdLastSet MSAD attributes for that. For example if pwdLastSet is 0, the Keycloak user is required to update password; if userAccountControl is 514 (disabled account) the Keycloak user is disabled as well etc. Mapper is also able to handle the exception code from LDAP user authentication", + "mapperTypeMsadUserAccountControlManagerHelp": "Mapper specific to MSAD. It's able to integrate the MSAD user account state into Keycloak account state (account enabled, password is expired etc). It's using userAccountControl and pwdLastSet MSAD attributes for that. For example if pwdLastSet is 0, the Keycloak user is required to update the password; if userAccountControl is 514 (disabled account) the Keycloak user is disabled as well etc. Mapper is also able to handle the exception code from LDAP user authentication.", "mapperTypeMsadLdsUserAccountControlMapperHelp": "Mapper specific to MSAD LDS. It's able to integrate the MSAD LDS user account state into Keycloak account state (account enabled, password is expired etc). It's using msDS-UserAccountDisabled and pwdLastSet is 0, the Keycloak user is required to update password, if msDS-UserAccountDisabled is 'TRUE' the Keycloak user is disabled as well etc. Mapper is also able to handle exception code from LDAP user authentication.", "mapperTypeGroupLdapMapperHelp": "Used to map group mappings of groups from some LDAP DN to Keycloak group mappings", "mapperTypeUserAttributeLdapMapperHelp": "Used to map single attribute from LDAP user to attribute of UserModel in Keycloak DB", "mapperTypeRoleLdapMapperHelp": "Used to map role mappings of roles from some LDAP DN to Keycloak role mappings of either realm roles or client roles of particular client", "mapperTypeHardcodedAttributeMapperHelp": "This mapper will hardcode any model user attribute and some property (like emailVerified or enabled) when importing user from LDAP.", - "mapperTypeHardcodedLdapRoleMapperHelp": "When user is imported from LDAP, they will be automatically added into this configured role.", + "mapperTypeHardcodedLdapRoleMapperHelp": "Users imported from LDAP will be automatically added into this configured role.", "mapperTypeCertificateLdapMapperHelp": "Used to map single attribute which contains a certificate from LDAP user to attribute of UserModel in Keycloak DB", - "mapperTypeFullNameLdapMapperHelp": "Used to map full-name of user from single attribute in LDAP (usually 'cn' attribute) to firstName and lastName attributes of UserModel in Keycloak DB", - "mapperTypeHardcodedLdapGroupMapperHelp": "When user is imported from LDAP, they will be automatically added into this configured group.", - "mapperTypeLdapAttributeMapperHelp": "This mapper is supported just if syncRegistrations is enabled. When new user is registered in Keycloak, he will be written to the LDAP with the hardcoded value of some specified attribute.", + "mapperTypeFullNameLdapMapperHelp": "Used to map the full-name of a user from single attribute in LDAP (usually 'cn' attribute) to firstName and lastName attributes of UserModel in Keycloak DB", + "mapperTypeHardcodedLdapGroupMapperHelp": "Users imported from LDAP will be automatically added into this configured group.", + "mapperTypeLdapAttributeMapperHelp": "This mapper is supported just if syncRegistrations is enabled. New users registered in Keycloak will be written to the LDAP with the hardcoded value of some specified attribute.", "passwordPolicyHintsEnabledHelp": "Applicable just for writable MSAD. If on, then updating password of MSAD user will use LDAP_SERVER_POLICY_HINTS_OID extension, which means that advanced MSAD password policies like 'password history' or 'minimal password age' will be applied. This extension works just for MSAD 2008 R2 or newer.", "ldapGroupsDnHelp": "LDAP DN where groups of this tree are saved. For example 'ou=groups,dc=example,dc=org'", - "groupNameLDAPAttributeHelp": "Name of LDAP attribute, which is used in group objects for name and RDN of group. Usually it will be 'cn'. In this case typical group/role object may have DN like 'cn=Group1,ouu=groups,dc=example,dc=org'", - "groupObjectClassesHelp": "Object class (or classes) of the group object. It's divided by comma if more classes needed. In typical LDAP deployment it could be 'groupOfNames'. In Active Directory it's usually 'group'", - "preserveGroupInheritanceHelp": "Flag whether group inheritance from LDAP should be propagated to Keycloak. If false, then all LDAP groups will be mapped as flat top-level groups in Keycloak. Otherwise group inheritance is preserved into Keycloak, but the group sync might fail if LDAP structure contains recursions or multiple parent groups per child groups", - "ignoreMissingGroupsHelp": "Ignore missing groups in the group hierarchy", - "membershipLdapAttributeHelp": "Name of LDAP attribute on group, which is used for membership mappings. Usually it will be 'member' .However when 'Membership Attribute Type' is 'UID' then 'Membership LDAP Attribute' could be typically 'memberUid' .", + "groupNameLDAPAttributeHelp": "Name of LDAP attribute, which is used in group objects for name and RDN of group. Usually it will be 'cn'. In this case typical group/role object may have DN like 'cn=Group1,ouu=groups,dc=example,dc=org'.", + "groupObjectClassesHelp": "Object class (or classes) of the group object. It's divided by commas if more classes needed. In typical LDAP deployment it could be 'groupOfNames'. In Active Directory it's usually 'group'.", + "preserveGroupInheritanceHelp": "Flag whether group inheritance from LDAP should be propagated to Keycloak. If false, then all LDAP groups will be mapped as flat top-level groups in Keycloak. Otherwise group inheritance is preserved into Keycloak, but the group sync might fail if LDAP structure contains recursions or multiple parent groups per child groups.", + "ignoreMissingGroupsHelp": "Ignore missing groups in the group hierarchy.", + "membershipLdapAttributeHelp": "Name of LDAP attribute on group, which is used for membership mappings. Usually it will be 'member'. However when 'Membership Attribute Type' is 'UID', then 'Membership LDAP Attribute' could be typically 'memberUid'.", "membershipAttributeTypeHelp": "DN means that LDAP group has it's members declared in form of their full DN. For example 'member: uid=john,ou=users,dc=example,dc=com'. UID means that LDAP group has it's members declared in form of pure user uids. For example 'memberUid: john'.", - "membershipUserLdapAttributeHelp": "Used just if Membership Attribute Type is UID. It is name of LDAP attribute on user, which is used for membership mappings. Usually it will be 'uid'. For example if value of 'Membership User LDAP Attribute' is 'uid' and LDAP group has 'memberUid: john', then it is expected that particular LDAP user will have attribute 'uid: john'.", - "ldapFilterHelp": "LDAP Filter adds an additional custom filter to the whole query for retrieve LDAP groups. Leave this empty if no additional filtering is needed and you want to retrieve all groups from LDAP. Otherwise make sure that filter starts with '(' and ends with ')'", + "membershipUserLdapAttributeHelp": "Used just if Membership Attribute Type is UID. It is the name of the LDAP attribute on user, which is used for membership mappings. Usually it will be 'uid'. For example if the value of 'Membership User LDAP Attribute' is 'uid' and LDAP group has 'memberUid: john', then it is expected that particular LDAP user will have attribute 'uid: john'.", + "ldapFilterHelp": "LDAP Filter adds an additional custom filter to the whole query for retrieve LDAP groups. Leave this empty if no additional filtering is needed and you want to retrieve all groups from LDAP. Otherwise make sure that filter starts with '(' and ends with ')'.", "modeHelp": "LDAP_ONLY means that all group mappings of users are retrieved from LDAP and saved into LDAP. READ_ONLY is Read-only LDAP mode where group mappings are retrieved from both LDAP and DB and merged together. New group joins are not saved to LDAP but to DB. IMPORT is Read-only LDAP mode where group mappings are retrieved from LDAP just at the time when user is imported from LDAP and then they are saved to local keycloak DB.", - "userGroupsRetrieveStrategyHelp": "Specify how to retrieve groups of user. LOAD_GROUPS_BY_MEMBER_ATTRIBUTE means that roles of user will be retrieved by sending LDAP query to retrieve all groups where 'member' is our user. GET_GROUPS_FROM_USER_MEMBEROF_ATTRIBUTE means that groups of user will be retrieved from 'memberOf' attribute of our user. Or from the other attribute specified by 'Member-Of LDAP Attribute'.", - "memberofLdapAttributeHelp": "Used just when 'User Roles Retrieve Strategy' is GET_GROUPS_FROM_USER_MEMBEROF_ATTRIBUTE. It specifies the name of the LDAP attribute on the LDAP user, which contains the groups, which the user is member of. Usually it will be 'memberOf' and that's also the default value.", - "mappedGroupAttributesHelp": "List of names of attributes divided by comma. This points to the list of attributes on LDAP group, which will be mapped as attributes of Group in Keycloak. Leave this empty if no additional group attributes are required to be mapped in Keycloak.", - "dropNonexistingGroupsDuringSync": "If this flag is true, then during sync of groups from LDAP to Keycloak, we will keep just those Keycloak groups, which still exists in LDAP. Rest will be deleted", + "userGroupsRetrieveStrategyHelp": "Specify how to retrieve groups of user. LOAD_GROUPS_BY_MEMBER_ATTRIBUTE means that roles of user will be retrieved by sending LDAP query to retrieve all groups where 'member' is our user. GET_GROUPS_FROM_USER_MEMBEROF_ATTRIBUTE means that groups of user will be retrieved from 'memberOf' attribute of our user or from the other attribute specified by 'Member-Of LDAP Attribute'.", + "memberofLdapAttributeHelp": "Used just when 'User Roles Retrieve Strategy' is GET_GROUPS_FROM_USER_MEMBEROF_ATTRIBUTE. It specifies the name of the LDAP attribute on the LDAP user, which contains the groups, which the user is member of. Usually it will be the default 'memberOf'.", + "mappedGroupAttributesHelp": "List of names of attributes divided by commas. This points to the list of attributes on LDAP group, which will be mapped as attributes of Group in Keycloak. Leave this empty if no additional group attributes are required to be mapped in Keycloak.", + "dropNonexistingGroupsDuringSync": "If this flag is true, then during sync of groups from LDAP to Keycloak, we will keep just those Keycloak groups that still exist in LDAP. The rest will be deleted.", "groupsPath": "Keycloak group path the LDAP groups are added to. For example if value '/Applications/App1' is used, then LDAP groups will be available in Keycloak under group 'App1', which is child of top level group 'Applications'. The default value is '/' so LDAP groups will be mapped to the Keycloak groups at the top level. The configured group path must already exist in the Keycloak when creating this mapper.", "userModelAttributeHelp": "Name of the UserModel property or attribute you want to map the LDAP attribute into. For example 'firstName', 'lastName, 'email', 'street' etc.", - "ldapAttribute": "Name of mapped attribute on LDAP object. For example 'cn', 'sn', 'mail', 'street' etc.", + "ldapAttribute": "Name of mapped attribute on LDAP object. For example 'cn', 'sn', 'mail', 'street', etc.", "readOnlyHelp": "Read-only attribute is imported from LDAP to UserModel, but it's not saved back to LDAP when user is updated in Keycloak.", - "alwaysReadValueFromLdapHelp": "If on, then during reading of the LDAP attribute value will always used instead of the value from Keycloak DB", - "isMandatoryInLdapHelp": "If true, attribute is mandatory in LDAP. Hence if there is no value in Keycloak DB, the empty value will be set to be propagated to LDAP", - "isBinaryAttributeHelp": "Should be true for binary LDAP attributes", + "alwaysReadValueFromLdapHelp": "If on, then during reading of the LDAP attribute value will always used instead of the value from Keycloak DB.", + "isMandatoryInLdapHelp": "If true, attribute is mandatory in LDAP. Hence if there is no value in Keycloak DB, the empty value will be set to be propagated to LDAP.", + "isBinaryAttributeHelp": "Should be true for binary LDAP attributes.", - "ldapRolesDNHelp": "LDAP DN where roles of this tree are saved. For example 'ou=finance,dc=example,dc=org'", - "roleNameLdapAttributeHelp": "Name of LDAP attribute, which is used in role objects for name and RDN of role. Usually it will be 'cn'. In this case typical group/role object may have DN like 'cn=role1,ou=finance,dc=example,dc=org'", - "roleObjectClassesHelp": "Object class (or classes) of the role object. It's divided by comma if more classes needed. In typical LDAP deployment it could be 'groupOfNames'. In Active Directory it's usually 'group'", - "useRealmRolesMappingHelp": "If true, then LDAP role mappings will be mapped to realm role mappings in Keycloak. Otherwise it will be mapped to client role mappings", - "clientIdHelp": "Client ID of client to which LDAP role mappings will be mapped. Applicable just if 'Use Realm Roles Mapping' is false", + "ldapRolesDNHelp": "LDAP DN where roles of this tree are saved. For example, 'ou=finance,dc=example,dc=org'", + "roleNameLdapAttributeHelp": "Name of LDAP attribute, which is used in role objects for name and RDN of role. Usually it will be 'cn'. In this case typical group/role object may have DN like 'cn=role1,ou=finance,dc=example,dc=org'.", + "roleObjectClassesHelp": "Object class (or classes) of the role object. It's divided by commas if more classes are needed. In typical LDAP deployment it could be 'groupOfNames'. In Active Directory it's usually 'group'.", + "useRealmRolesMappingHelp": "If true, then LDAP role mappings will be mapped to realm role mappings in Keycloak. Otherwise it will be mapped to client role mappings.", + "clientIdHelp": "Client ID of client to which LDAP role mappings will be mapped. Applicable only if 'Use Realm Roles Mapping' is false.", - "userModelAttributeNameHelp": "Name of the model attribute, which will be added when importing user from LDAP", - "attributeValueHelp": "Value of the model attribute, which will be added when importing user from LDAP.", + "userModelAttributeNameHelp": "Name of the model attribute to be added when importing user from LDAP", + "attributeValueHelp": "Value of the model attribute to be added when importing user from LDAP", - "roleHelp": "Role to grant to user. Click 'Select Role' button to browse roles, or just type it in the textbox. To reference an application role the syntax is appname.approle, i.e. myapp.myrole", + "roleHelp": "Role to grant to user. Click 'Select Role' button to browse roles, or just type it in the textbox. To reference an application role the syntax is appname.approle, i.e. myapp.myrole.", "derFormattedHelp": "Activate this if the certificate is DER formatted in LDAP and not PEM formatted.", - "ldapFullNameAttributeHelp": "Name of LDAP attribute, which contains fullName of user. Usually it will be 'cn'", - "fullNameLdapMapperReadOnlyHelp": "For Read-only data is imported from LDAP to Keycloak DB, but it's not saved back to LDAP when user is updated in Keycloak.", - "fullNameLdapMapperWriteOnlyHelp": "For Write-only is data propagated to LDAP when user is created or updated in Keycloak. But this mapper is not used to propagate data from LDAP back into Keycloak. This setting is useful if you configured separate firstName and lastName attribute mappers and you want to use those to read attribute from LDAP into Keycloak", + "ldapFullNameAttributeHelp": "Name of LDAP attribute, which contains fullName of user. Usually it will be 'cn',", + "fullNameLdapMapperReadOnlyHelp": "For Read-only, data is imported from LDAP to Keycloak DB, but it's not saved back to LDAP when user is updated in Keycloak.", + "fullNameLdapMapperWriteOnlyHelp": "For Write-only, is data propagated to LDAP when user is created or updated in Keycloak. But this mapper is not used to propagate data from LDAP back into Keycloak. This setting is useful if you configured separate firstName and lastName attribute mappers and you want to use those to read attribute from LDAP into Keycloak", - "groupHelp": "When user is imported from LDAP, they will be automatically added into this configured group.", + "groupHelp": "Users imported from LDAP will be automatically added into this configured group.", "ldapAttributeNameHelp": "Name of the LDAP attribute, which will be added to the new user during registration", - "ldapAttributeValueHelp": "Value of the LDAP attribute, which will be added to the new user during registration. You can either hardcode any value like 'foo' but you can also use some special tokens. Only supported token right now is '${RANDOM}', which will be replaced with some randomly generated String." + "ldapAttributeValueHelp": "Value of the LDAP attribute, which will be added to the new user during registration. You can either hardcode any value like 'foo' but you can also use some special tokens. Only supported token right now is '${RANDOM}', which will be replaced with some randomly generated string." } } diff --git a/src/user-federation/messages.json b/src/user-federation/messages.json index 971f094232..6333f9705e 100644 --- a/src/user-federation/messages.json +++ b/src/user-federation/messages.json @@ -98,7 +98,7 @@ "mapperTypeCertificateLdapMapper": "certificate-ldap-mapper", "mapperTypeFullNameLdapMapper": "full-name-ldap-mapper", "mapperTypeHardcodedLdapGroupMapper": "hardcoded-ldap-group-mapper", - "mapperTypeLdaoAttributeMapper": "hardcoded-ldap-attribute-mapper", + "mapperTypeLdapAttributeMapper": "hardcoded-ldap-attribute-mapper", "passwordPolicyHintsEnabled": "Password policy hints enabled",