Examinar la aplicación Java y SDK
En esta sección de la solución:
-
Examinar el comportamiento y el código de la aplicación web Java
-
Compruebe los datos de diagnóstico asociados a intentos de conexión correctos e incorrectos que la aplicación Web de Java inicia a Oracle Identity Cloud Service.
Examinar el comportamiento de la aplicación Java
El comportamiento de la aplicación web Java sigue el flujo de autenticación en tres partes definido por el tipo de permiso de código de autorización.
Active el modo de desarrollador del explorador para poder verificar todas las solicitudes, las respuestas y las redirecciones que realizan tanto la aplicación como Oracle Identity Cloud Service. En el siguiente ejemplo se utiliza Google Chrome.
El log del desarrollador del explorador debe mostrar el siguiente flujo de eventos:
-
Solicita el recurso
/auth/oracle
y el explorador web recibe una respuesta de redirección de la aplicación web Java.Request URL: http://localhost:8080/auth Request Method: GET Status Code: 302 Found Response Headers Location: https://idcs-abcd1234.identity.oraclecloud.com/oauth2/v1/authorize?client_id=123456789abcdefghij&redirect_uri= http%3A%2F%2Flocalhost%3A8080%2Fcallback&response_type=code&scope=urn:opc:idm:t.user.me+openid&state=1234
-
Oracle Identity Cloud Service recibe su solicitud de código de autorización y presenta la página Conectar .
Request URL: https://idcs-abcd1234.identity.oraclecloud.com/oauth2/v1/authorize?client_id=123456789abcdefghij&redirect_uri= http%3A%2F%2Flocalhost%3A8080%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-abcd1234.identity.oraclecloud.com/ui/v1/signin Set-cookie: ORA_OCIS_REQ_1=[value has been omitted for readability]
-
Se conecta a Oracle Identity Cloud Service y redirige el explorador web a la URL de devolución de llamada de la aplicación web de Java.
Request URL: http://localhost:8080/callback?code=[value has been omitted for readability]&state=1234 Request Method: GET Status Code: 200 OK Response Hearders Set-Cookie: JSESSIONID=[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 y el token id definidos como atributos de sesión.
Examinar Logs de SDK
Realice los siguientes pasos para activar el log de Java SDK de Oracle Identity Cloud Service y examinar cualquier problema que encuentre durante el desarrollo.
- Abra el archivo de clase
ConnectionOptions.java
y edite el métodogetOptions()
. - Establezca el valor
Constants.LOG_LEVEL
enDEBUG
.
Reconstruya la aplicación y vuelva a ejecutarla.
Puede ver detalles del log como los siguientes:
Fine: Got token manager
Fine: using config endpoint: https://idcs-abcd1234.identity.oraclecloud.com:443/.well-known/idcs-configuration
...
Fine: Got response content: [value has been omitted for readability]
...
Fine: getAuthorizationCodeUrl returning with url: [value has been omitted for readability]
...
Fine: authorizationCode with code: [value has been omitted for readability]
...
Fine: Obtaining access token from: [value has been omitted for readability]
...
Fine: returning access token
...
Fine: Token signature verification result: true
Compruebe los datos de diagnóstico
La conexión correcta o incorrecta intenta iniciar sesión en la aplicación web Java para Oracle Identity Cloud Service se registran en los archivos log de diagnóstico de Oracle Identity Cloud Service.
- Inicie sesión en 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, en Diagnóstico .
- Seleccione Vista de actividad como tipo de diagnóstico y, a continuación, haga clic en Guardar .
- 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.
-
Realice los pasos del tema Ejecución de la aplicación Java para mostrar la página Conexión de la aplicación web Java.
-
Haga clic en el icono rojo de Oracle.
-
Para realizar un intento de conexión incorrecto, introduzca un nombre de usuario o contraseña incorrectos en la página de conexión de Oracle Identity Cloud Service.
-
Para conectarse correctamente, introduzca su nombre de usuario y contraseña correctos.
-
Utilice la aplicación web Java para desconectarse de Oracle Identity Cloud Service.
-
Vuelva a conectarse 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, en Datos de diagnóstico.
-
Seleccione 15-Minute para el rango de tiempo, Vista de actividad para el tipo de registro y CSV para el formato del informe y, a continuación, haga clic en Descargar informe .
El archivo log de diagnóstico incluye información como la siguiente sobre la conexión del usuario 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@example.com
---------------------------------------------------------------
...
---------------------------------------------------------------
Message: {"request":{"tenant":"idcs-abcd1234","grant types":"authorization_code","scopes":["urn:opc:idm:t.user.me"]},"user":{"id":"111111","name":"your.email@example.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@example.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:8080/callback] client_id[123456789abcdefghij]
Component: OAuth
Timestamp: [Date]
Actor ID: Unauthenticated
Los logs más recientes aparecen en la parte superior del archivo.