Le blog technique

Toutes les astuces #tech des collaborateurs de PI Services.

#openblogPI

Retrouvez les articles à la une

Skype for Business – Erreur d’accès aux Reports Services

Contexte

L’outil Skype for Business intègre un outil de reporting basé sur SQL Reports Services. Lorsque vous vous connectez au site des rapports Skype, l’erreur suivante apparait :

2016-09-02_095801

Explications

Cette erreur est due au mirroring des bases SQL de Skype for Business. Certaines bases SQL se trouvent sur un serveur A (serveur principal) et certaines bases SQL se trouvent sur un serveur B (serveur miroir).

2016-09-02_094940

Pourquoi cette bascule ?

Les trois serveurs SQL (le serveur principal, le serveur miroir et le serveur témoin) se ping constamment pour valider leur connexion. Par défaut sur chaque base le timeout du mirroring est configuré à 10 secondes.

Ce qui signifie que si le serveur principal ne répond pas à un ping en moins de 10 secondes, la base bascule vers le second serveur.

Solution

Résolution de l’erreur

Pour résoudre cette erreur il faut basculer les bases qui se trouvent sur le serveur B (miroir) vers le serveur A (principal). Si l’erreur se produit trop souvent, il est possible d’augmenter la valeur du timeout.

Pour basculer les bases, dans SQL Server Management Studio, faites un clic droit sur la base à basculer puis dans Tasks, cliquez sur Mirror…

2016-09-02_095724

Dans la partie Mirroring, cliquez sur Failover.

2016-09-02_095907

Un message d’information apparait pour nous prévenir de la bascule. Cliquez sur Yes pour valider l’action.

2016-09-02_095948

Cette action est à répéter sur chaque base qui se trouve sur le serveur B.

Une fois l’ensemble des bases sur le serveur A, les rapports sont à nouveau disponibles.

2016-09-02_100136

Modification du timeout

Pour valider la valeur du mirroring, lancez la commande suivante dans SQL Server Management Studio :

SELECT Mirroring_Connection_Timeout FROM sys.database_mirroring WHERE database_id = db_id(‘DATABASE_NAME’)

2016-09-02_100240

Il est possible de modifier cette valeur avec la commande suivante :

ALTER DATABASE database_name SET PARTNER TIMEOUT 20

2016-09-02_100331

Relancez la première commande pour valider le changement.

2016-09-02_100410

Il n’est cependant pas recommandé de trop augmenter la valeur du timeout. En effet en cas de vrai coupure la bascule des bases sera plus longue.

Si en augmentant le timeout à 15 ou 20 secondes le problème se reproduit souvent, une étude du réseau est nécessaire.

Activer l’Authentification Multi Facteur (MFA) dans Office 365

Introduction

Cette fonctionnalité disponible aussi dans Azure appelé authentification forte ou double authentification permet de renforcer la sécurité d’accès aux ressources web.

L’activation est accessible par le centre d’administration office sur l’onglet utilisateurs actifs, le lien « gérer l’authentification multi-facteur » se trouve en bas de page après sélection de l’utilisateur.

administ

Mise en place

Dans la liste des utilisateurs sélectionner un ou plusieurs utilisateurs et cliquer sur le bouton activer.

De la même façon sélectionner désactiver pour un utilisateur ayant déjà la fonctionnalité activée.

Le lien “gérer les paramètres” concerne la gestion au niveau de la méthode de contact, des mots de passe d’application ou pour réinitialiser la MFA sur les mobiles reliés.

image

Une fois activé, lors de la première connexion au portail Office l’utilisateur entre son identifiant et mot de passe habituel (1ère authentification). Un message avertit de la mise en place d’une procédure supplémentaire de sécurité.

image

La configuration commence et il faut choisir entre 3 méthodes de contact. Nous allons les tester les 3 et garder notre préférée. 

Méthode de contact 1 : L’appel.

L’appel téléphonique (Microsoft US) vers un mobile ou bureau: un message audio vous demande d’utiliser la touche # pour confirmer la demande d’accès.

imageimageimage

image

La configuration est terminée (étape 3). Vous recevez un code précieux valable sur vos applications client lourd comme Outlook MailOs Skype etc. à utiliser en lieu et place du mot de passe habituel.

Je vais donc l’utiliser pour configurer Outlook. Et pour Skype, il suffit de se déconnecter et se reconnecter avec le nouveau mot de passe de 16 caractères.

imageimage

Vous pouvez changer d’avis et vouloir utiliser la méthode par SMS ou application mobile !

Il faudra passer par une réinitialisation de la méthode de contact ou ponctuellement utiliser le lien autre option de contact.

Méthode de contact 2 : Validation par SMS

Tout ce passe à l’étape 1.

image image

Un code numérique à 6 caractères vous parvient et doit-être reporté dans le champs de vérification pour validation.

Notez aussi la possibilité d’espacer la 2ème vérification tous les 30 jours.

Méthode de contact 3: Validation par application mobile.

A l’étape 1, vous choisissez application mobile puis cliquez sur le bouton configurer.

image

Vous aurez besoin de l’application Azure Authenticator et de l’application Barcode Scanner pour lire le QR Code.

Soit vous ajouter manuellement un compte dans l’application mobile Authenticator en saisissant le code de 9 caractères puis l’URL complet, ou en sélectionnant analyser le QR Code.

L’application mobile génère un code numérique à 6 caractères qui doit-être reporté dans le champs de vérification avant la fin du temps imparti pour valider l’accès.

L’application mobile peut aussi générer un message pop-up “Approuver” ou “Refuser”.

C’est la méthode que je préfère, pas de code à reporter juste un clic sur Approuver !

image image image

Attention !

Le signalement provoque l’inaccessibilité au compte dans l’immédiat et peut-être le “bannissement” du mobile utilisé (à confirmer).

Car pour le moment impossible de configurer à nouveau la MFA sur le mobile pour cet utilisateur. Même après une réinitialisation des paramètres ou la désactivation-réactivation de la fonctionnalité, cet utilisateur devra se passer de MFA pour de nouveau avoir accès au ressources! Ou changer de mobile?! ou de numéro de téléphone.

FIM Synchronization Service Partie 5 : Administration de FIM / Gestion de la metaverse

Introduction

La gestion des identités en entreprise est une problématique de plus en plus importante. En effet, des thématiques telles que la mise en place d’un référentiel d’identité unique, le SSO (authentification unique), la gestion du cycle de vie d’un utilisateur (provisioning et deprovisioning, gestion du mot de passe, …) et bien d’autres deviennent essentielles dans des environnements toujours plus complexes et offrant plus de services. Il devient donc primordial d’intégrer des solutions permettant de gérer les identités au sein d’une entreprise. Cela permet notamment :

  • d’automatiser des processus de gestions de comptes (exemple la saisie/modification/suppression d’un compte dans une base RH déclenche les actions nécessaires sur les infrastructures du système d’information)
  • d’éviter les erreurs humaines de manipulations
  • de réduire les tâches d’exploitation
  • de n’avoir qu’un seul point d’entrée pour la saisie d’informations (référentiel RH par exemple, …) 

Dans cette série d’articles, nous allons nous intéresser au composant Synchronisation Service. Si certains composants fonctionnent ensemble, ce n’est pas le cas de celui-ci qui peut être installé seul. L’objectif est de découvrir les possibilités offertes par cet outil. Pour cela, nous allons utiliser le contexte d’une société « MyCompany » souhaitant synchroniser les changements de son référentiel d’identité (une base de données SQL Server)  vers l’annuaire Active Directory (synchronisation d’attributs). Aussi, nous verrons comme gérer le cycle de vie des objets tels que les utilisateurs ou les groupes via un mécanisme de Provisioning/Deprovisioning.

Ces articles vont s’articuler de la façon suivante :

Lors de cette cinquième partie, je vais évoquer l’administration du service de synchronisation de FIM avec d’une part l’administration des Managements Agents et d’autre part la gestion de la métaverse. Pour cette dernière, nous verrons notamment comment ajouter des attributs ou même créer des objets afin de ne pas se limiter à ceux par défaut. Enfin, nous aborderons la gestion du cycle de vie des objets dans la métaverse et les différentes configurations possibles.  

NB : En Août 2015, Microsoft a sorti une nouvelle version de la suite FIM, renommé pour l’occasion MIM (Microsoft Identity Manager) suite à l’abandon de la gamme de produits Forefront. Cette nouvelle mouture apporte quelques fonctionnalités supplémentaires. Cependant le contenu de ces articles restent valables.

Administration

Vérification du résultat d’une synchronisation

Dans l’article précèdent, nous avons vu comment créer des profils de synchronisation. Lorsque ces derniers sont exécutés, nous pouvons accéder au détail des actions effectués dans l’onglet Operations de la console de gestion de FIM Synchronization Service. Ainsi, dans l’exécution ci-dessous, on remarque que quatre objets n’ont pas été modifiés lors de l’import dans le connector space Active Directory tandis que trois ont été projetés dans la métaverse pendant la phase de synchronisation (un objet a été filtré). Il est aussi possible d’avoir le listing de ses objets en cliquant sur le chiffre indiquant le nombre de changement. Ainsi, il est possible à chaque étape d’avoir un véritable contrôle des modification.

Image

Recherche dans la metaverse

Il est possible de vérifier l’état d’un objet dans la métaverse. Pour ce faire, il suffit de se rendre dans l’onglet Metaverse Search. Ensuite, il faut indiquer un filtre. Ce dernier est composé :

  • Du type d’objet à rechercher.

  • D’une ou plusieurs conditions contenant des valeurs attendus pour les attributs de l’objet.

Un clic sur le bouton Search permet de lancer la recherche.

Image

Lorsque l’on ouvre les propriétés d’un objet retourné lors de la recherche, tous ses attributs sont affichés. On remarque également la date de dernière modification de ceux-ci ainsi que le Management Agent ayant écrit cette valeur (utile dans le cas de plusieurs Management Agent contribuant à un même objet dans la métaverse).

Image

Enfin, dans l’onglet Connectors d’un objet, on accède à tous les connecteurs de l’objet. Ci-dessous on remarque le connecteur avec le référentiel SQL. Ce dernier a été créé avec une règle de projection. Lorsqu’un import et une synchronisation auront lieu avec le Management Agent Active Directory, un deuxième connecteur avec une règle de jointure sera présent.

Image

Recherche dans un connector space

Il est aussi possible de rechercher des objets dans un connector space via le bouton Search Connector Space présent dans le menu des actions de chaque Management Agent.

Image

La recherche est cette fois-ci moins simple puisqu’il n’est possible de faire une recherche qu’au travers du DN (pour rappel, dans le Management Agent SQL que nous avons configuré précédemment, il s’agit de l’id) ou d’une partie de celui-ci (l’unité d’organisation pour un objet Active Directory par exemple).

Image

Comme pour les objets présents dans la métaverse, il est possible de voir leurs propriétés via l’onglet Import. L’onglet Lineage permet d’accéder à son status (si l’objet est connecté ou non à la métaverse). Ici, j’ai ouvert la fiche de l’objet dmills qui est un travailleur détaché. Pour rappel, dans note exemple, ces derniers ne doivent pas être synchronisés, c’est pourquoi il apparaît en tant que filtered disconnector.

Image

Enfin sur chacun des onglets d’un objet,  un bouton Preview est présent. Ce dernier fourni un outil pour pré visualiser les changements lors d’une synchronisation complète (Full) ou incrémentielle (Delta). Cet outil est utile pour effectuer des tests. Si les résultats sont ceux attendus, il est même possible de les enregistrer avec le bouton Commit Preview. Ainsi, il n’est pas nécessaire de relancer un profil d’exécution de synchronisation.

Image

Grâce aux outils que nous venons de voir (onglet Operations, recherche dans la metaverse et dans un connector space, outil de prévisualisation), il est possible de connaitre à chaque instant l’état d’un objet et d’identifier rapidement les erreurs de configuration.

Export / import d’un Management Agent

Dans l’onglet Management Agent, il est possible d’exporter ou d’importer un Management Agent. Ces opérations offrent plusieurs possibilités :

  • Sauvegarde / Restauration : Cela permet de conserver les paramètres de configuration d’un Management Agent et de les réinjecter en cas d’une erreur de configuration.
  • Migration / Passage en production : La configuration d’un Management Agent peut être transférer d’un serveur à un autre lorsque ce dernier est changé ou lorsque l’on possède plusieurs environnement et que l’on souhaite transférer la configuration à l’identique d’un environnement à un autre (exemple : du développement à la production).  Il reste alors simplement à insérer les paramètres de production (comme le domaine, le compte de service ou encore les unités d’organisation d’un Management Agent Active Directory). Attention : lorsqu’un Management Agent est importer d’un serveur à un autre, il est nécessaire de copier les DLL déclarées. Ces dernières ne sont pas inclues dans l’export.

NB : Lorsqu’un Management Agent est modifié, il est nécessaire de déclencher une opération de Full Import afin de prendre en compte les nouvelles règles pour tous les objets du connector space. 

Gestion de la metaverse

La métaverse est le point central des données de l’environnement FIM Synchronization Service. Chaque objet d’un connector space qui possède un connector est lié à un objet de la métaverse. Pour rappel, un objet de la métaverse peut avoir plusieurs connectors. En effet, ces différentes propriétés peuvent être alimentés par plusieurs systèmes connectés comme c’est le cas pour la société « MyCompany ». Chaque objet de type person est connecté à un collaborateur du référentiel SQL et un utilisateur Active Directory. Aussi, un certain nombre de propriétés sont paramétrable sur la métaverse, son fonctionnement et les objets qui la compose. Toutes ces actions se déroulent dans l’onglet Metaverse Designer de la console de gestion de FIM Synchronization Service.

Modification d’objets

Pour chaque objet, il est possible de les modifier en ajoutant ou supprimant des attributs. Cela permet de synchroniser des informations complémentaires. Pour ce faire, il suffit de sélectionner le type d’objet puis de cliquer sur le bouton Add Attribute dans le panel Actions (en bas à droite). Une fenêtre listant tous les attributs disponibles s’ouvre. Elle contient tous les attributs déjà déclarés dans la métaverse. Pour en ajouter un à un objet, il suffit de cocher la case de l’attribut concerné.

01

Aussi, si ce dernier n’existe pas dans la liste, il peut être créé via le bouton New Attribute. Grâce à cette option, pour la société « MyCompany », on peut ajouter la propriété Status permettant de synchroniser cette valeur contenue dans le référentiel SQL vers la métaverse (il faut aussi ajouter une règle de flux d’attribut dans le Management Agent SQL et éventuellement dans le Management Agent Active Directory si l’on souhaite exporter cette valeur vers cet annuaire).

02

Lorsque l’on ajoute un nouvel attribut, il existe plusieurs possibilités. Tout d’abord un objet être de plusieurs types :

  • Chaîne de caractère (String)
  • Valeur binaire (Binary)
  • Nombre (Number)
  • Bouléen (Boolean)
  • Référence (Reference)

Les types chaîne de caractère, binaire et nombre peuvent être indexés ou non en cochant la case Indexed. Cela permet d’optimiser les recherches d’objets sur ces attributs. A noter qu’une bonne pratique est d’indexer tous les champs sur lesquels une jointure peut être effectuée afin d’optimiser l’opération de recherche d’un objet correspondant dans la métaverse. Aussi, en dehors du champ Boolean, tous les attributs peuvent être multi-évalué et donc contenir une liste de valeurs (exemple : le champs userCertificate d’Active Directory qui contient tous les certificats d’un utilisateur). Enfin, le type Reference permet d’indiquer une référence vers un autre objet de la métaverse. Cela peut notamment être utilisé dans le cadre de la synchronisation du manager d’une personne ou encore de la liste des membres d’un groupe.

Création d’objets

En complément de la modification d’objet, il est aussi possible d’en ajouter de nouveaux au travers de l’onglet Metaverse Designer. Cela permet de gérer d’autres types d’objets que vous aurez conçu vous-même comme les contacts. Pour créer un objet, il suffit de cliquer sur Create Object Type dans le menu Actions

03

NB : L’action Copy Object Type, permet de dupliquer un type d’objet ainsi que ses propriétés (le type sélectionné sert alors de modèle).

Ensuite, il faut entrer le type d’objet à créer et éventuellement ajouter les attributs qui le caractérise (comme nous l’avons vu dans le paragraphe précédent, cela peut être modifié ultérieurement).

05

Flux d’attributs

Lorsque plusieurs systèmes connectés interagissent avec le même attribut, il est possible de choisir celui qui aura la priorité pour en définir la valeur. Cette opération s’effectue en sélectionnant un attribut sur l’un des types d’objet déclarés dans l’onglet Metaverse Designer puis en cliquant sur le bouton Configure Attribute Flow Precedence (on remarque dans l’exemple ci-dessous que l’attribut accountName possède deux règles d’import, il faut donc déterminer l’ordre d’application).

06

L’assistant qui s’ouvre montre les Management Agents qui ont une règle de flux avec l’attribut sélectionné. La configuration par défaut indique que le premier Management Agent synchronisant une valeur (par ordre croissant) est autoritaire. Ainsi dans l’exemple ci-dessous le Management Agent Active Directory MA est prioritaire. RefIdentité MA ne sera utilisé pour cet attribut que si aucune valeur n’est fournie par l’autre Management Agent. Ainsi, même si une nouvelle valeur est transmises par le Management Agent RefIdentité MA, elle ne sera pas prise en compte. Il est possible de changer cet ordre avec les flèches présentes dans l’assistant.

NB : Dans cet exemple, un changement de nom de compte impliquerai de déconnecté un objet puisque l’attribut samAccountName est utilisé pour la jointure de l’objet auprès de la Métaverse.

07

Aussi deux options sont disponibles pour ce paramétrage :

  • Use manual precedence : Il est possible de définir la priorité d’un Management Agent manuellement. Cela n’est possible que pour les règles de flux personnalisées (type Rules Extension) qui ont été développés en C# ou VB.Net.
  • Use equal precedence : Chaque Management bénéficie d’une priorité identique. Ainsi, s’il s’agit d’un attribut possédant une valeur unique, le dernier Management Agent qui s’est exécuté contribue à la valeur dans la métaverse (cela peut donc provoquer des effets de bord avec des changements à chaque exécution de Management Agent). Dans le cas où l’attribut est une liste de valeur, FIM réalise une fusion des différentes valeurs.

Déprovisioning

Par défaut, un objet présent dans la métaverse est supprimé lorsqu’il n’a plus aucun connecteur avec un Management Agent. Cependant, ce comportement peut être modifié. Cela s’effectue via le bouton Object Deletion Rule présent dans la configuration de chaque type d’objet de la métaverse.

03 Bis

Pour l’option par défaut, on remarque qu’il existe une liste de tous les Management Agent. En effet, il est possible d’ignorer certains Management Agent en les cochant. Ainsi lorsque la règle sera évaluée, elle ne prendra pas en compte les connector space des Management Agent sélectionnés pour savoir si l’objet doit être supprimé.

04

La seconde option (Delete the metaverse object when the last connector space object from a specified management agent is disconnected), consiste à supprimer l’objet dès qu’il n’y a plus de lien avec l’un des connector space. Contrairement à la première option, la liste de Management Agent permet ici de définir les connector space associés qui seront utilisés pour évaluer la suppression.

Enfin, la dernière option offre la possibilité de gérer la suppression d’un objet de la métaverse au travers d’une règle développée en C# ou VB.Net. Cela permet de gérer des cas plus spécifiques.

Joiner

L’outil Joiner est un outil intégré dans la console de gestion de FIM 2010 Synchronization Service consacré à la manipulation des disconnectors d’un Management Agent. Ainsi, il est possible de traiter ces objets afin de les connecter à la métaverse via une projection ou une jointure ou de les écarter définitivement via un disconnector explicite. Toutes ces opérations sont manuelles. 

Pour effectuer une opération sur un objet dans l’onglet Joiner, il suffit d’effectuer une recherche par Management Agent en le sélectionnant dans le champ adéquat puis en cliquant sur le bouton Search (avant cela il est possible de réaliser un filtre plus spécifique en choisissant un type de disconnector).  

08

Le type de Disconnector peut être changé lorsqu’on sélectionne un objet puis que l’on clique sur le bouton Set Disconnector Type. Par exemple, on peut souhaitez qu’un objet ne soit plus traiter par le Management Agent et qu’il soit définitivement écarté de tout traitement. Il faut alors définir un Explicit Disconnector. Aussi, même si l’objet satisfait toutes les règles de filtrages ultérieurement, il ne sera pas synchronisé tant que le Disconnector sera de type explicite. Il faudra tout d’abord rechanger ce dernier via une nouvelle opération dans l’onglet Joiner.

09

Lorsqu’un objet est sélectionné, il est possible de le joindre à un objet de la métaverse. Pour ce faire, il est nécessaire de réaliser une recherche sur celle-ci afin de trouver l’objet correspondant. Cette opération est réalisée en créant un filtre avec le bouton Configure Search Filter. Un assistant s’ouvre alors et il est nécessaire de cliquer sur le bouton Add pour ajouter un filtre.

10

Ce dernier peut rechercher des objets en fonction du type ainsi qu’en fonction d’une valeur sur un attribut. 

11

Le bouton Apply Filter déclenche la recherche. La jointure s’effectue en cliquant sur le bouton Join après avoir sélectionné un objet de la métaverse (un avertissement permet de confirmer l’opération). Toutefois, il reste aussi possible d’effectuer une projection (bouton Project) sans passer par le filtrage si l’objet n’existe pas dans la métaverse. Les opérations effectuées dans l’onglet Joiner n’ont pas besoin de respecter les filtres configurés dans le Management Agent gérant l’objet traité.

12