Java-Anwendung und SDK untersuchen
In diesem Abschnitt der Lösung gehen Sie wie folgt vor:
-
Verhalten und Code der Java-Webanwendung untersuchen
-
Prüfen Sie Diagnosedaten, die mit erfolgreichen und nicht erfolgreichen Anmeldeversuchen verknüpft sind, die von der Java-Webanwendung in Oracle Identity Cloud Service initiiert werden.
Verhalten der Java-Anwendung untersuchen
Das Verhalten der Java-Webanwendung folgt dem dreibeinigen Authentifizierungsfluss, der vom Autorisierungscode-Berechtigungstyp definiert wird.
Aktivieren Sie den Entwicklermodus Ihres Browsers, damit Sie alle Anforderungen, Antworten und Umleitungen prüfen können, die sowohl von der Anwendung als auch von Oracle Identity Cloud Service ausgeführt werden. Im folgenden Beispiel wird Google Chrome verwendet.
Das Entwicklerprotokoll des Browsers sollte den folgenden Ereignisfluss anzeigen:
-
Sie fordern die Ressource
/auth/oracle
an, und Ihr Webbrowser empfängt 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.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
-
Oracle Identity Cloud Service erhält Ihre Autorisierungscodeanforderung und zeigt die Seite Anmelden an.
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]
-
Sie melden sich bei Oracle Identity Cloud Service an und leitet den Webbrowser zur 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 zur Seite Home um, wobei Ihr Benutzerzugriffstoken und Ihr ID-Token als Sessionattribute festgelegt sind.
SDK-Logs untersuchen
Führen Sie die folgenden Schritte aus, um sich für das Java-SDK von Oracle Identity Cloud Service anzumelden und alle Probleme zu untersuchen, die während der Entwicklung auftreten.
- Öffnen Sie die Klassendatei
ConnectionOptions.java
, und bearbeiten Sie die MethodegetOptions()
. - Setzen Sie den Wert für
Constants.LOG_LEVEL
aufDEBUG
.
Erstellen Sie die Anwendung neu, und führen Sie sie erneut aus.
Es werden Logdetails wie folgt angezeigt:
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
Diagnosedaten prüfen
Sowohl erfolgreiche als auch nicht erfolgreiche Anmeldeversuche, die von der Java-Webanwendung bei Oracle Identity Cloud Service initiiert werden, werden in den Oracle Identity Cloud Service-Diagnoselogdateien registriert.
- Melden Sie sich bei der Oracle Identity Cloud Service-Konsole an.
- Blenden Sie in der Konsole das Navigations-Drawer ein, klicken Sie auf Einstellungen, Diagnose.
- Wählen Sie als Diagnosetyp Aktivitätsansicht aus, und klicken Sie auf Speichern.
- Melden Sie sich von Oracle Identity Cloud Service ab.
Oracle Identity Cloud Service erfasst Diagnosedaten für die nächsten 15 Minuten.
-
Führen Sie die Schritte im Thema "Java-Anwendung ausführen" aus, um die Seite Anmelden der Java-Webanwendung anzuzeigen.
-
Klicken Sie auf das rote Oracle-Symbol.
-
Um einen nicht erfolgreichen Anmeldeversuch auszuführen, geben Sie auf der Oracle Identity Cloud Service-Anmeldeseite einen falschen Benutzernamen oder ein falsches Kennwort ein.
-
Um sich erfolgreich anzumelden, geben Sie Ihren richtigen Benutzernamen und Ihr Kennwort ein.
-
Melden Sie sich mit der Java-Webanwendung von Oracle Identity Cloud Service ab.
-
Melden Sie sich erneut bei der Oracle Identity Cloud Service-Konsole an.
-
Blenden Sie in der Konsole die Navigationsleiste ein, klicken Sie auf Berichte, und klicken Sie dann auf Diagnosedaten.
-
Wählen Sie 15 Minuten für den Zeitraum, Aktivitätsansicht für den Logtyp und CSV für das Berichtsformat, und klicken Sie auf Bericht herunterladen.
Die Diagnoselogdatei enthält Informationen wie die folgenden zum 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 oben in der Datei angezeigt.