Python-Anwendung und SDK untersuchen
In diesem Abschnitt der Lösung gehen Sie wie folgt vor:
-
Verhalten und Code der Python-Webanwendung untersuchen
-
Prüfen Sie Diagnosedaten, die mit erfolgreichen und nicht erfolgreichen Anmeldeversuchen verknüpft sind, die von der Python-Webanwendung in Oracle Identity Cloud Service initiiert werden
Verhalten der Python-Anwendung untersuchen
Das Verhalten der Python-Webanwendung folgt dem dreibeinigen Authentifizierungsablauf, der vom Autorisierungscodezugriffsberechtigungstyp definiert wird.
Um alle Anforderungen, Antworten und Umleitungen zu prüfen, die von der Anwendung und Oracle Identity Cloud Service mit dem Webbrowser ausgeführt werden, aktivieren Sie den Entwicklermodus für Ihren Browser. Diese Lösung verwendet Google Chrome.
- Führen Sie die Python-Webanwendung aus.
- Öffnen Sie einen Google Chrome-Webbrowser, rufen Sie die URL
http://localhost:8080
auf, und klicken Sie auf Anmelden. - Klicken Sie auf F12, wählen Sie die Registerkarte Netzwerk aus, 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.
- Klicken Sie auf der Seite Anmelden auf das rote Oracle-Symbol.
Anwendungs- und SDK-Logs prüfen
Die Anwendung protokolliert Informationen im Befehlszeilenfenster. Sie können auch die SDK-Logs aktivieren.
Starting development server at http://127.0.0.1:8000/
----------------------------------------
[21/Dec/2018 16:00:42] "GET /login/ HTTP/1.1" 200 2772
...
----------------- def auth(request) ---------------
config.json file = {'logoutSufix': '/oauth2/v1/userlogout', 'ClientSecret': 'abcde-12345-zyxvu-98765-qwerty', 'AudienceServiceUrl': 'https://idcs-abcd1234.identity.domain.com', 'BaseUrl': 'https://idcs-abcd1234.identity.domain.com', 'ClientId': '123456789abcdefghij, 'ConsoleLog': 'True', 'LogLevel': 'INFO', 'scope': 'urn:opc:idm:t.user.me openid', 'redirectURL': 'http://localhost:8000/callback', 'TokenIssuer': 'https://identity.domain.com/'}
[21/Dec/2018 16:00:48] "GET /auth/ HTTP/1.1" 302 0
[21/Dec/2018 16:01:08] "GET /callback?code=[value has been omitted for readability]&state=1234 HTTP/1.1" 301 0
----------------- def callback(request) ------------------
access_token = [value has been omitted for readability]
- Öffnen Sie die Datei
config.json
, und ersetzen Sie den Wert vonLogLevel
inDEBUG
. - Speichern Sie die Datei, und starten Sie den Python-Server neu
Diagnosedaten prüfen
Wenn die Python-Webanwendung versucht, sich bei Oracle Identity Cloud Service anzumelden, werden sowohl erfolgreiche als auch nicht erfolgreiche Versuche in den Diagnoselogdateien von Oracle Identity Cloud Service 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 "Python-Anwendung ausführen" dieser Lösung aus, um die Seite Anmelden der Python-Webanwendung anzuzeigen.
- Klicken Sie auf das rote Oracle-Symbol.
- Um eine nicht erfolgreiche Anmeldung durchzuführen, geben Sie auf der Oracle Identity Cloud Service-Seite Anmeldung einen falschen Benutzernamen oder ein falsches Kennwort ein.
- Um sich erfolgreich anzumelden, geben Sie Ihren richtigen Benutzernamen und Ihr Kennwort ein.
- Verwenden Sie die Python-Webanwendung, um sich von Oracle Identity Cloud Service abzumelden.
- Melden Sie sich 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 einen 15-Minuten-Zeitbereich, den Logtyp der Aktivitätsansicht und das CSV-Berichtsformat aus, und klicken Sie auf Bericht herunterladen.
Die Diagnoselogdatei enthält Informationen wie die folgenden zu den Anmeldeversuchen bei 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@domain.com --------------------------------------------------------------- ... --------------------------------------------------------------- Message: {"request":{"tenant":"idcs-abcd1234","grant types":"authorization_code","scopes":["urn:opc:idm:t.user.me"]},"user":{"id":"111111","name":"your.email@domain.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@domain.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:8000/callback] client_id[123456789abcdefghij] Component: OAuth Timestamp: [Date] Actor ID: Unauthenticated
Die neuesten Logs werden oben in der Datei angezeigt.