Stratégies de contrôle d’accès client dans AD FS 2.0
Dans les services de fédération Active Directory 2.0, une stratégie d’accès client permet de restreindre ou d’accorder l’accès aux ressources pour les utilisateurs. Ce document explique comment activer les stratégies d’accès client dans AD FS 2.0 et comment configurer les scénarios les plus courants.
Activation de la stratégie d’accès client dans AD FS 2.0
Pour activer la stratégie d’accès client, procédez comme suit.
1re étape : Installation du package Correctif cumulatif 2 pour AD FS 2.0 sur les serveurs AD FS
Téléchargez le package Correctif cumulatif 2 pour les services de fédération Active Directory (AD FS) 2.0 et installez-le sur tous les serveurs de fédération et serveurs proxy de fédération.
2e étape : Ajout de cinq règles de revendication à l’approbation du fournisseur de revendications Active Directory
Une fois le correctif cumulatif 2 installé sur tous les serveurs et proxys AD FS, suivez la procédure ci-dessous pour ajouter un ensemble de règles de revendications qui rend les nouveaux types de revendications disponibles pour le moteur de stratégie.
Pour ce faire, vous allez ajouter cinq règles de transformation d’acceptation pour chacun des nouveaux types de revendications de contexte de la demande suivant la procédure ci-dessous.
Sur l’approbation du fournisseur de revendications Active Directory, créez une règle de transformation d’acceptation pour passer par chacun des nouveaux types de revendications de contexte de la demande.
Ajout d’une règle de revendication à l’approbation du fournisseur de revendications Active Directory pour chacun des cinq types de revendications de contexte
Cliquez sur Démarrer. Pointez sur Programmes, puis sur Outils d’administration. Ensuite, cliquez sur Gestion d’AD FS 2.0.
Dans l’arborescence de la console, cliquez sur Approbations de fournisseurs de revendications sous AD FS 2.0\Relations d’approbation. Cliquez avec le bouton droit sur Active Directory, puis cliquez sur Modifier les règles de revendication.
Dans la boîte de dialogue Modifier les règles de revendication, sélectionnez l’onglet Règles de transformation d’acceptation, puis cliquez sur Ajouter une règle pour lancer l’Assistant Règle de revendication.
Sur la page Sélectionner un modèle de règle, sélectionnez Passer ou filtrer une revendication entrante dans la liste sous Modèle de règle de revendication, puis cliquez sur Suivant.
Sur la page Configurer la règle, tapez le nom d’affichage de cette règle sous Nom de la règle de revendication. Dans Type de revendication entrante, tapez l’URL du type de revendication suivante, puis sélectionnez Passer toutes les valeurs de revendication.
https://schemas.microsoft.com/2012/01/requestcontext/claims/x-ms-forwarded-client-ip
Pour vérifier la règle, sélectionnez-la dans la liste et cliquez sur Modifier la règle, puis sur Afficher le langage de la règle. Le langage de la règle de revendication apparaît comme suit :
c:[Type == "https://schemas.microsoft.com/2012/01/requestcontext/claims/x-ms-forwarded-client-ip"] => issue(claim = c);
.Cliquez sur Finish.
Dans la boîte de dialogue Modifier les règles de revendication, cliquez sur OK pour enregistrer les règles.
Répétez les étapes 2 à 6 afin de créer une règle de revendication supplémentaire pour chacun des quatre types de revendications restants indiqués ci-dessous jusqu’à ce que les cinq règles aient été générées.
https://schemas.microsoft.com/2012/01/requestcontext/claims/x-ms-client-application
https://schemas.microsoft.com/2012/01/requestcontext/claims/x-ms-client-user-agent
https://schemas.microsoft.com/2012/01/requestcontext/claims/x-ms-proxy
https://schemas.microsoft.com/2012/01/requestcontext/claims/x-ms-endpoint-absolute-path
3e étape : Mise à jour de l’approbation de la partie de confiance de la Plateforme d’identités Microsoft Office 365
Choisissez l’un des exemples de scénarios suivants pour configurer les règles de revendication sur l’approbation de la partie de confiance de la Plateforme d’identités Microsoft Office 365 qui répond le mieux aux besoins de votre organisation.
Scénarios de stratégie d’accès client pour AD FS 2.0
Les sections suivantes décrivent les scénarios possibles pour AD FS 2.0.
1er scénario : Blocage de tout accès externe à Office 365
Ce scénario de stratégie d’accès client autorise l’accès à partir de tous les clients internes et bloque tous les clients externes en fonction de leur adresse IP. L’ensemble de règles s’appuie sur la règle d’autorisation d’émission par défaut intitulée Autoriser l’accès à tous les utilisateurs. Vous pouvez suivre la procédure ci-dessous pour ajouter une règle d’autorisation d’émission à l’approbation de la partie de confiance Office 365.
Création d’une règle visant à bloquer tout accès externe à Office 365
- Cliquez sur Démarrer. Pointez sur Programmes, puis sur Outils d’administration. Ensuite, cliquez sur Gestion d’AD FS 2.0.
- Dans l’arborescence de la console, cliquez sur Approbations de parties de confiance sous AD FS 2.0\Relations d’approbation. Cliquez avec le bouton droit sur l’approbation Plateforme d’identités Microsoft Office 365, puis cliquez sur Modifier les règles de revendication.
- Dans la boîte de dialogue Modifier les règles de revendication, sélectionnez l’onglet Règles d’autorisation d’émission, puis cliquez sur Ajouter une règle pour lancer l’Assistant Règle de revendication.
- Sur la page Sélectionner un modèle de règle, sélectionnez Envoyer les revendications à l’aide d’une règle personnalisée sous Modèle de règle de revendication, puis cliquez sur Suivant.
- Sur la page Configurer une règle, tapez le nom d’affichage de cette règle sous Nom de la règle de revendication. Sous Règle personnalisée, tapez ou collez la syntaxe de règle de revendication suivante :
exists([Type == "https://schemas.microsoft.com/2012/01/requestcontext/claims/x-ms-proxy"]) && NOT exists([Type == "https://schemas.microsoft.com/2012/01/requestcontext/claims/x-ms-forwarded-client-ip", Value=~"customer-provided public ip address regex"]) => issue(Type = "https://schemas.microsoft.com/authorization/claims/deny", Value = "true");
. - Cliquez sur Finish. Vérifiez que la nouvelle règle apparaît juste au-dessous de la règle Autoriser l’accès à tous les utilisateurs dans la liste Règles d’autorisation d’émission.
- Pour enregistrer la règle, cliquez sur OK dans la boîte de dialogue Modifier les règles de revendication.
Notes
Vous devez remplacer la valeur ci-dessus pour « public ip address regex » par une expression d’adresse IP valide. Pour plus d’informations, consultez Génération de l’expression de plage d’adresses IP.
2e scénario : Blocage de tout accès externe à Office 365, à l’exception d’Exchange ActiveSync
L’exemple suivant autorise l’accès à toutes les applications Office 365 (y compris Exchange Online) à partir de clients internes (y compris Outlook). Il bloque l’accès des clients résidant en dehors du réseau d’entreprise (comme l’indique leur adresse IP), à l’exception des clients Exchange ActiveSync tels que les smartphones. L’ensemble de règles s’appuie sur la règle d’autorisation d’émission par défaut intitulée Autoriser l’accès à tous les utilisateurs. Procédez comme suit pour ajouter une règle d’autorisation d’émission à l’approbation de la partie de confiance Office 365 à l’aide de l’Assistant Règle de revendication :
Création d’une règle visant à bloquer tout accès externe à Office 365
- Cliquez sur Démarrer. Pointez sur Programmes, puis sur Outils d’administration. Ensuite, cliquez sur Gestion d’AD FS 2.0.
- Dans l’arborescence de la console, cliquez sur Approbations de parties de confiance sous AD FS 2.0\Relations d’approbation. Cliquez avec le bouton droit sur l’approbation Plateforme d’identités Microsoft Office 365, puis cliquez sur Modifier les règles de revendication.
- Dans la boîte de dialogue Modifier les règles de revendication, sélectionnez l’onglet Règles d’autorisation d’émission, puis cliquez sur Ajouter une règle pour lancer l’Assistant Règle de revendication.
- Sur la page Sélectionner un modèle de règle, sélectionnez Envoyer les revendications à l’aide d’une règle personnalisée sous Modèle de règle de revendication, puis cliquez sur Suivant.
- Sur la page Configurer une règle, tapez le nom d’affichage de cette règle sous Nom de la règle de revendication. Sous Règle personnalisée, tapez ou collez la syntaxe de règle de revendication suivante :
exists([Type == "https://schemas.microsoft.com/2012/01/requestcontext/claims/x-ms-proxy"]) && NOT exists([Type == "https://schemas.microsoft.com/2012/01/requestcontext/claims/x-ms-client-application", Value=="Microsoft.Exchange.Autodiscover"]) && NOT exists([Type == "https://schemas.microsoft.com/2012/01/requestcontext/claims/x-ms-client-application", Value=="Microsoft.Exchange.ActiveSync"]) && NOT exists([Type == "https://schemas.microsoft.com/2012/01/requestcontext/claims/x-ms-forwarded-client-ip", Value=~"customer-provided public ip address regex"]) => issue(Type = "https://schemas.microsoft.com/authorization/claims/deny", Value = "true");
. - Cliquez sur Finish. Vérifiez que la nouvelle règle apparaît juste au-dessous de la règle Autoriser l’accès à tous les utilisateurs dans la liste Règles d’autorisation d’émission.
- Pour enregistrer la règle, cliquez sur OK dans la boîte de dialogue Modifier les règles de revendication.
Notes
Vous devez remplacer la valeur ci-dessus pour « public ip address regex » par une expression d’adresse IP valide. Pour plus d’informations, consultez Génération de l’expression de plage d’adresses IP.
3e scénario : Blocage de tout accès externe à Office 365 à l’exception des applications basées sur un navigateur
L’ensemble de règles s’appuie sur la règle d’autorisation d’émission par défaut intitulée Autoriser l’accès à tous les utilisateurs. Procédez comme suit pour ajouter une règle d’autorisation d’émission à l’approbation de la partie de confiance de la Plateforme d’identités Microsoft Office 365 à l’aide de l’Assistant Règle de revendication :
Remarque
Ce scénario n’est pas pris en charge avec un proxy tiers en raison des limitations appliquées aux en-têtes de stratégie d’accès client avec des demandes passives (web).
Création d’une règle visant à bloquer tout accès externe aux Office 365, à l’exception des applications basées sur un navigateur
- Cliquez sur Démarrer. Pointez sur Programmes, puis sur Outils d’administration. Ensuite, cliquez sur Gestion d’AD FS 2.0.
- Dans l’arborescence de la console, cliquez sur Approbations de parties de confiance sous AD FS 2.0\Relations d’approbation. Cliquez avec le bouton droit sur l’approbation Plateforme d’identités Microsoft Office 365, puis cliquez sur Modifier les règles de revendication.
- Dans la boîte de dialogue Modifier les règles de revendication, sélectionnez l’onglet Règles d’autorisation d’émission, puis cliquez sur Ajouter une règle pour lancer l’Assistant Règle de revendication.
- Sur la page Sélectionner un modèle de règle, sélectionnez Envoyer les revendications à l’aide d’une règle personnalisée sous Modèle de règle de revendication, puis cliquez sur Suivant.
- Sur la page Configurer une règle, tapez le nom d’affichage de cette règle sous Nom de la règle de revendication. Sous Règle personnalisée, tapez ou collez la syntaxe de règle de revendication suivante :
exists([Type == "https://schemas.microsoft.com/2012/01/requestcontext/claims/x-ms-proxy"]) && NOT exists([Type == "https://schemas.microsoft.com/2012/01/requestcontext/claims/x-ms-forwarded-client-ip", Value=~"customer-provided public ip address regex"]) && NOT exists([Type == "https://schemas.microsoft.com/2012/01/requestcontext/claims/x-ms-endpoint-absolute-path", Value == "/adfs/ls/"]) => issue(Type = "https://schemas.microsoft.com/authorization/claims/deny", Value = "true");
. - Cliquez sur Finish. Vérifiez que la nouvelle règle apparaît juste au-dessous de la règle Autoriser l’accès à tous les utilisateurs dans la liste Règles d’autorisation d’émission.
- Pour enregistrer la règle, cliquez sur OK dans la boîte de dialogue Modifier les règles de revendication.
4e scénario : Blocage de tout accès externe à Office 365 pour les groupes Active Directory désignés
L’exemple suivant permet d’autoriser l’accès à partir de clients internes en fonction de l’adresse IP. Il bloque l’accès des clients résidant en dehors du réseau d’entreprise et possédant une adresse IP de client externe, à l’exception de ceux appartenant à un groupe Active Directory spécifié. L’ensemble de règles s’appuie sur la règle d’autorisation d’émission par défaut intitulée Autoriser l’accès à tous les utilisateurs. Procédez comme suit pour ajouter une règle d’autorisation d’émission à l’approbation de la partie de confiance de la Plateforme d’identités Microsoft Office 365 à l’aide de l’Assistant Règle de revendication :
Création d’une règle visant à bloquer tout accès externe à Office 365 pour les groupes Active Directory désignés
- Cliquez sur Démarrer. Pointez sur Programmes, puis sur Outils d’administration. Ensuite, cliquez sur Gestion d’AD FS 2.0.
- Dans l’arborescence de la console, cliquez sur Approbations de parties de confiance sous AD FS 2.0\Relations d’approbation. Cliquez avec le bouton droit sur l’approbation Plateforme d’identités Microsoft Office 365, puis cliquez sur Modifier les règles de revendication.
- Dans la boîte de dialogue Modifier les règles de revendication, sélectionnez l’onglet Règles d’autorisation d’émission, puis cliquez sur Ajouter une règle pour lancer l’Assistant Règle de revendication.
- Sur la page Sélectionner un modèle de règle, sélectionnez Envoyer les revendications à l’aide d’une règle personnalisée sous Modèle de règle de revendication, puis cliquez sur Suivant.
- Sur la page Configurer une règle, tapez le nom d’affichage de cette règle sous Nom de la règle de revendication. Sous Règle personnalisée, tapez ou collez la syntaxe de règle de revendication suivante :
exists([Type == "https://schemas.microsoft.com/2012/01/requestcontext/claims/x-ms-proxy"]) && exists([Type == "https://schemas.microsoft.com/ws/2008/06/identity/claims/groupsid", Value =~ "Group SID value of allowed AD group"]) && NOT exists([Type == "https://schemas.microsoft.com/2012/01/requestcontext/claims/x-ms-forwarded-client-ip", Value=~"customer-provided public ip address regex"]) => issue(Type = "https://schemas.microsoft.com/authorization/claims/deny", Value = "true");
. - Cliquez sur Finish. Vérifiez que la nouvelle règle apparaît juste au-dessous de la règle Autoriser l’accès à tous les utilisateurs dans la liste Règles d’autorisation d’émission.
- Pour enregistrer la règle, cliquez sur OK dans la boîte de dialogue Modifier les règles de revendication.
Descriptions de la syntaxe de règle de revendication utilisée dans les scénarios ci-dessus
Description | Syntaxe des règles de revendication |
---|---|
Règle AD FS par défaut, à savoir Autoriser l’accès à tous les utilisateurs. Cette règle doit déjà exister dans la liste Règles d’autorisation d’émission de la partie de confiance de la Plateforme d’identités Microsoft Office 365. | => issue(Type = "<https://schemas.microsoft.com/authorization/claims/permit>", Value = "true") ; |
Ajoutée à une nouvelle règle personnalisée, cette clause spécifie que la demande provient du serveur proxy de fédération (c’est-à-dire qu’elle comporte l’en-tête x-ms-proxy). | |
Il est recommandé de l’inclure dans toutes les règles. | exists([Type == "<https://schemas.microsoft.com/2012/01/requestcontext/claims/x-ms-proxy>"] ) |
Cette clause permet d’établir que la demande provient d’un client possédant une adresse IP dans la plage acceptable définie. | NOT exists([Type == "<https://schemas.microsoft.com/2012/01/requestcontext/claims/x-ms-forwarded-client-ip>", Value=~"customer-provided public ip address regex"]) |
Cette clause permet de spécifier que, si l’application à laquelle on accède n’est pas Microsoft.Exchange.ActiveSync, la demande doit être refusée. | NOT exists([Type == "<https://schemas.microsoft.com/2012/01/requestcontext/claims/x-ms-client-application>", Value=="Microsoft.Exchange.ActiveSync"]) |
Cette règle permet de déterminer si l’appel s’est fait par le biais d’un navigateur web et ne sera pas refusé. | NOT exists([Type == "<https://schemas.microsoft.com/2012/01/requestcontext/claims/x-ms-endpoint-absolute-path>", Value == "/adfs/ls/"]) |
Cette règle indique que seuls les utilisateurs d’un groupe Active Directory en particulier (en fonction de la valeur SID) doivent se voir refuser l’accès. Si NOT est ajouté à cette instruction, cela signifie qu’un groupe d’utilisateurs est autorisé, quel que soit l’emplacement. | exists([Type == "<https://schemas.microsoft.com/ws/2008/06/identity/claims/groupsid>", Value =~ "{Group SID value of allowed AD group}"]) |
Cette clause est obligatoire pour émettre un refus lorsque toutes les conditions précédentes sont remplies. | => issue(Type = "<https://schemas.microsoft.com/authorization/claims/deny>", Value = "true"); |
Génération de l’expression de plage d’adresses IP
La revendication x-ms-forwarded-client-ip est remplie à partir d’un en-tête HTTP à l’heure actuelle défini uniquement par Exchange Online, qui remplit l’en-tête lorsqu’il transmet la demande d’authentification à AD FS. La revendication peut prendre les valeurs suivantes :
Remarque
Exchange Online ne prend actuellement en charge que les adresses IPv4, et non les adresses IPv6.
Une seule adresse IP : il s’agit de l’adresse IP du client connecté directement à Exchange Online.
Notes
L’adresse IP d’un client sur le réseau d’entreprise apparaît comme l’adresse IP d’interface externe de la passerelle ou du proxy sortant de l’organisation.
Les clients connectés au réseau d’entreprise par un VPN ou par Microsoft DirectAccess (DA) peuvent apparaître comme des clients d’entreprise internes ou des clients externes en fonction de la configuration du VPN ou de DA.
Une ou plusieurs adresses IP : si Exchange Online ne parvient pas à déterminer l’adresse IP du client qui se connecte, il définit la valeur en fonction de celle de l’en-tête x-forwarded-for, un en-tête non standard qui peut figurer dans les requêtes HTTP et qui est pris en charge par de nombreux clients, équilibreurs de charge et proxys du marché.
Remarque
Les différentes adresses IP, indiquant l’adresse IP du client et l’adresse de chacun des proxys qui ont transmis la demande, sont séparées par une virgule.
Les adresses IP liées à l’infrastructure d’Exchange Online n’apparaissent pas dans la liste.
Expressions régulières
Lorsque vous devez faire correspondre une plage d’adresses IP, il devient nécessaire de construire une expression régulière pour effectuer la comparaison. Dans la série d’étapes suivante, nous donnerons des exemples de construction d’une telle expression pour qu’elle corresponde aux plages d’adresses suivantes (notez que vous devrez modifier ces exemples en fonction de votre plage d’adresses IP publique) :
- 192.168.1.1 – 192.168.1.25
- 10.0.0.1 – 10.0.0.14
Tout d’abord, le modèle de base correspondant à une seule adresse IP est le suivant : \b###.###.###.###\b.
Il est possible, en étendant ce modèle, de faire correspondre deux adresses IP différentes avec une expression OR : \b###.###.###.###\b|\b###.###.###.###\b.
Ainsi, un exemple de correspondance entre seulement deux adresses (par exemple 192.168.1.1 et 10.0.0.1) serait \b192.168.1.1\b|\b10.0.0.1\b.
Vous disposez ainsi de la technique permettant d’entrer n’importe quel nombre d’adresses. Lorsqu’une plage d’adresses doit être autorisée, par exemple 192.168.1.1 – 192.168.1.25, la correspondance doit être effectuée caractère par caractère : \b192.168.1.([1-9]|1[0-9]|2[0-5])\b.
Notes
L’adresse IP est traitée comme une chaîne et non comme un nombre.
La règle est répartie comme suit : \b192.168.1.
Cela correspond à toute valeur commençant par 192.168.1.
Les modèles suivants correspondent aux plages requises pour la partie de l’adresse qui suit la virgule décimale finale :
- ([1-9] correspond aux adresses se terminant par 1-9.
- |1[0-9] correspond aux adresses se terminant par 10-19.
- |2[0-5]) correspond aux adresses se terminant par 20-25.
Notes
Les parenthèses doivent être positionnées correctement pour éviter de mettre en correspondance d’autres parties des adresses IP.
Maintenant que le bloc 192 mis en correspondance, écrivons une expression similaire pour le bloc 10 : \b10.0.0.([1-9]|1[0-4])\b.
Si l’on regroupe tout ensemble, l’expression suivante correspond à toutes les adresses pour « 192.168.1.1~25 » et « 10.0.0.1~14 » : \b192.168.1.([1-9]|1[0-9]|2[0-5])\b|\b10.0.0.([1-9]|1[0-4])\b.
Test de l’expression
Dans la mesure où les expressions régulières peuvent devenir très difficiles, nous vous recommandons vivement d’utiliser un outil de vérification regex. En cherchant sur Internet « générateur d’expressions régulières en ligne », vous trouverez de bons utilitaires en ligne qui vous permettront d’essayer vos expressions sur des exemples de données.
Lorsque vous testez l’expression, vous devez bien comprendre ce qui doit correspondre. Le système Exchange Online peut envoyer de nombreuses adresses IP, séparées par des virgules. Les expressions fournies ci-dessus fonctionnent dans ce cas. Toutefois, il est important d’y penser lorsque vous testez vos expressions régulières. Vous pouvez utiliser l’entrée suivante pour vérifier les exemples ci-dessus :
192.168.1.1, 192.168.1.2, 192.169.1.1, 192.168.12.1, 192.168.1.10, 192.168.1.25, 192.168.1.26, 192.168.1.30, 1192.168.1.20
10.0.0.1, 10.0.0.5, 10.0.0.10, 10.0.1.0, 10.0.1.1, 110.0.0.1, 10.0.0.14, 10.0.0.15, 10.0.0.10, 10,0.0.1
Validation du déploiement
Journaux d’audit de la sécurité
Pour vérifier que les nouvelles revendications de contexte de la demande sont envoyées et qu’elles sont disponibles pour le pipeline de traitement des revendications AD FS, activez l’enregistrement d’audit sur le serveur AD FS. Envoyez ensuite des demandes d’authentification et vérifiez les valeurs de revendication dans les entrées du journal d’audit de sécurité standard.
Pour activer l’enregistrement des événements d’audit dans le journal de sécurité sur un serveur AD FS, suivez la procédure décrite dans Configuration de l’audit pour AD FS 2.0.
Journalisation des événements
Par défaut, les demandes ayant échoué sont consignées dans le journal des événements d’application situé sous Journaux des applications et services\AD FS 2.0\Administration. Pour plus d’informations sur la journalisation des événements pour AD FS, consultez Configuration de la journalisation des événements AD FS 2.0.
Configuration des journaux de traçage AD FS détaillés
Les événements de traçage AD FS sont enregistrés dans le journal de débogage AD FS 2.0. Pour activer le traçage, consultez Configuration du traçage de débogage pour AD FS 2.0.
Une fois que vous avez activé le traçage, suivez la syntaxe de ligne de commande ci-dessous pour activer le niveau de journalisation détaillé : wevtutil.exe sl “AD FS 2.0 Tracing/Debug” /l:5.
Rubriques connexes
Pour plus d’informations sur les nouveaux types de revendications, consultez Types de revendications AD FS.