Java -Anwendung und SDK prüfen

In diesem Abschnitt der Lösung haben Sie folgende Möglichkeiten:

  • Prüfen Sie Verhalten und Code der Java -Webanwendung

  • Prüfen Sie die Diagnosedaten, die mit erfolgreichen und nicht erfolgreichen Anmeldeversuchen verknüpft sind, die die Java -Webanwendung an Oracle Identity Cloud Service startet.

Verhalten der Java -Anwendung prüfen

Das Verhalten der Java -Webanwendung folgt dem dreibeinigen Authentifizierungsflow, der durch den Berechtigungstyp des Autorisierungscodes definiert wird.

Aktivieren Sie den Developer-Modus Ihres Browsers, damit Sie alle Anforderungen, Antworten und Umleitungen prüfen können, die sowohl die Anwendung als auch Oracle Identity Cloud Service ausführen. Im folgenden Beispiel wird Google Chrome verwendet.

  1. Führen Sie die Java -Webanwendung aus.
  2. Öffnen Sie einen Google Chrome-Webbrowser, greifen Sie auf die http://localhost:8080 -URL zu, und klicken Sie auf Anmelden .
  3. Klicken Sie auf F12, wählen Sie die Registerkarte Netzwerk , und aktivieren Sie das Kontrollkästchen Log beibehalten .
    Aktivieren Sie dieses Kontrollkästchen, um die gesamte Kommunikation zwischen der Anwendung und Oracle Identity Cloud Service anzuzeigen.
  4. Klicken Sie auf der Anmeldeseite auf das rote Oracle -Symbol.

Im Entwicklerlog des Browsers sollte der folgende Ereignisfluss angezeigt werden:

  1. Sie fordern die /auth/oracle -Ressource an, und Ihr Webbrowser erhält eine Umleitungsantwort von der Java -Webanwendung.

    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
  2. Oracle Identity Cloud Service empfängt Ihre Autorisierungscodeanforderung und zeigt die Anmeldeseite an .

    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]
  3. Sie melden sich bei Oracle Identity Cloud Service an und leitet den Webbrowser an die Callback-URL der Java -Webanwendung um.

    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 diesem Beispiel leitet die Callback-URL Ihren Webbrowser an die Homepage um, wobei Ihr Benutzerzugriffstoken und das ID-Token als Sessionattribute festgelegt sind.

SDK-Logs überprüfen

Führen Sie die folgenden Schritte aus, um das Java SDK-Log von Oracle Identity Cloud Service zu aktivieren und alle Probleme zu prüfen, die Sie bei der Entwicklung finden.

  1. Öffnen Sie die ConnectionOptions.java -Klassendatei, und bearbeiten Sie die getOptions() -Methode
  2. Setzen Sie den Wert Constants.LOG_LEVEL auf DEBUG.

Erstellen Sie die Anwendung neu, und führen Sie sie erneut aus.

Sie sehen Logdetails wie unten dargestellt:

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

Diagnosedaten prüfen

Sowohl erfolgreiche als auch nicht erfolgreiche Anmeldeversuche, bei denen die Java -Webanwendung an Oracle Identity Cloud Service startet, sind in den Diagnoselogdateien von Oracle Identity Cloud Service registriert.

  1. Melden Sie sich bei der Oracle Identity Cloud Service -Konsole an.
  2. Erweitern Sie In der Konsole den Slide-In-Menü , klicken Sie auf Einstellungen , Diagnose .
  3. Wählen Sie Aktivitätsansicht als Diagnosetyp, und klicken Sie auf Speichern .
  4. Melden Sie sich bei Oracle Identity Cloud Service ab.

Oracle Identity Cloud Service erfasst Diagnosedaten für die nächsten 15 Minuten.

  1. Führen Sie die Schritte im Thema "Java -Anwendung ausführen" aus, um die Anmeldeseite der Java -Webanwendung anzuzeigen.

  2. Klicken Sie auf das rote Oracle -Symbol.

  3. Um einen nicht erfolgreichen Anmeldeversuch zu erstellen, geben Sie auf der Oracle Identity Cloud Service -Anmeldeseite einen falschen Benutzernamen oder ein falsches Kennwort ein.

  4. Um sich erfolgreich anzumelden, geben Sie Ihren Benutzernamen und Ihr Kennwort ein.

  5. Melden Sie sich über die Java -Webanwendung von Oracle Identity Cloud Service ab.

  6. Melden Sie sich erneut bei der Oracle Identity Cloud Service -Konsole an.

  7. Blenden Sie In der Konsole den Slide-In-Menü ein, klicken Sie auf Berichte , Diagnosedaten .

  8. Wählen Sie 15-Minuten für den Zeitbereich, Aktivitätsansicht für den Logtyp und CSV für das Berichtsformat, und klicken Sie dann auf Bericht herunterladen.

Die Diagnoselogdatei enthält Informationen wie die Folgenden zu dem Benutzer, der sich bei Oracle Identity Cloud Service anmeldet.

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

Die neuesten Logs werden am Anfang der Datei angezeigt.