Esaminare l'applicazione Python e l'SDK
In questa sezione della soluzione è possibile:
-
Esaminare il comportamento e il codice dell'applicazione Web Python
-
Controllare i dati di diagnostica associati ai tentativi di login riusciti e non riusciti avviati dall'applicazione Web Python in Oracle Identity Cloud Service
Esaminare il comportamento dell'applicazione Python
Il comportamento dell'applicazione Web Python segue il flusso di autenticazione a tre fasi definito dal tipo di concessione del codice di autorizzazione.
Per verificare tutte le richieste, le risposte e i reindirizzamenti eseguiti dall'applicazione e da Oracle Identity Cloud Service mediante il browser Web, abilitare la modalità Sviluppatore per il browser in uso. Questa soluzione utilizza Google Chrome.
- Eseguire l'applicazione Web Python.
- Aprire un browser Web Google Chrome, accedere all'URL
http://localhost:8080
e fare clic su Login. - Premere F12, selezionare la scheda Rete e selezionare la casella di controllo Conserva log. Selezionare questa casella di controllo per visualizzare tutte le comunicazioni tra l'applicazione e Oracle Identity Cloud Service.
- Nella pagina Login, fare clic sull'icona rossa di Oracle.
Esaminare l'applicazione e i log SDK
L'applicazione registra le informazioni nella finestra della riga di comando. È inoltre possibile abilitare i log SDK.
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]
- Aprire il file
config.json
e sostituire il valore diLogLevel
inDEBUG
. - Salvare il file e riavviare il server Python
Controllare i dati diagnostici
Quando l'applicazione Web Python tenta di connettersi a Oracle Identity Cloud Service, i tentativi riusciti e quelli non riusciti vengono registrati nei file di log di diagnostica di Oracle Identity Cloud Service.
- Accedere alla console di Oracle Identity Cloud Service.
- Nella console espandere Cassetto di navigazione, fare clic su Impostazioni e quindi su Diagnostica.
- Selezionare Vista attività come tipo di diagnostica, quindi fare clic su Salva.
- Esci da Oracle Identity Cloud Service.
Oracle Identity Cloud Service acquisisce i dati di diagnostica per i prossimi 15 minuti.
- Completare i passi dell'argomento Esegui applicazione Python di questa soluzione per visualizzare la pagina Login dell'applicazione Web Python.
- Fare clic sull'icona rossa di Oracle.
- Per eseguire un tentativo di accesso non riuscito, immettere un nome utente o una password errati nella pagina Accedi di Oracle Identity Cloud Service.
- Per eseguire correttamente l'accesso, immettere il nome utente e la password corretti.
- Utilizzare l'applicazione Web Python per disconnettersi da Oracle Identity Cloud Service.
- Accedere alla console di Oracle Identity Cloud Service.
- Nella console espandere Cassetto di navigazione, fare clic su Report, quindi su Dati di diagnostica.
- Selezionare un intervallo di tempo di 15 minuti, il tipo di log Vista attività, il formato del report CSV, quindi fare clic su Scarica report.
Il file di log di diagnostica include informazioni simili alle seguenti sui tentativi di accesso a 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
I log più recenti vengono visualizzati nella parte superiore del file.