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 l'intégration de Cisco ISE 3.0 avec Azure AD implémentée via le service d'identité REST avec les informations d'identification du mot de passe du propriétaire de la ressource.
Ce document décrit comment configurer et dépanner l'intégration d'Identity Services Engine (ISE) 3.0 avec Microsoft (MS) Azure Active Directory (AD) implémentée via le service d'identité (ID) de transfert d'état de représentation (REST) à l'aide des informations d'identification de mot de passe de propriétaire de ressource (ROPC).
Cisco vous recommande de prendre connaissance des rubriques suivantes :
ISE
Les informations contenues dans ce document sont basées sur les versions de matériel et de logiciel 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. Si votre réseau est en ligne, assurez-vous de bien comprendre l’incidence possible des commandes.
La fonctionnalité ISE REST ID est basée sur le nouveau service introduit dans ISE 3.0 - Service d'authentification REST. Ce service est responsable de la communication avec Azure AD sur les échanges ROPC Open Authorization (OAuth) afin d'effectuer l'authentification des utilisateurs et la récupération des groupes. Le service d'authentification REST est désactivé par défaut et, une fois que l'administrateur l'a activé, il s'exécute sur tous les noeuds ISE du déploiement. Comme la communication du service d'authentification REST avec le cloud se produit au moment de l'authentification des utilisateurs, tout retard sur le chemin entraîne une latence supplémentaire dans le flux d'authentification/autorisation. Cette latence échappe au contrôle d'ISE et toute implémentation de l'authentification REST doit être soigneusement planifiée et testée afin d'éviter tout impact sur les autres services ISE.
1. L'administrateur du cloud Azure crée une nouvelle inscription d'application (App). Les détails de cette application sont utilisés ultérieurement sur ISE afin d'établir une connexion avec Azure AD.
2. L'administrateur du cloud Azure doit configurer l'application avec :
3. L'administrateur ISE active le service d'authentification REST. Il doit être effectué avant que toute autre action puisse être exécutée.
4. Les modifications sont écrites dans la base de données de configuration et répliquées sur l'ensemble du déploiement ISE.
5. Le service d'authentification REST démarre sur tous les noeuds.
6. L'administrateur ISE configure le magasin d'ID REST avec les détails de l'étape 2.
7. Les modifications sont écrites dans la base de données de configuration et répliquées sur l'ensemble du déploiement ISE.
8. L'administrateur ISE crée une nouvelle séquence de magasin d'identités ou modifie celle qui existe déjà et configure les stratégies d'authentification/d'autorisation.
9. Les modifications sont écrites dans la base de données de configuration et répliquées sur l'ensemble du déploiement ISE.
10. Le terminal initie l’authentification. Conformément à la spécification du protocole ROPC, le mot de passe utilisateur doit être fourni à la plate-forme d'identité Microsoft en texte clair sur une connexion HTTP chiffrée ; pour cette raison, les seules options d'authentification disponibles prises en charge par ISE à ce jour sont les suivantes :
11. Échange avec le noeud de service de stratégie ISE (PSN) sur Radius.
12. Process Runtime (PrRT) envoie une demande au service REST ID avec les détails de l'utilisateur (nom d'utilisateur/mot de passe) via l'API interne.
13. Le service REST ID envoie une requête ROPC OAuth à Azure AD via HyperText Transfer Protocol Secure (HTTPS).
14. Azure AD effectue l'authentification des utilisateurs et récupère les groupes d'utilisateurs.
15. Résultat d’authentification/autorisation renvoyé à ISE.
Après le point 15, le résultat de l'authentification et les groupes récupérés sont retournés à PrRT, ce qui implique un flux d'évaluation de stratégie et l'attribution du résultat final de l'authentification/autorisation. Access-Accept avec les attributs du profil d'autorisation ou Access-Reject renvoyé au périphérique d'accès réseau (NAD).
1. Localisez AppRegistration Service comme indiqué dans l'image.
Figure 2.
a. Tapez AppRegistration dans la barre de recherche globale.
b. Cliquez sur le service d'enregistrement des applications.
2. Créez un enregistrement d'application.
Figure 3.
3. Enregistrez une nouvelle application.
Figure 4.
a. Définissez le nom de l'application.
b. Définissez quels comptes peuvent utiliser de nouvelles applications.
c. Appuyez sur le bouton Register.
4. Accédez à Certificat et secrets.
Figure 5.
5. CréezNew client secret
comme illustré dans l'image.
Figure 6.
6. Configurez leclient secret
comme indiqué dans l'image.
Figure 7.
a. Définissez la description d'un nouveau secret.
b. Sélectionnez la période d'expiration.
c. Cliquez surAdd
le bouton.
7. Copiez et enregistrez la valeur secrète (elle doit être utilisée ultérieurement sur ISE au moment de la configuration de l'intégration).
Figure 8.
8. Revenez à l'ongletOverview
afin de copier lesApp ID
et .
Figure 9.
9. Activez ROPC pour l'application.
Figure 10.
a. Accédez à l'ongletAuthentication
.
b. Recherchez la section Advanced settings (Paramètres avancés).
c. SelectYes
for - Traite l'application comme un client public.
d. Cliquez surSave
le bouton.
10.Add group claims
à l'application.
Figure 11.
a. Accédez à Configuration de jeton.
b. Appuyez sur on -Add groups claim
.
11. Définissez les types de groupe à ajouter
Figure 12.
a. Sélectionner - Tous les groupes.
b. Cliquez surAdd
le bouton.
12. AjouterAPI permissions
.
Figure 13.
a. Accédez àAPI permissions
.
b. Cliquez surAdd permission
.
13. Ajoutez desMicrosoft Graph
autorisations.
Figure 14.
14. AjouterApplication permissions
.
Figure 15.
15. Ajouter uneGroup.Read.All
autorisation.
Figure 16.
a. Localisez le type d'API - Groupe.
b. Sélectionnez laGroup.Read.All
.
c. Cliquez sur le boutonAdd permissions
.
Remarque : Les données de groupe d'utilisateurs peuvent être extraites d'Azure AD de plusieurs manières à l'aide d'une autorisation API différente. La méthode décrite dans cet exemple s'est révélée efficace dans le laboratoire du centre d'assistance technique Cisco. Utilisez d'autres autorisations API au cas où votre administrateur Azure AD le recommande.
16.Grant admin consent
pour les autorisations API.
Figure 17.
17. Confirmer l'autorisation de l'administrateur
Figure 18.
À ce stade, vous pouvez envisager une intégration entièrement configurée du côté d'Azure AD.
1. Accédez aux paramètres de gestion des identités.
Figure 19.
Accédez àAdministration > Identity Management> Settings
.
2. Activez le service REST ID (désactivé par défaut).
Figure 20.
Naviguez jusqu'àREST ID Store Settings
et modifiez l'état de REST ID Store Settings afin deEnable
, puisSubmit
vos modifications.
3. Créez un magasin REST ID.
Figure 21.
Basculez vers l'External Identity Sources
'onglet, cliquez sur le sous-onglet,REST (ROPC)
puis cliquez sur Ajouter.
4. Configurez le magasin REST ID.
Figure 22.
a. Définissez le nom du magasin d'ID. Plus tard, ce nom se trouve dans la liste des dictionnaires ISE lorsque vous configurez les stratégies d'autorisation. En outre, ce nom est affiché dans la liste des magasins d'ID disponibles dans les paramètres de stratégie d'authentification et dans la liste des magasins d'ID disponibles dans la configuration de séquence de magasin d'identités.
b. Fournissez l'ID client (extrait d'Azure AD à l'étape 8. de la section de configuration de l'intégration Azure AD).
c. Fournissez le secret client (extrait d'Azure AD à l'étape 7. de la section de configuration de l'intégration Azure AD).
d. Fournissez l'ID du locataire (extrait d'Azure AD à l'étape 8. de la section de configuration de l'intégration Azure AD).
e. Configure username Sufix - par défaut, ISE PSN utilise un nom d'utilisateur fourni par l'utilisateur final, qui est fourni au format sAMAccountName (nom d'utilisateur court, par exemple, bob); dans ce cas, Azure AD ne peut pas localiser l'utilisateur. Le suffixe du nom d'utilisateur est la valeur ajoutée au nom d'utilisateur fourni par l'utilisateur afin d'amener le nom d'utilisateur au format UPN.
Remarque : le protocole ROPC est limité à l'authentification utilisateur, car il repose sur l'attribut Nom d'utilisateur lors de l'authentification. Les objets de périphérique dans Azure AD n'ont pas d'attributs de nom d'utilisateur.
f. Appuyez sur Tester la connexion afin de confirmer qu'ISE peut utiliser les détails d'application fournis afin d'établir une connexion avec Azure AD.
g. Appuyez sur Load Groups afin d'ajouter des groupes disponibles dans le magasin d'ID REST d'Azure AD. L'exemple ci-dessous montre à quoi ressemble l'expérience administrateur.
Remarque : Notez l'ID de bogue Cisco CSCvx00345 défectueux, car il empêche le chargement des groupes. Le défaut est corrigé dans le correctif 2 d'ISE 3.0.
Figure 23.
h. Envoyez vos modifications.
5. À cette étape, envisagez la création d'une nouvelle séquence de magasin d'identités, qui inclut un magasin d'ID REST nouvellement créé.
6. Au moment où le magasin d'ID REST ou la séquence de magasin d'identités qui le contient est affecté à la stratégie d'authentification, remplacez une action par défaut pour Échec du processus de DROP par REJECT, comme indiqué dans l'image.
Figure 24.
a. Localisez la stratégie d'authentification qui utilise le magasin d'ID REST.
b. Liste déroulante Options d'ouverture.
c. L'action de modification par défaut pour le processus a échoué de DROP à REJECT.
Ceci est nécessaire afin d'éviter que PSN soit marqué comme mort du côté des NAD à un moment où des défaillances spécifiques se produisent dans le magasin d'ID REST comme :
7. Ajoutez le dictionnaire du magasin d'ID REST à la stratégie d'autorisation.
Figure 25.
a. Liste déroulante Ouvrir tous les dictionnaires.
b. Localisez le dictionnaire nommé de la même manière que votre banque d'ID REST.
8. Ajoutez des groupes d'identités externes (depuis ISE 3.0, le seul attribut disponible dans le dictionnaire du magasin d'ID REST est un groupe externe).
Figure 26.
Dans le cas de l'authentification Dot1x, la condition de tunnel EAP du dictionnaire d'accès réseau peut être utilisée pour faire correspondre les tentatives EAP-TTLS comme illustré dans l'image.
Figure 27.
a. Définissez EAP Tunnel EQUAL à EAP-TTLS pour faire correspondre les tentatives qui doivent être transmises au magasin d'ID REST.
b. Sélectionnez directement dans le magasin d'ID REST ou dans la séquence de magasin d'identités, qui le contient dans la colonne Utiliser.
Au sein des stratégies d'autorisation individuelles, les groupes externes d'Azure AD peuvent être utilisés avec le type de tunnel EAP :
Figure 28.
Pour un flux basé sur VPN, vous pouvez utiliser un nom de groupe de tunnels comme différenciateur :
Stratégie d'authentification :
Stratégies d'autorisation :
Figure 29.
Référez-vous à cette section pour vous assurer du bon fonctionnement de votre configuration.
1. Vérifiez que le service d'authentification REST s'exécute sur le noeud ISE.
Pour vérifier cela, vous devez exécuter la commande show application status ise dans l'interpréteur de commandes Secure Shell (SSH) d'un noeud ISE cible :
skuchere-ise30-1/admin# show application status ise
ISE PROCESS NAME STATE PROCESS ID
--------------------------------------------------------------------
Database Listener running 101790
Database Server running 92 PROCESSES
Application Server running 39355
Profiler Database running 107909
ISE Indexing Engine running 115132
AD Connector running 116376
M&T Session Database running 107694
M&T Log Processor running 112553
Certificate Authority Service running 116226
EST Service running 119875
SXP Engine Service disabled
Docker Daemon running 104217
TC-NAC Service disabled
pxGrid Infrastructure Service disabled
pxGrid Publisher Subscriber Service disabled
pxGrid Connection Manager disabled
pxGrid Controller disabled
PassiveID WMI Service disabled
PassiveID Syslog Service disabled
PassiveID API Service disabled
PassiveID Agent Service disabled
PassiveID Endpoint Service disabled
PassiveID SPAN Service disabled
DHCP Server (dhcpd) disabled
DNS Server (named) disabled
ISE Messaging Service running 104876
ISE API Gateway Database Service running 106853
ISE API Gateway Service running 110426
Segmentation Policy Service disabled
REST Auth Service running 63052
SSE Connector disabled
2. Vérifiez que le magasin d'ID REST est utilisé au moment de l'authentification (reportez-vous à la section Étapes. du rapport d'authentification détaillé).
a. PSN démarre l'authentification en texte brut avec le magasin d'ID REST sélectionné.
b. Connexion établie avec le cloud Azure.
c. Étape d'authentification réelle - tenez compte de la valeur de latence présentée ici. Dans le cas où toutes vos authentifications avec le cloud Azure rencontreraient des problèmes de latence significative, cela affecterait l'autre flux ISE et, par conséquent, l'ensemble du déploiement ISE deviendrait instable.
d. Confirmation de l'authentification réussie.
e. Confirmation des données de groupe présentées en réponse.
f. Contexte de session renseigné avec les données du groupe d'utilisateurs. Pour plus d'informations sur le processus de gestion des sessions ISE, consultez cet article (lien).
3. Confirmez que les stratégies d'authentification/autorisation attendues sont sélectionnées (pour ce sujet, examinez la section Vue d'ensemble du rapport d'authentification détaillé).
Figure 30.
Cette section fournit les informations que vous pouvez utiliser pour dépanner votre configuration.
Afin de dépanner tout problème avec le service d'authentification REST, vous devez commencer par la révision du fichier ADE.log. Emplacement du bundle de support - /support/adeos/ade
Un mot clé de recherche pour le service d'authentification REST est - ROPC-control.
Cet exemple montre comment le service d'authentification REST démarre :
2020-08-30T11:15:38.624197+02:00 skuchere-ise30-1 admin: info:[application:operation:ROPC-control.sh] Starting
2020-08-30T11:15:39.217794+02:00 skuchere-ise30-1 admin: info:[application:operation:ROPC-control.sh] inside docker_image_exists
2020-08-30T11:15:39.290301+02:00 skuchere-ise30-1 admin: info:[application:operation:ROPC-control.sh] Image exist with ID =
2020-08-30T11:15:39.291858+02:00 skuchere-ise30-1 admin: info:[application:operation:ROPC-control.sh] Docker image doesn't exist
2020-08-30T11:15:39.293768+02:00 skuchere-ise30-1 admin: info:[application:operation:ROPC-control.sh] Load docker image ROPC
2020-08-30T11:15:39.359490+02:00 skuchere-ise30-1 admin: info:[application:operation:ROPC-control.sh] Error: No such image: ROPC
2020-08-30T11:15:42.789242+02:00 skuchere-ise30-1 admin: info:[application:operation:ROPC-control.sh] Loaded image: ROPC:latest
2020-08-30T11:15:42.830411+02:00 skuchere-ise30-1 admin: info:[application:operation:ROPC-control.sh] Docker image ROPC successfully loaded.
2020-08-30T11:15:42.832131+02:00 skuchere-ise30-1 admin: info:[application:operation:ROPC-control.sh] Setting up REST Auth Service
2020-08-30T11:15:42.844051+02:00 skuchere-ise30-1 admin: info:[application:operation:ROPC-control.sh] inside docker_create_container
2020-08-30T11:15:53.479968+02:00 skuchere-ise30-1 admin: info:[application:operation:ROPC-control.sh] Copying binaries to the docker container...
2020-08-30T11:15:55.325973+02:00 skuchere-ise30-1 admin: info:[application:operation:ROPC-control.sh] Container run status false
2020-08-30T11:15:57.103245+02:00 skuchere-ise30-1 admin: info:[application:operation:ROPC-control.sh] Container run status true
2020-08-30T11:15:57.105752+02:00 skuchere-ise30-1 admin: info:[application:operation:ROPC-control.sh] Creating ROPC pid file
2020-08-30T11:15:57.278374+02:00 skuchere-ise30-1 admin: info:[application:operation:ROPC-control.sh] Container run status true
Dans les cas où le service ne démarre pas ou s'arrête de façon inattendue, il est toujours logique de commencer par consulter le fichier ADE.log autour d'une période problématique.
Dans le cas d'échecs d'authentification lorsque le magasin d'ID REST est utilisé, vous devez toujours commencer à partir d'un rapport d'authentification détaillé. Dans la zone Autres attributs, vous pouvez voir une section - RestAuthErrorMsg qui contient une erreur renvoyée par le cloud Azure :
Figure 31.
Dans ISE 3.0, en raison de la fonctionnalité Controlled Introduction of REST ID, les débogages pour cette fonctionnalité sont activés par défaut. Tous les journaux associés à l'ID REST sont stockés dans des fichiers ROPC qui peuvent être consultés via l'interface de ligne de commande :
skuchere-ise30-1/admin# sh logging application | i ropc
755573 Oct 04 2020 09:10:29 ropc/ropc.log
skuchere-ise30-1/admin# sh logging application ropc/ropc.log
23:49:31.449 [http-nio-9601-exec-6] DEBUG c.c.i.r.c.ROPCController - Starting ROPC auth flow
23:49:31.788 [http-nio-9601-exec-6] DEBUG c.c.i.r.u.ScimUtility - Found user and pass in the SCIM filter
Sur ISE 3.0 avec le correctif installé, notez que le nom du fichier est rest-id-store.log et non ropc.log. L'exemple de recherche précédent fourni fonctionne car le nom du dossier n'a pas changé.
Ces fichiers peuvent également être extraits du bundle de support ISE.
Voici quelques exemples de journaux qui montrent différents scénarios de travail et de non-travail :
1. Erreur de certificat lorsque Azure Graph n'est pas approuvé par le noeud ISE. Cette erreur est visible lorsque les groupes ne se chargent pas dans le paramètre du magasin d'ID REST.
20:44:54.420 [http-nio-9601-exec-7] DEBUG c.c.i.r.u.HttpClientWrapper - Start proxy load for URI 'https://graph.microsoft.com/v1.0/groups'
20:44:54.805 [http-nio-9601-exec-7] ERROR c.c.i.r.p.a.AzureIdentityProviderFacade - Couldn't fetch application groups, REST error
javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: No trusted certificate found
at sun.security.ssl.Alerts.getSSLException(Alerts.java:192)
at sun.security.ssl.SSLSocketImpl.fatal(SSLSocketImpl.java:1946)
at sun.security.ssl.Handshaker.fatalSE(Handshaker.java:316)
at sun.security.ssl.Handshaker.fatalSE(Handshaker.java:310)
at sun.security.ssl.ClientHandshaker.serverCertificate(ClientHandshaker.java:1639)
Ce problème indique que le certificat de l'API graphique Microsoft n'est pas approuvé par ISE. ISE 3.0.0.458 n'a pas d'autorité de certification DigiCert Global Root G2 installée dans le magasin de confiance. Ceci est documenté dans le défaut
- ID de bogue Cisco CSCv80297 Pour résoudre ce problème, vous devez installer DigiCert Global Root G2 CA dans le magasin de confiance ISE et le marquer comme approuvé pour les services Cisco.
Le certificat peut être téléchargé à l'adresse suivante : https://www.digicert.com/kb/digicert-root-certificates.htm
2. Code secret d'application incorrect.
10:57:53.200 [http-nio-9601-exec-1] DEBUG c.c.i.r.e.c.CertificateCache - SSLContext initialized with trust managers
10:57:54.205 [http-nio-9601-exec-1] ERROR c.c.i.r.u.RestUtility - Error response in 'POST' request. Status - '401'. Error - '{"error":"invalid_client","error_description":"AADSTS7000215: Invalid client secret is provided.\r\nTrace ID: 99cc29f7-502a-4aaa-b2cf-1daeb071b900\r\nCorrelation ID: a697714b-5ab2-4bd1-8896-f9ad40d625e5\r\nTimestamp: 2020-09-29 09:01:36Z","error_codes":[7000215],"timestamp":"2020-09-29 09:01:36Z","trace_id":"99cc29f7-502a-4aaa-b2cf-1daeb071b900","correlation_id":"a697714b-5ab2-4bd1-8896-f9ad40d625e5","error_uri":"https://login.microsoftonline.com/error?code=7000215"}'
10:57:54.206 [http-nio-9601-exec-1] ERROR c.c.i.r.c.ROPCController - Request related Error
com.cisco.ise.ROPC.entities.exceptions.InvalidApplicationAuthException: AADSTS7000215: Invalid client secret is provided.
Trace ID: 99cc29f7-502a-4aaa-b2cf-1daeb071b900
Correlation ID: a697714b-5ab2-4bd1-8896-f9ad40d625e5
Timestamp: 2020-09-29 09:01:36Z - Error Codes: [7000215]
at com.cisco.ise.ROPC.providers.azure.AzureIdentityProviderFacade.authenticateApplication(AzureIdentityProviderFacade.java:117)
3. ID d'application incorrect.
21:34:36.090 [http-nio-9601-exec-4] DEBUG c.c.i.r.e.c.CertificateCache - SSLContext initialized with trust managers
21:34:36.878 [http-nio-9601-exec-4] ERROR c.c.i.r.u.RestUtility - Error response in 'POST' request. Status - '400'. Error - '{"error":"unauthorized_client","error_description":"AADSTS700016: Application with identifier '825aab1f-be45-4d53-92fe-bb756' was not found in the directory '83cc4b2c-c608-4563-b6bd-dc8e83977ff6'. This can happen if the application has not been installed by the administrator of the tenant or consented to by any user in the tenant. You have sent your authentication request to the wrong tenant.\r\nTrace ID: 6dbd0fdd-0128-4ea8-b06a-5e78f37c0100\r\nCorrelation ID: eced0c34-fcc1-40b9-b033-70e5abe75985\r\nTimestamp: 2020-08-31 19:38:34Z","error_codes":[700016],"timestamp":"2020-08-31 19:38:34Z","trace_id":"6dbd0fdd-0128-4ea8-b06a-5e78f37c0100","correlation_id":"eced0c34-fcc1-40b9-b033-70e5abe75985","error_uri":"https://login.microsoftonline.com/error?code=700016"}'
21:34:36.879 [http-nio-9601-exec-4] ERROR c.c.i.r.c.ROPCController - Request related Error
com.cisco.ise.ROPC.entities.exceptions.InvalidApplicationAuthException: AADSTS700016: Application with identifier '825aab1f-be45-4d53-92fe-bb756' was not found in the directory '83cc4b2c-c608-4563-b6bd-dc8e83977ff6'. This can happen if the application has not been installed by the administrator of the tenant or consented to by any user in the tenant. You have sent your authentication request to the wrong tenant.
Trace ID: 6dbd0fdd-0128-4ea8-b06a-5e78f37c0100
Correlation ID: eced0c34-fcc1-40b9-b033-70e5abe75985
Timestamp: 2020-08-31 19:38:34Z - Error Codes: [700016]
4. Utilisateur introuvable.
10:43:01.351 [http-nio-9601-exec-2] ERROR c.c.i.r.u.RestUtility - Error response in 'POST' request. Status - '400'. Error - '{"error":"invalid_grant","error_description":"AADSTS50034: The user account bob does not exist in the 83cc4b2c-c608-4563-b6bd-dc8e83977ff6 directory. To sign into this application, the account must be added to the directory.\r\nTrace ID: 9417a19e-66f8-4887-ab7a-a9ee268b1a00\r\nCorrelation ID: df3722ff-cd29-4ea2-98fc-fff0117a8db9\r\nTimestamp: 2020-08-31 08:46:57Z","error_codes":[50034],"timestamp":"2020-08-31 08:46:57Z","trace_id":"9417a19e-66f8-4887-ab7a-a9ee268b1a00","correlation_id":"df3722ff-cd29-4ea2-98fc-fff0117a8db9","error_uri":"https://login.microsoftonline.com/error?code=50034"}'
10:43:01.352 [http-nio-9601-exec-2] ERROR c.c.i.r.c.ROPCController - Request related Error
com.cisco.ise.ROPC.entities.exceptions.ROPCResponseErrorException: {"error":"invalid_grant","error_description":"AADSTS50034: The user account bob does not exist in the 83cc4b2c-c608-4563-b6bd-dc8e83977ff6 directory. To sign into this application, the account must be added to the directory.\r\nTrace ID: 9417a19e-66f8-4887-ab7a-a9ee268b1a00\r\nCorrelation ID: df3722ff-cd29-4ea2-98fc-fff0117a8db9\r\nTimestamp: 2020-08-31 08:46:57Z","error_codes":[50034],"timestamp":"2020-08-31 08:46:57Z","trace_id":"9417a19e-66f8-4887-ab7a-a9ee268b1a00","correlation_id":"df3722ff-cd29-4ea2-98fc-fff0117a8db9","error_uri":"https://login.microsoftonline.com/error?code=50034"}
at com.cisco.ise.ROPC.providers.azure.AzureIdentityProviderFacade.authenticateUser(AzureIdentityProviderFacade.java:87)
at com.cisco.ise.ROPC.providers.azure.AzureROPCFlow.authenticateUser(AzureROPCFlow.java:100)
at com.cisco.ise.ROPC.providers.azure.AzureROPCFlow.doEntireFlow(AzureROPCFlow.java:69)
at com.cisco.ise.ROPC.controllers.ROPCController.ROPCAuthFlow(ROPCController.java:168)
at com.cisco.ise.ROPC.controllers.ROPCController.get(ROPCController.java:85)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
5. Le mot de passe utilisateur a expiré. En général, cela peut se produire pour l'utilisateur nouvellement créé, car le mot de passe défini par l'administrateur Azure doit être modifié au moment de la connexion à Office365.
10:50:55.096 [http-nio-9601-exec-4] ERROR c.c.i.r.u.RestUtility - Error response in 'POST' request. Status - '401'. Error - '{"error":"invalid_grant","error_description":"AADSTS50055: The password is expired.\r\nTrace ID: 776120b2-9687-4f88-bf93-822a4d019c00\r\nCorrelation ID: 5defbdc6-3a7f-425f-91e9-ba3c10fcc410\r\nTimestamp: 2020-08-31 08:54:51Z","error_codes":[50055],"timestamp":"2020-08-31 08:54:51Z","trace_id":"776120b2-9687-4f88-bf93-822a4d019c00","correlation_id":"5defbdc6-3a7f-425f-91e9-ba3c10fcc410","error_uri":"https://login.microsoftonline.com/error?code=50055","suberror":"user_password_expired"}'
10:50:55.097 [http-nio-9601-exec-4] ERROR c.c.i.r.c.ROPCController - Request related Error
com.cisco.ise.ROPC.entities.exceptions.ROPCResponseErrorException: {"error":"invalid_grant","error_description":"AADSTS50055: The password is expired.\r\nTrace ID: 776120b2-9687-4f88-bf93-822a4d019c00\r\nCorrelation ID: 5defbdc6-3a7f-425f-91e9-ba3c10fcc410\r\nTimestamp: 2020-08-31 08:54:51Z","error_codes":[50055],"timestamp":"2020-08-31 08:54:51Z","trace_id":"776120b2-9687-4f88-bf93-822a4d019c00","correlation_id":"5defbdc6-3a7f-425f-91e9-ba3c10fcc410","error_uri":"https://login.microsoftonline.com/error?code=50055","suberror":"user_password_expired"}
at com.cisco.ise.ROPC.providers.azure.AzureIdentityProviderFacade.authenticateUser(AzureIdentityProviderFacade.java:87)
at com.cisco.ise.ROPC.providers.azure.AzureROPCFlow.authenticateUser(AzureROPCFlow.java:100)
at com.cisco.ise.ROPC.providers.azure.AzureROPCFlow.doEntireFlow(AzureROPCFlow.java:69)
at com.cisco.ise.ROPC.controllers.ROPCController.ROPCAuthFlow(ROPCController.java:168)
at com.cisco.ise.ROPC.controllers.ROPCController.get(ROPCController.java:85)
at sun.reflect.GeneratedMethodAccessor53.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
6. Impossible de charger les groupes en raison d'autorisations API incorrectes.
12:40:06.624 [http-nio-9601-exec-9] ERROR c.c.i.r.u.RestUtility - Error response in 'GET' request. Status - '403'. Error - '{
"error": {
"code": "Authorization_RequestDenied",
"message": "Insufficient privileges to complete the operation.",
"innerError": {
"date": "2020-08-30T10:43:59",
"request-id": "da458fa4-cc8a-4ae8-9720-b5370ad45297"
}
}
}'
7. L'authentification échoue lorsque le ROPC n'est pas autorisé côté Azure.
11:23:10.824 [http-nio-9601-exec-2] DEBUG c.c.i.r.e.c.CertificateCache - SSLContext initialized with trust managers
11:23:11.776 [http-nio-9601-exec-2] ERROR c.c.i.r.u.RestUtility - Error response in 'POST' request. Status - '401'. Error - '{"error":"invalid_client","error_description":"AADSTS7000218: The request body must contain the parameter: 'client_assertion' or 'client_secret'.\r\nTrace ID: 856d1ced-06c3-4446-a856-813789579b00\r\nCorrelation ID: b0a9cb82-4f37-46b3-abf5-361d8ce34094\r\nTimestamp: 2020-08-31 09:27:08Z","error_codes":[7000218],"timestamp":"2020-08-31 09:27:08Z","trace_id":"856d1ced-06c3-4446-a856-813789579b00","correlation_id":"b0a9cb82-4f37-46b3-abf5-361d8ce34094","error_uri":"https://login.microsoftonline.com/error?code=7000218"}'
11:23:11.777 [http-nio-9601-exec-2] ERROR c.c.i.r.c.ROPCController - Request related Error
com.cisco.ise.ROPC.entities.exceptions.ROPCResponseErrorException: {"error":"invalid_client","error_description":"AADSTS7000218: The request body must contain the parameter: 'client_assertion' or 'client_secret'.\r\nTrace ID: 856d1ced-06c3-4446-a856-813789579b00\r\nCorrelation ID: b0a9cb82-4f37-46b3-abf5-361d8ce34094\r\nTimestamp: 2020-08-31 09:27:08Z","error_codes":[7000218],"timestamp":"2020-08-31 09:27:08Z","trace_id":"856d1ced-06c3-4446-a856-813789579b00","correlation_id":"b0a9cb82-4f37-46b3-abf5-361d8ce34094","error_uri":"https://login.microsoftonline.com/error?code=7000218"}
at com.cisco.ise.ROPC.providers.azure.AzureIdentityProviderFacade.authenticateUser(AzureIdentityProviderFacade.java:87)
at com.cisco.ise.ROPC.providers.azure.AzureROPCFlow.authenticateUser(AzureROPCFlow.java:100)
at com.cisco.ise.ROPC.providers.azure.AzureROPCFlow.doEntireFlow(AzureROPCFlow.java:69)
at com.cisco.ise.ROPC.controllers.ROPCController.ROPCAuthFlow(ROPCController.java:168)
at com.cisco.ise.ROPC.controllers.ROPCController.get(ROPCController.java:85)
at sun.reflect.GeneratedMethodAccessor53.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
8. L'authentification échoue car l'utilisateur n'appartient à aucun groupe du côté Azure.
21:54:55.976 [http-nio-9601-exec-5] DEBUG c.c.i.r.e.c.CertificateCache - SSLContext initialized with trust managers
21:54:57.312 [http-nio-9601-exec-5] ERROR c.c.i.r.p.a.AzureROPCFlow - Missing claims in the id token: "name" or "groups"
21:54:57.313 [http-nio-9601-exec-5] ERROR c.c.i.r.c.ROPCController - Server Error
com.cisco.ise.ROPC.entities.exceptions.JsonParseException: Json exception: Missing claims in the id token: "name" or "groups"
at com.cisco.ise.ROPC.providers.azure.AzureROPCFlow.validateIdTokenPayload(AzureROPCFlow.java:93)
9. Authentification des utilisateurs et récupération des groupes réussies.
11:46:03.035 [http-nio-9601-exec-7] DEBUG c.c.i.r.c.ROPCController - Starting ROPC auth flow
11:46:03.037 [http-nio-9601-exec-7] DEBUG c.c.i.r.u.ScimUtility - Found user and pass in the SCIM filter
11:46:03.037 [http-nio-9601-exec-7] DEBUG c.c.i.r.c.ROPCController - Getting the right ROPC handler for the request IDPType AZURE
11:46:03.037 [http-nio-9601-exec-7] DEBUG c.c.i.r.c.ROPCController - Getting user groups from handler
11:46:03.038 [http-nio-9601-exec-7] DEBUG c.c.i.r.u.HttpClientWrapper - Start building http client
11:46:03.039 [http-nio-9601-exec-7] DEBUG c.c.i.r.u.HttpClientWrapper - Start proxy load for URI 'https://login.microsoftonline.com/83cc4b2c-c608-4563-b6bd-dc8e83977ff6/oauth2/v2.0/token'
11:46:03.039 [http-nio-9601-exec-7] DEBUG c.c.i.r.u.HttpClientWrapper - Start check if host is bypass
11:46:03.039 [http-nio-9601-exec-7] DEBUG c.c.i.r.u.HttpClientWrapper - Iterating bypass hosts '192.168.1.10,10.201.228.98,10.62.145.72,172.16.201.204,172.16.201.203' to find host 'login.microsoftonline.com'
11:46:03.040 [http-nio-9601-exec-7] DEBUG c.c.i.r.u.HttpClientWrapper - Proxy server found with address '192.168.255.40' and port '8080', load to httpclient
11:46:03.040 [http-nio-9601-exec-7] DEBUG c.c.i.r.u.HttpClientWrapper - Start adding proxy credentials to builder
11:46:03.040 [http-nio-9601-exec-7] DEBUG c.c.i.r.u.HttpClientWrapper - No credentials found for proxy
11:46:03.040 [http-nio-9601-exec-7] DEBUG c.c.i.r.e.c.CertificateCache - Created SSLContext with TLSv1.2 algorithm
11:46:03.041 [http-nio-9601-exec-7] DEBUG c.c.i.r.e.c.CertificateCache - SSLContext initialized with trust managers
11:46:04.160 [http-nio-9601-exec-7] DEBUG c.c.i.r.c.ROPCController - The ROPCHandlerResponse is: {
"schemas" : [ "urn:ietf:params:scim:schemas:core:2.0:User" ],
"userName" : "username",
"name" : {
"formatted" : "bob"
},
"displayName" : "bob",
"groups" : [ {
"value" : "17db2c79-fb87-4027-ae13-88eb5467f25b"
} ],
"roles" : [ ]
}
Révision | Date de publication | Commentaires |
---|---|---|
2.0 |
10-Jan-2023 |
Recertification |
1.0 |
27-Oct-2020 |
Première publication |