Отображение ролей клиента 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 пользователь должен иметь возможность доступа к клиенту управления пользователями и представлениям области (т. Е. К консоли администратора) со стороны клиента.

0