Examinar o Aplicativo Python e o SDK
Nesta seção da solução, você:
-
Examinar o comportamento e o código do aplicativo Web Python
-
Verifique os dados de diagnóstico associados às tentativas de log-in bem-sucedidas e malsucedidas que o aplicativo Web Python inicia no Oracle Identity Cloud Service
Examinar o Comportamento do Aplicativo Python
O comportamento do aplicativo Web Python segue o fluxo de autenticação de três etapas definido pelo tipo de concessão de código de autorização.
Para verificar todas as solicitações, respostas e redirecionamentos que o aplicativo e o Oracle Identity Cloud Service executam usando o Web browser, ative o modo Desenvolvedor do seu browser. Esta solução usa o Google Chrome.
- Execute o aplicativo Web Python.
- Abra um navegador da Web do Google Chrome, acesse o URL
http://localhost:8080
e clique em Fazer login. - Pressione F12, selecione a guia Rede e marque a caixa de seleção Preservar log. Marque essa caixa de seleção para ver toda a comunicação entre o aplicativo e o Oracle Identity Cloud Service.
- Na página Login, clique no ícone vermelho Oracle.
Examinar o Aplicativo e os Logs do SDK
O aplicativo registra informações na janela da linha de comando. Você também pode ativar os logs do 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]
- Abra o arquivo
config.json
e substitua o valor deLogLevel
porDEBUG
. - Salve o arquivo e reinicie o servidor Python
Verifique os Dados de Diagnóstico
Quando o aplicativo Web Python tenta acessar o Oracle Identity Cloud Service, as tentativas bem-sucedidas e malsucedidas são registradas nos arquivos de log de diagnóstico do Oracle Identity Cloud Service.
- Acesse a console do Oracle Identity Cloud Service.
- Na console, expanda a Gaveta de Navegação, clique em Definições e, em seguida, clique em Diagnóstico.
- Selecione View de Atividade como o tipo de diagnóstico e clique em Salvar.
- Sair do Oracle Identity Cloud Service.
O Oracle Identity Cloud Service captura dados de diagnóstico para os próximos 15 minutos.
- Conclua as etapas no tópico Executar o Aplicativo Python desta solução para exibir a página Login do aplicativo Web Python.
- Clique no ícone vermelho Oracle.
- Para fazer uma tentativa de acesso malsucedida, informe um nome de usuário ou uma senha incorreta na página Acessar do Oracle Identity Cloud Service.
- Para se conectar com êxito, informe seu nome de usuário e senha corretos.
- Use o aplicativo Web Python para sair do Oracle Identity Cloud Service.
- Acesse a console do Oracle Identity Cloud Service.
- Na console, expanda a Gaveta de Navegação, clique em Relatórios e, em seguida, clique em Dados de Diagnóstico.
- Selecione um intervalo de tempo de 15 Minutos, o tipo de log Exibição de Atividade, o formato de relatório CSV e clique em Fazer Download do Relatório.
O arquivo de log de diagnóstico inclui informações semelhantes às seguintes sobre as tentativas de acesso ao 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
Os logs mais recentes aparecem na parte superior do arquivo.