Outlook will send a HTTP request with a User-Agent HTTP header that will identify it as a client. Modify the login flow to look for that header and make decisions in the flow based on that. Unfortunately there's no definitive reference for values of User-Agent sent by different Outlook releases running on multiple platforms. For example, Outlook 2016 on Windows 10 sends this as User-Agent:
Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 10.0; WOW64; Trident/7.0; .NET4.0C; .NET4.0E; .NET CLR 2.0.50727; .NET CLR 3.0.30729; .NET CLR 3.5.30729; Microsoft Outlook 16.0.9126; Microsoft Outlook 16.0.9126; ms-office; MSOffice 16)
As you can see, looking for substring "Microsoft Outlook 16.x.yyyy" in this particular User-Agent header will get you what you want. You can experiment with all other Outlook versions and platform variations and get the complete picture of User-Agent in your logs, then use that to create a comprehensive rule in your login flow.