I think this maybe a start to help you answer this question (this is more of theory than a well tested answer). Do you have tables: CloudAppEvents and SigninLogs ?
AuditLogs
| where Category =~ "ApplicationManagement"
| where OperationName =~ "Add application"
| mv-expand TargetResources
| extend AppDisplayname=TargetResources.displayName, AppID=TargetResources.id
| extend PrincipalName = iff(isnotempty(InitiatedBy.user.userPrincipalName), InitiatedBy.user.userPrincipalName, iff(isnotempty(InitiatedBy.app.displayName), InitiatedBy.app.displayName, "No Reference" ))
| extend PrincipalID= iff(isnotempty(InitiatedBy.user.id), InitiatedBy.user.id, iff(isnotempty(InitiatedBy.app.servicePrincipalId), InitiatedBy.app.servicePrincipalId, "No Reference"))
| join
(
CloudAppEvents
| where isnotempty(RawEventData.InterSystemsId)
| project InterSystemsId = tostring(RawEventData.InterSystemsId), AccountId
) on $left.CorrelationId == $right.InterSystemsId
| join
(
SigninLogs
| project ResourceIdentity, UserDisplayName, ResourceDisplayName
) on $left.AccountId == $right.ResourceIdentity