Examinar la aplicación Python y SDK

En esta sección de la solución:

  • Examen del comportamiento y el código de la aplicación web Python

  • Compruebe los datos de diagnóstico asociados a los intentos de conexión correctos e incorrectos que la aplicación web Python inicia a Oracle Identity Cloud Service

Examen del comportamiento de la aplicación Python

El comportamiento de la aplicación web Python sigue el flujo de autenticación de tres leyendas definido por el tipo de permiso de código de autorización.

Para verificar todas las solicitudes, respuestas y redirecciona que la aplicación y Oracle Identity Cloud Service realizan con el explorador web, active el modo de desarrollador para su explorador. Esta solución utiliza Google Chrome.

  1. Ejecute la aplicación web Python.
  2. Abra un explorador web de Google Chrome, acceda a la URL de http://localhost:8080 y haga clic en Iniciar sesión.
  3. Pulse F12, seleccione la ficha Network (Red ) y active la casilla de verificación Preserve log (Mantener registro). Active esta casilla de control para ver toda la comunicación entre la aplicación y Oracle Identity Cloud Service.
  4. En la página Conexión , haga clic en el icono rojo Oracle, que aparece a la derecha de o Puede conectarse con.

El log del desarrollador del explorador debe mostrar el siguiente flujo de eventos:

  1. El usuario solicita el recurso /auth/oracle y el explorador web recibe una respuesta de redirección de la aplicación web Python.
    Request URL: http://localhost:8000/auth/
    Request Method: GET
    Status Code: 302 Found
    
    Response Headers
    Location: https://idcs-1234.identity.oraclecloud.com/oauth2/v1/authorize?client_id=123456789abcdefghij&redirect_uri=http%3A%2F%2Flocalhost%3A8000%2Fcallback&response_type=code&scope=urn:opc:idm:t.user.me+openid&state=1234
  2. Oracle Identity Cloud Service recibe la solicitud de código de autorización y presenta la página Conectar .
    Request URL: https://idcs-1234.identity.oraclecloud.com/oauth2/v1/authorize?client_id=123456789abcdefghij&redirect_uri=http%3A%2F%2Flocalhost%3A8000%2Fcallback&response_type=code&scope=urn:opc:idm:t.user.me+openid&state=1234
    Request Method: GET
    Status Code: 303 See Other
     
    Response Headers
    Location:
    https://idcs-1234.identity.oraclecloud.com/ui/v1/signin
    Set-cookie: ORA_OCIS_REQ_1=[value has been omitted for readability]
  3. El usuario se conecta a Oracle Identity Cloud Service. Oracle Identity Cloud Service redirige el explorador web a la URL de devolución de llamada de la aplicación web Python.
    Request URL:
    http://localhost:8000/callback/&code=[value has been omitted for readability]&state=1234
    Request Method: GET
    Status Code: 200 OK
     
    Response Headers
    Set-Cookie: sessionid=[value has been omitted for readability]

    En este ejemplo, la URL de devolución de llamada redirige el explorador web a la página inicial con el token de acceso de usuario definido como atributo de sesión.

Examinar el código de la aplicación Python

Después de iniciar sesión en Oracle Identity Cloud Service y se redirige a la URL de devolución de llamada de la aplicación web Python, la aplicación web Python muestra información en la ventana de línea de comandos.

[Date] "GET / HTTP/1.1" 200 2520
[Date] "GET /login/ HTTP/1.1" 200 3489
[Date] "GET /auth/ HTTP/1.1" 302 0
[Date] "GET /callback?code=[value has been omitted for readability]&state=1234 HTTP/1.1" 301 0
[Date] "GET /callback/?code=[value has been omitted for readability]&state=1234 HTTP/1.1" 200 2690

Compruebe los datos de diagnóstico

Cuando la aplicación web Python intenta conectarse a Oracle Identity Cloud Service, se registran los intentos correctos e incorrectos en los archivos log de diagnóstico de Oracle Identity Cloud Service.

  1. Inicie sesión en Oracle Identity Cloud Service.
  2. En la consola de Identity Cloud Service, amplíe el Cajón de navegación, haga clic en Configuración y, a continuación, en Diagnóstico .
  3. Seleccione Vista de actividad como tipo de diagnóstico y, a continuación, haga clic en Guardar .
  4. Cierre la sesión de Oracle Identity Cloud Service.

Oracle Identity Cloud Service captura datos de diagnóstico durante los próximos minutos de 15.

  1. Complete los pasos del tema Ejecución de la aplicación Python de esta solución para mostrar la página de conexión de la aplicación web Python.
  2. Haga clic en el icono de Oracle rojo, que aparece a la derecha de o Puede conectarse con.
  3. Para realizar un intento de inicio de sesión incorrecto, introduzca un nombre de usuario o contraseña incorrectos en la página de inicio de sesión de Oracle Identity Cloud Service.
  4. Para conectarse correctamente, introduzca su nombre de usuario y contraseña correctos.
  5. Utilice la aplicación web Python para desconectarse de Oracle Identity Cloud Service.
  6. Inicie sesión en Oracle Identity Cloud Service.
  7. En la consola de Identity Cloud Service, amplíe el Cajón de navegación, haga clic en Informes y, a continuación, en Datos de diagnóstico.
  8. Seleccione un rango de tiempo de 15-Minute, el tipo de log de vista de actividad , el formato de informe 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 inicio de sesión en 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.