Présentation des extensions de sécurité
Une extension de sécurité Reporting Services permet l'authentification d'utilisateurs ou de groupes ainsi que l'attribution d'autorisations à ces derniers, en permettant à différents utilisateurs de se connecter à un serveur de rapports et d'effectuer différentes tâches ou opérations selon leur identité. Par défaut, Reporting Services utilise une extension d'authentification Windows, qui utilise des protocoles de compte Windows pour vérifier l'identité des utilisateurs qui prétendent avoir des comptes sur le système. Reporting Services utilise un système de sécurité basé sur les rôles pour l'autorisation des utilisateurs. Le modèle de sécurité Reporting Services basé sur les rôles est identiques aux modèles de sécurité basé sur les rôles d'autres technologies.
Les extensions de sécurité étant basées sur une API ouverte et extensible, vous pouvez créer des extensions d'authentification et d'autorisation dans Reporting Services. L'exemple suivant illustre une implémentation d'extension de sécurité type qui utilise une authentification et une autorisation à base de formulaires :
Comme indiqué dans l'illustration, l'authentification et l'autorisation se déroulent comme suit :
Un utilisateur tente d'accéder au Gestionnaire de rapports à l'aide d'une URL et est redirigé vers un formulaire qui collecte ses informations d'identification pour l'application cliente.
L'utilisateur indique ses informations d'identification sur le formulaire.
Les informations d'identification de l'utilisateur sont transmises au service Web Reporting Services via la méthode LogonUser.
Le service Web appelle l'extension de sécurité fournie par le client et vérifie que le nom et le mot de passe de l'utilisateur existent dans l'autorité de sécurité personnalisée.
Après l'authentification, le service Web crée un ticket d'authentification (appelé « cookie »), gère ce dernier et vérifie le rôle de l'utilisateur pour la page d'accueil du Gestionnaire de rapports.
Le service Web retourne le cookie au navigateur et affiche l'interface utilisateur appropriée dans le Gestionnaire de rapports.
Une fois l'utilisateur authentifié, le navigateur envoie des demandes au Gestionnaire de rapports lors de la transmission du cookie dans l'en-tête HTTP. Ces demandes font suite aux actions de l'utilisateur dans l'application du Gestionnaire de rapports.
Le cookie est transmis dans l'en-tête HTTP au service Web avec l'opération d'utilisateur demandée.
Le cookie est validé et, s'il est valide, le serveur de rapports retourne le descripteur de sécurité ainsi que d'autres informations sur l'opération demandée, à partir de la base de données du serveur de rapports.
Si le cookie est valide, le serveur de rapports effectue un appel vers l'extension de sécurité afin de vérifier si l'utilisateur dispose des autorisations nécessaires pour effectuer l'opération demandée.
Si tel est le cas, le serveur de rapports effectue l'opération demandée et retourne le contrôle à l'appelant.
Une fois l'utilisateur authentifié, l'accès URL au serveur de rapports utilise le même cookie. Le cookie est transmis dans l'en-tête HTTP.
L'utilisateur continue à demander des opérations sur le serveur de rapports jusqu'à la fin de la session.
Quand implémenter une extension de sécurité
Nous vous recommandons d'utiliser l'authentification Windows dans la mesure du possible. Toutefois, une authentification et une autorisation personnalisées pour Reporting Services peuvent être appropriées dans les deux cas suivants :
Vous disposez d'une application Internet ou extranet qui ne peut pas utiliser de comptes Windows.
Vous avez des utilisateurs et des rôles personnalisés et devez fournir un schéma d'autorisation correspondant dans Reporting Services.