Examiner l'application Python et la trousse SDK
Dans cette section de la solution, vous allez :
-
Examiner le comportement et le code de l'application Web Python
-
Vérifier les données de diagnostic associées aux tentatives de connexion réussies et infructueuses que l'application Web Python lance dans Oracle Identity Cloud Service
Examiner le comportement de l'application Python
Le comportement de l'application Web Python suit le flux d'authentification à trois branches défini par le type d'octroi de code d'autorisation.
Pour vérifier toutes les demandes, réponses et redirections effectuées par l'application et Oracle Identity Cloud Service à l'aide du navigateur Web, activez le mode Développeur pour votre navigateur. Cette solution utilise Google Chrome.
- Exécutez l'application Web Python.
- Ouvrez un navigateur Web Google Chrome, accédez à l'URL
http://localhost:8080
et cliquez sur Connexion. - Appuyez sur F12, sélectionnez l'onglet Réseau et cochez la case Conserver le journal. Cochez cette case pour voir toutes les communications entre l'application et Oracle Identity Cloud Service.
- Dans la page Connexion, cliquez sur l'icône rouge Oracle.
Examiner l'application et les journaux SDK
L'application enregistre les informations dans la fenêtre de ligne de commande. Vous pouvez également activer les journaux de trousse SDK.
Starting development server at http://127.0.0.1:8000/
----------------------------------------
[21/Dec/2018 16:00:42] "GET /login/ HTTP/1.1" 200 2772
...
----------------- def auth(request) ---------------
config.json file = {'logoutSufix': '/oauth2/v1/userlogout', 'ClientSecret': 'abcde-12345-zyxvu-98765-qwerty', 'AudienceServiceUrl': 'https://idcs-abcd1234.identity.domain.com', 'BaseUrl': 'https://idcs-abcd1234.identity.domain.com', 'ClientId': '123456789abcdefghij, 'ConsoleLog': 'True', 'LogLevel': 'INFO', 'scope': 'urn:opc:idm:t.user.me openid', 'redirectURL': 'http://localhost:8000/callback', 'TokenIssuer': 'https://identity.domain.com/'}
[21/Dec/2018 16:00:48] "GET /auth/ HTTP/1.1" 302 0
[21/Dec/2018 16:01:08] "GET /callback?code=[value has been omitted for readability]&state=1234 HTTP/1.1" 301 0
----------------- def callback(request) ------------------
access_token = [value has been omitted for readability]
- Ouvrez le fichier
config.json
et remplacez la valeur deLogLevel
parDEBUG
. - Enregistrer le fichier et redémarrer le serveur Python
Vérifier les données de diagnostic
Lorsque l'application Web Python tente de se connecter à Oracle Identity Cloud Service, les tentatives réussies et infructueuses sont enregistrées dans les fichiers journaux de diagnostic d'Oracle Identity Cloud Service.
- Connectez-vous à la console Oracle Identity Cloud Service.
- Dans la console, développez le tiroir de navigation, cliquez sur Paramètres, puis sur Diagnostics.
- Sélectionnez Vue d'activité comme type de diagnostic, puis cliquez sur Enregistrer.
- Déconnectez-vous d'Oracle Identity Cloud Service.
Oracle Identity Cloud Service saisit les données de diagnostic pour les 15 prochaines minutes.
- Effectuez les étapes de la rubrique Exécuter l'application Python de cette solution pour afficher la page Connexion de l'application Web Python.
- Cliquez sur l'icône rouge Oracle.
- Pour tenter une tentative d'échec de connexion, entrez un nom d'utilisateur ou un mot de passe incorrect dans la page Connexion d'Oracle Identity Cloud Service.
- Pour vous connecter, entrez votre nom d'utilisateur et votre mot de passe corrects.
- Utilisez l'application Web Python pour vous déconnecter d'Oracle Identity Cloud Service.
- Connectez-vous à la console Oracle Identity Cloud Service.
- Dans la console, développez le tiroir de navigation, cliquez sur Rapports, puis sur Diagnostic des données.
- Sélectionnez un intervalle de temps de 15 minutes, le type de journal Vue d'activité, le format de rapport CSV, puis cliquez sur Télécharger le rapport.
Le fichier journal de diagnostic contient des informations similaires aux suivantes sur les tentatives de connexion à Oracle Identity Cloud Service.
Message: ID Token will be signed with User Tenant:idcs-abcd1234 Resource Tenant:idcs-abcd1234, clientId=123456789abcdefghij Component: OAuth Timestamp: [Date] Actor ID: your.email@domain.com --------------------------------------------------------------- ... --------------------------------------------------------------- Message: {"request":{"tenant":"idcs-abcd1234","grant types":"authorization_code","scopes":["urn:opc:idm:t.user.me"]},"user":{"id":"111111","name":"your.email@domain.com","tenant":"idcs-abcd1234","auth-type":"PASSWORD"},"client":{"id":"123456789abcdefghij","name":"Sample App","tenant":"idcs-abcd1234","auth-type":"PASSWORD"},"environment":{"isCSR":"false","onBehalfOfUser":"false"},"response":{"result":"ALLOWED","scopes":["urn:opc:idm:t.user.me"],"custom-claims":{"clientAppRoles":["Authenticated Client","Me"],"userAppRoles":["Authenticated","Global Viewer","Identity Domain Administrator"],"user_isAdmin":"true"}}} Component: Authorization/getAllowedScopes Timestamp: [Date] Actor ID: your.email@domain.com --------------------------------------------------------------- ... --------------------------------------------------------------- Message: {"Message":"SSO SignOn Policy evaluation result for user : 11111 is : effect:ALLOW,authenticationFactor:IDP,allowUserToSkip2FAEnrolment:false,2FAFrequency:SESSION,reAuthenticate:false,trustedDevice2FAFrequency: Component: Timestamp: Actor ID: --------------------------------------------------------------- ... --------------------------------------------------------------- Message: [PolicyEngineUtil.evaluatePolicy] Evaluating Default Sign-On Policy Component: PolicyEngine Timestamp: [Date] Actor ID: uiSignin --------------------------------------------------------------- ... --------------------------------------------------------------- Message: [PolicyEngineUtil.evaluateRule] Evaluating MFA rule Component: PolicyEngine Timestamp: [Date] Actor ID: uiSignin --------------------------------------------------------------- ... --------------------------------------------------------------- Message: [PolicyEngineUtil.evaluatePolicy] Evaluating Default Authentication Target App Policy Component: PolicyEngine Timestamp: [Date] Actor ID: idcssso --------------------------------------------------------------- ... --------------------------------------------------------------- Message: {"password":"********","authFactor":"USERNAME_PASSWORD","device":"{\"currentTime\":\"[date]",\"screenWidth\":1920,\"screenHeight\":1080,\"screenColorDepth\":24,\"screenPixelDepth\":24,\"windowPixelRatio\":1,\"language\":\"en\",\"userAgent\":\"Mozilla\/5.0 (Windows NT 10.0 Component: Timestamp: Actor ID: --------------------------------------------------------------- ... --------------------------------------------------------------- Message: {"Message":"No session found so need to collect credentials","Redirecting to Login URL: ":https://idcs-abcd1234.identity.oraclecloud.com/ui/v1/signin} Component: SSO Timestamp: [Date] Actor ID: Unauthenticated --------------------------------------------------------------- ... --------------------------------------------------------------- Message: [PolicyEngineUtil.evaluatePolicy] Evaluating Default Identity Provider Policy Component: PolicyEngine Timestamp: [Date] Actor ID: Unauthenticated --------------------------------------------------------------- Message: Authorization Request, received parameters: scope[urn:opc:idm:t.user.me openid] response_type[code] state[1234] redirect_uri[http://localhost:8000/callback] client_id[123456789abcdefghij] Component: OAuth Timestamp: [Date] Actor ID: Unauthenticated
Les journaux les plus récents apparaissent en haut du fichier.