Some types of audit event samples from [our documentation](https://www.elastic.co/guide/en/elasticsearch/reference/7.17/audit-event-types.html) include the port number in "origin.address", like **access_denied**:
```json
{"type":"audit", "timestamp":"2020-12-30T22:30:06,949+0200", "node.id":
"0RMNyghkQYCc_gVd1G6tZQ", "event.type":"transport", "event.action":
"access_denied", "authentication.type":"REALM", "user.name":"user1",
"user.realm":"default_native", "user.roles":["test_role"], "origin.type":
"rest", "origin.address":"[::1]:52434", "request.id":"yKOgWn2CRQCKYgZRz3phJw",
"action":"indices:admin/auto_create", "request.name":"CreateIndexRequest",
"indices":["<index-{now/d+1d}>"]}
```
but other types like **connection_denied** from this issue does not include the port:

```json
{"type":"audit", "timestamp":"2020-12-30T21:47:31,526+0200", "node.id":
"0RMNyghkQYCc_gVd1G6tZQ", "event.type":"ip_filter", "event.action":
"connection_denied", "origin.type":"rest", "origin.address":"10.10.0.20",
"transport.profile":".http", "rule":"deny 10.10.0.0/16"}
```

I think we should be consistent here and always include the port number in the "origin.address" field.
x-pack/plugin/security/src/test/java/org/elasticsearch/xpack/security/audit/logfile/LoggingAuditTrailTests.java
auditTrail.accessGranted(requestId, authentication, GrantApiKeyAction.NAME, grantApiKeyRequest, authorizationInfo);
        output = CapturingLogger.output(logger.getName(), Level.INFO);
        assertThat(output.size(), is(2));
        String generatedGrantKeyAuditEventString = output.get(1);
        StringBuilder grantKeyAuditEventStringBuilder = new StringBuilder().append("\"create\":{\"apikey\":{\"name\":\"")
            .append(keyName)
            .append("\",\"expiration\":")
            .append(expiration != null ? "\"" + expiration + "\"" : "null")
            .append(",")
            .append(roleDescriptorsStringBuilder)
            .append("},\"grant\":{\"type\":");
        if (grantApiKeyRequest.getGrant().getType() != null) {
            grantKeyAuditEventStringBuilder.append("\"").append(grantApiKeyRequest.getGrant().getType()).append("\"");
        } else {
            grantKeyAuditEventStringBuilder.append("null");
        }
        if (grantApiKeyRequest.getGrant().getUsername() != null) {
            grantKeyAuditEventStringBuilder.append(",\"user\":{\"name\":\"")
                .append(grantApiKeyRequest.getGrant().getUsername())
                .append("\",\"has_password\":")
                .append(grantApiKeyRequest.getGrant().getPassword() != null)
                .append("}");
        }
        if (grantApiKeyRequest.getGrant().getAccessToken() != null) {
            grantKeyAuditEventStringBuilder.append(",\"has_access_token\":").append(true);
        }
        grantKeyAuditEventStringBuilder.append("}}");
        String expectedGrantKeyAuditEventString = grantKeyAuditEventStringBuilder.toString();
        assertThat(generatedGrantKeyAuditEventString, containsString(expectedGrantKeyAuditEventString));
        generatedGrantKeyAuditEventString = generatedGrantKeyAuditEventString.replace(", " + expectedGrantKeyAuditEventString, "");