From 7b66fbd11eb89bc09a0cddb5fa082e012b437a03 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Krzysztof=20Skrz=C4=99tnicki?= Date: Mon, 4 Apr 2022 16:29:17 +0200 Subject: [PATCH 1/3] Add two event codes for SSO test flow. --- .../teleport/src/Audit/EventList/EventTypeCell.tsx | 2 ++ packages/teleport/src/services/audit/makeEvent.ts | 10 ++++++++++ packages/teleport/src/services/audit/types.ts | 9 +++++++++ 3 files changed, 21 insertions(+) diff --git a/packages/teleport/src/Audit/EventList/EventTypeCell.tsx b/packages/teleport/src/Audit/EventList/EventTypeCell.tsx index 932d708e2..a94309fd7 100644 --- a/packages/teleport/src/Audit/EventList/EventTypeCell.tsx +++ b/packages/teleport/src/Audit/EventList/EventTypeCell.tsx @@ -69,6 +69,8 @@ const EventIconMap: Record = { [eventCodes.USER_LOCAL_LOGINFAILURE]: Icons.Info, [eventCodes.USER_SSO_LOGIN]: Icons.Info, [eventCodes.USER_SSO_LOGINFAILURE]: Icons.Info, + [eventCodes.USER_SSO_TEST_FLOW_LOGIN]: Icons.Info, + [eventCodes.USER_SSO_TEST_FLOW_LOGINFAILURE]: Icons.Info, [eventCodes.KUBE_REQUEST]: Icons.Kubernetes, [eventCodes.DATABASE_SESSION_STARTED]: Icons.Database, [eventCodes.DATABASE_SESSION_STARTED_FAILURE]: Icons.Database, diff --git a/packages/teleport/src/services/audit/makeEvent.ts b/packages/teleport/src/services/audit/makeEvent.ts index 222e12113..78fbf7d93 100644 --- a/packages/teleport/src/services/audit/makeEvent.ts +++ b/packages/teleport/src/services/audit/makeEvent.ts @@ -306,6 +306,16 @@ export const formatters: Formatters = { desc: 'SSO Login Failed', format: ({ error }) => `SSO user login failed [${error}]`, }, + [eventCodes.USER_SSO_TEST_FLOW_LOGIN]: { + type: 'user.login', + desc: 'SSO Test Flow Login', + format: ({ user }) => `SSO Test Flow: user [${user}] successfully logged in`, + }, + [eventCodes.USER_SSO_TEST_FLOW_LOGINFAILURE]: { + type: 'user.login', + desc: 'SSO Test Flow Login Failed', + format: ({ error }) => `SSO Test flow: user login failed [${error}]`, + }, [eventCodes.ROLE_CREATED]: { type: 'role.created', desc: 'User Role Created', diff --git a/packages/teleport/src/services/audit/types.ts b/packages/teleport/src/services/audit/types.ts index aecdbe6b3..23f3acc6b 100644 --- a/packages/teleport/src/services/audit/types.ts +++ b/packages/teleport/src/services/audit/types.ts @@ -130,6 +130,8 @@ export const eventCodes = { USER_PASSWORD_CHANGED: 'T1005I', USER_SSO_LOGIN: 'T1001I', USER_SSO_LOGINFAILURE: 'T1001W', + USER_SSO_TEST_FLOW_LOGIN: 'T1010I', + USER_SSO_TEST_FLOW_LOGINFAILURE: 'T1011W', USER_UPDATED: 'T1003I', X11_FORWARD: 'T3008I', X11_FORWARD_FAILURE: 'T3008W', @@ -349,6 +351,13 @@ export type RawEvents = { error: string; } >; + [eventCodes.USER_SSO_TEST_FLOW_LOGIN]: RawEvent; + [eventCodes.USER_SSO_TEST_FLOW_LOGINFAILURE]: RawEvent< + typeof eventCodes.USER_SSO_TEST_FLOW_LOGINFAILURE, + { + error: string; + } + >; [eventCodes.ROLE_CREATED]: RawEvent; [eventCodes.ROLE_DELETED]: RawEvent; [eventCodes.TRUSTED_CLUSTER_TOKEN_CREATED]: RawEvent< From 921a0e1bb8af01e30351f1641537f0173888b874 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Krzysztof=20Skrz=C4=99tnicki?= Date: Mon, 23 May 2022 10:44:19 +0200 Subject: [PATCH 2/3] Add tests for new events. --- .../__snapshots__/Audit.story.test.tsx.snap | 78 ++++++++++++++++++- packages/teleport/src/Audit/fixtures/index.ts | 56 +++++++++++++ 2 files changed, 132 insertions(+), 2 deletions(-) diff --git a/packages/teleport/src/Audit/__snapshots__/Audit.story.test.tsx.snap b/packages/teleport/src/Audit/__snapshots__/Audit.story.test.tsx.snap index ba36411ff..26dd6458e 100644 --- a/packages/teleport/src/Audit/__snapshots__/Audit.story.test.tsx.snap +++ b/packages/teleport/src/Audit/__snapshots__/Audit.story.test.tsx.snap @@ -358,12 +358,12 @@ exports[`list of all events 1`] = ` - - 80 + 82 of - 80 + 82 + + + + +
+ + SSO Test Flow Login +
+ + + SSO Test Flow: user [ops@gravitational.io] successfully logged in + + + 2022-05-23 08:28:37 + + + + + Date: Mon, 23 May 2022 10:45:14 +0200 Subject: [PATCH 3/3] Canonicalize formatting with format document. --- packages/teleport/src/Audit/fixtures/index.ts | 330 +++++++++--------- 1 file changed, 165 insertions(+), 165 deletions(-) diff --git a/packages/teleport/src/Audit/fixtures/index.ts b/packages/teleport/src/Audit/fixtures/index.ts index 2358ef397..b2d2a11f7 100644 --- a/packages/teleport/src/Audit/fixtures/index.ts +++ b/packages/teleport/src/Audit/fixtures/index.ts @@ -907,198 +907,198 @@ export const events = [ time: '2022-02-04T19:43:23.529Z', }, { - cluster_name: "im-a-cluster-name", - code: "TMY00I", - db_name: "test", - db_protocol: "mysql", - db_service: "self-hosted-mysql", - db_uri: "localhost:3306", - db_user: "alice", + cluster_name: 'im-a-cluster-name', + code: 'TMY00I', + db_name: 'test', + db_protocol: 'mysql', + db_service: 'self-hosted-mysql', + db_uri: 'localhost:3306', + db_user: 'alice', ei: 0, - event: "db.session.mysql.statements.prepare", + event: 'db.session.mysql.statements.prepare', query: "UPDATE `test`.`user` SET `age` = '7' WHERE (`name` = 'alice')", - time: "2022-02-10T20:57:50.000Z", - user: "alice@example.com" + time: '2022-02-10T20:57:50.000Z', + user: 'alice@example.com', }, { - cluster_name: "im-a-cluster-name", - code: "TMY01I", - db_name: "test", - db_protocol: "mysql", - db_service: "self-hosted-mysql", - db_uri: "localhost:3306", - db_user: "alice", + cluster_name: 'im-a-cluster-name', + code: 'TMY01I', + db_name: 'test', + db_protocol: 'mysql', + db_service: 'self-hosted-mysql', + db_uri: 'localhost:3306', + db_user: 'alice', ei: 0, - event: "db.session.mysql.statements.execute", + event: 'db.session.mysql.statements.execute', parameters: null, statement_id: 1, - time: "2022-02-10T20:57:54.000Z", - user: "alice@example.com" + time: '2022-02-10T20:57:54.000Z', + user: 'alice@example.com', }, { - cluster_name: "im-a-cluster-name", - code: "TMY02I", - db_name: "test", - db_protocol: "mysql", - db_service: "self-hosted-mysql", - db_uri: "localhost:3306", - db_user: "alice", + cluster_name: 'im-a-cluster-name', + code: 'TMY02I', + db_name: 'test', + db_protocol: 'mysql', + db_service: 'self-hosted-mysql', + db_uri: 'localhost:3306', + db_user: 'alice', ei: 0, - event: "db.session.mysql.statements.send_long_data", + event: 'db.session.mysql.statements.send_long_data', statement_id: 1, parameter_id: 2, data_size: 32, - time: "2022-02-10T20:57:51.000Z", - user: "alice@example.com" + time: '2022-02-10T20:57:51.000Z', + user: 'alice@example.com', }, { - cluster_name: "im-a-cluster-name", - code: "TMY03I", - db_name: "test", - db_protocol: "mysql", - db_service: "self-hosted-mysql", - db_uri: "localhost:3306", - db_user: "alice", + cluster_name: 'im-a-cluster-name', + code: 'TMY03I', + db_name: 'test', + db_protocol: 'mysql', + db_service: 'self-hosted-mysql', + db_uri: 'localhost:3306', + db_user: 'alice', ei: 0, - event: "db.session.mysql.statements.close", + event: 'db.session.mysql.statements.close', statement_id: 1, - time: "2022-02-10T20:57:56.000Z", - user: "alice@example.com" + time: '2022-02-10T20:57:56.000Z', + user: 'alice@example.com', }, { - cluster_name: "im-a-cluster-name", - code: "TMY04I", - db_name: "test", - db_protocol: "mysql", - db_service: "self-hosted-mysql", - db_uri: "localhost:3306", - db_user: "alice", + cluster_name: 'im-a-cluster-name', + code: 'TMY04I', + db_name: 'test', + db_protocol: 'mysql', + db_service: 'self-hosted-mysql', + db_uri: 'localhost:3306', + db_user: 'alice', ei: 0, - event: "db.session.mysql.statements.reset", + event: 'db.session.mysql.statements.reset', statement_id: 1, - time: "2022-02-10T20:57:52.000Z", - uid: "0a2bd129-7c2f-4e68-9c84-a17dc4415444", - user: "alice@example.com" - }, - { - cluster_name: "im-a-cluster-name", - code: "TMY05I", - db_name: "test", - db_protocol: "mysql", - db_service: "self-hosted-mysql", - db_uri: "localhost:3306", - db_user: "alice", + time: '2022-02-10T20:57:52.000Z', + uid: '0a2bd129-7c2f-4e68-9c84-a17dc4415444', + user: 'alice@example.com', + }, + { + cluster_name: 'im-a-cluster-name', + code: 'TMY05I', + db_name: 'test', + db_protocol: 'mysql', + db_service: 'self-hosted-mysql', + db_uri: 'localhost:3306', + db_user: 'alice', ei: 0, - event: "db.session.mysql.statements.fetch", + event: 'db.session.mysql.statements.fetch', rows_count: 5, statement_id: 1, - time: "2022-02-10T20:57:55.000Z", - uid: "0a2bd129-7c2f-4e68-9c84-a17dc4415444", - user: "alice@example.com" - }, - { - cluster_name: "im-a-cluster-name", - code: "TMY06I", - db_name: "test", - db_protocol: "mysql", - db_service: "self-hosted-mysql", - db_uri: "localhost:3306", - db_user: "alice", + time: '2022-02-10T20:57:55.000Z', + uid: '0a2bd129-7c2f-4e68-9c84-a17dc4415444', + user: 'alice@example.com', + }, + { + cluster_name: 'im-a-cluster-name', + code: 'TMY06I', + db_name: 'test', + db_protocol: 'mysql', + db_service: 'self-hosted-mysql', + db_uri: 'localhost:3306', + db_user: 'alice', ei: 0, - event: "db.session.mysql.statements.bulk_execute", + event: 'db.session.mysql.statements.bulk_execute', parameters: null, statement_id: 1, - time: "2022-02-10T20:57:53.000Z", - user: "alice@example.com" - }, - { - cluster_name: "im-a-cluster-name", - code: "TMY07I", - db_name: "test", - db_protocol: "mysql", - db_service: "self-hosted-mysql", - db_uri: "localhost:3306", - db_user: "alice", - event: "db.session.mysql.init_db", - schema_name: "another_database", - time: "2022-04-13T20:00:10.000Z", - user: "alice@example.com" - }, - { - cluster_name: "im-a-cluster-name", - code: "TMY08I", - db_name: "test", - db_protocol: "mysql", - db_service: "self-hosted-mysql", - db_uri: "localhost:3306", - db_user: "alice", - event: "db.session.mysql.create_db", - schema_name: "another_database", - time: "2022-04-13T20:00:09.000Z", - user: "alice@example.com" - }, - { - cluster_name: "im-a-cluster-name", - code: "TMY09I", - db_name: "test", - db_protocol: "mysql", - db_service: "self-hosted-mysql", - db_uri: "localhost:3306", - db_user: "alice", - event: "db.session.mysql.drop_db", - schema_name: "another_database", - time: "2022-04-13T20:00:08.000Z", - user: "alice@example.com" - }, - { - cluster_name: "im-a-cluster-name", - code: "TMY10I", - db_name: "test", - db_protocol: "mysql", - db_service: "self-hosted-mysql", - db_uri: "localhost:3306", - db_user: "alice", - event: "db.session.mysql.shut_down", - time: "2022-04-13T20:00:07.000Z", - user: "alice@example.com" - }, - { - cluster_name: "im-a-cluster-name", - code: "TMY11I", - db_name: "test", - db_protocol: "mysql", - db_service: "self-hosted-mysql", - db_uri: "localhost:3306", - db_user: "alice", - event: "db.session.mysql.process_kill", + time: '2022-02-10T20:57:53.000Z', + user: 'alice@example.com', + }, + { + cluster_name: 'im-a-cluster-name', + code: 'TMY07I', + db_name: 'test', + db_protocol: 'mysql', + db_service: 'self-hosted-mysql', + db_uri: 'localhost:3306', + db_user: 'alice', + event: 'db.session.mysql.init_db', + schema_name: 'another_database', + time: '2022-04-13T20:00:10.000Z', + user: 'alice@example.com', + }, + { + cluster_name: 'im-a-cluster-name', + code: 'TMY08I', + db_name: 'test', + db_protocol: 'mysql', + db_service: 'self-hosted-mysql', + db_uri: 'localhost:3306', + db_user: 'alice', + event: 'db.session.mysql.create_db', + schema_name: 'another_database', + time: '2022-04-13T20:00:09.000Z', + user: 'alice@example.com', + }, + { + cluster_name: 'im-a-cluster-name', + code: 'TMY09I', + db_name: 'test', + db_protocol: 'mysql', + db_service: 'self-hosted-mysql', + db_uri: 'localhost:3306', + db_user: 'alice', + event: 'db.session.mysql.drop_db', + schema_name: 'another_database', + time: '2022-04-13T20:00:08.000Z', + user: 'alice@example.com', + }, + { + cluster_name: 'im-a-cluster-name', + code: 'TMY10I', + db_name: 'test', + db_protocol: 'mysql', + db_service: 'self-hosted-mysql', + db_uri: 'localhost:3306', + db_user: 'alice', + event: 'db.session.mysql.shut_down', + time: '2022-04-13T20:00:07.000Z', + user: 'alice@example.com', + }, + { + cluster_name: 'im-a-cluster-name', + code: 'TMY11I', + db_name: 'test', + db_protocol: 'mysql', + db_service: 'self-hosted-mysql', + db_uri: 'localhost:3306', + db_user: 'alice', + event: 'db.session.mysql.process_kill', process_id: 60, - time: "2022-04-13T20:00:06.000Z", - user: "alice@example.com" - }, - { - cluster_name: "im-a-cluster-name", - code: "TMY12I", - db_name: "test", - db_protocol: "mysql", - db_service: "self-hosted-mysql", - db_uri: "localhost:3306", - db_user: "alice", - event: "db.session.mysql.debug", - time: "2022-04-13T20:00:05.000Z", - user: "alice@example.com" - }, - { - cluster_name: "im-a-cluster-name", - code: "TMY13I", - db_name: "test", - db_protocol: "mysql", - db_service: "self-hosted-mysql", - db_uri: "localhost:3306", - db_user: "alice", - event: "db.session.mysql.refresh", - subcommand: "REFRESH_THREADS", - time: "2022-04-13T20:00:04.000Z", - user: "alice@example.com" + time: '2022-04-13T20:00:06.000Z', + user: 'alice@example.com', + }, + { + cluster_name: 'im-a-cluster-name', + code: 'TMY12I', + db_name: 'test', + db_protocol: 'mysql', + db_service: 'self-hosted-mysql', + db_uri: 'localhost:3306', + db_user: 'alice', + event: 'db.session.mysql.debug', + time: '2022-04-13T20:00:05.000Z', + user: 'alice@example.com', + }, + { + cluster_name: 'im-a-cluster-name', + code: 'TMY13I', + db_name: 'test', + db_protocol: 'mysql', + db_service: 'self-hosted-mysql', + db_uri: 'localhost:3306', + db_user: 'alice', + event: 'db.session.mysql.refresh', + subcommand: 'REFRESH_THREADS', + time: '2022-04-13T20:00:04.000Z', + user: 'alice@example.com', }, { attributes: { @@ -1216,6 +1216,6 @@ export const eventsSample = [ unknown_type: 'unimplemented.event', unknown_code: 'abc123', data: '{"some": "json"}', - time: '2019-04-22T19:39:26.676Z' + time: '2019-04-22T19:39:26.676Z', }, ].map(makeEvent);