Esaminare l'applicazione Java e l'SDK

In questa sezione della soluzione è possibile:

  • Esaminare il comportamento e il codice dell'applicazione Web Java

  • Controllare i dati di diagnostica associati ai tentativi di login riusciti e non riusciti avviati dall'applicazione Web Java a Oracle Identity Cloud Service.

Esamina il comportamento dell'applicazione Java

Il comportamento dell'applicazione Web Java segue il flusso di autenticazione a tre fasi definito dal tipo di privilegio del codice di autorizzazione.

Abilitare la modalità Sviluppatore del browser in modo da poter verificare tutte le richieste, le risposte e i reindirizzamenti eseguiti sia dall'applicazione che da Oracle Identity Cloud Service. Nell'esempio seguente viene utilizzato Google Chrome.

  1. Eseguire l'applicazione Web Java.
  2. Aprire un browser Web Google Chrome, accedere all'URL http://localhost:8080 e fare clic su Login.
  3. Premere F12, selezionare la scheda Rete e selezionare la casella di controllo Conserva log.
    Selezionare questa casella di controllo per visualizzare tutte le comunicazioni tra l'applicazione e Oracle Identity Cloud Service.
  4. Nella pagina Login, fare clic sull'icona rossa di Oracle.

Nel registro degli sviluppatori del browser dovrebbe essere visualizzato il seguente flusso di eventi:

  1. Si richiede la risorsa /auth/oracle e il browser Web riceve una risposta di reindirizzamento dall'applicazione Web Java.

    Request URL: http://localhost:8080/auth
    Request Method: GET
    Status Code: 302 Found
     
    Response Headers
    Location: https://idcs-abcd1234.identity.domain.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
  2. Oracle Identity Cloud Service riceve la richiesta del codice di autorizzazione e presenta la pagina Accedi.

    Request URL: https://idcs-abcd1234.identity.domain.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.domain.com/ui/v1/signin
    Set-cookie: ORA_OCIS_REQ_1=[value has been omitted for readability]
  3. Collegarsi a Oracle Identity Cloud Service e il browser Web viene reindirizzato all'URL di callback dell'applicazione Web 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]

In questo esempio, l'URL di callback reindirizza il browser Web alla Home page con il token di accesso utente e il token ID impostati come attributi di sessione.

Esaminare i log SDK

Attenersi alla procedura riportata di seguito per attivare il login all'SDK Java di Oracle Identity Cloud Service ed esaminare qualsiasi problema riscontrato durante lo sviluppo.

  1. Aprire il file di classe ConnectionOptions.java e modificare il metodo getOptions()
  2. Impostare il valore Constants.LOG_LEVEL su DEBUG.

Ricreare l'applicazione ed eseguirla di nuovo.

Di seguito sono riportati i dettagli del log.

Fine:   Got token manager
Fine:   using config endpoint: https://idcs-abcd1234.identity.domain.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

Controllare i dati diagnostici

I tentativi di login riusciti e non riusciti avviati dall'applicazione Web Java a Oracle Identity Cloud Service vengono registrati nei file di log di diagnostica di Oracle Identity Cloud Service.

  1. Accedere alla console di Oracle Identity Cloud Service.
  2. Nella console espandere Cassetto di navigazione, fare clic su Impostazioni e quindi su Diagnostica.
  3. Selezionare Vista attività come tipo di diagnostica, quindi fare clic su Salva.
  4. Esci da Oracle Identity Cloud Service.

Oracle Identity Cloud Service acquisisce i dati di diagnostica per i prossimi 15 minuti.

  1. Completare i passi dell'argomento Esegui applicazione Java per visualizzare la pagina Login dell'applicazione Web Java.

  2. Fare clic sull'icona rossa di Oracle.

  3. Per eseguire un tentativo di accesso non riuscito, immettere un nome utente o una password errati nella pagina Accedi di Oracle Identity Cloud Service.

  4. Per eseguire correttamente l'accesso, immettere il nome utente e la password corretti.

  5. Utilizzare l'applicazione Web Java per scollegarsi da Oracle Identity Cloud Service.

  6. Connettersi di nuovo alla console di Oracle Identity Cloud Service.

  7. Nella console espandere Cassetto di navigazione, fare clic su Report, quindi su Dati di diagnostica.

  8. Selezionare 15 minuti per l'intervallo di tempo, Vista attività per il tipo di log e CSV per il formato del report, quindi fare clic su Scarica report.

Il file di log di diagnostica include informazioni quali le seguenti sull'accesso dell'utente 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

I log più recenti vengono visualizzati nella parte superiore del file.