فحص تطبيق Java وSDK
في هذا القسم من الحل ، يمكنك:
-
فحص السلوك والرمز الخاص بتطبيق ويب Java
-
تحقق من بيانات التشخيص المقترنة بحالات تسجيل الدخول الناجحة وغير الناجحة التي يبدأها تطبيق ويب Java إلى Oracle Identity Cloud Service.
فحص سلوك تطبيق Java
يتبع سلوك تطبيق ويب Java تدفق التصديق المكون من ثلاث مراحل المعرف بواسطة نوع منح رمز الاعتماد.
قم بتمكين وضع المطور بالمتصفح بحيث يمكنك التحقق من جميع الطلبات والاستجابات وإعادة توجيه التطبيق وتنفيذ Oracle Identity Cloud Service. يستخدم المثال التالي Google Chrome.
يجب أن يعرض سجل مطور المستعرض التدفق التالي من الأحداث:
-
يمكنك طلب مورد
/auth/oracle
، ومستعرض الويب الخاص بك يتلقى استجابة إعادة التوجيه من تطبيق ويب 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 طلب رمز الاعتماد ويقدم صفحة تسجيل الدخول .
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]
-
يمكنك تسجيل الدخول إلى Oracle Identity Cloud Service، ثم إعادة توجيه متصفح الويب إلى عنوان URL لاستدعاء تطبيق ويب 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]
في هذا المثال ، يقوم عنوان URL للاستدعاء بإعادة توجيه متصفح الويب إلى الصفحة الرئيسية باستخدام مقطع وصول المستخدم ومقطع المعرف الذي تم تعيينه كسمات جلسة العمل.
فحص سجلات SDK
اتبع الخطوات التالية لتشغيل سجل Java SDK لـ Oracle Identity Cloud Service وفحص أية مشكلة تجدها أثناء التطوير.
- فتح ملف طبقة
ConnectionOptions.java
وتحرير أسلوبgetOptions()
- قم بتعيين قيمة
Constants.LOG_LEVEL
إلىDEBUG
.
إعادة إنشاء التطبيق وتشغيله مرة أخرى.
يمكنك مشاهدة تفاصيل السجل كما يلي:
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
تحقق من بيانات التشخيص
تم تسجيل كل من سجل الأخطاء الناجح وغير الناجح ويحاول تطبيق ويب Java بدء Oracle Identity Cloud Service في ملفات سجلات تشخيص Oracle Identity Cloud Service.
- تسجيل الدخول إلى وحدة تحكم Oracle Identity Cloud Service الطرفية.
- في وحدة التحكم ، قم بتوسيع درج الاستكشاف وانقر على الإعدادات ، ثم انقر على التشخيصات .
- حدد طريقة عرض النشاط كنوع المشخص ، ثم انقر على حفظ .
- الخروج من Oracle Identity Cloud Service.
يسجل Oracle Identity Cloud Service البيانات التشخيصية بالدقائق التالية في 15.
-
أكمل الخطوات في موضوع تطبيق Java لعرض صفحة الدخول الخاصة بتطبيق ويب Java.
-
انقر على أيقونة Oracle الحمراء.
-
لإجراء محاولة غير ناجحة لتسجيل الدخول ، أدخل اسم مستخدم أو كلمة سر غير صحيحة في صفحة تسجيل الدخول إلى Oracle Identity Cloud Service.
-
للدخول بنجاح ، أدخل اسم المستخدم وكلمة السر الصحيحين.
-
استخدم تطبيق ويب Java للخروج من Oracle Identity Cloud Service.
-
قم بتسجيل الدخول مرة أخرى إلى وحدة تحكم Oracle Identity Cloud Service.
-
في وحدة التحكم ، قم بتوسيع درج الاستكشاف وانقر على التقارير ، ثم انقر على بيانات التشخيص.
-
حدد 15-Minute لمدى الوقت وعرض النشاط لنوع الأرشيف وCSV لصيغة التقرير ثم انقر تحميل التقرير
يشتمل ملف السجل التشخيصي على معلومات مثل ما يلي حول تسجيل دخول المستخدم إلى 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
تظهر أحدث السجلات أعلى الملف.