userjack6880 / Open-Report-Parser

A Perl based tool to parse DMARC reports from an IMAP mailbox or from the filesystem, and insert the information into a database. Derived from Techsneeze's dmarcts-report-parser
GNU General Public License v3.0
32 stars 7 forks source link

[Request]: Oauth2 Support for IMAP #9

Open userjack6880 opened 1 year ago

userjack6880 commented 1 year ago

Per request of a specific client - Oauth2 support to work with M365 Modern Auth in Exchange.

IgorAngelini commented 8 months ago

Is there any documentation on how to set this up?

Firat-Gulec commented 8 months ago

Hi I tried to use m365 modern Auth but it didn't connect I use this command and my debug info is below Can you help me? I think it will help with all questions.

--- DEBUG ---
  Open Report Parser
  Version 0 Alpha 5
-------------
Open Report Parser DEBUG ENABLED
-- Script Options --

Report Source:   0
(0: IMAP, 1: Message, 2: XML, 3: MBOX, 4: ZIP, 5: JSON)
Show Processed:   0
Delete Reports:   0
Delete Failed:    0
Replace Reports:  0
DMARC Only:       1
(0: DMARC\TLS, 1: DMARC Only, -1: TLS Only)

-- Database Options --

DB Type:          mysql
DB Name:          dmarc
DB User:          dmarc
DB Host/Port:     localhost:3306
DB TX Support:    1

Max XML Size:     500000
Max JSON Size:    500000
Compress XML:     0
Compress JSON:    0

-- IMAP Options --

IMAP Server:      ps.outlook.com
IMAP Port:        143
TLS:              1
SSL:              0
TLS Verify:       1
IMAP User:        dmarc@xxxxxxxx.xx
IMAP Ignore Err:  0
IMAP Auth:        oauth2
Oauth2 URI:       xxxxxxxxxxxxxxxxxxxxx
OAuth2 Client ID: xxxxxxxxxxxxxxxxxxxxx
DMARC Folders:
   Reports:       Inbox
   Processed:     Inbox.Processed
TLS Folders:
   Reports:       tls
   Processed:     tls.Processed
----

--- DEBUG ---
  use tls with verify servercert.
-------------

--- DEBUG ---
  connection to ps.outlook.com with Ssl => 0, User => dmarc@xxxxxxx.xx, Ignoresizeerrors => 0
-------------
Started at Tue Nov 21 15:59:21 2023
Using Mail::IMAPClient version 3.42 on perl 5.032001
Connecting with IO::Socket::IP PeerAddr ps.outlook.com PeerPort 143 Proto tcp Timeout 600 Debug 1 SSL_verify_mode 1
Connected to ps.outlook.com
Read:   * OK The Microsoft Exchange IMAP4 service is ready. [xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx==]
Sending: 1 STARTTLS
Sent 12 bytes
Read:   1 OK Begin TLS negotiation now.

--- DEBUG ---
  using oauth2
-------------
no token found, requesting
malformed JSON string, neither tag, array, object, number, string or atom, at character offset 0 (before "(end of string)") at lib/OAuth.pm line 172.
userjack6880 commented 4 months ago

Is there any documentation on how to set this up?

Not as of yet.

Hi I tried to use m365 modern Auth but it didn't connect I use this command and my debug info is below Can you help me? I think it will help with all questions.

Honestly, development on this has slowed down for now. This feature isn't fully supported yet, as testing has been difficult on my end working with a specific user in development.