Dans le cadre de la documentation associée à ce produit, nous nous efforçons d’utiliser un langage exempt de préjugés. Dans cet ensemble de documents, le langage exempt de discrimination renvoie à une langue qui exclut la discrimination en fonction de l’âge, des handicaps, du genre, de l’appartenance raciale de l’identité ethnique, de l’orientation sexuelle, de la situation socio-économique et de l’intersectionnalité. Des exceptions peuvent s’appliquer dans les documents si le langage est codé en dur dans les interfaces utilisateurs du produit logiciel, si le langage utilisé est basé sur la documentation RFP ou si le langage utilisé provient d’un produit tiers référencé. Découvrez comment Cisco utilise le langage inclusif.
Cisco a traduit ce document en traduction automatisée vérifiée par une personne dans le cadre d’un service mondial permettant à nos utilisateurs d’obtenir le contenu d’assistance dans leur propre langue. Il convient cependant de noter que même la meilleure traduction automatisée ne sera pas aussi précise que celle fournie par un traducteur professionnel.
Ce document décrit comment configurer un moteur Cisco Identity Services Engine (ISE) 2.2 pour l'intégration avec la source externe MySQL Open Database Connectivity (ODBC). Ce document est valide pour les configurations qui utilisent MySQL comme source d'identité externe pour l'authentification et l'autorisation ISE.
Cisco vous recommande de prendre connaissance des rubriques suivantes :
Les informations contenues dans ce document sont basées sur les versions logicielles et matérielles suivantes :
The information in this document was created from the devices in a specific lab environment. All of the devices used in this document started with a cleared (default) configuration. If your network is live, make sure that you understand the potential impact of any command.
ISE 2.2 prend en charge plusieurs sources externes ODBC, dont MySQL. Vous pouvez utiliser ODBC comme source d'identité externe pour authentifier les utilisateurs et les points de terminaison similaires à Active Directory (AD). La source d'identité ODBC peut être utilisée dans une séquence de stockage d'identité et pour les authentifications d'invité et de sponsor.
Voici une liste des moteurs de base de données pris en charge dans ISE 2.2 :
Pour plus d'informations, consultez le site : https://www.cisco.com/c/en/us/td/docs/security/ise/2-2/admin_guide/b_ise_admin_guide_22/b_ise_admin_guide_22_chapter_01101.html#concept_6EB9B4875CBB47D79168E329696E2C65
Dans cet exemple de configuration, le point d'extrémité utilise une carte sans fil afin de s'associer au réseau sans fil. Le réseau local sans fil (WLAN) sur le WLC est configuré afin d'authentifier les utilisateurs via l'ISE. Sur l'ISE, MySQL est configuré comme un magasin d'identités externe. Cette image illustre la topologie de réseau utilisée :
La configuration MySQL présentée est un exemple. Ne pas traiter est comme une recommandation Cisco.
Mettez à jour votre système :
sudo apt-get update sudo apt-get upgrade
Installez MySQL (vous devriez être invité à saisir un mot de passe pour l'utilisateur root pendant l'installation) :
sudo apt-get install mysql-server
Pour accéder à la base MySQL :
mysql -u root -p
Créer une base de données :
mysql>
mysql> CREATE DATABASE demo_db;
Query OK, 1 row affected (0.00 sec)
mysql>
mysql> use demo_db;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
Créer un utilisateur de base de données et lui accorder des privilèges :
mysql>
mysql> CREATE USER 'cisco' IDENTIFIED BY 'cisco';
mysql> GRANT USAGE ON *.* TO 'cisco'@'%';
mysql> GRANT ALL PRIVILEGES ON `demo_db`.* TO 'cisco'@'%';
mysql> GRANT SELECT ON *.* TO 'cisco'@'%';
Créer une table des utilisateurs :
mysql>
mysql> CREATE TABLE ´users´ (
-> `user_id` int(10) unsigned NOT NULL AUTO_INCREMENT,
-> `username` varchar(50) NOT NULL,
-> `password` varchar(50) NOT NULL,
-> PRIMARY KEY (`user_id`),
-> UNIQUE KEY `username_UNIQUE` (`username`)
-> ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
Query OK, 0 rows affected (0.01 sec)
Créez des utilisateurs et ajoutez-les dans le tableau :
mysql>
mysql> INSERT INTO users
-> (user_id, username, password)
-> VALUES
-> (1, "alice", "Krakow123");
Query OK, 1 row affected (0.00 sec)
Vous pouvez ajouter d'autres utilisateurs de la même manière et lister le contenu de la table (de la même manière que les utilisateurs, ajoutez une adresse MAC pour l'authentification MAB - le mot de passe peut rester vide) :
mysql>
mysql> select * from users;
+---------+----------+-----------+
| user_id | username | password |
+---------+----------+-----------+
| 1 | alice | Krakow123 |
| 2 | bob | Krakow123 |
| 3 | oscar | Krakow123 |
+---------+----------+-----------+
Créer une table de groupes :
mysql>
mysql> CREATE TABLE `groups` (
-> `group_id` int(10) unsigned NOT NULL AUTO_INCREMENT,
-> `groupname` varchar(50) NOT NULL,
-> PRIMARY KEY (`group_id`),
-> UNIQUE KEY `groupname_UNIQUE` (`groupname`)
-> ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
Query OK, 0 rows affected (0.01 sec)
Créez des groupes et ajoutez-les dans le tableau :
mysql>
mysql> INSERT INTO groups
-> (group_id, groupname)
-> VALUES
-> (1, "everyone");
Query OK, 1 row affected (0.00 sec)
Vous pouvez ajouter d'autres groupes de la même manière et répertorier le contenu du tableau :
mysql>
mysql> select * from groups;
+----------+------------+
| group_id | groupname |
+----------+------------+
| 3 | contractor |
| 2 | employee |
| 1 | everyone |
+----------+------------+
Créer une table pour les mappages entre utilisateurs et groupes
mysql>
mysql> CREATE TABLE `user_group` (
-> `user_id` int(10) unsigned NOT NULL,
-> `group_id` int(10) unsigned NOT NULL,
-> PRIMARY KEY (`user_id`,`group_id`),
-> KEY `group_id` (`group_id`),
-> CONSTRAINT `user_group_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES `users` (`user_id`)
-> ON DELETE CASCADE,
-> CONSTRAINT `user_group_ibfk_2` FOREIGN KEY (`group_id`) REFERENCES `groups`
-> (`group_id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
Query OK, 0 rows affected (0.01 sec)
Remplissez la table pour les mappages entre les utilisateurs et les groupes
mysql>
mysql> INSERT INTO user_group
-> (user_id, group_id)
-> VALUES
-> (1, 1);
Query OK, 1 row affected (0.00 sec)
Vous pouvez ajouter d'autres mappages de la même manière et répertorier le contenu de la table :
mysql>
mysql> select * from user_group;
+---------+----------+
| user_id | group_id |
+---------+----------+
| 1 | 1 |
| 2 | 1 |
| 1 | 2 |
| 2 | 3 |
+---------+----------+
4 rows in set (0.00 sec)
Vous devez configurer les procédures stockées requises pour authentifier les utilisateurs par rapport à une source d'identité ODBC. Les tâches effectuées par procédure varient en fonction du protocole d'authentification. ISE prend en charge trois types différents de vérification des informations d'identification par rapport au magasin externe ODBC. Vous devez configurer une procédure stockée distincte pour chaque type de contrôle. ISE appelle la procédure stockée appropriée avec les paramètres d'entrée et reçoit la sortie. La base de données peut renvoyer un jeu d'enregistrements ou un ensemble de paramètres nommés en réponse à une requête ODBC.
Chacune de ces procédures devrait être définie avec un délimiteur pour que MySQL accepte la syntaxe de la requête :
DELIMITER //
CREATE DEFINER=`root`@`localhost` PROCEDURE `ISEGroups`(username varchar(64), OUT result INT)
begin
CASE username
WHEN '*' THEN
select distinct groupname from groups;
ELSE
select groupname from user_group
inner join users ON users.user_id = user_group.user_id
inner join groups ON groups.group_id = user_group.group_id
where users.username = username;
END CASE;
SET result = 0;
end //
DELIMITER //
CREATE DEFINER=`root`@`localhost` PROCEDURE `ISEAuthUserPlainReturnsRecordset`(username varchar(64), password varchar(255))
begin
IF EXISTS (select * from users where users.username = username and users.password = password ) THEN
select 0,11,'This is a very good user, give him all access','no error';
ELSE
select 3, 0, 'odbc','ODBC Authen Error';
END IF;
end //
DELIMITER //
CREATE DEFINER=`root`@`localhost` PROCEDURE `ISEFetchPasswordReturnsRecordset`(username varchar(64))
begin
IF EXISTS (select * from users where users.username = username) THEN
select 0,11,'This is a very good user, give him all access','no error',password from users where users.username = username;
ELSE
select 3, 0, 'odbc','ODBC Authen Error';
END IF;
end //
DELIMITER //
CREATE DEFINER=`root`@`localhost` PROCEDURE `ISEUserLookupReturnsRecordset`(username varchar(64))
begin
IF EXISTS (select * from users where users.username = username) THEN
select 0,11,'This is a very good user, give him all access','no error';
ELSE
select 3, 0, 'odbc','ODBC Authen Error';
END IF;
end //
Utilisez les informations mentionnées ci-dessous afin d'intégrer MySQL avec Cisco ISE. Accédez à Administration > Identity Management > External Identity Sources > ODBC et ajoutez un nouveau magasin :
Utilisez l'adresse IP d'Ubuntu qui exécute la base de données MySQL comme nom d'hôte/adresse IP ci-dessous. Spécifiez le type de base de données (dans ce cas MySQL est utilisé), insérez également le nom de la base de données et les identifiants utilisateur de la base de données qui ont été créés précédemment :
Spécifiez les noms des procédures qui ont été créées dans MySQL - vous devez être prudent avec le format d'adresse MAC (dans cet exemple, il a été changé en format différent) :
Une fois terminé, revenez à l'onglet Connection et testez la connexion :
Récupérer les attributs de MySQL, cliquez sur l'onglet Attributs :
Récupérer les groupes de la même manière :
Configurez ISE pour authentifier et autoriser les utilisateurs de la base de données MySQL. Accédez à Policy > Authentication and Policy > Authorization :
Deux flux d'authentification ont été testés : PEAP-MSCHAPv2 et MAB. Alice fait partie d'un groupe d'employés sur MySQL, Bob fait partie d'un groupe de sous-traitants :
Afin d'activer les débogages sur ISE, accédez à Administration > System > Logging > Debug Log Configuration, sélectionnez le noeud PSN et changez le niveau de journal du composant odbc-id-store en DEBUG:
Journaux à vérifier : prrt-server.log et prrt-management.log. Vous pouvez les suivre directement à partir de l'interface de ligne de commande d'ISE :
vchrenek-ise22-1/admin# show logging application prrt-management.log tail
Lors de l'authentification de l'utilisateur bob, ISE doit récupérer le mot de passe en texte clair et la procédure stockée suivante est utilisée : ISEFetchPasswordReturnsRecordset :
2017-02-18 14:13:37,565 DEBUG [Thread-493][] cisco.cpm.odbcidstore.impl.OdbcIdStore -:::- ODBC ID Store Operation: Fetch Plain Text Password. Username=bob, SessionID=0a3e94660000090658a8487f
2017-02-18 14:13:37,566 DEBUG [Thread-493][] cisco.cpm.odbcidstore.impl.CustomerLog -:::- Write customer log message: 24861
2017-02-18 14:13:37,567 DEBUG [Thread-493][] cisco.cpm.odbcidstore.impl.OdbcConnectionPool -:::- OdbcConnectionPool - get connection
2017-02-18 14:13:37,567 DEBUG [Thread-493][] cisco.cpm.odbcidstore.impl.OdbcConnectionPool -:::- OdbcConnectionPool - use existing connection
2017-02-18 14:13:37,568 DEBUG [Thread-493][] cisco.cpm.odbcidstore.impl.OdbcConnectionPool -:::- OdbcConnectionPool - connections in use: 1
2017-02-18 14:13:37,568 DEBUG [Thread-493][] cisco.cpm.odbcidstore.impl.OdbcConnection -:::- Fetch plain text password
2017-02-18 14:13:37,568 DEBUG [Thread-493][] cisco.cpm.odbcidstore.impl.OdbcConnection -:::- Prepare stored procedure call, procname=ISEFetchPasswordReturnsRecordset
2017-02-18 14:13:37,568 DEBUG [Thread-493][] cisco.cpm.odbcidstore.impl.OdbcConnection -:::- Using recordset to obtain stored procedure result values
2017-02-18 14:13:37,568 DEBUG [Thread-493][] cisco.cpm.odbcidstore.impl.CustomerLog -:::- Write customer log message: 24855
2017-02-18 14:13:37,568 DEBUG [Thread-493][] cisco.cpm.odbcidstore.impl.OdbcConnection -:::- Text: {call ISEFetchPasswordReturnsRecordset(?)}
2017-02-18 14:13:37,568 DEBUG [Thread-493][] cisco.cpm.odbcidstore.impl.OdbcConnection -:::- Setup stored procedure input parameters, username=bob
2017-02-18 14:13:37,568 DEBUG [Thread-493][] cisco.cpm.odbcidstore.impl.OdbcConnection -:::- Execute stored procedure call
2017-02-18 14:13:37,571 DEBUG [Thread-493][] cisco.cpm.odbcidstore.impl.OdbcConnection -:::- Process stored procedure results
2017-02-18 14:13:37,571 DEBUG [Thread-493][] cisco.cpm.odbcidstore.impl.OdbcConnection -:::- Obtain stored procedure results from recordset
2017-02-18 14:13:37,571 DEBUG [Thread-493][] cisco.cpm.odbcidstore.impl.OdbcConnection -:::- Received result recordset, number of columns=5
2017-02-18 14:13:37,571 DEBUG [Thread-493][] cisco.cpm.odbcidstore.impl.OdbcConnection -:::- Results successfully parsed from recordset
2017-02-18 14:13:37,572 DEBUG [Thread-493][] cisco.cpm.odbcidstore.impl.OdbcConnectionPool -:::- OdbcConnectionPool - release connection
2017-02-18 14:13:37,572 DEBUG [Thread-493][] cisco.cpm.odbcidstore.impl.OdbcConnectionPool -:::- OdbcConnectionPool - connections in use: 0
2017-02-18 14:13:37,572 DEBUG [Thread-493][] cisco.cpm.odbcidstore.impl.OdbcIdStore -:::- Call to ODBC DB succeeded
2017-02-18 14:13:37,572 DEBUG [Thread-493][] cisco.cpm.odbcidstore.impl.OdbcAuthResult -:::- Authentication result: code=0, Conection succeeded=false, odbcDbErrorString=no error, odbcStoredProcedureCustomerErrorString=null, accountInfo=This is a very good user, give him all access, group=11
Puisque ISE doit vérifier l'affectation de groupes ODBC, il doit récupérer les groupes :
2017-02-18 14:13:37,572 DEBUG [Thread-493][] cisco.cpm.odbcidstore.impl.CustomerLog -:::- Write customer log message: 24862
2017-02-18 14:13:37,728 DEBUG [Thread-259][] cisco.cpm.odbcidstore.impl.OdbcIdStore -:::- ODBC ID Store Operation: Get all user groups. Username=bob, SessionID=0a3e94660000090658a8487f
2017-02-18 14:13:37,728 DEBUG [Thread-259][] cisco.cpm.odbcidstore.impl.OdbcIdStore -:::- ODBC ID Store Operation: Fetch user groups. Username=bob, SessionID=0a3e94660000090658a8487f
2017-02-18 14:13:37,728 DEBUG [Thread-259][] cisco.cpm.odbcidstore.impl.CustomerLog -:::- Write customer log message: 24869
2017-02-18 14:13:37,729 DEBUG [Thread-259][] cisco.cpm.odbcidstore.impl.OdbcConnectionPool -:::- OdbcConnectionPool - get connection
2017-02-18 14:13:37,729 DEBUG [Thread-259][] cisco.cpm.odbcidstore.impl.OdbcConnectionPool -:::- OdbcConnectionPool - use existing connection
2017-02-18 14:13:37,729 DEBUG [Thread-259][] cisco.cpm.odbcidstore.impl.OdbcConnectionPool -:::- OdbcConnectionPool - connections in use: 1
2017-02-18 14:13:37,729 DEBUG [Thread-259][] cisco.cpm.odbcidstore.impl.OdbcConnection -:::- Fetch user groups
2017-02-18 14:13:37,729 DEBUG [Thread-259][] cisco.cpm.odbcidstore.impl.OdbcConnection -:::- Prepare stored procedure call, procname=ISEGroups
2017-02-18 14:13:37,729 DEBUG [Thread-259][] cisco.cpm.odbcidstore.impl.OdbcConnection -:::- Text: {call ISEGroups(?,?)}
2017-02-18 14:13:37,733 DEBUG [Thread-259][] cisco.cpm.odbcidstore.impl.OdbcConnection -:::- Setup stored procedure input parameters, username=bob
2017-02-18 14:13:37,733 DEBUG [Thread-259][] cisco.cpm.odbcidstore.impl.OdbcConnection -:::- Execute stored procedure call
2017-02-18 14:13:37,740 DEBUG [Thread-259][] cisco.cpm.odbcidstore.impl.OdbcConnection -:::- Process stored procedure results
2017-02-18 14:13:37,740 DEBUG [Thread-259][] cisco.cpm.odbcidstore.impl.OdbcConnection -:::- Received result recordset, total number of columns=1
2017-02-18 14:13:37,740 DEBUG [Thread-259][] cisco.cpm.odbcidstore.impl.OdbcConnection -:::- According to column number expect multiple rows (vertical attributes/groups retured result)
2017-02-18 14:13:37,740 DEBUG [Thread-259][] cisco.cpm.odbcidstore.impl.OdbcConnection -:::- Fetched data: ExternalGroup=everyone
2017-02-18 14:13:37,740 DEBUG [Thread-259][] cisco.cpm.odbcidstore.impl.OdbcConnection -:::- Fetched data: ExternalGroup=contractor
2017-02-18 14:13:37,740 DEBUG [Thread-259][] cisco.cpm.odbcidstore.impl.OdbcConnection -:::- Results successfully parsed from recordset
2017-02-18 14:13:37,740 DEBUG [Thread-259][] cisco.cpm.odbcidstore.impl.OdbcConnection -:::- Result code indicates success
2017-02-18 14:13:37,740 DEBUG [Thread-259][] cisco.cpm.odbcidstore.impl.OdbcConnectionPool -:::- OdbcConnectionPool - release connection
2017-02-18 14:13:37,740 DEBUG [Thread-259][] cisco.cpm.odbcidstore.impl.OdbcConnectionPool -:::- OdbcConnectionPool - connections in use: 0
2017-02-18 14:13:37,740 DEBUG [Thread-259][] cisco.cpm.odbcidstore.impl.OdbcIdStore -:::- Call to ODBC DB succeeded
2017-02-18 14:13:37,740 DEBUG [Thread-259][] cisco.cpm.odbcidstore.impl.CustomerLog -:::- Write customer log message: 24870
2017-02-18 14:13:37,741 DEBUG [Thread-259][] cisco.cpm.odbcidstore.impl.OdbcIdStore -:::- ODBC ID Store Operation: Get all user groups. Got groups...
2017-02-18 14:13:37,741 DEBUG [Thread-259][] cisco.cpm.odbcidstore.impl.OdbcIdStore -:::- ODBC ID Store Operation: Get all user groups. Got groups(0) = everyone
2017-02-18 14:13:37,741 DEBUG [Thread-259][] cisco.cpm.odbcidstore.impl.OdbcIdStore -:::- ODBC ID Store Operation: Get all user groups. Setting Internal groups(0) = everyone
2017-02-18 14:13:37,741 DEBUG [Thread-259][] cisco.cpm.odbcidstore.impl.OdbcIdStore -:::- ODBC ID Store Operation: Get all user groups. Got groups(1) = contractor
2017-02-18 14:13:37,741 DEBUG [Thread-259][] cisco.cpm.odbcidstore.impl.OdbcIdStore -:::- ODBC ID Store Operation: Get all user groups. Setting Internal groups(1) = contractor
2017-02-18 14:13:37,741 DEBUG [Thread-259][] cisco.cpm.odbcidstore.impl.OdbcIdStore -:::- ODBC ID Store Operation: Get all user groups. Username=bob, ExternalGroups=[everyone, contractor]
2017-02-18 14:13:37,741 DEBUG [Thread-259][] cisco.cpm.odbcidstore.impl.OdbcIdStore -:::- ODBC ID Store Operation: Fetch user attributes. Username=bob, SessionID=0a3e94660000090658a8487f
2017-02-18 14:13:37,741 DEBUG [Thread-259][] cisco.cpm.odbcidstore.impl.CustomerLog -:::- Write customer log message: 24872
2017-02-18 14:13:37,741 DEBUG [Thread-259][] cisco.cpm.odbcidstore.impl.OdbcConnectionPool -:::- OdbcConnectionPool - get connection
2017-02-18 14:13:37,741 DEBUG [Thread-259][] cisco.cpm.odbcidstore.impl.OdbcConnectionPool -:::- OdbcConnectionPool - use existing connection
2017-02-18 14:13:37,741 DEBUG [Thread-259][] cisco.cpm.odbcidstore.impl.OdbcConnectionPool -:::- OdbcConnectionPool - connections in use: 1
Il en va de même pour les attributs :
2017-02-18 14:13:37,741 DEBUG [Thread-259][] cisco.cpm.odbcidstore.impl.OdbcConnection -:::- Fetch user attributes
2017-02-18 14:13:37,741 DEBUG [Thread-259][] cisco.cpm.odbcidstore.impl.OdbcConnection -:::- Prepare stored procedure call, procname=ISEAttrsH
2017-02-18 14:13:37,741 DEBUG [Thread-259][] cisco.cpm.odbcidstore.impl.OdbcConnection -:::- Text: {call ISEAttrsH(?,?)}
2017-02-18 14:13:37,745 DEBUG [Thread-259][] cisco.cpm.odbcidstore.impl.OdbcConnection -:::- Setup stored procedure input parameters, username=bob
2017-02-18 14:13:37,746 DEBUG [Thread-259][] cisco.cpm.odbcidstore.impl.OdbcConnection -:::- Execute stored procedure call
2017-02-18 14:13:37,749 DEBUG [Thread-259][] cisco.cpm.odbcidstore.impl.OdbcConnection -:::- Process stored procedure results
2017-02-18 14:13:37,749 DEBUG [Thread-259][] cisco.cpm.odbcidstore.impl.OdbcConnection -:::- Received result recordset, total number of columns=3
2017-02-18 14:13:37,749 DEBUG [Thread-259][] cisco.cpm.odbcidstore.impl.OdbcConnection -:::- According to column number expect multiple columns (hotizontal attributes/groups retured result)
2017-02-18 14:13:37,749 DEBUG [Thread-259][] cisco.cpm.odbcidstore.impl.OdbcConnection -:::- Fetched data: eye_color=green
2017-02-18 14:13:37,749 DEBUG [Thread-259][] cisco.cpm.odbcidstore.impl.OdbcConnection -:::- Fetched data: floor=1
2017-02-18 14:13:37,749 DEBUG [Thread-259][] cisco.cpm.odbcidstore.impl.OdbcConnection -:::- Fetched data: is_certified=true
2017-02-18 14:13:37,749 DEBUG [Thread-259][] cisco.cpm.odbcidstore.impl.OdbcConnection -:::- Results successfully parsed from recordset
2017-02-18 14:13:37,749 DEBUG [Thread-259][] cisco.cpm.odbcidstore.impl.OdbcConnection -:::- Result code indicates success
2017-02-18 14:13:37,749 DEBUG [Thread-259][] cisco.cpm.odbcidstore.impl.OdbcConnectionPool -:::- OdbcConnectionPool - release connection
2017-02-18 14:13:37,749 DEBUG [Thread-259][] cisco.cpm.odbcidstore.impl.OdbcConnectionPool -:::- OdbcConnectionPool - connections in use: 0
2017-02-18 14:13:37,749 DEBUG [Thread-259][] cisco.cpm.odbcidstore.impl.OdbcIdStore -:::- Call to ODBC DB succeeded
2017-02-18 14:13:37,749 DEBUG [Thread-259][] cisco.cpm.odbcidstore.impl.CustomerLog -:::- Write customer log message: 24873
2017-02-18 14:13:37,750 DEBUG [Thread-259][] cisco.cpm.odbcidstore.impl.OdbcIdStore -:::- ODBC ID Store Operation: Get all user attrs. Username=bob, Setting myODBC.eye_color to green
2017-02-18 14:13:37,750 DEBUG [Thread-259][] cisco.cpm.odbcidstore.impl.OdbcIdStore -:::- ODBC ID Store Operation: Get all user attrs. Username=bob, Setting myODBC.floor to 1
2017-02-18 14:13:37,750 DEBUG [Thread-259][] cisco.cpm.odbcidstore.impl.OdbcIdStore -:::- ODBC ID Store Operation: Get all user attrs. Username=bob, Setting myODBC.is_certified to true
Révision | Date de publication | Commentaires |
---|---|---|
1.0 |
01-Apr-2017 |
Première publication |