Ve verzi 4D v18 R6 zavedla společnost 4D ověřování OAuth 2.0 pro přístup k e-mailům prostřednictvím transportérů IMAP, SMTP nebo POP3. Počínaje verzí 4D v19 R3 pokračuje 4D v implementaci protokolu OAuth 2.0 a poskytuje způsob, jak snadno požádat naprogramováním tokenu z platformy identit Microsoft o připojení k rozhraní API pro Microsoft 365.
HDI OAUTH2 Microsoft
Předpoklady
Před získáním tokenu z platformy identit společnosti Microsoft je prvním krokem registrace aplikace na portálu Azure. Tím se vytvoří vztah důvěry mezi vaší aplikací a platformou identit společnosti Microsoft. Důvěra je jednosměrná: vaše aplikace důvěřuje platformě identit Microsoft, nikoli naopak.
Tento výukový program společnosti Microsoft je skvělým zdrojem informací o tom, jak zaregistrovat aplikaci v portálu Azure.
Registrace integruje vaši aplikaci s platformou identit společnosti Microsoft a stanoví informace, které používá k získání tokenů, včetně:
- ID klienta: Jedinečný identifikátor přidělený platformou identit společnosti Microsoft.
- a Přesměrování URI/URL: Jeden nebo více koncových bodů, na které bude vaše aplikace přijímat odpovědi z platformy identit společnosti Microsoft.
- a Client Secret: Heslo nebo dvojice veřejný/soukromý klíč, které vaše aplikace používá k ověřování s platformou identit Microsoft. (vyžadováno pouze při získávání přístupu ke službě).
Získání přístupového tokenu
Přístupové tokeny vydané platformou Microsoft identity obsahují informace, které Microsoft Graph, rozhraní API pro Microsoft 365, používá k ověření volajícího a zajištění, že má správná oprávnění k provedení požadované operace.
Pro získání tokenu stačí použít příkaz New OAuth2 provider příkaz se všemi informacemi uvedenými při registraci:
$param:=New object()
$param .name:="Microsoft"
$param .permission:="signedIn"
$param .clientId:="7008ebf5-xxxx-xxxx"
$param .redirectURI:="http://127.0.0.1:50993/"
$param .scope:="https://outlook.office.com/IMAP.AccessAsUser.All"
// Create new OAuth2 object
$oAuth2 :=New OAuth2 provider($param)
// Ask for a token
$token :=$oAuth2.getToken()
If ($token#Null)
// Using of the token to access emails over IMAP
$IMAPParameters :=New object
$IMAPParameters .authenticationMode:=IMAP authentication OAUTH2
// Token received from the server
$IMAPParameters .accessTokenOAuth2:=$token.token.access_token
// e-mail address of the user for whom the token was created
$IMAPParameters.user:=$user
$IMAPParameters .host:="Outlook.office365.com"
$IMAPTransporter :=IMAP New transporter($IMAPParameters)
$ status :=$IMAPTransporter .checkConnection()
If (Not($status .
success))
ALERT("Přístup k serveru IMAP odepřen")
End if
End if
Tento příkaz je součástí nové komponenty 4D NetKit, jejíž zdrojové kódy a dokumentaci najdete na githubu.