Examiner l'application et le kit SDK Java
Dans cette section de la solution, vous pouvez :
-
Examiner le comportement et le code de l'application Web Java
-
Vérifiez les données de diagnostic associées aux tentatives de connexion réussies et en échec que l'application Web Java lance vers Oracle Identity Cloud Service.
Examiner le comportement de l'application Java
Le comportement de l'application Web Java suit le flux d'authentification à trois facteurs défini par le type d'octroi de code d'autorisation.
Activez le mode Développeur de votre navigateur pour vérifier toutes les demandes, toutes les réponses et rediriger l'application vers Oracle Identity Cloud Service. L'exemple suivant utilise Google Chrome.
Le journal de développeur du navigateur doit afficher le flux d'événements suivant :
-
Vous demandez la ressource
/auth/oracle
et votre navigateur Web reçoit une réponse de redirection de l'application 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 reçoit votre demande de code d'autorisation et présente la page Connexion.
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]
-
Vous vous connectez à Oracle Identity Cloud Service et le navigateur Web est redirigé vers l'URL de callback de l'application 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]
Dans cet exemple, l'URL de callback redirige le navigateur Web vers la page de accueil avec le jeton d'accès utilisateur et le jeton d'ID définis en tant qu'attributs de session.
Examiner les journaux SDK
Suivez les étapes ci-dessous pour activer la connexion au kit SDK Java de Oracle Identity Cloud Service et examiner tout problème détecté lors du développement.
- Ouvrez le fichier de classe
ConnectionOptions.java
et modifiez la méthodegetOptions()
. - Définissez la valeur
Constants.LOG_LEVEL
surDEBUG
.
Reconstruisez l'application et exécutez-la.
Les détails du journal, comme ci-dessous :
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
Vérifier les données de diagnostic
Les tentatives de connexion réussies et en échec que l'application Web Java initie à Oracle Identity Cloud Service sont enregistrées dans les fichiers journaux de diagnostic Oracle Identity Cloud Service.
- Connectez-vous à la console Oracle Identity Cloud Service.
- Dans la console, développez le volet de navigation, cliquez sur Paramètres, puis sur Diagnostics.
- Sélectionnez Vue d'activité comme type de diagnostic, puis cliquez sur Enregistrer.
- Déconnectez-vous de Oracle Identity Cloud Service.
Oracle Identity Cloud Service capture les données de diagnostic des 15 prochaines minutes.
-
Exécutez les étapes décrites dans la rubrique Exécuter l'application Java pour afficher la page de connexion de l'application Web Java.
-
Cliquez sur l'icône Oracle rouge.
-
Pour faire d'une tentative de connexion ayant échoué, entrez un nom d'utilisateur ou un mot de passe incorrect dans la page de connexion Oracle Identity Cloud Service.
-
Pour vous connecter, entrez vos nom d'utilisateur et mot de passe corrects.
-
Utilisez l'application Web Java pour vous déconnecter de Oracle Identity Cloud Service.
-
Reconnectez-vous à la console Oracle Identity Cloud Service.
-
Dans la console, développez le volet de navigation, cliquez sur Rapports, puis sur Données de diagnostic.
-
Sélectionnez 15-Minute pour la période, Vue d'activité pour le type de journal et CSV pour le format du rapport, puis cliquez sur Télécharger le rapport.
Le fichier journal de diagnostic contient des informations telles que les suivantes sur l'utilisateur qui se connecte à 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
Les journaux les plus récents apparaissent en haut du fichier.