Отображение ролей клиента Keycloak на пользователя LDAP, как назначение ролей управления областью. Можем ли мы назначить роли клиента управления областями для пользователей, импортированных из LDAP в Keycloak. Необходимо внести изменения в файл realm.json, чтобы позволить пользователю LDAP иметь доступ к консоли администратора. (Управление пользователями и просмотр области)
Мы пытаемся настроить федерацию пользователей на основе LDAP с помощью импорта файла realm.json, настроенного с помощью связанной с LDAP конфигурации, но не знаем, какую конфигурацию необходимо выполнить в realm.json для назначения ролей клиента управления областью, таких как view-users. , просмотр клиентов и управление-царство
//snippet of realm.json:
{
"realm": "insight-engine",
"enabled": true,
"sslRequired": "external",
"registrationAllowed": false,
...... some more configuration
"requiredCredentials": [ "password" ],
"roles" : {
"realm" : [
{
"name": "user",
"description": "User privileges"
},
{
"name": "admin",
"description": "Administrator privileges"
}
]
},
"scopeMappings": [
{
"client": "js-console",
"roles": ["user"]
},
{
"client": "angular1",
"roles": ["user"]
}
],
"clients": [
{
"clientId": "js-console",
"enabled": true,
"publicClient": true,
"baseUrl": "/js-console",
"redirectUris": [
"/js-console/*"
],
"webOrigins": []
},
{
"clientId": "angular1",
"enabled": true,
"publicClient": true,
"baseUrl": "/",
"redirectUris": [
"*"
],
"webOrigins": []
}
],
"userFederationProviders": [
{
"displayName": "ldap",
"providerName": "ldap",
"priority": 1,
"fullSyncPeriod": -1,
"changedSyncPeriod": -1,
"config": {
"pagination" : "true",
"debug" : "false",
"searchScope" : "1",
"connectionPooling" : "true",
"usersDn" : "ou=People,dc=insight,dc=engine",
"userObjectClasses" : "inetOrgPerson, organizationalPerson",
"usernameLDAPAttribute" : "uid",
"bindDn" : "cn=Administrator,dc=insight,dc=engine",
"bindCredential" : "Cisco#321",
"rdnLDAPAttribute" : "uid",
"vendor" : "other",
"editMode" : "WRITABLE",
"uuidLDAPAttribute" : "entryUUID",
"connectionUrl" : "ldap://ldap-external-service:389",
"syncRegistrations" : "true",
"authType" : "simple"
}
}
],
"userFederationMappers" : [
{
"name" : "username",
"federationMapperType" : "user-attribute-ldap-mapper",
"federationProviderDisplayName" : "ldap-apacheds",
"config" : {
"ldap.attribute" : "uid",
"user.model.attribute" : "username",
"is.mandatory.in.ldap" : "true",
"read.only" : "false",
"always.read.value.from.ldap" : "false"
}
},
{
"name" : "first name",
"federationMapperType" : "user-attribute-ldap-mapper",
"federationProviderDisplayName" : "ldap-apacheds",
"config" : {
"ldap.attribute" : "cn",
"user.model.attribute" : "firstName",
"is.mandatory.in.ldap" : "true",
"read.only" : "false",
"always.read.value.from.ldap" : "false"
}
},
{
"name" : "creation date",
"federationMapperType" : "user-attribute-ldap-mapper",
"federationProviderDisplayName" : "ldap-apacheds",
"config" : {
"ldap.attribute" : "createTimestamp",
"user.model.attribute" : "createTimestamp",
"is.mandatory.in.ldap" : "false",
"read.only" : "true",
"always.read.value.from.ldap" : "false"
}
},
{
"name" : "modify date",
"federationMapperType" : "user-attribute-ldap-mapper",
"federationProviderDisplayName" : "ldap-apacheds",
"config" : {
"ldap.attribute" : "modifyTimestamp",
"user.model.attribute" : "modifyTimestamp",
"is.mandatory.in.ldap" : "false",
"read.only" : "true",
"always.read.value.from.ldap" : "false"
}
},
{
"name" : "realm roles",
"federationMapperType" : "role-ldap-mapper",
"federationProviderDisplayName" : "ldap-apacheds",
"config" : {
"roles.dn" : "ou=RealmRoles,dc=keycloak,dc=org",
"membership.ldap.attribute" : "member",
"role.name.ldap.attribute" : "cn",
"role.object.classes" : "groupOfNames",
"mode" : "LDAP_ONLY",
"use.realm.roles.mapping" : "true"
}
},
{
"name" : "finance roles",
"federationMapperType" : "role-ldap-mapper",
"federationProviderDisplayName" : "ldap-apacheds",
"config" : {
"roles.dn" : "ou=FinanceRoles,dc=keycloak,dc=org",
"membership.ldap.attribute" : "member",
"role.name.ldap.attribute" : "cn",
"role.object.classes" : "groupOfNames",
"mode" : "LDAP_ONLY",
"use.realm.roles.mapping" : "false",
"client.id" : "finance"
}
}
],
"clientScopeMappings": {
"account": [
{
"client": "angular",
"roles": ["view-profile"]
}
],
"realm-management": [
{
"client": "angular",
"roles": ["manage-realm", "manage-users", "manage-clients"]
}
]
}
}
По сути, требование состоит в том, чтобы при входе в систему клиента с использованием учетных данных LDAP пользователь должен иметь возможность доступа к клиенту управления пользователями и представлениям области (т. Е. К консоли администратора) со стороны клиента.