Accessum cum PHP ad Exchange / officium CCCLXV

Longa nuntiata - nunc res : Microsoft authenticas per tesseram commutavit pro quibusdam protocollis in Exchange Online a Septembri 2022 in favorem oAuth2. Quaestiones GitHub plurium bibliothecarum et scriptorum tergum scriptorum declarant mutationem rerum multos administratores prehendisse ex improviso. Infra ostendemus quomodo pergere potes ad contenta per mailbox permutationis tuae accedere ope oAuth2 per PHP per IMAP.


Ex parte securitatis, motus Microsoft valde emendatus est, sed intricatio programmatum accessus ad electronicas suas aliquantum auxit. Exempli gratia, si barbushin/php-imap bibliotheca late usus uteris, aditus talis erit:

734a82898010e2fcb02c72c3cd9702c2

Hoc modo non operatur amplius. Ad nexum per oAuth2 constituendum, prima difficultas est accessus ad tesseram perveniendi. Quam ob rem duplex opus est crates.

Caeruleus Active Directory

Sequentes gradus subcriptio novum app in Azure Active Directory:

Login to https://portal.azure.com
Aperi "Azure Active Directory"
Lego "App registrations" & "Novam adnotationem".
Exemplar "Application ID (Client)" (= Client ID) & "Directory ID (Tenant)" (= Tenant ID).
"API Permissionibus" & "Permissionibus addere"
"APIs usus est in mea ordinatione" & "officium 365 Exchange Online"
"Applicationem Permissionibus" & "IMAP.AccessAsApp"
Praesta admin consensu
"Certificationes & Secreta" & "Client Secretorum" & "Novi Client Secret"
Elige genus et validitatem
Effingo "Secretum ID" (Client Secret) ad clipboard
Apertum inceptum applicationes
Effingo "Object ID".

PowerShell

Nunc convertamus app in Microsoft PowerShell (modus administratoris) et permissiones singulis mailboxes assignare (<TENANTID>, <CLIENTID>, <OBJECTID>, <EMAIL> oportet utrobique):

Install-Module -Name ExchangeOnlineManagement
Import-Module ExchangeOnlineManagement
Connect-ExchangeOnline -Organization <TENANTID>

New-ServicePrincipal -AppId <CLIENTID> -ServiceId <OBJECTID>
Add-MailboxPermission -Identity "<EMAIL>" -User <OBJECTID> -AccessRights FullAccess
...

Cum feceris quod, cetera scientia erucae non est. Cum barbushin/php-imap oAuth2 non sustinet, coniungere cum altero bibliothecae Webklex/php-imap potes (quod etiam commodum habet moduli PHP IMAP non requirendi).:

734a82898010e2fcb02c72c3cd9702c2

Sed bibliothecae quae oAuth2 publice non sustinent adhiberi possunt etiam per procuratorem ut . simonrob/email-oauth2-proxy habilem facere. Post haec Download et institutionem via python -m pip install -r requirements-no-gui.txt (Python ≥3.6 requiritur) tabella es emailproxy.config exempli causa (reposito hoc tempore <TENANTID>, <CLIENTID>, <CLIENTSECRET> et <EMAIL>):

[Server setup]

[IMAP-1993]
local_address = localhost
server_address = outlook.office365.com
server_port = 993

[Account setup]

[<EMAIL>]
token_url = https://login.microsoftonline.com/<TENANTID>/oauth2/v2.0/token
oauth2_scope = https://outlook.office365.com/.default
redirect_uri = http://localhost:8080
client_id = <CLIENTID>
client_secret = <CLIENTSECRET>

Tum satus procuratorem cum python emailproxy.py --no-gui et nunc potest ire ad IP unencrypted localhost in portum 1993 connect via regularis Basic Auth (and any password set). Si vis procuratorem incipere ut officium in curriculo cum systema incipias, uti potes, e.g systemd:

sudo systemctl edit --force --full emailproxy.service

[Unit]
Description=Email OAuth 2.0 Proxy
[Service]
ExecStart=/usr/bin/python /path/to/emailproxy.py --no-gui
Restart=always
[Install]
WantedBy=multi-user.target

sudo systemctl enable emailproxy.service --now
sudo systemctl status emailproxy.service
sudo systemctl start emailproxy.service

Si nexus encrypted exigitur, hoc quoque fieri potest - hoc enim primum clavem privatam et libellum auto-signatum creas.:

openssl genrsa -out key.pem 3072
openssl req -new -x509 -key key.pem -out cert.pem -days 360

Deinde referendum est in emailproxy.config Hi duo files:

local_key_path = /path/to/key.pem
local_certificate_path = /path/to/cert.pem
Back