Examen de la aplicación Python y el SDK
En esta sección de la solución:
-
Examinar el comportamiento y el código de la aplicación web de Python
-
Comprobar los datos de diagnóstico asociados a los intentos de conexión correctos y incorrectos que la aplicación web de Python inicia en Oracle Identity Cloud Service
Examen del comportamiento de la aplicación Python
El comportamiento de la aplicación web de Python sigue el flujo de autenticación de tres partes definido por el tipo de permiso de código de autorización.
Para verificar todas las solicitudes, respuestas y redirecciones que realizan la aplicación y Oracle Identity Cloud Service mediante el explorador web, active el modo Desarrollador para el explorador. Esta solución utiliza Google Chrome.
- Ejecute la aplicación web de Python.
- Abra un explorador web de Google Chrome, acceda a la URL
http://localhost:8080
y haga clic en Iniciar sesión. - Pulse F12, seleccione la ficha Network (Red) y active la casilla de control Preserve log (Conservar log). Seleccione esta casilla de control para ver todas las comunicaciones entre la aplicación y Oracle Identity Cloud Service.
- En la página Conexión, haga clic en el icono rojo de Oracle.
Examen de la aplicación y los logs de SDK
La aplicación registra la información en la ventana de la línea de comandos. También puede activar los logs de 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]
- Abra el archivo
config.json
y sustituya el valor deLogLevel
porDEBUG
. - Guarde el archivo y reinicie el servidor de Python
Comprobación de los datos de diagnóstico
Cuando la aplicación web de Python intenta conectarse a Oracle Identity Cloud Service, tanto los intentos correctos como los incorrectos se registran en los archivos log de diagnóstico de Oracle Identity Cloud Service.
- Conéctese a la consola de Oracle Identity Cloud Service.
- En la consola, amplíe el Cajón de navegación, haga clic en Configuración y, a continuación, haga clic en Diagnóstico.
- Seleccione Vista de actividad como tipo de diagnóstico y, a continuación, haga clic en Guardar.
- Desconéctese de Oracle Identity Cloud Service.
Oracle Identity Cloud Service captura datos de diagnóstico para los próximos 15 minutos.
- Complete los pasos del tema Ejecutar la aplicación Python de esta solución para mostrar la página Conexión de la aplicación web Python.
- Haga clic en el icono rojo de Oracle.
- Para realizar un intento de conexión incorrecto, introduzca un nombre de usuario o una contraseña incorrectos en la página Conectar de Oracle Identity Cloud Service.
- Para conectarse correctamente, introduzca el nombre de usuario y la contraseña correctos.
- Utilice la aplicación web de Python para desconectarse de Oracle Identity Cloud Service.
- Conéctese a la consola de Oracle Identity Cloud Service.
- En la consola, amplíe el Cajón de navegación, haga clic en Informes y, a continuación, haga clic en Datos de diagnóstico.
- Seleccione un rango temporal de 15 minutos, el tipo de log de vista de actividad, el formato de informe de CSV y, a continuación, haga clic en Descargar informe.
El archivo log de diagnóstico incluye información similar a la siguiente sobre los intentos de conexión a 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
Los logs más recientes aparecen en la parte superior del archivo.