<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.innovaphone.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Tmo</id>
	<title>innovaphone wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.innovaphone.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Tmo"/>
	<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=Special:Contributions/Tmo"/>
	<updated>2026-05-09T05:40:19Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.42.3</generator>
	<entry>
		<id>https://wiki.innovaphone.com/index.php?title=Howto16r1:Configure_OAuth2_E-Mail&amp;diff=78192</id>
		<title>Howto16r1:Configure OAuth2 E-Mail</title>
		<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=Howto16r1:Configure_OAuth2_E-Mail&amp;diff=78192"/>
		<updated>2025-10-08T21:55:39Z</updated>

		<summary type="html">&lt;p&gt;Tmo: /* Modes */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{FIXME|reason=This product is in the beta phase and is not yet finished}}&lt;br /&gt;
&lt;br /&gt;
The innovaphone PBX and apps can be configured to send E-Mails for various subjects and purposes. Major E-Mail providers intent to discontinue the username/password authentication schemes in favour of OAuth2. PBX and Apps version 16r1 does support OAuth2 authentication for SMTP. Here is a step by step guide how to set up OAuth2 support in Microsoft 365 through the Azure Portal and how to set it up on a Google Gmail account in the Google Cloud Console.&lt;br /&gt;
&lt;br /&gt;
== General Information ==&lt;br /&gt;
Most of the large email providers offer the possibility to define an app that is allowed to gain access of a certain scope like SMTP. &amp;lt;br&amp;gt;&lt;br /&gt;
It assigns a Client ID / Client Secret.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Authorization for sending from the mail account needs to be given one time either:&amp;lt;br&amp;gt;&lt;br /&gt;
* By providing resource owner username/password. Sending this to the token endpoint results in an access token and long term refresh token.&lt;br /&gt;
* By interactive authorization via a popup dialogue that is loaded from the authorization endpoint. After the credentials are verified, the dialogue redirects to the redirect URI with an authorization code that is traded to an access token and refresh token.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
The access token is sent for authentication in SMTP. It needs regular refresh, which will be done automatically.&lt;br /&gt;
&lt;br /&gt;
=== Modes ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Exchange&#039;&#039;&#039;: Microsoft, with interactive authorization&lt;br /&gt;
* &#039;&#039;&#039;Microsoft 365&#039;&#039;&#039;: Microsoft, without interactive authorization (Resource owner and password has to be filled)&lt;br /&gt;
* &#039;&#039;&#039;Gmail&#039;&#039;&#039;: Google, with interactive authorization&lt;br /&gt;
* &#039;&#039;&#039;Google Service Account&#039;&#039;&#039;:  Google, without interactive authorization (Client e-mail, Private Key ID and Private Key of the service account must be provided)&lt;br /&gt;
* &#039;&#039;&#039;Client secret post&#039;&#039;&#039;: Generic configuration where all parameters of the client secret post OAuth2 flow can be set.&lt;br /&gt;
* &#039;&#039;&#039;Private key jwt&#039;&#039;&#039;: Generic configuration where all parameters of the private key jwt OAuth2 flow can be set.&lt;br /&gt;
&lt;br /&gt;
== Microsoft 365 ==&lt;br /&gt;
=== Azure Portal ===&lt;br /&gt;
Log in to Microsoft Azure Portal (https://portal.azure.com) and go to Microsoft Entra ID.&lt;br /&gt;
[[File:AzureMicrosoftEntraID.png|none|thumb|600x600px|/AzureMicrosoftEntraID.png|/AzureMicrosoftEntraID.png]]&lt;br /&gt;
Add a new app registration to create client credentials.&lt;br /&gt;
[[File:AzureAddAppRegistration.png|none|thumb|600x600px|/AzureAddAppRegistration.png|/AzureAddAppRegistration.png]]&lt;br /&gt;
Register the application and maybe already fill in the redirect URI for Web based application type to path OAUTH2-CLIENT/auth.htm at the PBX.&lt;br /&gt;
[[File:AzureRegisterAnApplication.png|none|thumb|600x600px|/AzureRegisterAnApplication.png|/AzureRegisterAnApplication.png]]&lt;br /&gt;
App registration is complete. Client ID and tenant needs to be configured at the PBX and every app that will be sending e-mails.&lt;br /&gt;
[[File:AzureApp.png|none|thumb|600x600px|/AzureApp.png|/AzureApp.png]]&lt;br /&gt;
Create a client secret. Note that expiry is limited to no longer than 2 years. The client secret must be renewed before expiry and the new secret configured and interactive authorisation carried out again to ensure continuous operation.&lt;br /&gt;
[[File:AzureAddClientSecret.png|none|thumb|600x600px|/AzureAddClientSecret.png|/AzureAddClientSecret.png]]&lt;br /&gt;
Copy the client secret. It also needs to be configured at the PBX and every app that will be sending e-mails.&lt;br /&gt;
[[File:AzureCopyClientSecret.png|none|thumb|600x600px|/AzureCopyClientSecret.png|/AzureCopyClientSecret.png]]&lt;br /&gt;
Add permissions located in APIs my organization uses.&lt;br /&gt;
[[File:AzureAddApiPermissionMyOrganization.png|none|thumb|600x600px|/AzureAddApiPermissionMyOrganization.png|/AzureAddApiPermissionMyOrganization.png]]&lt;br /&gt;
More precisely located in Office 365 Exchange Online.&lt;br /&gt;
[[File:AzureAddApiPermissionExchange.png|none|thumb|600x600px|/AzureAddApiPermissionExchange.png|/AzureAddApiPermissionExchange.png]]&lt;br /&gt;
And there in the application permissions.&lt;br /&gt;
[[File:AzureAddApiExchangeApplication.png|none|thumb|600x600px|/AzureAddApiExchangeApplication.png|/AzureAddApiExchangeApplication.png]]&lt;br /&gt;
Namely SMTP Mail.Send.&lt;br /&gt;
[[File:AzureAddApiSendMailAsUser.png|none|thumb|600x600px|/AzureAddApiSendMailAsUser.png|/AzureAddApiSendMailAsUser.png]]&lt;br /&gt;
Grant admin permission for Mail.Send.&lt;br /&gt;
[[File:AzureGrantApiPermissions.png|none|thumb|600x600px|/AzureGrantApiPermissions.png|/AzureGrantApiPermissions.png]]&lt;br /&gt;
API permissions are now granted.&lt;br /&gt;
[[File:AzureApiPermissionsGranted.png|none|thumb|600x600px|/AzureApiPermissionsGranted.png|/AzureApiPermissionsGranted.png]]&lt;br /&gt;
Tell all redirect URIs that the PBX and the apps will be using during interactive authorization.&lt;br /&gt;
[[File:AzureRedirectUris.png|none|thumb|600x600px|/AzureRedirectUris.png|/AzureRedirectUris.png]]&lt;br /&gt;
Allow public client flows of OAuth2. Resource Owner Password Credentials Flow has the advantage that it doesn&#039;t need interactive authorization.&lt;br /&gt;
[[File:AzureAllowPublicClientFlows.png|none|thumb|600x600px|/AzureAllowPublicClientFlows.png|/AzureAllowPublicClientFlows.png]]&lt;br /&gt;
&lt;br /&gt;
=== Microsoft 365 admin center ===&lt;br /&gt;
Log in to the Microsoft 365 admin center (https://admin.cloud.microsoft).&lt;br /&gt;
[[File:MS365AdminCenter.png|none|thumb|600x600px|/MS365AdminCenter.png|/MS365AdminCenter.png]]&lt;br /&gt;
Make sure that Microsoft 365 licenses are assigned to your user.&lt;br /&gt;
[[File:MS365UserLicenses.png|none|thumb|600x600px|/MS365UserLicenses.png|/MS365UserLicenses.png]]&lt;br /&gt;
Set your user active.&lt;br /&gt;
[[File:MS365ActiveUsers.png|none|thumb|600x600px|/MS365ActiveUsers.png|/MS365ActiveUsers.png]]&lt;br /&gt;
Locate the Mail tab of your user.&lt;br /&gt;
[[File:MS365UserEMail.png|none|thumb|600x600px|/MS365UserEMail.png|/MS365UserEMail.png]]&lt;br /&gt;
Allow authenticated SMTP.&lt;br /&gt;
[[File:MS365AuthenticatedSMTP.png|none|thumb|600x600px|/MS365AuthenticatedSMTP.png|/MS365AuthenticatedSMTP.png]]&lt;br /&gt;
&lt;br /&gt;
=== Exchange admin center ===&lt;br /&gt;
Login to the Exchange admin center (https://admin.exchange.microsoft.com).&lt;br /&gt;
[[File:ExchangeAdminCenter.png|none|thumb|600x600px|/ExchangeAdminCenter.png|/ExchangeAdminCenter.png]]&lt;br /&gt;
Remove deactivation of the SMTP AUTH protocol.&lt;br /&gt;
[[File:ExchangeRemoveDeavtivatedOAuth2.png|none|thumb|600x600px|/ExchangeRemoveDeavtivatedOAuth2.png|/ExchangeRemoveDeavtivatedOAuth2.png]]&lt;br /&gt;
&lt;br /&gt;
=== PBX Example configuration === &lt;br /&gt;
With this Microsoft setup the OAuth2 configuration for the resource owner password credentials flow can be filled in as follows. &lt;br /&gt;
[[File:OAuth2ResourceOwnerPasswordCredentials.png|none|thumb|600x600px|/OAuth2ResourceOwnerPasswordCredentials.png|/OAuth2ResourceOwnerPasswordCredentials.png]]&lt;br /&gt;
For interactive authorization this is the OAuth2 configuration. Authorize e-mail access one time and send a test mail to verify everything went well.&lt;br /&gt;
[[File:OAuth2InteractiveAuthorization.png|none|thumb|600x600px|/OAuth2InteractiveAuthorization.png|/OAuth2InteractiveAuthorization.png]]&lt;br /&gt;
&lt;br /&gt;
== Gmail ==&lt;br /&gt;
=== Preparations === &lt;br /&gt;
Login to the Google Cloud Console (https://console.cloud.google.com), select a project, New project.&lt;br /&gt;
[[File:GoogleSelectProject.png|none|thumb|600x600px|/GoogleSelectProject.png|/GoogleSelectProject.png]]&lt;br /&gt;
Create the project.&lt;br /&gt;
[[File:GoogleCreateProject.png|none|thumb|600x600px|/GoogleCreateProject.png|/GoogleCreateProject.png]]&lt;br /&gt;
Client credentials will be created in this project.&lt;br /&gt;
[[File:GoogleProjectCreated.png|none|thumb|600x600px|/GoogleProjectCreated.png|/GoogleProjectCreated.png]]&lt;br /&gt;
From the library specify the APIs needed to access.&lt;br /&gt;
[[File:GoogleApisServicesFromLibrary.png|none|thumb|600x600px|/GoogleApisServicesFromLibrary.png|/GoogleApisServicesFromLibrary.png]]&lt;br /&gt;
These are in the Gmail API.&lt;br /&gt;
[[File:GoogleApisServicesApiLibrary.png|none|thumb|600x600px|/GoogleApisServicesApiLibrary.png|/GoogleApisServicesApiLibrary.png]]&lt;br /&gt;
Choose the Gmail API and enable it.&lt;br /&gt;
[[File:GoogleGmailApis.png|none|thumb|600x600px|/GoogleGmailApis.png|/GoogleGmailApis.png]]&lt;br /&gt;
Credentials need to be created.&lt;br /&gt;
[[File:GoogleGmailApiAdded.png|none|thumb|600x600px|/GoogleGmailApiAdded.png|/GoogleGmailApiAdded.png]]&lt;br /&gt;
Invoke the help me choose wizard.&lt;br /&gt;
[[File:GoogleCreateCredentialsHelpMeChoose.png|none|thumb|600x600px|/GoogleCreateCredentialsHelpMeChoose.png|/GoogleCreateCredentialsHelpMeChoose.png]]&lt;br /&gt;
User data access is needed.&lt;br /&gt;
[[File:GoogleCredentialsUserData.png|none|thumb|600x600px|/GoogleCredentialsUserData.png|/GoogleCredentialsUserData.png]]&lt;br /&gt;
Configure the consent screen of the interactive authorization.&lt;br /&gt;
[[File:GoogleOAuthConsentScreen.png|none|thumb|600x600px|/GoogleOAuthConsentScreen.png|/GoogleOAuthConsentScreen.png]]&lt;br /&gt;
Specify the permissions that need to be authorized by the user.&lt;br /&gt;
[[File:GoogleOAuthScopes.png|none|thumb|600x600px|/GoogleOAuthScopes.png|/GoogleOAuthScopes.png]]&lt;br /&gt;
Its mail.google.com in general.&lt;br /&gt;
[[File:GoogleScopeMailGoogleCom.png|none|thumb|600x600px|/GoogleScopeMailGoogleCom.png|/GoogleScopeMailGoogleCom.png]]&lt;br /&gt;
And its to send email on the users behalf.&lt;br /&gt;
[[File:GoogleScopeAuthGmailSend.png|none|thumb|600x600px|/GoogleScopeAuthGmailSend.png|/GoogleScopeAuthGmailSend.png]]&lt;br /&gt;
These are the scopes needed.&lt;br /&gt;
[[File:GoogleScopes.png|none|thumb|600x600px|/GoogleScopes.png|/GoogleScopes.png]]&lt;br /&gt;
Ask client credentials for Web type application.&lt;br /&gt;
[[File:GoogleOAuthClientID.png|none|thumb|600x600px|/GoogleOAuthClientID.png|/GoogleOAuthClientID.png]]&lt;br /&gt;
Tell all redirect URIs that the PBX and the apps will be using during interactive authorization.&lt;br /&gt;
[[File:GoogleRedirectURIs.png|none|thumb|600x600px|/GoogleRedirectURIs.png|/GoogleRedirectURIs.png]]&lt;br /&gt;
Download the credentials. This json file contains all information for OAuth2 configuration.&lt;br /&gt;
[[File:GoogleClientCredentialsDownload.png|none|thumb|600x600px|/GoogleClientCredentialsDownload.png|/GoogleClientCredentialsDownload.png]]&lt;br /&gt;
Customize the OAuth consent screen&lt;br /&gt;
[[File:GoogleOAuthConsentScreenSettings.png|none|thumb|600x600px|/GoogleOAuthConsentScreenSettings.png|/GoogleOAuthConsentScreenSettings.png]]&lt;br /&gt;
Start the customization wizard.&lt;br /&gt;
[[File:GoogleConsentScreenWizard.png|none|thumb|600x600px|/GoogleConsentScreenWizard.png|/GoogleConsentScreenWizard.png]]&lt;br /&gt;
Choose which users may authorize.&lt;br /&gt;
[[File:GoogleAudienceExternal.png|none|thumb|600x600px|/GoogleAudienceExternal.png|/GoogleAudienceExternal.png]]&lt;br /&gt;
Google workspace users may choose internal audience. Users not in Google workspace proceed with external.&lt;br /&gt;
[[File:GoogleContactInformation.png|none|thumb|600x600px|/GoogleContactInformation.png|/GoogleContactInformation.png]]&lt;br /&gt;
Add a test user.&lt;br /&gt;
[[File:GoogleTestUserAdded.png|none|thumb|600x600px|/GoogleTestUserAdded.png|/GoogleTestUserAdded.png]]&lt;br /&gt;
&lt;br /&gt;
=== PBX Example configuration === &lt;br /&gt;
The OAuth2 parameters can be filled in with the information from the json file downloaded above. Authorize e-mail access one time and send a test mail to verify everything went well.&lt;br /&gt;
[[File:OAuth2InteractiveGmail.png|none|thumb|600x600px|/OAuth2InteractiveGmail.png|/OAuth2InteractiveGmail.png]]&lt;br /&gt;
&lt;br /&gt;
== Generic ==&lt;br /&gt;
&lt;br /&gt;
For other e-mail providers the client secret post OAuth2 flow may be configured in a generic way. Details need to be supplied by the e-mail provider.&lt;br /&gt;
&lt;br /&gt;
For the Microsoft 365 setup above it would be as follows with Token endpoint &#039;&#039;&amp;lt;nowiki&amp;gt;https://login.microsoftonline.com/af326a34-169c-469e-946b-1ef57925306b/oauth2/v2.0/token&amp;lt;/nowiki&amp;gt;&#039;&#039; Authorization URL &#039;&#039;&amp;lt;nowiki&amp;gt;https://login.microsoftonline.com/af326a34-169c-469e-946b-1ef57925306b/oauth2/v2.0/authorize?scope=https://outlook.office.com/SMTP.Send&amp;lt;/nowiki&amp;gt; offline_access&#039;&#039; The configuration appends &#039;&#039;&amp;amp;response_type=code&amp;amp;prompt=consent&amp;amp;login_hint=...&amp;amp;redirect_uri=...&amp;amp;client_id=...&#039;&#039; automatically.[[File:OAuth2ClientSecretPost.png|none|thumb|600x600px|/OAuth2ClientSecretPost.png|/OAuth2ClientSecretPost.png]]&lt;br /&gt;
For the Gmail example above the generic confguration would be like this with Token endpoint &#039;&#039;&amp;lt;nowiki&amp;gt;https://oauth2.googleapis.com/token&amp;lt;/nowiki&amp;gt;&#039;&#039; Authorization URL &#039;&#039;&amp;lt;nowiki&amp;gt;https://accounts.google.com/o/oauth2/auth?access_type=offline&amp;amp;scope=https://mail.google.com/&amp;lt;/nowiki&amp;gt;&#039;&#039; The configuration appends &#039;&#039;&amp;amp;response_type=code&amp;amp;prompt=consent&amp;amp;login_hint=...&amp;amp;redirect_uri=...&amp;amp;client_id=...&#039;&#039; automatically.&lt;br /&gt;
[[File:OAith2ClientSecretPostGmail.png|none|thumb|600x600px|/OAith2ClientSecretPostGmail.png|/OAith2ClientSecretPostGmail.png]]&lt;br /&gt;
The private key jwt OAuth2 flow can be configured generically as well.[[File:OAuth2PrivateKeyJWT.png|none|thumb|600x600px|/OAuth2PrivateKeyJWT.png|/OAuth2PrivateKeyJWT.png]]&lt;br /&gt;
&lt;br /&gt;
== Related Articles ==&lt;br /&gt;
https://wiki.innovaphone.com/index.php?title=Reference16r1:PBX/Config/Authentication&lt;/div&gt;</summary>
		<author><name>Tmo</name></author>
	</entry>
	<entry>
		<id>https://wiki.innovaphone.com/index.php?title=Howto16r1:Configure_OAuth2_E-Mail&amp;diff=78189</id>
		<title>Howto16r1:Configure OAuth2 E-Mail</title>
		<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=Howto16r1:Configure_OAuth2_E-Mail&amp;diff=78189"/>
		<updated>2025-10-08T21:26:50Z</updated>

		<summary type="html">&lt;p&gt;Tmo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{FIXME|reason=This product is in the beta phase and is not yet finished}}&lt;br /&gt;
&lt;br /&gt;
The innovaphone PBX and apps can be configured to send E-Mails for various subjects and purposes. Major E-Mail providers intent to discontinue the username/password authentication schemes in favour of OAuth2. PBX and Apps version 16r1 does support OAuth2 authentication for SMTP. Here is a step by step guide how to set up OAuth2 support in Microsoft 365 through the Azure Portal and how to set it up on a Google Gmail account in the Google Cloud Console.&lt;br /&gt;
&lt;br /&gt;
== Principle ==&lt;br /&gt;
The e-mail provider enables definition of an app that is allowed to gain access of a certain scope like SMTP. It assigns a Client ID / Client Secret.&lt;br /&gt;
&lt;br /&gt;
Authorization for sending from the mail account needs to be given one time:&lt;br /&gt;
by providing resource owner username/password. Sending this to the token endpoint results in an access token and long term refresh token.&lt;br /&gt;
or interactively via the dialog that is loaded from the authorization endpoint. On agreement the dialog redirects to the redirect URI with an authorization code that is traded to an access token and refresh token.&lt;br /&gt;
&lt;br /&gt;
The access token is sent for authentication in SMTP. It needs regular refresh.&lt;br /&gt;
&lt;br /&gt;
== Microsoft 365 ==&lt;br /&gt;
=== Azure Portal ===&lt;br /&gt;
Log in to Microsoft Azure Portal (https://portal.azure.com) and go to Microsoft Entra ID.&lt;br /&gt;
[[File:AzureMicrosoftEntraID.png|none|thumb|600x600px|/AzureMicrosoftEntraID.png|/AzureMicrosoftEntraID.png]]&lt;br /&gt;
Add a new app registration to create client credentials.&lt;br /&gt;
[[File:AzureAddAppRegistration.png|none|thumb|600x600px|/AzureAddAppRegistration.png|/AzureAddAppRegistration.png]]&lt;br /&gt;
Register the application and maybe already fill in the redirect URI for Web based application type to path OAUTH2-CLIENT/auth.htm at the PBX.&lt;br /&gt;
[[File:AzureRegisterAnApplication.png|none|thumb|600x600px|/AzureRegisterAnApplication.png|/AzureRegisterAnApplication.png]]&lt;br /&gt;
App registration is complete. Client ID and tenant needs to be configured at the PBX and every app that will be sending e-mails.&lt;br /&gt;
[[File:AzureApp.png|none|thumb|600x600px|/AzureApp.png|/AzureApp.png]]&lt;br /&gt;
Create a client secret. Note that expiry is limited to no longer than 2 years. The client secret must be renewed before expiry and the new secret configured and interactive authorisation carried out again to ensure continuous operation.&lt;br /&gt;
[[File:AzureAddClientSecret.png|none|thumb|600x600px|/AzureAddClientSecret.png|/AzureAddClientSecret.png]]&lt;br /&gt;
Copy the client secret. It also needs to be configured at the PBX and every app that will be sending e-mails.&lt;br /&gt;
[[File:AzureCopyClientSecret.png|none|thumb|600x600px|/AzureCopyClientSecret.png|/AzureCopyClientSecret.png]]&lt;br /&gt;
Add permissions located in APIs my organization uses.&lt;br /&gt;
[[File:AzureAddApiPermissionMyOrganization.png|none|thumb|600x600px|/AzureAddApiPermissionMyOrganization.png|/AzureAddApiPermissionMyOrganization.png]]&lt;br /&gt;
More precisely located in Office 365 Exchange Online.&lt;br /&gt;
[[File:AzureAddApiPermissionExchange.png|none|thumb|600x600px|/AzureAddApiPermissionExchange.png|/AzureAddApiPermissionExchange.png]]&lt;br /&gt;
And there in the application permissions.&lt;br /&gt;
[[File:AzureAddApiExchangeApplication.png|none|thumb|600x600px|/AzureAddApiExchangeApplication.png|/AzureAddApiExchangeApplication.png]]&lt;br /&gt;
Namely SMTP Mail.Send.&lt;br /&gt;
[[File:AzureAddApiSendMailAsUser.png|none|thumb|600x600px|/AzureAddApiSendMailAsUser.png|/AzureAddApiSendMailAsUser.png]]&lt;br /&gt;
Grant admin permission for Mail.Send.&lt;br /&gt;
[[File:AzureGrantApiPermissions.png|none|thumb|600x600px|/AzureGrantApiPermissions.png|/AzureGrantApiPermissions.png]]&lt;br /&gt;
API permissions are now granted.&lt;br /&gt;
[[File:AzureApiPermissionsGranted.png|none|thumb|600x600px|/AzureApiPermissionsGranted.png|/AzureApiPermissionsGranted.png]]&lt;br /&gt;
Tell all redirect URIs that the PBX and the apps will be using during interactive authorization.&lt;br /&gt;
[[File:AzureRedirectUris.png|none|thumb|600x600px|/AzureRedirectUris.png|/AzureRedirectUris.png]]&lt;br /&gt;
Allow public client flows of OAuth2. Resource Owner Password Credentials Flow has the advantage that it doesn&#039;t need interactive authorization.&lt;br /&gt;
[[File:AzureAllowPublicClientFlows.png|none|thumb|600x600px|/AzureAllowPublicClientFlows.png|/AzureAllowPublicClientFlows.png]]&lt;br /&gt;
&lt;br /&gt;
=== Microsoft 365 admin center ===&lt;br /&gt;
Log in to the Microsoft 365 admin center (https://admin.cloud.microsoft).&lt;br /&gt;
[[File:MS365AdminCenter.png|none|thumb|600x600px|/MS365AdminCenter.png|/MS365AdminCenter.png]]&lt;br /&gt;
Make sure that Microsoft 365 licenses are assigned to your user.&lt;br /&gt;
[[File:MS365UserLicenses.png|none|thumb|600x600px|/MS365UserLicenses.png|/MS365UserLicenses.png]]&lt;br /&gt;
Set your user active.&lt;br /&gt;
[[File:MS365ActiveUsers.png|none|thumb|600x600px|/MS365ActiveUsers.png|/MS365ActiveUsers.png]]&lt;br /&gt;
Locate the Mail tab of your user.&lt;br /&gt;
[[File:MS365UserEMail.png|none|thumb|600x600px|/MS365UserEMail.png|/MS365UserEMail.png]]&lt;br /&gt;
Allow authenticated SMTP.&lt;br /&gt;
[[File:MS365AuthenticatedSMTP.png|none|thumb|600x600px|/MS365AuthenticatedSMTP.png|/MS365AuthenticatedSMTP.png]]&lt;br /&gt;
&lt;br /&gt;
=== Exchange admin center ===&lt;br /&gt;
Login to the Exchange admin center (https://admin.exchange.microsoft.com).&lt;br /&gt;
[[File:ExchangeAdminCenter.png|none|thumb|600x600px|/ExchangeAdminCenter.png|/ExchangeAdminCenter.png]]&lt;br /&gt;
Remove deactivation of the SMTP AUTH protocol.&lt;br /&gt;
[[File:ExchangeRemoveDeavtivatedOAuth2.png|none|thumb|600x600px|/ExchangeRemoveDeavtivatedOAuth2.png|/ExchangeRemoveDeavtivatedOAuth2.png]]&lt;br /&gt;
&lt;br /&gt;
=== PBX Example configuration === &lt;br /&gt;
With this Microsoft setup the OAuth2 configuration for the resource owner password credentials flow can be filled in as follows. &lt;br /&gt;
[[File:OAuth2ResourceOwnerPasswordCredentials.png|none|thumb|600x600px|/OAuth2ResourceOwnerPasswordCredentials.png|/OAuth2ResourceOwnerPasswordCredentials.png]]&lt;br /&gt;
For interactive authorization this is the OAuth2 configuration. Authorize e-mail access one time and send a test mail to verify everything went well.&lt;br /&gt;
[[File:OAuth2InteractiveAuthorization.png|none|thumb|600x600px|/OAuth2InteractiveAuthorization.png|/OAuth2InteractiveAuthorization.png]]&lt;br /&gt;
&lt;br /&gt;
== Gmail ==&lt;br /&gt;
=== Preparations === &lt;br /&gt;
Login to the Google Cloud Console (https://console.cloud.google.com), select a project, New project.&lt;br /&gt;
[[File:GoogleSelectProject.png|none|thumb|600x600px|/GoogleSelectProject.png|/GoogleSelectProject.png]]&lt;br /&gt;
Create the project.&lt;br /&gt;
[[File:GoogleCreateProject.png|none|thumb|600x600px|/GoogleCreateProject.png|/GoogleCreateProject.png]]&lt;br /&gt;
Client credentials will be created in this project.&lt;br /&gt;
[[File:GoogleProjectCreated.png|none|thumb|600x600px|/GoogleProjectCreated.png|/GoogleProjectCreated.png]]&lt;br /&gt;
From the library specify the APIs needed to access.&lt;br /&gt;
[[File:GoogleApisServicesFromLibrary.png|none|thumb|600x600px|/GoogleApisServicesFromLibrary.png|/GoogleApisServicesFromLibrary.png]]&lt;br /&gt;
These are in the Gmail API.&lt;br /&gt;
[[File:GoogleApisServicesApiLibrary.png|none|thumb|600x600px|/GoogleApisServicesApiLibrary.png|/GoogleApisServicesApiLibrary.png]]&lt;br /&gt;
Choose the Gmail API and enable it.&lt;br /&gt;
[[File:GoogleGmailApis.png|none|thumb|600x600px|/GoogleGmailApis.png|/GoogleGmailApis.png]]&lt;br /&gt;
Credentials need to be created.&lt;br /&gt;
[[File:GoogleGmailApiAdded.png|none|thumb|600x600px|/GoogleGmailApiAdded.png|/GoogleGmailApiAdded.png]]&lt;br /&gt;
Invoke the help me choose wizard.&lt;br /&gt;
[[File:GoogleCreateCredentialsHelpMeChoose.png|none|thumb|600x600px|/GoogleCreateCredentialsHelpMeChoose.png|/GoogleCreateCredentialsHelpMeChoose.png]]&lt;br /&gt;
User data access is needed.&lt;br /&gt;
[[File:GoogleCredentialsUserData.png|none|thumb|600x600px|/GoogleCredentialsUserData.png|/GoogleCredentialsUserData.png]]&lt;br /&gt;
Configure the consent screen of the interactive authorization.&lt;br /&gt;
[[File:GoogleOAuthConsentScreen.png|none|thumb|600x600px|/GoogleOAuthConsentScreen.png|/GoogleOAuthConsentScreen.png]]&lt;br /&gt;
Specify the permissions that need to be authorized by the user.&lt;br /&gt;
[[File:GoogleOAuthScopes.png|none|thumb|600x600px|/GoogleOAuthScopes.png|/GoogleOAuthScopes.png]]&lt;br /&gt;
Its mail.google.com in general.&lt;br /&gt;
[[File:GoogleScopeMailGoogleCom.png|none|thumb|600x600px|/GoogleScopeMailGoogleCom.png|/GoogleScopeMailGoogleCom.png]]&lt;br /&gt;
And its to send email on the users behalf.&lt;br /&gt;
[[File:GoogleScopeAuthGmailSend.png|none|thumb|600x600px|/GoogleScopeAuthGmailSend.png|/GoogleScopeAuthGmailSend.png]]&lt;br /&gt;
These are the scopes needed.&lt;br /&gt;
[[File:GoogleScopes.png|none|thumb|600x600px|/GoogleScopes.png|/GoogleScopes.png]]&lt;br /&gt;
Ask client credentials for Web type application.&lt;br /&gt;
[[File:GoogleOAuthClientID.png|none|thumb|600x600px|/GoogleOAuthClientID.png|/GoogleOAuthClientID.png]]&lt;br /&gt;
Tell all redirect URIs that the PBX and the apps will be using during interactive authorization.&lt;br /&gt;
[[File:GoogleRedirectURIs.png|none|thumb|600x600px|/GoogleRedirectURIs.png|/GoogleRedirectURIs.png]]&lt;br /&gt;
Download the credentials. This json file contains all information for OAuth2 configuration.&lt;br /&gt;
[[File:GoogleClientCredentialsDownload.png|none|thumb|600x600px|/GoogleClientCredentialsDownload.png|/GoogleClientCredentialsDownload.png]]&lt;br /&gt;
Customize the OAuth consent screen&lt;br /&gt;
[[File:GoogleOAuthConsentScreenSettings.png|none|thumb|600x600px|/GoogleOAuthConsentScreenSettings.png|/GoogleOAuthConsentScreenSettings.png]]&lt;br /&gt;
Start the customization wizard.&lt;br /&gt;
[[File:GoogleConsentScreenWizard.png|none|thumb|600x600px|/GoogleConsentScreenWizard.png|/GoogleConsentScreenWizard.png]]&lt;br /&gt;
Choose which users may authorize.&lt;br /&gt;
[[File:GoogleAudienceExternal.png|none|thumb|600x600px|/GoogleAudienceExternal.png|/GoogleAudienceExternal.png]]&lt;br /&gt;
Google workspace users may choose internal audience. Users not in Google workspace proceed with external.&lt;br /&gt;
[[File:GoogleContactInformation.png|none|thumb|600x600px|/GoogleContactInformation.png|/GoogleContactInformation.png]]&lt;br /&gt;
Add a test user.&lt;br /&gt;
[[File:GoogleTestUserAdded.png|none|thumb|600x600px|/GoogleTestUserAdded.png|/GoogleTestUserAdded.png]]&lt;br /&gt;
&lt;br /&gt;
=== PBX Example configuration === &lt;br /&gt;
The OAuth2 parameters can be filled in with the information from the json file downloaded above. Authorize e-mail access one time and send a test mail to verify everything went well.&lt;br /&gt;
[[File:OAuth2InteractiveGmail.png|none|thumb|600x600px|/OAuth2InteractiveGmail.png|/OAuth2InteractiveGmail.png]]&lt;br /&gt;
&lt;br /&gt;
== Generic ==&lt;br /&gt;
&lt;br /&gt;
For other e-mail providers the client secret post OAuth2 flow may be configured in a generic way. Details need to be supplied by the e-mail provider.&lt;br /&gt;
&lt;br /&gt;
For the Microsoft 365 setup above it would be as follows with Token endpoint &#039;&#039;&amp;lt;nowiki&amp;gt;https://login.microsoftonline.com/af326a34-169c-469e-946b-1ef57925306b/oauth2/v2.0/token&amp;lt;/nowiki&amp;gt;&#039;&#039; Authorization URL &#039;&#039;&amp;lt;nowiki&amp;gt;https://login.microsoftonline.com/af326a34-169c-469e-946b-1ef57925306b/oauth2/v2.0/authorize?scope=https://outlook.office.com/SMTP.Send&amp;lt;/nowiki&amp;gt; offline_access&#039;&#039; The configuration appends &#039;&#039;&amp;amp;response_type=code&amp;amp;prompt=consent&amp;amp;login_hint=...&amp;amp;redirect_uri=...&amp;amp;client_id=...&#039;&#039; automatically.[[File:OAuth2ClientSecretPost.png|none|thumb|600x600px|/OAuth2ClientSecretPost.png|/OAuth2ClientSecretPost.png]]&lt;br /&gt;
For the Gmail example above the generic confguration would be like this with Token endpoint &#039;&#039;&amp;lt;nowiki&amp;gt;https://oauth2.googleapis.com/token&amp;lt;/nowiki&amp;gt;&#039;&#039; Authorization URL &#039;&#039;&amp;lt;nowiki&amp;gt;https://accounts.google.com/o/oauth2/auth?access_type=offline&amp;amp;scope=https://mail.google.com/&amp;lt;/nowiki&amp;gt;&#039;&#039; The configuration appends &#039;&#039;&amp;amp;response_type=code&amp;amp;prompt=consent&amp;amp;login_hint=...&amp;amp;redirect_uri=...&amp;amp;client_id=...&#039;&#039; automatically.&lt;br /&gt;
[[File:OAith2ClientSecretPostGmail.png|none|thumb|600x600px|/OAith2ClientSecretPostGmail.png]]&lt;br /&gt;
The private key jwt OAuth2 flow can be configured generically as well.[[File:OAuth2PrivateKeyJWT.png|none|thumb|600x600px|/OAuth2PrivateKeyJWT.png|/OAuth2PrivateKeyJWT.png]]&lt;br /&gt;
&lt;br /&gt;
== Related Articles ==&lt;br /&gt;
https://wiki.innovaphone.com/index.php?title=Reference16r1:PBX/Config/Authentication&lt;/div&gt;</summary>
		<author><name>Tmo</name></author>
	</entry>
	<entry>
		<id>https://wiki.innovaphone.com/index.php?title=Reference16r1:Apps/PbxManager/Email&amp;diff=78170</id>
		<title>Reference16r1:Apps/PbxManager/Email</title>
		<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=Reference16r1:Apps/PbxManager/Email&amp;diff=78170"/>
		<updated>2025-10-06T11:38:15Z</updated>

		<summary type="html">&lt;p&gt;Tmo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{FIXME|reason=This product is in the beta phase and is not yet finished}}&lt;br /&gt;
This PBX Manager Plugin configures the E-Mail Account of all PBXes in the system. The same configuration can be found in the advanced UI of the individual PBXes at [[Reference13r2:PBX/Config/Authentication|PBX/Config/Authentication]].&lt;br /&gt;
&lt;br /&gt;
== Add Email Account ==&lt;br /&gt;
; SMTP Server&lt;br /&gt;
: Your SMTP Server&lt;br /&gt;
&lt;br /&gt;
; Email Address&lt;br /&gt;
: The used From Address&lt;br /&gt;
&lt;br /&gt;
; Username&lt;br /&gt;
: The username for the authorization&lt;br /&gt;
&lt;br /&gt;
; Password&lt;br /&gt;
: The password for the authorization&lt;br /&gt;
&lt;br /&gt;
; Sender&#039;s name&lt;br /&gt;
: The used Name in the From field&lt;br /&gt;
&lt;br /&gt;
; OAuth2&lt;br /&gt;
: Alternatively OAuth2 credentials to authenticate for e-mail sending. See [[Howto16r1:Configure_OAuth2_E-Mail]].&lt;/div&gt;</summary>
		<author><name>Tmo</name></author>
	</entry>
	<entry>
		<id>https://wiki.innovaphone.com/index.php?title=Reference13r1:Services/Logging&amp;diff=78169</id>
		<title>Reference13r1:Services/Logging</title>
		<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=Reference13r1:Services/Logging&amp;diff=78169"/>
		<updated>2025-10-06T11:35:54Z</updated>

		<summary type="html">&lt;p&gt;Tmo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Log Server ==&lt;br /&gt;
External &#039;&#039;&#039;logging&#039;&#039;&#039; is disabled by default (Off). You can still view log messages in real time (see [[Reference7:Administration/Diagnostics/Logging|Logging]]), but messages are not stored or sent to an external destination.&lt;br /&gt;
&lt;br /&gt;
Available &#039;&#039;Type&#039;&#039;s:&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|valign=top nowrap=true|&#039;&#039;&#039;Off:&#039;&#039;&#039;&lt;br /&gt;
| Logging is disabled.&lt;br /&gt;
|-&lt;br /&gt;
|valign=top nowrap=true|&#039;&#039;&#039;TCP:&#039;&#039;&#039;&lt;br /&gt;
| The device transmits the syslog entries using a TCP connection.&lt;br /&gt;
* In the &#039;&#039;&#039;Address&#039;&#039;&#039; field, the remote IP-address is entered.&lt;br /&gt;
* In the &#039;&#039;&#039;Port&#039;&#039;&#039; field, the remote port is specified.&lt;br /&gt;
|-&lt;br /&gt;
|valign=top nowrap=true|&#039;&#039;&#039;SYSLOG:&#039;&#039;&#039;&lt;br /&gt;
| The syslog entries are transmitted to a syslog recipient (also referred to as syslogd, syslog server or syslog daemon).&lt;br /&gt;
* In the &#039;&#039;&#039;Address&#039;&#039;&#039; field, the IP-address of the syslogd server is entered.&lt;br /&gt;
* In the &#039;&#039;&#039;Class&#039;&#039;&#039; field, the syslog message class for the syslog entries sent is entered. The class is a numeric value between 0 and 7, it will be used as &#039;&#039;Facility&#039;&#039; (0 =&amp;gt; local0, ... 7 =&amp;gt; local7).  The &#039;&#039;Severity&#039;&#039; field will always be 6 (informational).  See [http://de.wikipedia.org/wiki/Syslog wikipedia.org/wiki/Syslog] for details.&lt;br /&gt;
|-&lt;br /&gt;
|valign=top nowrap=true|&#039;&#039;&#039;HTTP:&#039;&#039;&#039;&lt;br /&gt;
| The syslog entries are transferred to a web server. Each individual syslog entry is transferred to the server as an individual request. &lt;br /&gt;
* In the &#039;&#039;&#039;Address&#039;&#039;&#039; field, the IP-address of remote server is entered.&lt;br /&gt;
* In the &#039;&#039;&#039;Path&#039;&#039;&#039; field, the relative URL to be used in the HTTP request is entered.&lt;br /&gt;
* The Method field selects the method used to send the request. There are 3 formats available:&lt;br /&gt;
{|&lt;br /&gt;
| Format || Request Type || URI  || Description&lt;br /&gt;
|-&lt;br /&gt;
| Standard || POST || &#039;&#039;hardwired&#039;&#039; || This should be used to forward log messages to another innovaphone device, e.g. to store it on a central CF card&lt;br /&gt;
|-&lt;br /&gt;
| External(POST) || POST || as defined in the Path field || This is identical to the &#039;&#039;Standard&#039;&#039; method, except that you may specifiy the URI to be used&lt;br /&gt;
|-&lt;br /&gt;
| External(GET) || GET || as defined in the Path field || The log message will be coded into GET &#039;&#039;form data&#039;&#039; (a.k.a. &#039;&#039;query args&#039;&#039;). This method is compatible to the method used in firmware versions 5.01 and 6.&lt;br /&gt;
|}&lt;br /&gt;
For more information on HTTP request formatting, see [[Reference7:HTTP Request Message Format]].&lt;br /&gt;
&lt;br /&gt;
If the addressed Web server requires authentication, an &#039;&#039;Authenticated URL&#039;&#039; has to be configured on the [[Reference:Configuration/General/HTTP-Client|HTTP-Client]] Page. The &#039;&#039;URL&#039;&#039; constructed by the logger is shown right next to the &#039;&#039;Path&#039;&#039; field. It must be entered in exactly this format on the [[Reference:Configuration/General/HTTP-Client|HTTP-Client]] Page. The device has to be restarted after the &#039;&#039;Authenticated URL&#039;&#039; has been set. &lt;br /&gt;
|-  &lt;br /&gt;
|valign=top nowrap=true|&#039;&#039;&#039;LOCAL:&#039;&#039;&#039;&lt;br /&gt;
| The syslog entries are saved to [[Reference:Administration/Diagnostics/CF|the local CF card]] into the &#039;&#039;&#039;/log&#039;&#039;&#039; directory, e.g. &#039;&#039;&#039;\\&#039;&#039;ipaddr&#039;&#039;\drive\CF0\log&#039;&#039;&#039;.  Log files named &#039;&#039;&#039;LOG0.&#039;&#039;n&#039;&#039;&#039;&#039;&#039; are created, where &#039;&#039;&#039;&#039;&#039;n&#039;&#039;&#039;&#039;&#039; goes from 0 to 3. The next log file is created when either the &#039;&#039;&#039;Max File Size&#039;&#039;&#039; is reached or the &#039;&#039;&#039;Backup Time&#039;&#039;&#039; has passed.  &#039;&#039;&#039;LOG0.0&#039;&#039;&#039; is the newest log file always.&lt;br /&gt;
&lt;br /&gt;
To concentrate all syslog messages to a single CF card, you would use the &#039;&#039;&#039;HTTP Log Server Type&#039;&#039;&#039; in all but one boxes with &#039;&#039;&#039;Method&#039;&#039;&#039; set to &#039;&#039;&#039;Standard&#039;&#039;&#039;.  &#039;&#039;&#039;Address&#039;&#039;&#039; must be set to the IP-address of the single box that has the CF card used for log message storage. &#039;&#039;&#039;Port&#039;&#039;&#039; must be set to  the port configured for the [[Reference:Configuration/General/HTTP-Server|HTTP-Server]] of this box.  &lt;br /&gt;
&lt;br /&gt;
|-  &lt;br /&gt;
|valign=top nowrap=true|&#039;&#039;&#039;LOCAL-AP:&#039;&#039;&#039;&lt;br /&gt;
|The logs are transmitted to the local Linux application platform. Logs are stored under \\AP-IP\webdav\log\ and alarms under \\AP-IP\webdav\alarm\&lt;br /&gt;
|-  &lt;br /&gt;
|valign=top nowrap=true|&#039;&#039;&#039;REMOTE-AP:&#039;&#039;&#039;&lt;br /&gt;
|The logs are transmitted to a remote Linux application platform. Store path is the same as under LOCAL-AP.&lt;br /&gt;
* In the Address  field, you enter the IP address of the remote Linux application platform.&lt;br /&gt;
* In the Port field, you specify the port to which the connection is set up.&lt;br /&gt;
Remark: Don&#039;t forget to enable access to \\AP-IP\ap\log.fcgi as [[Reference10:Concept_Linux_Application_Platform#Use_as_Log_or_Alarm_Server | required for use of LinAP as logserver]].&lt;br /&gt;
|-  &lt;br /&gt;
|valign=top nowrap=true|&#039;&#039;&#039;REMOTE-AP-S:&#039;&#039;&#039;&lt;br /&gt;
|Same as REMOTE-AP, just a secure transmission is used.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
A second server may be configured as &#039;&#039;&#039;Log Server Shadow&#039;&#039;&#039; receiving the same records as the first server.&lt;br /&gt;
&lt;br /&gt;
== Alarm and Event Handling ==&lt;br /&gt;
Alarm and event forwarding is configured independently from the handling of log messages.&lt;br /&gt;
&lt;br /&gt;
If no &#039;&#039;&#039;Forward Server&#039;&#039;&#039; is configured in the &#039;&#039;&#039;Alarm and Event Forward Server&#039;&#039;&#039; area, alarms and events are stored locally as specified in the &#039;&#039;&#039;Local Alarm and Event Queues&#039;&#039;&#039; area below.  Otherwise, alarms and events are additionally forwarded to the external server using HTTP requests. Each individual alarm or event entry is transferred to the server as an individual request.&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;SYSLOG&amp;lt;/code&amp;gt; option is only available on Gateway devices. Phones should use HTTP to forward alarm/events to an innovaphone gateway which may forward the collected events to a syslog server. &lt;br /&gt;
&lt;br /&gt;
* The &#039;&#039;&#039;Address&#039;&#039;&#039; is used to set the IP-address of an external HTTP server that will receive the forwarded alarms and events.&lt;br /&gt;
* The &#039;&#039;&#039;Port&#039;&#039;&#039; defines the TCP port the HTTP request is sent to.&lt;br /&gt;
* The &#039;&#039;&#039;Method&#039;&#039;&#039; selects the method used to send the the requests. The same methods as for the &#039;&#039;&#039;Log Server&#039;&#039;&#039; are available here. (only on gateways)&lt;br /&gt;
&lt;br /&gt;
To collect all alarms and events in a single device card, you would use the &#039;&#039;&#039;Standard Method&#039;&#039;&#039; in all but one boxes. &#039;&#039;&#039;Address&#039;&#039;&#039; must be set to the IP-address of the central box. &#039;&#039;&#039;Port&#039;&#039;&#039; must be set to the port configured for the [[{{NAMESPACE}}:Configuration/General/HTTP-Server|HTTP-Server]] of this box.&amp;lt;br/&amp;gt;&lt;br /&gt;
The collected alarms and events may further be forwarded to one or two SYSLOG server(s) as XML-encoded records. &lt;br /&gt;
This is achieved by configuring a &#039;&#039;&#039;Forward Server&#039;&#039;&#039; with &#039;&#039;&#039;Method&#039;&#039;&#039; SYSLOG, the server address under &#039;&#039;&#039;Address&#039;&#039;&#039; and the SYSLOG-Class under &#039;&#039;&#039;Class&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;Local Alarm and Event Queues&#039;&#039;&#039; area allows you to control the number of events and alarms that are kept in memory and stored in non-volatile memory during restarts.&lt;br /&gt;
&lt;br /&gt;
== Alarms and Errors as Email ==&lt;br /&gt;
Definition of email target to send alarms and errors as email to.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Sender Address&#039;&#039;&#039;: email adress of sender&lt;br /&gt;
* &#039;&#039;&#039;Senders&#039; Name&#039;&#039;&#039;: alias of sender name&lt;br /&gt;
* &#039;&#039;&#039;Recipient Address&#039;&#039;&#039;: email adress of recipient&lt;br /&gt;
* &#039;&#039;&#039;Recipients&#039; Name&#039;&#039;&#039;: alias of recipient name&lt;br /&gt;
* &#039;&#039;&#039;Email Server Address&#039;&#039;&#039;: ip-adress or DNS name of smtp email server. TLS will be supported automatically, if demanded by the server. &lt;br /&gt;
* &#039;&#039;&#039;User&#039;&#039;&#039;: user account at email server&lt;br /&gt;
* &#039;&#039;&#039;Password&#039;&#039;&#039;: user password at email server&lt;br /&gt;
* &#039;&#039;&#039;OAuth2&#039;&#039;&#039;: Alternatively OAuth2 credentials to authenticate for e-mail sending. See [[Howto16r1:Configure_OAuth2_E-Mail]].&lt;br /&gt;
&lt;br /&gt;
== Handling of incoming Alarms/Events ==&lt;br /&gt;
{|&lt;br /&gt;
|valign=top nowrap=true|&#039;&#039;&#039;Authenticate:&#039;&#039;&#039;&lt;br /&gt;
| When enabled request HTTP Authentication for the incoming HTTP Alarms/Events messages. You must configure in the sender the HTTP credentials to be able to deliver the Alarms/Events. &lt;br /&gt;
|-&lt;br /&gt;
{|&lt;br /&gt;
== Local Alarm and Event Queues ==&lt;br /&gt;
{|&lt;br /&gt;
|valign=top nowrap=true|&#039;&#039;&#039;Memory Queue Entries:&#039;&#039;&#039;&lt;br /&gt;
| Maximum number of faults and alarms to hold in volatile memory (DRAM)(Default:100).&lt;br /&gt;
|-&lt;br /&gt;
|valign=top nowrap=true|&#039;&#039;&#039;Persistent Queue Entries:&#039;&#039;&#039;&lt;br /&gt;
| Maximum number of faults and alarms to keep in flash memory (Default:50).&lt;br /&gt;
|-&lt;br /&gt;
{|&lt;br /&gt;
&lt;br /&gt;
== Catch trace on Event ==&lt;br /&gt;
&lt;br /&gt;
Event codes (up to 4 different) may be configured, on which the tracing is stopped. The event codes can be copied from actual events displayed on Maintenance/Events. Hexadecimal values was converted and stored as Decimal values.&lt;br /&gt;
&lt;br /&gt;
After the event has happend the trace was stopped, the trace can be read which hopefully contains what caused the event.&lt;br /&gt;
&lt;br /&gt;
You can restart the logfile by emptying the [[{{NAMESPACE}}:Maintenance/Diagnostics/Tracing |buffer]].&lt;/div&gt;</summary>
		<author><name>Tmo</name></author>
	</entry>
	<entry>
		<id>https://wiki.innovaphone.com/index.php?title=Howto16r1:Configure_OAuth2_E-Mail&amp;diff=78168</id>
		<title>Howto16r1:Configure OAuth2 E-Mail</title>
		<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=Howto16r1:Configure_OAuth2_E-Mail&amp;diff=78168"/>
		<updated>2025-10-06T11:28:27Z</updated>

		<summary type="html">&lt;p&gt;Tmo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{FIXME|reason=This product is in the beta phase and is not yet finished}}&lt;br /&gt;
&lt;br /&gt;
innovaphone PBX and apps can be configured to send E-Mails for various subjects and purposes. Major E-Mail providers intent to discontinue the username/password authentication schemes in favour of OAuth2. PBX and Apps version 16r1 does support OAuth2 authentication for SMTP. Here is a step by step guide how to set up OAuth2 support in Microsoft 365 through the Azure Portal and how to set it up on a Google Gmail account in the Google Cloud Console.&lt;br /&gt;
&lt;br /&gt;
== Microsoft 365 ==&lt;br /&gt;
Log in to Microsoft Azure Portal (&amp;lt;nowiki&amp;gt;https://portal.azure.com&amp;lt;/nowiki&amp;gt;) and go to Microsoft Entra ID.&lt;br /&gt;
[[File:AzureMicrosoftEntraID.png|none|thumb|600x600px|/AzureMicrosoftEntraID.png|/AzureMicrosoftEntraID.png]]&lt;br /&gt;
Add a new app registration to create client credentials.&lt;br /&gt;
[[File:AzureAddAppRegistration.png|none|thumb|600x600px|/AzureAddAppRegistration.png|/AzureAddAppRegistration.png]]&lt;br /&gt;
Register the application and maybe already fill in the redirect URI for Web based application type to path OAUTH2-CLIENT/auth.htm at the PBX.&lt;br /&gt;
[[File:AzureRegisterAnApplication.png|none|thumb|600x600px|/AzureRegisterAnApplication.png|/AzureRegisterAnApplication.png]]&lt;br /&gt;
App registration is complete. Client ID and tenant needs to be configured at the PBX and every app that will be sending e-mails.&lt;br /&gt;
[[File:AzureApp.png|none|thumb|600x600px|/AzureApp.png|/AzureApp.png]]&lt;br /&gt;
Create a client secret. Note that expiry is limited to no longer than 2 years. The client secret must be renewed before expiry and the new secret configured and interactive authorisation carried out again to ensure continuous operation.&lt;br /&gt;
[[File:AzureAddClientSecret.png|none|thumb|600x600px|/AzureAddClientSecret.png|/AzureAddClientSecret.png]]&lt;br /&gt;
Copy the client secret. It also needs to be configured at the PBX and every app that will be sending e-mails.&lt;br /&gt;
[[File:AzureCopyClientSecret.png|none|thumb|600x600px|/AzureCopyClientSecret.png|/AzureCopyClientSecret.png]]&lt;br /&gt;
Add permissions located in APIs my organization uses.&lt;br /&gt;
[[File:AzureAddApiPermissionMyOrganization.png|none|thumb|600x600px|/AzureAddApiPermissionMyOrganization.png|/AzureAddApiPermissionMyOrganization.png]]&lt;br /&gt;
More precisely located in Office 365 Exchange Online.&lt;br /&gt;
[[File:AzureAddApiPermissionExchange.png|none|thumb|600x600px|/AzureAddApiPermissionExchange.png|/AzureAddApiPermissionExchange.png]]&lt;br /&gt;
And there in the application permissions.&lt;br /&gt;
[[File:AzureAddApiExchangeApplication.png|none|thumb|600x600px|/AzureAddApiExchangeApplication.png|/AzureAddApiExchangeApplication.png]]&lt;br /&gt;
Namely SMTP Mail.Send.&lt;br /&gt;
[[File:AzureAddApiSendMailAsUser.png|none|thumb|600x600px|/AzureAddApiSendMailAsUser.png|/AzureAddApiSendMailAsUser.png]]&lt;br /&gt;
Grant admin permission for Mail.Send.&lt;br /&gt;
[[File:AzureGrantApiPermissions.png|none|thumb|600x600px|/AzureGrantApiPermissions.png|/AzureGrantApiPermissions.png]]&lt;br /&gt;
API permissions are now granted.&lt;br /&gt;
[[File:AzureApiPermissionsGranted.png|none|thumb|600x600px|/AzureApiPermissionsGranted.png|/AzureApiPermissionsGranted.png]]&lt;br /&gt;
Tell all redirect URIs that the PBX and the apps will be using during interactive authorization.&lt;br /&gt;
[[File:AzureRedirectUris.png|none|thumb|600x600px|/AzureRedirectUris.png|/AzureRedirectUris.png]]&lt;br /&gt;
Allow public client flows of OAuth2. Resource Owner Password Credentials Flow has the advantage that it doesn&#039;t need interactive authorization.&lt;br /&gt;
[[File:AzureAllowPublicClientFlows.png|none|thumb|600x600px|/AzureAllowPublicClientFlows.png|/AzureAllowPublicClientFlows.png]]&lt;br /&gt;
Log in to the Microsoft 365 admin center (https://admin.cloud.microsoft).&lt;br /&gt;
[[File:MS365AdminCenter.png|none|thumb|600x600px|/MS365AdminCenter.png|/MS365AdminCenter.png]]&lt;br /&gt;
Make sure that Microsoft 365 licenses are assigned to your user.&lt;br /&gt;
[[File:MS365UserLicenses.png|none|thumb|600x600px|/MS365UserLicenses.png|/MS365UserLicenses.png]]&lt;br /&gt;
Set your user active.&lt;br /&gt;
[[File:MS365ActiveUsers.png|none|thumb|600x600px|/MS365ActiveUsers.png|/MS365ActiveUsers.png]]&lt;br /&gt;
Locate the Mail tab of your user.&lt;br /&gt;
[[File:MS365UserEMail.png|none|thumb|600x600px|/MS365UserEMail.png|/MS365UserEMail.png]]&lt;br /&gt;
Allow authenticated SMTP.&lt;br /&gt;
[[File:MS365AuthenticatedSMTP.png|none|thumb|600x600px|/MS365AuthenticatedSMTP.png|/MS365AuthenticatedSMTP.png]]&lt;br /&gt;
Login to the Exchange admin center (&amp;lt;nowiki&amp;gt;https://admin.exchange.microsoft.com&amp;lt;/nowiki&amp;gt;).&lt;br /&gt;
[[File:ExchangeAdminCenter.png|none|thumb|600x600px|/ExchangeAdminCenter.png|/ExchangeAdminCenter.png]]&lt;br /&gt;
Remove deactivation of the SMTP AUTH protocol.&lt;br /&gt;
[[File:ExchangeRemoveDeavtivatedOAuth2.png|none|thumb|600x600px|/ExchangeRemoveDeavtivatedOAuth2.png|/ExchangeRemoveDeavtivatedOAuth2.png]]&lt;br /&gt;
With this Microsoft setup the OAuth2 configuration for the resource owner password credentials flow can be filled in as follows. &lt;br /&gt;
[[File:OAuth2ResourceOwnerPasswordCredentials.png|none|thumb|600x600px|/OAuth2ResourceOwnerPasswordCredentials.png|/OAuth2ResourceOwnerPasswordCredentials.png]]&lt;br /&gt;
For interactive authorization this is the OAuth2 configuration. Authorize e-mail access one time and send a test mail to verify everything went well.&lt;br /&gt;
[[File:OAuth2InteractiveAuthorization.png|none|thumb|600x600px|/OAuth2InteractiveAuthorization.png|/OAuth2InteractiveAuthorization.png]]&lt;br /&gt;
&lt;br /&gt;
== Gmail ==&lt;br /&gt;
Login to the Google Cloud Console (https://console.cloud.google.com), select a project, New project.&lt;br /&gt;
[[File:GoogleSelectProject.png|none|thumb|600x600px|/GoogleSelectProject.png|/GoogleSelectProject.png]]&lt;br /&gt;
Create the project.&lt;br /&gt;
[[File:GoogleCreateProject.png|none|thumb|600x600px|/GoogleCreateProject.png|/GoogleCreateProject.png]]&lt;br /&gt;
Client credentials will be created in this project.&lt;br /&gt;
[[File:GoogleProjectCreated.png|none|thumb|600x600px|/GoogleProjectCreated.png|/GoogleProjectCreated.png]]&lt;br /&gt;
From the library specify the APIs needed to access.&lt;br /&gt;
[[File:GoogleApisServicesFromLibrary.png|none|thumb|600x600px|/GoogleApisServicesFromLibrary.png|/GoogleApisServicesFromLibrary.png]]&lt;br /&gt;
These are in the Gmail API.&lt;br /&gt;
[[File:GoogleApisServicesApiLibrary.png|none|thumb|600x600px|/GoogleApisServicesApiLibrary.png|/GoogleApisServicesApiLibrary.png]]&lt;br /&gt;
Choose the Gmail API and enable it.&lt;br /&gt;
[[File:GoogleGmailApis.png|none|thumb|600x600px|/GoogleGmailApis.png|/GoogleGmailApis.png]]&lt;br /&gt;
Credentials need to be created.&lt;br /&gt;
[[File:GoogleGmailApiAdded.png|none|thumb|600x600px|/GoogleGmailApiAdded.png|/GoogleGmailApiAdded.png]]&lt;br /&gt;
Invoke the help me choose wizard.&lt;br /&gt;
[[File:GoogleCreateCredentialsHelpMeChoose.png|none|thumb|600x600px|/GoogleCreateCredentialsHelpMeChoose.png|/GoogleCreateCredentialsHelpMeChoose.png]]&lt;br /&gt;
User data access is needed.&lt;br /&gt;
[[File:GoogleCredentialsUserData.png|none|thumb|600x600px|/GoogleCredentialsUserData.png|/GoogleCredentialsUserData.png]]&lt;br /&gt;
Configure the consent screen of the interactive authorization.&lt;br /&gt;
[[File:GoogleOAuthConsentScreen.png|none|thumb|600x600px|/GoogleOAuthConsentScreen.png|/GoogleOAuthConsentScreen.png]]&lt;br /&gt;
Specify the permissions that need to be authorized by the user.&lt;br /&gt;
[[File:GoogleOAuthScopes.png|none|thumb|600x600px|/GoogleOAuthScopes.png|/GoogleOAuthScopes.png]]&lt;br /&gt;
Its mail.google.com in general.&lt;br /&gt;
[[File:GoogleScopeMailGoogleCom.png|none|thumb|600x600px|/GoogleScopeMailGoogleCom.png|/GoogleScopeMailGoogleCom.png]]&lt;br /&gt;
And its to send email on the users behalf.&lt;br /&gt;
[[File:GoogleScopeAuthGmailSend.png|none|thumb|600x600px|/GoogleScopeAuthGmailSend.png|/GoogleScopeAuthGmailSend.png]]&lt;br /&gt;
These are the scopes needed.&lt;br /&gt;
[[File:GoogleScopes.png|none|thumb|600x600px|/GoogleScopes.png|/GoogleScopes.png]]&lt;br /&gt;
Ask client credentials for Web type application.&lt;br /&gt;
[[File:GoogleOAuthClientID.png|none|thumb|600x600px|/GoogleOAuthClientID.png|/GoogleOAuthClientID.png]]&lt;br /&gt;
Tell all redirect URIs that the PBX and the apps will be using during interactive authorization.&lt;br /&gt;
[[File:GoogleRedirectURIs.png|none|thumb|600x600px|/GoogleRedirectURIs.png|/GoogleRedirectURIs.png]]&lt;br /&gt;
Download the credentials. This json file contains all information for OAuth2 configuration.&lt;br /&gt;
[[File:GoogleClientCredentialsDownload.png|none|thumb|600x600px|/GoogleClientCredentialsDownload.png|/GoogleClientCredentialsDownload.png]]&lt;br /&gt;
Customize the OAuth consent screen&lt;br /&gt;
[[File:GoogleOAuthConsentScreenSettings.png|none|thumb|600x600px|/GoogleOAuthConsentScreenSettings.png|/GoogleOAuthConsentScreenSettings.png]]&lt;br /&gt;
Start the customization wizard.&lt;br /&gt;
[[File:GoogleConsentScreenWizard.png|none|thumb|600x600px|/GoogleConsentScreenWizard.png|/GoogleConsentScreenWizard.png]]&lt;br /&gt;
Choose which users may authorize.&lt;br /&gt;
[[File:GoogleAudienceExternal.png|none|thumb|600x600px|/GoogleAudienceExternal.png|/GoogleAudienceExternal.png]]&lt;br /&gt;
Google workspace users may choose internal audience. Users not in Google workspace proceed with external.&lt;br /&gt;
[[File:GoogleContactInformation.png|none|thumb|600x600px|/GoogleContactInformation.png|/GoogleContactInformation.png]]&lt;br /&gt;
Add a test user.&lt;br /&gt;
[[File:GoogleTestUserAdded.png|none|thumb|600x600px|/GoogleTestUserAdded.png|/GoogleTestUserAdded.png]]&lt;br /&gt;
The OAuth2 parameters can be filled in with the information from the json file downloaded above. Authorize e-mail access one time and send a test mail to verify everything went well.&lt;br /&gt;
[[File:OAuth2InteractiveGmail.png|none|thumb|600x600px|/OAuth2InteractiveGmail.png|/OAuth2InteractiveGmail.png]]&lt;br /&gt;
&lt;br /&gt;
== Generic ==&lt;br /&gt;
&lt;br /&gt;
For other e-mail providers the client secret post OAuth2 flow may be configured in a generic way. Details need to be supplied by the e-mail provider.&lt;br /&gt;
&lt;br /&gt;
For the Microsoft 365 setup above it would be as follows with Token endpoint &#039;&#039;&amp;lt;nowiki&amp;gt;https://login.microsoftonline.com/af326a34-169c-469e-946b-1ef57925306b/oauth2/v2.0/token&amp;lt;/nowiki&amp;gt;&#039;&#039; Authorization URL &#039;&#039;&amp;lt;nowiki&amp;gt;https://login.microsoftonline.com/af326a34-169c-469e-946b-1ef57925306b/oauth2/v2.0/authorize?scope=https://outlook.office.com/SMTP.Send&amp;lt;/nowiki&amp;gt; offline_access&#039;&#039; The configuration appends &#039;&#039;&amp;amp;response_type=code&amp;amp;prompt=consent&amp;amp;login_hint=...&amp;amp;redirect_uri=...&amp;amp;client_id=...&#039;&#039; automatically.[[File:OAuth2ClientSecretPost.png|none|thumb|600x600px|/OAuth2ClientSecretPost.png|/OAuth2ClientSecretPost.png]]&lt;br /&gt;
For the Gmail example above the generic confguration would be like this with Token endpoint &#039;&#039;&amp;lt;nowiki&amp;gt;https://oauth2.googleapis.com/token&amp;lt;/nowiki&amp;gt;&#039;&#039; Authorization URL &#039;&#039;&amp;lt;nowiki&amp;gt;https://accounts.google.com/o/oauth2/auth?access_type=offline&amp;amp;scope=https://mail.google.com/&amp;lt;/nowiki&amp;gt;&#039;&#039; The configuration appends &#039;&#039;&amp;amp;response_type=code&amp;amp;prompt=consent&amp;amp;login_hint=...&amp;amp;redirect_uri=...&amp;amp;client_id=...&#039;&#039; automatically.&lt;br /&gt;
[[File:OAith2ClientSecretPostGmail.png|none|thumb|600x600px|/OAith2ClientSecretPostGmail.png]]&lt;br /&gt;
The private key jwt OAuth2 flow can be configured generically as well.[[File:OAuth2PrivateKeyJWT.png|none|thumb|600x600px|/OAuth2PrivateKeyJWT.png|/OAuth2PrivateKeyJWT.png]]&lt;/div&gt;</summary>
		<author><name>Tmo</name></author>
	</entry>
	<entry>
		<id>https://wiki.innovaphone.com/index.php?title=Howto16r1:Configure_OAuth2_E-Mail&amp;diff=78158</id>
		<title>Howto16r1:Configure OAuth2 E-Mail</title>
		<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=Howto16r1:Configure_OAuth2_E-Mail&amp;diff=78158"/>
		<updated>2025-10-05T08:08:43Z</updated>

		<summary type="html">&lt;p&gt;Tmo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{FIXME|reason=This product is in the beta phase and is not yet finished}}&lt;br /&gt;
&lt;br /&gt;
innovaphone PBX and apps can be configured to send E-Mails for various subjects and purposes. Major E-Mail providers intent to discontinue the username/password authentication schemes in favour of OAuth2. PBX and Apps version 16r1 does support OAuth2 authentication for SMTP. Here is a step by step guide how to set up OAuth2 support in Microsoft 365 through the Azure Portal and how to set it up on a Google Gmail account in the Google Cloud Console.&lt;br /&gt;
&lt;br /&gt;
== Microsoft 365 ==&lt;br /&gt;
Log in to Microsoft Azure Portal (&amp;lt;nowiki&amp;gt;https://portal.azure.com&amp;lt;/nowiki&amp;gt;) and go to Microsoft Entra ID.&lt;br /&gt;
[[File:AzureMicrosoftEntraID.png|none|thumb|600x600px|/AzureMicrosoftEntraID.png|/AzureMicrosoftEntraID.png]]&lt;br /&gt;
Add a new app registration to create client credentials.&lt;br /&gt;
[[File:AzureAddAppRegistration.png|none|thumb|600x600px|/AzureAddAppRegistration.png|/AzureAddAppRegistration.png]]&lt;br /&gt;
Register the application and maybe already fill in the redirect URI for Web based application type to path OAUTH2-CLIENT/auth.htm at the PBX.&lt;br /&gt;
[[File:AzureRegisterAnApplication.png|none|thumb|600x600px|/AzureRegisterAnApplication.png|/AzureRegisterAnApplication.png]]&lt;br /&gt;
App registration is complete. Client ID and tenant needs to be configured at the PBX and every app that will be sending e-mails.&lt;br /&gt;
[[File:AzureApp.png|none|thumb|600x600px|/AzureApp.png|/AzureApp.png]]&lt;br /&gt;
Create a client secret.&lt;br /&gt;
[[File:AzureAddClientSecret.png|none|thumb|600x600px|/AzureAddClientSecret.png|/AzureAddClientSecret.png]]&lt;br /&gt;
Copy the client secret. It also needs to be configured at the PBX and every app that will be sending e-mails.&lt;br /&gt;
[[File:AzureCopyClientSecret.png|none|thumb|600x600px|/AzureCopyClientSecret.png|/AzureCopyClientSecret.png]]&lt;br /&gt;
Add permissions located in APIs my organization uses.&lt;br /&gt;
[[File:AzureAddApiPermissionMyOrganization.png|none|thumb|600x600px|/AzureAddApiPermissionMyOrganization.png|/AzureAddApiPermissionMyOrganization.png]]&lt;br /&gt;
More precisely located in Office 365 Exchange Online.&lt;br /&gt;
[[File:AzureAddApiPermissionExchange.png|none|thumb|600x600px|/AzureAddApiPermissionExchange.png|/AzureAddApiPermissionExchange.png]]&lt;br /&gt;
And there in the application permissions.&lt;br /&gt;
[[File:AzureAddApiExchangeApplication.png|none|thumb|600x600px|/AzureAddApiExchangeApplication.png|/AzureAddApiExchangeApplication.png]]&lt;br /&gt;
Namely SMTP Mail.Send.&lt;br /&gt;
[[File:AzureAddApiSendMailAsUser.png|none|thumb|600x600px|/AzureAddApiSendMailAsUser.png|/AzureAddApiSendMailAsUser.png]]&lt;br /&gt;
Grant admin permission for Mail.Send.&lt;br /&gt;
[[File:AzureGrantApiPermissions.png|none|thumb|600x600px|/AzureGrantApiPermissions.png|/AzureGrantApiPermissions.png]]&lt;br /&gt;
API permissions are now granted.&lt;br /&gt;
[[File:AzureApiPermissionsGranted.png|none|thumb|600x600px|/AzureApiPermissionsGranted.png|/AzureApiPermissionsGranted.png]]&lt;br /&gt;
Tell all redirect URIs that the PBX and the apps will be using during interactive authorization.&lt;br /&gt;
[[File:AzureRedirectUris.png|none|thumb|600x600px|/AzureRedirectUris.png|/AzureRedirectUris.png]]&lt;br /&gt;
Allow public client flows of OAuth2. Resource Owner Password Credentials Flow has the advantage that it doesn&#039;t need interactive authorization.&lt;br /&gt;
[[File:AzureAllowPublicClientFlows.png|none|thumb|600x600px|/AzureAllowPublicClientFlows.png|/AzureAllowPublicClientFlows.png]]&lt;br /&gt;
Log in to the Microsoft 365 admin center (https://admin.cloud.microsoft).&lt;br /&gt;
[[File:MS365AdminCenter.png|none|thumb|600x600px|/MS365AdminCenter.png|/MS365AdminCenter.png]]&lt;br /&gt;
Make sure that Microsoft 365 licenses are assigned to your user.&lt;br /&gt;
[[File:MS365UserLicenses.png|none|thumb|600x600px|/MS365UserLicenses.png|/MS365UserLicenses.png]]&lt;br /&gt;
Set your user active.&lt;br /&gt;
[[File:MS365ActiveUsers.png|none|thumb|600x600px|/MS365ActiveUsers.png|/MS365ActiveUsers.png]]&lt;br /&gt;
Locate the Mail tab of your user.&lt;br /&gt;
[[File:MS365UserEMail.png|none|thumb|600x600px|/MS365UserEMail.png|/MS365UserEMail.png]]&lt;br /&gt;
Allow authenticated SMTP.&lt;br /&gt;
[[File:MS365AuthenticatedSMTP.png|none|thumb|600x600px|/MS365AuthenticatedSMTP.png|/MS365AuthenticatedSMTP.png]]&lt;br /&gt;
Login to the Exchange admin center (&amp;lt;nowiki&amp;gt;https://admin.exchange.microsoft.com&amp;lt;/nowiki&amp;gt;).&lt;br /&gt;
[[File:ExchangeAdminCenter.png|none|thumb|600x600px|/ExchangeAdminCenter.png|/ExchangeAdminCenter.png]]&lt;br /&gt;
Remove deactivation of the SMTP AUTH protocol.&lt;br /&gt;
[[File:ExchangeRemoveDeavtivatedOAuth2.png|none|thumb|600x600px|/ExchangeRemoveDeavtivatedOAuth2.png|/ExchangeRemoveDeavtivatedOAuth2.png]]&lt;br /&gt;
With this Microsoft setup the OAuth2 configuration for the resource owner password credentials flow can be filled in as follows. &lt;br /&gt;
[[File:OAuth2ResourceOwnerPasswordCredentials.png|none|thumb|600x600px|/OAuth2ResourceOwnerPasswordCredentials.png|/OAuth2ResourceOwnerPasswordCredentials.png]]&lt;br /&gt;
For interactive authorization this is the OAuth2 configuration. Authorize e-mail access one time and send a test mail to verify everything went well.&lt;br /&gt;
[[File:OAuth2InteractiveAuthorization.png|none|thumb|600x600px|/OAuth2InteractiveAuthorization.png|/OAuth2InteractiveAuthorization.png]]&lt;br /&gt;
&lt;br /&gt;
== Gmail ==&lt;br /&gt;
Login to the Google Cloud Console (https://console.cloud.google.com), select a project, New project.&lt;br /&gt;
[[File:GoogleSelectProject.png|none|thumb|600x600px|/GoogleSelectProject.png|/GoogleSelectProject.png]]&lt;br /&gt;
Create the project.&lt;br /&gt;
[[File:GoogleCreateProject.png|none|thumb|600x600px|/GoogleCreateProject.png|/GoogleCreateProject.png]]&lt;br /&gt;
Client credentials will be created in this project.&lt;br /&gt;
[[File:GoogleProjectCreated.png|none|thumb|600x600px|/GoogleProjectCreated.png|/GoogleProjectCreated.png]]&lt;br /&gt;
From the library specify the APIs needed to access.&lt;br /&gt;
[[File:GoogleApisServicesFromLibrary.png|none|thumb|600x600px|/GoogleApisServicesFromLibrary.png|/GoogleApisServicesFromLibrary.png]]&lt;br /&gt;
These are in the Gmail API.&lt;br /&gt;
[[File:GoogleApisServicesApiLibrary.png|none|thumb|600x600px|/GoogleApisServicesApiLibrary.png|/GoogleApisServicesApiLibrary.png]]&lt;br /&gt;
Choose the Gmail API and enable it.&lt;br /&gt;
[[File:GoogleGmailApis.png|none|thumb|600x600px|/GoogleGmailApis.png|/GoogleGmailApis.png]]&lt;br /&gt;
Credentials need to be created.&lt;br /&gt;
[[File:GoogleGmailApiAdded.png|none|thumb|600x600px|/GoogleGmailApiAdded.png|/GoogleGmailApiAdded.png]]&lt;br /&gt;
Invoke the help me choose wizard.&lt;br /&gt;
[[File:GoogleCreateCredentialsHelpMeChoose.png|none|thumb|600x600px|/GoogleCreateCredentialsHelpMeChoose.png|/GoogleCreateCredentialsHelpMeChoose.png]]&lt;br /&gt;
User data access is needed.&lt;br /&gt;
[[File:GoogleCredentialsUserData.png|none|thumb|600x600px|/GoogleCredentialsUserData.png|/GoogleCredentialsUserData.png]]&lt;br /&gt;
Configure the consent screen of the interactive authorization.&lt;br /&gt;
[[File:GoogleOAuthConsentScreen.png|none|thumb|600x600px|/GoogleOAuthConsentScreen.png|/GoogleOAuthConsentScreen.png]]&lt;br /&gt;
Specify the permissions that need to be authorized by the user.&lt;br /&gt;
[[File:GoogleOAuthScopes.png|none|thumb|600x600px|/GoogleOAuthScopes.png|/GoogleOAuthScopes.png]]&lt;br /&gt;
Its mail.google.com in general.&lt;br /&gt;
[[File:GoogleScopeMailGoogleCom.png|none|thumb|600x600px|/GoogleScopeMailGoogleCom.png|/GoogleScopeMailGoogleCom.png]]&lt;br /&gt;
And its to send email on the users behalf.&lt;br /&gt;
[[File:GoogleScopeAuthGmailSend.png|none|thumb|600x600px|/GoogleScopeAuthGmailSend.png|/GoogleScopeAuthGmailSend.png]]&lt;br /&gt;
These are the scopes needed.&lt;br /&gt;
[[File:GoogleScopes.png|none|thumb|600x600px|/GoogleScopes.png|/GoogleScopes.png]]&lt;br /&gt;
Ask client credentials for Web type application.&lt;br /&gt;
[[File:GoogleOAuthClientID.png|none|thumb|600x600px|/GoogleOAuthClientID.png|/GoogleOAuthClientID.png]]&lt;br /&gt;
Tell all redirect URIs that the PBX and the apps will be using during interactive authorization.&lt;br /&gt;
[[File:GoogleRedirectURIs.png|none|thumb|600x600px|/GoogleRedirectURIs.png|/GoogleRedirectURIs.png]]&lt;br /&gt;
Download the credentials. This json file contains all information for OAuth2 configuration.&lt;br /&gt;
[[File:GoogleClientCredentialsDownload.png|none|thumb|600x600px|/GoogleClientCredentialsDownload.png|/GoogleClientCredentialsDownload.png]]&lt;br /&gt;
Customize the OAuth consent screen&lt;br /&gt;
[[File:GoogleOAuthConsentScreenSettings.png|none|thumb|600x600px|/GoogleOAuthConsentScreenSettings.png|/GoogleOAuthConsentScreenSettings.png]]&lt;br /&gt;
Start the customization wizard.&lt;br /&gt;
[[File:GoogleConsentScreenWizard.png|none|thumb|600x600px|/GoogleConsentScreenWizard.png|/GoogleConsentScreenWizard.png]]&lt;br /&gt;
Choose which users may authorize.&lt;br /&gt;
[[File:GoogleAudienceExternal.png|none|thumb|600x600px|/GoogleAudienceExternal.png|/GoogleAudienceExternal.png]]&lt;br /&gt;
Google workspace users may choose internal audience. Users not in Google workspace proceed with external.&lt;br /&gt;
[[File:GoogleContactInformation.png|none|thumb|600x600px|/GoogleContactInformation.png|/GoogleContactInformation.png]]&lt;br /&gt;
Add a test user.&lt;br /&gt;
[[File:GoogleTestUserAdded.png|none|thumb|600x600px|/GoogleTestUserAdded.png|/GoogleTestUserAdded.png]]&lt;br /&gt;
The OAuth2 parameters can be filled in with the information from the json file downloaded above. Authorize e-mail access one time and send a test mail to verify everything went well.&lt;br /&gt;
[[File:OAuth2InteractiveGmail.png|none|thumb|600x600px|/OAuth2InteractiveGmail.png|/OAuth2InteractiveGmail.png]]&lt;br /&gt;
&lt;br /&gt;
== Generic ==&lt;br /&gt;
&lt;br /&gt;
For other e-mail providers the client secret post OAuth2 flow may be configured in a generic way. Details need to be supplied by the e-mail provider.&lt;br /&gt;
&lt;br /&gt;
For the Microsoft 365 setup above it would be as follows with Token endpoint &#039;&#039;&amp;lt;nowiki&amp;gt;https://login.microsoftonline.com/af326a34-169c-469e-946b-1ef57925306b/oauth2/v2.0/token&amp;lt;/nowiki&amp;gt;&#039;&#039; Authorization URL &#039;&#039;&amp;lt;nowiki&amp;gt;https://login.microsoftonline.com/af326a34-169c-469e-946b-1ef57925306b/oauth2/v2.0/authorize?scope=https://outlook.office.com/SMTP.Send&amp;lt;/nowiki&amp;gt; offline_access&#039;&#039; The configuration appends &#039;&#039;&amp;amp;response_type=code&amp;amp;prompt=consent&amp;amp;login_hint=...&amp;amp;redirect_uri=...&amp;amp;client_id=...&#039;&#039; automatically.[[File:OAuth2ClientSecretPost.png|none|thumb|600x600px|/OAuth2ClientSecretPost.png|/OAuth2ClientSecretPost.png]]&lt;br /&gt;
For the Gmail example above the generic confguration would be like this with Token endpoint &#039;&#039;&amp;lt;nowiki&amp;gt;https://oauth2.googleapis.com/token&amp;lt;/nowiki&amp;gt;&#039;&#039; Authorization URL &#039;&#039;&amp;lt;nowiki&amp;gt;https://accounts.google.com/o/oauth2/auth?access_type=offline&amp;amp;scope=https://mail.google.com/&amp;lt;/nowiki&amp;gt;&#039;&#039; The configuration appends &#039;&#039;&amp;amp;response_type=code&amp;amp;prompt=consent&amp;amp;login_hint=...&amp;amp;redirect_uri=...&amp;amp;client_id=...&#039;&#039; automatically.&lt;br /&gt;
[[File:OAith2ClientSecretPostGmail.png|none|thumb|600x600px]]&lt;br /&gt;
The private key jwt OAuth2 flow can be configured generically as well.[[File:OAuth2PrivateKeyJWT.png|none|thumb|600x600px|/OAuth2PrivateKeyJWT.png|/OAuth2PrivateKeyJWT.png]]&lt;/div&gt;</summary>
		<author><name>Tmo</name></author>
	</entry>
	<entry>
		<id>https://wiki.innovaphone.com/index.php?title=File:OAith2ClientSecretPostGmail.png&amp;diff=78157</id>
		<title>File:OAith2ClientSecretPostGmail.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=File:OAith2ClientSecretPostGmail.png&amp;diff=78157"/>
		<updated>2025-10-05T07:50:49Z</updated>

		<summary type="html">&lt;p&gt;Tmo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;OAuth2 Client Secret Post Gmail&lt;/div&gt;</summary>
		<author><name>Tmo</name></author>
	</entry>
	<entry>
		<id>https://wiki.innovaphone.com/index.php?title=Howto16r1:Configure_OAuth2_E-Mail&amp;diff=78156</id>
		<title>Howto16r1:Configure OAuth2 E-Mail</title>
		<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=Howto16r1:Configure_OAuth2_E-Mail&amp;diff=78156"/>
		<updated>2025-10-05T06:49:39Z</updated>

		<summary type="html">&lt;p&gt;Tmo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{FIXME|reason=This product is in the beta phase and is not yet finished}}&lt;br /&gt;
&lt;br /&gt;
innovaphone PBX and apps can be configured to send E-Mails for various subjects and purposes. Major E-Mail providers intent to discontinue the username/password authentication schemes in favour of OAuth2. PBX and Apps version 16r1 does support OAuth2 authentication for SMTP. Here is a step by step guide how to set up OAuth2 support in Microsoft 365 through the Azure Portal and how to set it up on a Google Gmail account in the Google Cloud Console.&lt;br /&gt;
&lt;br /&gt;
== Microsoft 365 ==&lt;br /&gt;
Log in to Microsoft Azure Portal (&amp;lt;nowiki&amp;gt;https://portal.azure.com&amp;lt;/nowiki&amp;gt;) and go to Microsoft Entra ID.&lt;br /&gt;
[[File:AzureMicrosoftEntraID.png|none|thumb|600x600px|/AzureMicrosoftEntraID.png|/AzureMicrosoftEntraID.png]]&lt;br /&gt;
Add a new app registration to create client credentials.&lt;br /&gt;
[[File:AzureAddAppRegistration.png|none|thumb|600x600px|/AzureAddAppRegistration.png|/AzureAddAppRegistration.png]]&lt;br /&gt;
Register the application and maybe already fill in the redirect URI for Web based application type to path OAUTH2-CLIENT/auth.htm at the PBX.&lt;br /&gt;
[[File:AzureRegisterAnApplication.png|none|thumb|600x600px|/AzureRegisterAnApplication.png|/AzureRegisterAnApplication.png]]&lt;br /&gt;
App registration is complete. Client ID and tenant needs to be configured at the PBX and every app that will be sending e-mails.&lt;br /&gt;
[[File:AzureApp.png|none|thumb|600x600px|/AzureApp.png|/AzureApp.png]]&lt;br /&gt;
Create a client secret.&lt;br /&gt;
[[File:AzureAddClientSecret.png|none|thumb|600x600px|/AzureAddClientSecret.png|/AzureAddClientSecret.png]]&lt;br /&gt;
Copy the client secret. It also needs to be configured at the PBX and every app that will be sending e-mails.&lt;br /&gt;
[[File:AzureCopyClientSecret.png|none|thumb|600x600px|/AzureCopyClientSecret.png|/AzureCopyClientSecret.png]]&lt;br /&gt;
Add permissions located in APIs my organization uses.&lt;br /&gt;
[[File:AzureAddApiPermissionMyOrganization.png|none|thumb|600x600px|/AzureAddApiPermissionMyOrganization.png|/AzureAddApiPermissionMyOrganization.png]]&lt;br /&gt;
More precisely located in Office 365 Exchange Online.&lt;br /&gt;
[[File:AzureAddApiPermissionExchange.png|none|thumb|600x600px|/AzureAddApiPermissionExchange.png|/AzureAddApiPermissionExchange.png]]&lt;br /&gt;
And there in the application permissions.&lt;br /&gt;
[[File:AzureAddApiExchangeApplication.png|none|thumb|600x600px|/AzureAddApiExchangeApplication.png|/AzureAddApiExchangeApplication.png]]&lt;br /&gt;
Namely SMTP Mail.Send.&lt;br /&gt;
[[File:AzureAddApiSendMailAsUser.png|none|thumb|600x600px|/AzureAddApiSendMailAsUser.png|/AzureAddApiSendMailAsUser.png]]&lt;br /&gt;
Grant admin permission for Mail.Send.&lt;br /&gt;
[[File:AzureGrantApiPermissions.png|none|thumb|600x600px|/AzureGrantApiPermissions.png|/AzureGrantApiPermissions.png]]&lt;br /&gt;
API permissions are now granted.&lt;br /&gt;
[[File:AzureApiPermissionsGranted.png|none|thumb|600x600px|/AzureApiPermissionsGranted.png|/AzureApiPermissionsGranted.png]]&lt;br /&gt;
Tell all redirect URIs that the PBX and the apps will be using during interactive authorization.&lt;br /&gt;
[[File:AzureRedirectUris.png|none|thumb|600x600px|/AzureRedirectUris.png|/AzureRedirectUris.png]]&lt;br /&gt;
Allow public client flows of OAuth2. Resource Owner Password Credentials Flow has the advantage that it doesn&#039;t need interactive authorization.&lt;br /&gt;
[[File:AzureAllowPublicClientFlows.png|none|thumb|600x600px|/AzureAllowPublicClientFlows.png|/AzureAllowPublicClientFlows.png]]&lt;br /&gt;
Log in to the Microsoft 365 admin center (https://admin.cloud.microsoft).&lt;br /&gt;
[[File:MS365AdminCenter.png|none|thumb|600x600px|/MS365AdminCenter.png|/MS365AdminCenter.png]]&lt;br /&gt;
Make sure that Microsoft 365 licenses are assigned to your user.&lt;br /&gt;
[[File:MS365UserLicenses.png|none|thumb|600x600px|/MS365UserLicenses.png|/MS365UserLicenses.png]]&lt;br /&gt;
Set your user active.&lt;br /&gt;
[[File:MS365ActiveUsers.png|none|thumb|600x600px|/MS365ActiveUsers.png|/MS365ActiveUsers.png]]&lt;br /&gt;
Locate the Mail tab of your user.&lt;br /&gt;
[[File:MS365UserEMail.png|none|thumb|600x600px|/MS365UserEMail.png|/MS365UserEMail.png]]&lt;br /&gt;
Allow authenticated SMTP.&lt;br /&gt;
[[File:MS365AuthenticatedSMTP.png|none|thumb|600x600px|/MS365AuthenticatedSMTP.png|/MS365AuthenticatedSMTP.png]]&lt;br /&gt;
Login to the Exchange admin center (&amp;lt;nowiki&amp;gt;https://admin.exchange.microsoft.com&amp;lt;/nowiki&amp;gt;).&lt;br /&gt;
[[File:ExchangeAdminCenter.png|none|thumb|600x600px|/ExchangeAdminCenter.png|/ExchangeAdminCenter.png]]&lt;br /&gt;
Remove deactivation of the SMTP AUTH protocol.&lt;br /&gt;
[[File:ExchangeRemoveDeavtivatedOAuth2.png|none|thumb|600x600px|/ExchangeRemoveDeavtivatedOAuth2.png|/ExchangeRemoveDeavtivatedOAuth2.png]]&lt;br /&gt;
With this Microsoft setup the OAuth2 configuration for the resource owner password credentials flow can be filled in as follows. &lt;br /&gt;
[[File:OAuth2ResourceOwnerPasswordCredentials.png|none|thumb|600x600px|/OAuth2ResourceOwnerPasswordCredentials.png|/OAuth2ResourceOwnerPasswordCredentials.png]]&lt;br /&gt;
For interactive authorization this is the OAuth2 configuration. Authorize e-mail access one time and send a test mail to verify everything went well.&lt;br /&gt;
[[File:OAuth2InteractiveAuthorization.png|none|thumb|600x600px|/OAuth2InteractiveAuthorization.png|/OAuth2InteractiveAuthorization.png]]&lt;br /&gt;
&lt;br /&gt;
== Gmail ==&lt;br /&gt;
Login to the Google Cloud Console (https://console.cloud.google.com), select a project, New project.&lt;br /&gt;
[[File:GoogleSelectProject.png|none|thumb|600x600px|/GoogleSelectProject.png|/GoogleSelectProject.png]]&lt;br /&gt;
Create the project.&lt;br /&gt;
[[File:GoogleCreateProject.png|none|thumb|600x600px|/GoogleCreateProject.png|/GoogleCreateProject.png]]&lt;br /&gt;
Client credentials will be created in this project.&lt;br /&gt;
[[File:GoogleProjectCreated.png|none|thumb|600x600px|/GoogleProjectCreated.png|/GoogleProjectCreated.png]]&lt;br /&gt;
From the library specify the APIs needed to access.&lt;br /&gt;
[[File:GoogleApisServicesFromLibrary.png|none|thumb|600x600px|/GoogleApisServicesFromLibrary.png|/GoogleApisServicesFromLibrary.png]]&lt;br /&gt;
These are in the Gmail API.&lt;br /&gt;
[[File:GoogleApisServicesApiLibrary.png|none|thumb|600x600px|/GoogleApisServicesApiLibrary.png|/GoogleApisServicesApiLibrary.png]]&lt;br /&gt;
Choose the Gmail API and enable it.&lt;br /&gt;
[[File:GoogleGmailApis.png|none|thumb|600x600px|/GoogleGmailApis.png|/GoogleGmailApis.png]]&lt;br /&gt;
Credentials need to be created.&lt;br /&gt;
[[File:GoogleGmailApiAdded.png|none|thumb|600x600px|/GoogleGmailApiAdded.png|/GoogleGmailApiAdded.png]]&lt;br /&gt;
Invoke the help me choose wizard.&lt;br /&gt;
[[File:GoogleCreateCredentialsHelpMeChoose.png|none|thumb|600x600px|/GoogleCreateCredentialsHelpMeChoose.png|/GoogleCreateCredentialsHelpMeChoose.png]]&lt;br /&gt;
User data access is needed.&lt;br /&gt;
[[File:GoogleCredentialsUserData.png|none|thumb|600x600px|/GoogleCredentialsUserData.png|/GoogleCredentialsUserData.png]]&lt;br /&gt;
Configure the consent screen of the interactive authorization.&lt;br /&gt;
[[File:GoogleOAuthConsentScreen.png|none|thumb|600x600px|/GoogleOAuthConsentScreen.png|/GoogleOAuthConsentScreen.png]]&lt;br /&gt;
Specify the permissions that need to be authorized by the user.&lt;br /&gt;
[[File:GoogleOAuthScopes.png|none|thumb|600x600px|/GoogleOAuthScopes.png|/GoogleOAuthScopes.png]]&lt;br /&gt;
Its mail.google.com in general.&lt;br /&gt;
[[File:GoogleScopeMailGoogleCom.png|none|thumb|600x600px|/GoogleScopeMailGoogleCom.png|/GoogleScopeMailGoogleCom.png]]&lt;br /&gt;
And its to send email on the users behalf.&lt;br /&gt;
[[File:GoogleScopeAuthGmailSend.png|none|thumb|600x600px|/GoogleScopeAuthGmailSend.png|/GoogleScopeAuthGmailSend.png]]&lt;br /&gt;
These are the scopes needed.&lt;br /&gt;
[[File:GoogleScopes.png|none|thumb|600x600px|/GoogleScopes.png|/GoogleScopes.png]]&lt;br /&gt;
Ask client credentials for Web type application.&lt;br /&gt;
[[File:GoogleOAuthClientID.png|none|thumb|600x600px|/GoogleOAuthClientID.png|/GoogleOAuthClientID.png]]&lt;br /&gt;
Tell all redirect URIs that the PBX and the apps will be using during interactive authorization.&lt;br /&gt;
[[File:GoogleRedirectURIs.png|none|thumb|600x600px|/GoogleRedirectURIs.png|/GoogleRedirectURIs.png]]&lt;br /&gt;
Download the credentials. This json file contains all information for OAuth2 configuration.&lt;br /&gt;
[[File:GoogleClientCredentialsDownload.png|none|thumb|600x600px|/GoogleClientCredentialsDownload.png|/GoogleClientCredentialsDownload.png]]&lt;br /&gt;
Customize the OAuth consent screen&lt;br /&gt;
[[File:GoogleOAuthConsentScreenSettings.png|none|thumb|600x600px|/GoogleOAuthConsentScreenSettings.png|/GoogleOAuthConsentScreenSettings.png]]&lt;br /&gt;
Start the customization wizard.&lt;br /&gt;
[[File:GoogleConsentScreenWizard.png|none|thumb|600x600px|/GoogleConsentScreenWizard.png|/GoogleConsentScreenWizard.png]]&lt;br /&gt;
Choose which users may authorize.&lt;br /&gt;
[[File:GoogleAudienceExternal.png|none|thumb|600x600px|/GoogleAudienceExternal.png|/GoogleAudienceExternal.png]]&lt;br /&gt;
Google workspace users may choose internal audience. Users not in Google workspace proceed with external.&lt;br /&gt;
[[File:GoogleContactInformation.png|none|thumb|600x600px|/GoogleContactInformation.png|/GoogleContactInformation.png]]&lt;br /&gt;
Add a test user.&lt;br /&gt;
[[File:GoogleTestUserAdded.png|none|thumb|600x600px|/GoogleTestUserAdded.png|/GoogleTestUserAdded.png]]&lt;br /&gt;
The OAuth2 parameters can be filled in with the information from the json file downloaded above. Authorize e-mail access one time and send a test mail to verify everything went well.&lt;br /&gt;
[[File:OAuth2InteractiveGmail.png|none|thumb|600x600px|/OAuth2InteractiveGmail.png|/OAuth2InteractiveGmail.png]]&lt;br /&gt;
&lt;br /&gt;
== Generic ==&lt;br /&gt;
&lt;br /&gt;
For other e-mail providers the client secret post OAuth2 flow may be configured in a generic way. Details need to be supplied by the e-mail provider.&lt;br /&gt;
&lt;br /&gt;
For the Microsoft 365 setup above it would be as follows with&lt;br /&gt;
&lt;br /&gt;
Token endpoint: &#039;&#039;&amp;lt;nowiki&amp;gt;https://login.microsoftonline.com/af326a34-169c-469e-946b-1ef57925306b/oauth2/v2.0/token&amp;lt;/nowiki&amp;gt;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Authorization URL: &#039;&#039;&amp;lt;nowiki&amp;gt;https://login.microsoftonline.com/af326a34-169c-469e-946b-1ef57925306b/oauth2/v2.0/authorize?scope=https://outlook.office.com/SMTP.Send&amp;lt;/nowiki&amp;gt; offline_access&#039;&#039;&lt;br /&gt;
[[File:OAuth2ClientSecretPost.png|none|thumb|600x600px|/OAuth2ClientSecretPost.png|/OAuth2ClientSecretPost.png]]&lt;br /&gt;
For the Gmail example above the generic confguration would be like this with&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The private key jwt OAuth2 flow can be configured generically as well.&lt;br /&gt;
[[File:OAuth2PrivateKeyJWT.png|none|thumb|600x600px|/OAuth2PrivateKeyJWT.png|/OAuth2PrivateKeyJWT.png]]&lt;/div&gt;</summary>
		<author><name>Tmo</name></author>
	</entry>
	<entry>
		<id>https://wiki.innovaphone.com/index.php?title=Howto16r1:Configure_OAuth2_E-Mail&amp;diff=78153</id>
		<title>Howto16r1:Configure OAuth2 E-Mail</title>
		<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=Howto16r1:Configure_OAuth2_E-Mail&amp;diff=78153"/>
		<updated>2025-10-03T11:54:39Z</updated>

		<summary type="html">&lt;p&gt;Tmo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{FIXME|reason=This product is in the beta phase and is not yet finished}}&lt;br /&gt;
&lt;br /&gt;
innovaphone PBX and apps can be configured to send E-Mails for various subjects and purposes. Major E-Mail providers intent to discontinue the username/password authentication schemes in favour of OAuth2. PBX and Apps version 16r1 does support OAuth2 authentication for SMTP. Here is a step by step guide how to set up OAuth2 support in Microsoft 365 through the Azure Portal and how to set it up on a Google Gmail account in the Google Cloud Console.&lt;br /&gt;
&lt;br /&gt;
== Microsoft 365 ==&lt;br /&gt;
Log in to Microsoft Azure Portal (&amp;lt;nowiki&amp;gt;https://portal.azure.com&amp;lt;/nowiki&amp;gt;) and go to Microsoft Entra ID.&lt;br /&gt;
[[File:AzureMicrosoftEntraID.png|none|thumb|600x600px|/AzureMicrosoftEntraID.png|/AzureMicrosoftEntraID.png]]&lt;br /&gt;
Add a new app registration to create client credentials.&lt;br /&gt;
[[File:AzureAddAppRegistration.png|none|thumb|600x600px|/AzureAddAppRegistration.png|/AzureAddAppRegistration.png]]&lt;br /&gt;
Register the application and maybe already fill in the redirect URI for Web based application type to path OAUTH2-CLIENT/auth.htm at the PBX.&lt;br /&gt;
[[File:AzureRegisterAnApplication.png|none|thumb|600x600px|/AzureRegisterAnApplication.png|/AzureRegisterAnApplication.png]]&lt;br /&gt;
App registration is complete. Client ID and tenant needs to be configured at the PBX and every app that will be sending e-mails.&lt;br /&gt;
[[File:AzureApp.png|none|thumb|600x600px|/AzureApp.png|/AzureApp.png]]&lt;br /&gt;
Create a client secret.&lt;br /&gt;
[[File:AzureAddClientSecret.png|none|thumb|600x600px|/AzureAddClientSecret.png|/AzureAddClientSecret.png]]&lt;br /&gt;
Copy the client secret. It also needs to be configured at the PBX and every app that will be sending e-mails.&lt;br /&gt;
[[File:AzureCopyClientSecret.png|none|thumb|600x600px|/AzureCopyClientSecret.png|/AzureCopyClientSecret.png]]&lt;br /&gt;
Add permissions located in APIs my organization uses.&lt;br /&gt;
[[File:AzureAddApiPermissionMyOrganization.png|none|thumb|600x600px|/AzureAddApiPermissionMyOrganization.png|/AzureAddApiPermissionMyOrganization.png]]&lt;br /&gt;
More precisely located in Office 365 Exchange Online.&lt;br /&gt;
[[File:AzureAddApiPermissionExchange.png|none|thumb|600x600px|/AzureAddApiPermissionExchange.png|/AzureAddApiPermissionExchange.png]]&lt;br /&gt;
And there in the application permissions.&lt;br /&gt;
[[File:AzureAddApiExchangeApplication.png|none|thumb|600x600px|/AzureAddApiExchangeApplication.png|/AzureAddApiExchangeApplication.png]]&lt;br /&gt;
Namely SMTP Mail.Send.&lt;br /&gt;
[[File:AzureAddApiSendMailAsUser.png|none|thumb|600x600px|/AzureAddApiSendMailAsUser.png|/AzureAddApiSendMailAsUser.png]]&lt;br /&gt;
Grant admin permission for Mail.Send.&lt;br /&gt;
[[File:AzureGrantApiPermissions.png|none|thumb|600x600px|/AzureGrantApiPermissions.png|/AzureGrantApiPermissions.png]]&lt;br /&gt;
API permissions are now granted.&lt;br /&gt;
[[File:AzureApiPermissionsGranted.png|none|thumb|600x600px|/AzureApiPermissionsGranted.png|/AzureApiPermissionsGranted.png]]&lt;br /&gt;
Tell all redirect URIs that the PBX and the apps will be using during interactive authorization.&lt;br /&gt;
[[File:AzureRedirectUris.png|none|thumb|600x600px|/AzureRedirectUris.png|/AzureRedirectUris.png]]&lt;br /&gt;
Allow public client flows of OAuth2. Resource Owner Password Credentials Flow has the advantage that it doesn&#039;t need interactive authorization.&lt;br /&gt;
[[File:AzureAllowPublicClientFlows.png|none|thumb|600x600px|/AzureAllowPublicClientFlows.png|/AzureAllowPublicClientFlows.png]]&lt;br /&gt;
Log in to the Microsoft 365 admin center (https://admin.cloud.microsoft).&lt;br /&gt;
[[File:MS365AdminCenter.png|none|thumb|600x600px|/MS365AdminCenter.png|/MS365AdminCenter.png]]&lt;br /&gt;
Make sure that Microsoft 365 licenses are assigned to your user.&lt;br /&gt;
[[File:MS365UserLicenses.png|none|thumb|600x600px|/MS365UserLicenses.png|/MS365UserLicenses.png]]&lt;br /&gt;
Set your user active.&lt;br /&gt;
[[File:MS365ActiveUsers.png|none|thumb|600x600px|/MS365ActiveUsers.png|/MS365ActiveUsers.png]]&lt;br /&gt;
Locate the Mail tab of your user.&lt;br /&gt;
[[File:MS365UserEMail.png|none|thumb|600x600px|/MS365UserEMail.png|/MS365UserEMail.png]]&lt;br /&gt;
Allow authenticated SMTP.&lt;br /&gt;
[[File:MS365AuthenticatedSMTP.png|none|thumb|600x600px|/MS365AuthenticatedSMTP.png|/MS365AuthenticatedSMTP.png]]&lt;br /&gt;
Login to the Exchange admin center (&amp;lt;nowiki&amp;gt;https://admin.exchange.microsoft.com&amp;lt;/nowiki&amp;gt;).&lt;br /&gt;
[[File:ExchangeAdminCenter.png|none|thumb|600x600px|/ExchangeAdminCenter.png|/ExchangeAdminCenter.png]]&lt;br /&gt;
Remove deactivation of the SMTP AUTH protocol.&lt;br /&gt;
[[File:ExchangeRemoveDeavtivatedOAuth2.png|none|thumb|600x600px|/ExchangeRemoveDeavtivatedOAuth2.png|/ExchangeRemoveDeavtivatedOAuth2.png]]&lt;br /&gt;
With this Microsoft setup the OAuth2 configuration for the resource owner password credentials flow can be filled in as follows. &lt;br /&gt;
[[File:OAuth2ResourceOwnerPasswordCredentials.png|none|thumb|600x600px|/OAuth2ResourceOwnerPasswordCredentials.png|/OAuth2ResourceOwnerPasswordCredentials.png]]&lt;br /&gt;
For interactive authorization this is the OAuth2 configuration. Authorize e-mail access one time and send a test mail to verify everything went well.&lt;br /&gt;
[[File:OAuth2InteractiveAuthorization.png|none|thumb|600x600px|/OAuth2InteractiveAuthorization.png|/OAuth2InteractiveAuthorization.png]]&lt;br /&gt;
&lt;br /&gt;
== Gmail ==&lt;br /&gt;
Login to the Google Cloud Console (https://console.cloud.google.com), select a project, New project.&lt;br /&gt;
[[File:GoogleSelectProject.png|none|thumb|600x600px|/GoogleSelectProject.png|/GoogleSelectProject.png]]&lt;br /&gt;
Create the project.&lt;br /&gt;
[[File:GoogleCreateProject.png|none|thumb|600x600px|/GoogleCreateProject.png|/GoogleCreateProject.png]]&lt;br /&gt;
Client credentials will be created in this project.&lt;br /&gt;
[[File:GoogleProjectCreated.png|none|thumb|600x600px|/GoogleProjectCreated.png|/GoogleProjectCreated.png]]&lt;br /&gt;
From the library specify the APIs needed to access.&lt;br /&gt;
[[File:GoogleApisServicesFromLibrary.png|none|thumb|600x600px|/GoogleApisServicesFromLibrary.png|/GoogleApisServicesFromLibrary.png]]&lt;br /&gt;
These are in the Gmail API.&lt;br /&gt;
[[File:GoogleApisServicesApiLibrary.png|none|thumb|600x600px|/GoogleApisServicesApiLibrary.png|/GoogleApisServicesApiLibrary.png]]&lt;br /&gt;
Choose the Gmail API and enable it.&lt;br /&gt;
[[File:GoogleGmailApis.png|none|thumb|600x600px|/GoogleGmailApis.png|/GoogleGmailApis.png]]&lt;br /&gt;
Credentials need to be created.&lt;br /&gt;
[[File:GoogleGmailApiAdded.png|none|thumb|600x600px|/GoogleGmailApiAdded.png|/GoogleGmailApiAdded.png]]&lt;br /&gt;
Invoke the help me choose wizard.&lt;br /&gt;
[[File:GoogleCreateCredentialsHelpMeChoose.png|none|thumb|600x600px|/GoogleCreateCredentialsHelpMeChoose.png|/GoogleCreateCredentialsHelpMeChoose.png]]&lt;br /&gt;
User data access is needed.&lt;br /&gt;
[[File:GoogleCredentialsUserData.png|none|thumb|600x600px|/GoogleCredentialsUserData.png|/GoogleCredentialsUserData.png]]&lt;br /&gt;
Configure the consent screen of the interactive authorization.&lt;br /&gt;
[[File:GoogleOAuthConsentScreen.png|none|thumb|600x600px|/GoogleOAuthConsentScreen.png|/GoogleOAuthConsentScreen.png]]&lt;br /&gt;
Specify the permissions that need to be authorized by the user.&lt;br /&gt;
[[File:GoogleOAuthScopes.png|none|thumb|600x600px|/GoogleOAuthScopes.png|/GoogleOAuthScopes.png]]&lt;br /&gt;
Its mail.google.com in general.&lt;br /&gt;
[[File:GoogleScopeMailGoogleCom.png|none|thumb|600x600px|/GoogleScopeMailGoogleCom.png|/GoogleScopeMailGoogleCom.png]]&lt;br /&gt;
And its to send email on the users behalf.&lt;br /&gt;
[[File:GoogleScopeAuthGmailSend.png|none|thumb|600x600px|/GoogleScopeAuthGmailSend.png|/GoogleScopeAuthGmailSend.png]]&lt;br /&gt;
These are the scopes needed.&lt;br /&gt;
[[File:GoogleScopes.png|none|thumb|600x600px|/GoogleScopes.png|/GoogleScopes.png]]&lt;br /&gt;
Ask client credentials for Web type application.&lt;br /&gt;
[[File:GoogleOAuthClientID.png|none|thumb|600x600px|/GoogleOAuthClientID.png|/GoogleOAuthClientID.png]]&lt;br /&gt;
Tell all redirect URIs that the PBX and the apps will be using during interactive authorization.&lt;br /&gt;
[[File:GoogleRedirectURIs.png|none|thumb|600x600px|/GoogleRedirectURIs.png|/GoogleRedirectURIs.png]]&lt;br /&gt;
Download the credentials. This json file contains all information for OAuth2 configuration.&lt;br /&gt;
[[File:GoogleClientCredentialsDownload.png|none|thumb|600x600px|/GoogleClientCredentialsDownload.png|/GoogleClientCredentialsDownload.png]]&lt;br /&gt;
Customize the OAuth consent screen&lt;br /&gt;
[[File:GoogleOAuthConsentScreenSettings.png|none|thumb|600x600px|/GoogleOAuthConsentScreenSettings.png|/GoogleOAuthConsentScreenSettings.png]]&lt;br /&gt;
Start the customization wizard.&lt;br /&gt;
[[File:GoogleConsentScreenWizard.png|none|thumb|600x600px|/GoogleConsentScreenWizard.png|/GoogleConsentScreenWizard.png]]&lt;br /&gt;
Choose which users may authorize.&lt;br /&gt;
[[File:GoogleAudienceExternal.png|none|thumb|600x600px|/GoogleAudienceExternal.png|/GoogleAudienceExternal.png]]&lt;br /&gt;
Google workspace users may choose internal audience. Users not in Google workspace proceed with external.&lt;br /&gt;
[[File:GoogleContactInformation.png|none|thumb|600x600px|/GoogleContactInformation.png|/GoogleContactInformation.png]]&lt;br /&gt;
Add a test user.&lt;br /&gt;
[[File:GoogleTestUserAdded.png|none|thumb|600x600px|/GoogleTestUserAdded.png|/GoogleTestUserAdded.png]]&lt;br /&gt;
The OAuth2 parameters can be filled in with the information from the json file downloaded above. Authorize e-mail access one time and send a test mail to verify everything went well.&lt;br /&gt;
[[File:OAuth2InteractiveGmail.png|none|thumb|600x600px|/OAuth2InteractiveGmail.png|/OAuth2InteractiveGmail.png]]&lt;br /&gt;
&lt;br /&gt;
== Generic ==&lt;br /&gt;
&lt;br /&gt;
For other e-mail providers the client secret post OAuth2 flow may be configured in a generic way. Details need to be supplied by the e-mail provider.&lt;br /&gt;
[[File:OAuth2ClientSecretPost.png|none|thumb|600x600px|/OAuth2ClientSecretPost.png|/OAuth2ClientSecretPost.png]]&lt;br /&gt;
The private key jwt OAuth2 flow can be configured generically as well.&lt;br /&gt;
[[File:OAuth2PrivateKeyJWT.png|none|thumb|600x600px|/OAuth2PrivateKeyJWT.png|/OAuth2PrivateKeyJWT.png]]&lt;/div&gt;</summary>
		<author><name>Tmo</name></author>
	</entry>
	<entry>
		<id>https://wiki.innovaphone.com/index.php?title=Howto16r1:Configure_OAuth2_E-Mail&amp;diff=78152</id>
		<title>Howto16r1:Configure OAuth2 E-Mail</title>
		<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=Howto16r1:Configure_OAuth2_E-Mail&amp;diff=78152"/>
		<updated>2025-10-03T08:16:53Z</updated>

		<summary type="html">&lt;p&gt;Tmo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{FIXME|reason=This product is in the beta phase and is not yet finished}}&lt;br /&gt;
&lt;br /&gt;
innovaphone PBX and apps can be configured to send E-Mails for various subjects and purposes. Major E-Mail providers intent to discontinue the username/password authentication schemes in favour of OAuth2. PBX and Apps version 16r1 does support OAuth2 authentication for SMTP. Here is a step by step guide how to set up OAuth2 support in Microsoft 365 through the Azure Portal and how to set it up on a Google Gmail account in the Google Cloud Console.&lt;br /&gt;
&lt;br /&gt;
== Microsoft 365 ==&lt;br /&gt;
Log in to Microsoft Azure Portal (&amp;lt;nowiki&amp;gt;https://portal.azure.com&amp;lt;/nowiki&amp;gt;) and go to Microsoft Entra ID.&lt;br /&gt;
[[File:AzureMicrosoftEntraID.png|none|thumb|600x600px|/AzureMicrosoftEntraID.png|/AzureMicrosoftEntraID.png]]&lt;br /&gt;
Add a new app registration to create client credentials.&lt;br /&gt;
[[File:AzureAddAppRegistration.png|none|thumb|600x600px|/AzureAddAppRegistration.png|/AzureAddAppRegistration.png]]&lt;br /&gt;
Register the application and maybe already fill in the redirect URI for Web based application type to path OAUTH2-CLIENT/auth.htm at the PBX.&lt;br /&gt;
[[File:AzureRegisterAnApplication.png|none|thumb|600x600px|/AzureRegisterAnApplication.png|/AzureRegisterAnApplication.png]]&lt;br /&gt;
App registration is complete. Client ID and tenant needs to be configured at the PBX and every app that will be sending e-mails.&lt;br /&gt;
[[File:AzureApp.png|none|thumb|600x600px|/AzureApp.png|/AzureApp.png]]&lt;br /&gt;
Create a client secret.&lt;br /&gt;
[[File:AzureAddClientSecret.png|none|thumb|600x600px|/AzureAddClientSecret.png|/AzureAddClientSecret.png]]&lt;br /&gt;
Copy the client secret. It also needs to be configured at the PBX and every app that will be sending e-mails.&lt;br /&gt;
[[File:AzureCopyClientSecret.png|none|thumb|600x600px|/AzureCopyClientSecret.png|/AzureCopyClientSecret.png]]&lt;br /&gt;
Add permissions located in APIs my organization uses.&lt;br /&gt;
[[File:AzureAddApiPermissionMyOrganization.png|none|thumb|600x600px|/AzureAddApiPermissionMyOrganization.png|/AzureAddApiPermissionMyOrganization.png]]&lt;br /&gt;
More precisely located in Office 365 Exchange Online.&lt;br /&gt;
[[File:AzureAddApiPermissionExchange.png|none|thumb|600x600px|/AzureAddApiPermissionExchange.png|/AzureAddApiPermissionExchange.png]]&lt;br /&gt;
And there in the application permissions.&lt;br /&gt;
[[File:AzureAddApiExchangeApplication.png|none|thumb|600x600px|/AzureAddApiExchangeApplication.png|/AzureAddApiExchangeApplication.png]]&lt;br /&gt;
Namely SMTP Mail.Send.&lt;br /&gt;
[[File:AzureAddApiSendMailAsUser.png|none|thumb|600x600px|/AzureAddApiSendMailAsUser.png|/AzureAddApiSendMailAsUser.png]]&lt;br /&gt;
Grant admin permission for Mail.Send.&lt;br /&gt;
[[File:AzureGrantApiPermissions.png|none|thumb|600x600px|/AzureGrantApiPermissions.png|/AzureGrantApiPermissions.png]]&lt;br /&gt;
API permissions are now granted.&lt;br /&gt;
[[File:AzureApiPermissionsGranted.png|none|thumb|600x600px|/AzureApiPermissionsGranted.png|/AzureApiPermissionsGranted.png]]&lt;br /&gt;
Tell all redirect URIs that the PBX and the apps will be using during interactive authorization.&lt;br /&gt;
[[File:AzureRedirectUris.png|none|thumb|600x600px|/AzureRedirectUris.png|/AzureRedirectUris.png]]&lt;br /&gt;
Allow public client flows of OAuth2. Resource Owner Password Credentials Flow has the advantage that it doesn&#039;t need interactive authorization.&lt;br /&gt;
[[File:AzureAllowPublicClientFlows.png|none|thumb|600x600px|/AzureAllowPublicClientFlows.png|/AzureAllowPublicClientFlows.png]]&lt;br /&gt;
Log in to the Microsoft 365 admin center (https://admin.cloud.microsoft).&lt;br /&gt;
[[File:MS365AdminCenter.png|none|thumb|600x600px|/MS365AdminCenter.png|/MS365AdminCenter.png]]&lt;br /&gt;
Make sure that Microsoft 365 licenses are assigned to your user.&lt;br /&gt;
[[File:MS365UserLicenses.png|none|thumb|600x600px|/MS365UserLicenses.png|/MS365UserLicenses.png]]&lt;br /&gt;
Set your user active.&lt;br /&gt;
[[File:MS365ActiveUsers.png|none|thumb|600x600px|/MS365ActiveUsers.png|/MS365ActiveUsers.png]]&lt;br /&gt;
Locate the Mail tab of your user.&lt;br /&gt;
[[File:MS365UserEMail.png|none|thumb|600x600px|/MS365UserEMail.png|/MS365UserEMail.png]]&lt;br /&gt;
Allow authenticated SMTP.&lt;br /&gt;
[[File:MS365AuthenticatedSMTP.png|none|thumb|600x600px|/MS365AuthenticatedSMTP.png|/MS365AuthenticatedSMTP.png]]&lt;br /&gt;
Login to the Exchange admin center (&amp;lt;nowiki&amp;gt;https://admin.exchange.microsoft.com&amp;lt;/nowiki&amp;gt;).&lt;br /&gt;
[[File:ExchangeAdminCenter.png|none|thumb|600x600px|/ExchangeAdminCenter.png|/ExchangeAdminCenter.png]]&lt;br /&gt;
Remove deactivation of the SMTP AUTH protocol.&lt;br /&gt;
[[File:ExchangeRemoveDeavtivatedOAuth2.png|none|thumb|600x600px|/ExchangeRemoveDeavtivatedOAuth2.png|/ExchangeRemoveDeavtivatedOAuth2.png]]&lt;br /&gt;
With this Microsoft setup the OAuth2 configuration for the resource owner password credentials flow can be filled in as follows. &lt;br /&gt;
[[File:OAuth2ResourceOwnerPasswordCredentials.png|none|thumb|600x600px|/OAuth2ResourceOwnerPasswordCredentials.png|/OAuth2ResourceOwnerPasswordCredentials.png]]&lt;br /&gt;
For interactive authorization this is the OAuth2 configuration. Authorize e-mail access one time and send a test mail to verify everything went well.&lt;br /&gt;
[[File:OAuth2InteractiveAuthorization.png|none|thumb|600x600px|/OAuth2InteractiveAuthorization.png|/OAuth2InteractiveAuthorization.png]]&lt;br /&gt;
&lt;br /&gt;
== Gmail ==&lt;br /&gt;
Login to the Google Cloud Console (https://console.cloud.google.com), select a project, New project.&lt;br /&gt;
[[File:GoogleSelectProject.png|none|thumb|600x600px|/GoogleSelectProject.png|/GoogleSelectProject.png]]&lt;br /&gt;
Create the project.&lt;br /&gt;
[[File:GoogleCreateProject.png|none|thumb|600x600px|/GoogleCreateProject.png|/GoogleCreateProject.png]]&lt;br /&gt;
Client credentials will be created in this project.&lt;br /&gt;
[[File:GoogleProjectCreated.png|none|thumb|600x600px|/GoogleProjectCreated.png|/GoogleProjectCreated.png]]&lt;br /&gt;
From the library specify the APIs needed to access.&lt;br /&gt;
[[File:GoogleApisServicesFromLibrary.png|none|thumb|600x600px|/GoogleApisServicesFromLibrary.png|/GoogleApisServicesFromLibrary.png]]&lt;br /&gt;
These are in the Gmail API.&lt;br /&gt;
[[File:GoogleApisServicesApiLibrary.png|none|thumb|600x600px|/GoogleApisServicesApiLibrary.png|/GoogleApisServicesApiLibrary.png]]&lt;br /&gt;
Choose the Gmail API and enable it.&lt;br /&gt;
[[File:GoogleGmailApis.png|none|thumb|600x600px|/GoogleGmailApis.png|/GoogleGmailApis.png]]&lt;br /&gt;
Credentials need to be created.&lt;br /&gt;
[[File:GoogleGmailApiAdded.png|none|thumb|600x600px|/GoogleGmailApiAdded.png|/GoogleGmailApiAdded.png]]&lt;br /&gt;
Invoke the help me choose wizard.&lt;br /&gt;
[[File:GoogleCreateCredentialsHelpMeChoose.png|none|thumb|600x600px|/GoogleCreateCredentialsHelpMeChoose.png|/GoogleCreateCredentialsHelpMeChoose.png]]&lt;br /&gt;
User data access is needed.&lt;br /&gt;
[[File:GoogleCredentialsUserData.png|none|thumb|600x600px|/GoogleCredentialsUserData.png|/GoogleCredentialsUserData.png]]&lt;br /&gt;
Configure the consent screen of the interactive authorization.&lt;br /&gt;
[[File:GoogleOAuthConsentScreen.png|none|thumb|600x600px|/GoogleOAuthConsentScreen.png|/GoogleOAuthConsentScreen.png]]&lt;br /&gt;
Specify the permissions that need to be authorized by the user.&lt;br /&gt;
[[File:GoogleOAuthScopes.png|none|thumb|600x600px|/GoogleOAuthScopes.png|/GoogleOAuthScopes.png]]&lt;br /&gt;
Its mail.google.com in general.&lt;br /&gt;
[[File:GoogleScopeMailGoogleCom.png|none|thumb|600x600px|/GoogleScopeMailGoogleCom.png|/GoogleScopeMailGoogleCom.png]]&lt;br /&gt;
And its to send email on the users behalf.&lt;br /&gt;
[[File:GoogleScopeAuthGmailSend.png|none|thumb|600x600px|/GoogleScopeAuthGmailSend.png|/GoogleScopeAuthGmailSend.png]]&lt;br /&gt;
These are the scopes needed.&lt;br /&gt;
[[File:GoogleScopes.png|none|thumb|600x600px|/GoogleScopes.png|/GoogleScopes.png]]&lt;br /&gt;
Ask client credentials for Web type application.&lt;br /&gt;
[[File:GoogleOAuthClientID.png|none|thumb|600x600px|/GoogleOAuthClientID.png|/GoogleOAuthClientID.png]]&lt;br /&gt;
Tell all redirect URIs that the PBX and the apps will be using during interactive authorization.&lt;br /&gt;
[[File:GoogleRedirectURIs.png|none|thumb|600x600px|/GoogleRedirectURIs.png|/GoogleRedirectURIs.png]]&lt;br /&gt;
Download the credentials. This json file contains all information for OAuth2 configuration.&lt;br /&gt;
[[File:GoogleClientCredentialsDownload.png|none|thumb|600x600px|/GoogleClientCredentialsDownload.png|/GoogleClientCredentialsDownload.png]]&lt;br /&gt;
Customize the OAuth consent screen&lt;br /&gt;
[[File:GoogleOAuthConsentScreenSettings.png|none|thumb|600x600px|/GoogleOAuthConsentScreenSettings.png|/GoogleOAuthConsentScreenSettings.png]]&lt;br /&gt;
Start the customization wizard.&lt;br /&gt;
[[File:GoogleConsentScreenWizard.png|none|thumb|600x600px|/GoogleConsentScreenWizard.png|/GoogleConsentScreenWizard.png]]&lt;br /&gt;
Choose which users may authorize.&lt;br /&gt;
[[File:GoogleAudienceExternal.png|none|thumb|600x600px|/GoogleAudienceExternal.png|/GoogleAudienceExternal.png]]&lt;br /&gt;
Google workspace users may choose internal audience. Users not in Google workspace proceed with external.&lt;br /&gt;
[[File:GoogleContactInformation.png|none|thumb|600x600px|/GoogleContactInformation.png|/GoogleContactInformation.png]]&lt;br /&gt;
Add a test user.&lt;br /&gt;
[[File:GoogleTestUserAdded.png|none|thumb|600x600px|/GoogleTestUserAdded.png|/GoogleTestUserAdded.png]]&lt;br /&gt;
The OAuth2 parameters can be filled in with the information from the json file downloaded above.&lt;br /&gt;
[[File:OAuth2InteractiveGmail.png|none|thumb|600x600px|/OAuth2InteractiveGmail.png|/OAuth2InteractiveGmail.png]]&lt;br /&gt;
&lt;br /&gt;
== Generic ==&lt;br /&gt;
&lt;br /&gt;
For other e-mail providers the client secret post OAuth2 flow may be configured in a generic way. Details need to be supplied by the e-mail provider.&lt;br /&gt;
[[File:OAuth2ClientSecretPost.png|none|thumb|600x600px|/OAuth2ClientSecretPost.png|/OAuth2ClientSecretPost.png]]&lt;br /&gt;
The private key jwt OAuth2 flow can be configured generically as well.&lt;br /&gt;
[[File:OAuth2PrivateKeyJWT.png|none|thumb|600x600px|/OAuth2PrivateKeyJWT.png]]&lt;/div&gt;</summary>
		<author><name>Tmo</name></author>
	</entry>
	<entry>
		<id>https://wiki.innovaphone.com/index.php?title=Howto16r1:Configure_OAuth2_E-Mail&amp;diff=78151</id>
		<title>Howto16r1:Configure OAuth2 E-Mail</title>
		<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=Howto16r1:Configure_OAuth2_E-Mail&amp;diff=78151"/>
		<updated>2025-10-03T08:16:26Z</updated>

		<summary type="html">&lt;p&gt;Tmo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{FIXME|reason=This product is in the beta phase and is not yet finished}}&lt;br /&gt;
&lt;br /&gt;
innovaphone PBX and apps can be configured to send E-Mails for various subjects and purposes. Major E-Mail providers intent to discontinue the username/password authentication schemes in favour of OAuth2. PBX and Apps version 16r1 does support OAuth2 authentication for SMTP. Here is a step by step guide how to set up OAuth2 support in Microsoft 365 through the Azure Portal and how to set it up on a Google Gmail account in the Google Cloud Console.&lt;br /&gt;
&lt;br /&gt;
== Microsoft 365 ==&lt;br /&gt;
Log in to Microsoft Azure Portal (&amp;lt;nowiki&amp;gt;https://portal.azure.com&amp;lt;/nowiki&amp;gt;) and go to Microsoft Entra ID.&lt;br /&gt;
[[File:AzureMicrosoftEntraID.png|none|thumb|600x600px|/AzureMicrosoftEntraID.png|/AzureMicrosoftEntraID.png]]&lt;br /&gt;
Add a new app registration to create client credentials.&lt;br /&gt;
[[File:AzureAddAppRegistration.png|none|thumb|600x600px|/AzureAddAppRegistration.png|/AzureAddAppRegistration.png]]&lt;br /&gt;
Register the application and maybe already fill in the redirect URI for Web based application type to path OAUTH2-CLIENT/auth.htm at the PBX.&lt;br /&gt;
[[File:AzureRegisterAnApplication.png|none|thumb|600x600px|/AzureRegisterAnApplication.png|/AzureRegisterAnApplication.png]]&lt;br /&gt;
App registration is complete. Client ID and tenant needs to be configured at the PBX and every app that will be sending e-mails.&lt;br /&gt;
[[File:AzureApp.png|none|thumb|600x600px|/AzureApp.png|/AzureApp.png]]&lt;br /&gt;
Create a client secret.&lt;br /&gt;
[[File:AzureAddClientSecret.png|none|thumb|600x600px|/AzureAddClientSecret.png|/AzureAddClientSecret.png]]&lt;br /&gt;
Copy the client secret. It also needs to be configured at the PBX and every app that will be sending e-mails.&lt;br /&gt;
[[File:AzureCopyClientSecret.png|none|thumb|600x600px|/AzureCopyClientSecret.png|/AzureCopyClientSecret.png]]&lt;br /&gt;
Add permissions located in APIs my organization uses.&lt;br /&gt;
[[File:AzureAddApiPermissionMyOrganization.png|none|thumb|600x600px|/AzureAddApiPermissionMyOrganization.png|/AzureAddApiPermissionMyOrganization.png]]&lt;br /&gt;
More precisely located in Office 365 Exchange Online.&lt;br /&gt;
[[File:AzureAddApiPermissionExchange.png|none|thumb|600x600px|/AzureAddApiPermissionExchange.png|/AzureAddApiPermissionExchange.png]]&lt;br /&gt;
And there in the application permissions.&lt;br /&gt;
[[File:AzureAddApiExchangeApplication.png|none|thumb|600x600px|/AzureAddApiExchangeApplication.png|/AzureAddApiExchangeApplication.png]]&lt;br /&gt;
Namely SMTP Mail.Send.&lt;br /&gt;
[[File:AzureAddApiSendMailAsUser.png|none|thumb|600x600px|/AzureAddApiSendMailAsUser.png|/AzureAddApiSendMailAsUser.png]]&lt;br /&gt;
Grant admin permission for Mail.Send.&lt;br /&gt;
[[File:AzureGrantApiPermissions.png|none|thumb|600x600px|/AzureGrantApiPermissions.png|/AzureGrantApiPermissions.png]]&lt;br /&gt;
API permissions are now granted.&lt;br /&gt;
[[File:AzureApiPermissionsGranted.png|none|thumb|600x600px|/AzureApiPermissionsGranted.png|/AzureApiPermissionsGranted.png]]&lt;br /&gt;
Tell all redirect URIs that the PBX and the apps will be using during interactive authorization.&lt;br /&gt;
[[File:AzureRedirectUris.png|none|thumb|600x600px|/AzureRedirectUris.png|/AzureRedirectUris.png]]&lt;br /&gt;
Allow public client flows of OAuth2. Resource Owner Password Credentials Flow has the advantage that it doesn&#039;t need interactive authorization.&lt;br /&gt;
[[File:AzureAllowPublicClientFlows.png|none|thumb|600x600px|/AzureAllowPublicClientFlows.png|/AzureAllowPublicClientFlows.png]]&lt;br /&gt;
Log in to the Microsoft 365 admin center (https://admin.cloud.microsoft).&lt;br /&gt;
[[File:MS365AdminCenter.png|none|thumb|600x600px|/MS365AdminCenter.png|/MS365AdminCenter.png]]&lt;br /&gt;
Make sure that Microsoft 365 licenses are assigned to your user.&lt;br /&gt;
[[File:MS365UserLicenses.png|none|thumb|600x600px|/MS365UserLicenses.png|/MS365UserLicenses.png]]&lt;br /&gt;
Set your user active.&lt;br /&gt;
[[File:MS365ActiveUsers.png|none|thumb|600x600px|/MS365ActiveUsers.png|/MS365ActiveUsers.png]]&lt;br /&gt;
Locate the Mail tab of your user.&lt;br /&gt;
[[File:MS365UserEMail.png|none|thumb|600x600px|/MS365UserEMail.png|/MS365UserEMail.png]]&lt;br /&gt;
Allow authenticated SMTP.&lt;br /&gt;
[[File:MS365AuthenticatedSMTP.png|none|thumb|600x600px|/MS365AuthenticatedSMTP.png|/MS365AuthenticatedSMTP.png]]&lt;br /&gt;
Login to the Exchange admin center (&amp;lt;nowiki&amp;gt;https://admin.exchange.microsoft.com&amp;lt;/nowiki&amp;gt;).&lt;br /&gt;
[[File:ExchangeAdminCenter.png|none|thumb|600x600px|/ExchangeAdminCenter.png|/ExchangeAdminCenter.png]]&lt;br /&gt;
Remove deactivation of the SMTP AUTH protocol.&lt;br /&gt;
[[File:ExchangeRemoveDeavtivatedOAuth2.png|none|thumb|600x600px|/ExchangeRemoveDeavtivatedOAuth2.png|/ExchangeRemoveDeavtivatedOAuth2.png]]&lt;br /&gt;
With this Microsoft setup the OAuth2 configuration for the resource owner password credentials flow can be filled in as follows. &lt;br /&gt;
[[File:OAuth2ResourceOwnerPasswordCredentials.png|none|thumb|600x600px|/OAuth2ResourceOwnerPasswordCredentials.png|/OAuth2ResourceOwnerPasswordCredentials.png]]&lt;br /&gt;
For interactive authorization this is the OAuth2 configuration. Authorize e-mail access one time and send a test mail to verify everything went well.&lt;br /&gt;
[[File:OAuth2InteractiveAuthorization.png|none|thumb|600x600px|/OAuth2InteractiveAuthorization.png|/OAuth2InteractiveAuthorization.png]]&lt;br /&gt;
&lt;br /&gt;
== Gmail ==&lt;br /&gt;
Login to the Google Cloud Console (https://console.cloud.google.com), select a project, New project.&lt;br /&gt;
[[File:GoogleSelectProject.png|none|thumb|600x600px|/GoogleSelectProject.png|/GoogleSelectProject.png]]&lt;br /&gt;
Create the project.&lt;br /&gt;
[[File:GoogleCreateProject.png|none|thumb|600x600px|/GoogleCreateProject.png|/GoogleCreateProject.png]]&lt;br /&gt;
Client credentials will be created in this project.&lt;br /&gt;
[[File:GoogleProjectCreated.png|none|thumb|600x600px|/GoogleProjectCreated.png|/GoogleProjectCreated.png]]&lt;br /&gt;
From the library specify the APIs needed to access.&lt;br /&gt;
[[File:GoogleApisServicesFromLibrary.png|none|thumb|600x600px|/GoogleApisServicesFromLibrary.png|/GoogleApisServicesFromLibrary.png]]&lt;br /&gt;
These are in the Gmail API.&lt;br /&gt;
[[File:GoogleApisServicesApiLibrary.png|none|thumb|600x600px|/GoogleApisServicesApiLibrary.png|/GoogleApisServicesApiLibrary.png]]&lt;br /&gt;
Choose the Gmail API and enable it.&lt;br /&gt;
[[File:GoogleGmailApis.png|none|thumb|600x600px|/GoogleGmailApis.png|/GoogleGmailApis.png]]&lt;br /&gt;
Credentials need to be created.&lt;br /&gt;
[[File:GoogleGmailApiAdded.png|none|thumb|600x600px|/GoogleGmailApiAdded.png|/GoogleGmailApiAdded.png]]&lt;br /&gt;
Invoke the help me choose wizard.&lt;br /&gt;
[[File:GoogleCreateCredentialsHelpMeChoose.png|none|thumb|600x600px|/GoogleCreateCredentialsHelpMeChoose.png|/GoogleCreateCredentialsHelpMeChoose.png]]&lt;br /&gt;
User data access is needed.&lt;br /&gt;
[[File:GoogleCredentialsUserData.png|none|thumb|600x600px|/GoogleCredentialsUserData.png|/GoogleCredentialsUserData.png]]&lt;br /&gt;
Configure the consent screen of the interactive authorization.&lt;br /&gt;
[[File:GoogleOAuthConsentScreen.png|none|thumb|600x600px|/GoogleOAuthConsentScreen.png|/GoogleOAuthConsentScreen.png]]&lt;br /&gt;
Specify the permissions that need to be authorized by the user.&lt;br /&gt;
[[File:GoogleOAuthScopes.png|none|thumb|600x600px|/GoogleOAuthScopes.png|/GoogleOAuthScopes.png]]&lt;br /&gt;
Its mail.google.com in general.&lt;br /&gt;
[[File:GoogleScopeMailGoogleCom.png|none|thumb|600x600px|/GoogleScopeMailGoogleCom.png|/GoogleScopeMailGoogleCom.png]]&lt;br /&gt;
And its to send email on the users behalf.&lt;br /&gt;
[[File:GoogleScopeAuthGmailSend.png|none|thumb|600x600px|/GoogleScopeAuthGmailSend.png|/GoogleScopeAuthGmailSend.png]]&lt;br /&gt;
These are the scopes needed.&lt;br /&gt;
[[File:GoogleScopes.png|none|thumb|600x600px|/GoogleScopes.png|/GoogleScopes.png]]&lt;br /&gt;
Ask client credentials for Web type application.&lt;br /&gt;
[[File:GoogleOAuthClientID.png|none|thumb|600x600px|/GoogleOAuthClientID.png|/GoogleOAuthClientID.png]]&lt;br /&gt;
Tell all redirect URIs that the PBX and the apps will be using during interactive authorization.&lt;br /&gt;
[[File:GoogleRedirectURIs.png|none|thumb|600x600px|/GoogleRedirectURIs.png|/GoogleRedirectURIs.png]]&lt;br /&gt;
Download the credentials. This json file contains all information for OAuth2 configuration.&lt;br /&gt;
[[File:GoogleClientCredentialsDownload.png|none|thumb|600x600px|/GoogleClientCredentialsDownload.png|/GoogleClientCredentialsDownload.png]]&lt;br /&gt;
Customize the OAuth consent screen&lt;br /&gt;
[[File:GoogleOAuthConsentScreenSettings.png|none|thumb|600x600px|/GoogleOAuthConsentScreenSettings.png|/GoogleOAuthConsentScreenSettings.png]]&lt;br /&gt;
Start the customization wizard.&lt;br /&gt;
[[File:GoogleConsentScreenWizard.png|none|thumb|600x600px|/GoogleConsentScreenWizard.png|/GoogleConsentScreenWizard.png]]&lt;br /&gt;
Choose which users may authorize.&lt;br /&gt;
[[File:GoogleAudienceExternal.png|none|thumb|600x600px|/GoogleAudienceExternal.png|/GoogleAudienceExternal.png]]&lt;br /&gt;
Google workspace users may choose internal audience. Users not in Google workspace proceed with external.&lt;br /&gt;
[[File:GoogleContactInformation.png|none|thumb|600x600px|/GoogleContactInformation.png|/GoogleContactInformation.png]]&lt;br /&gt;
Add a test user.&lt;br /&gt;
[[File:GoogleTestUserAdded.png|none|thumb|600x600px|/GoogleTestUserAdded.png|/GoogleTestUserAdded.png]]&lt;br /&gt;
The OAuth2 parameters can be filled in with the information from the json file downloaded above.&lt;br /&gt;
[[File:OAuth2InteractiveGmail.png|none|thumb|600x600px|/OAuth2InteractiveGmail.png|/OAuth2InteractiveGmail.png]]&lt;br /&gt;
&lt;br /&gt;
== Generic ==&lt;br /&gt;
&lt;br /&gt;
For other e-mail providers the client secret post OAuth2 flow may be configured in a generic way. Details need to be supplied by the e-mail provider.&lt;br /&gt;
[[File:OAuth2ClientSecretPost.png|none|thumb|600x600px|/OAuth2ClientSecretPost.png|/OAuth2ClientSecretPost.png]]&lt;br /&gt;
The private key jwt OAuth2 flow can be configured generically as well.&lt;br /&gt;
[[File:OAuth2PrivateKeyJWT.png|none|thumb|600x600px]]&lt;/div&gt;</summary>
		<author><name>Tmo</name></author>
	</entry>
	<entry>
		<id>https://wiki.innovaphone.com/index.php?title=File:OAuth2PrivateKeyJWT.png&amp;diff=78150</id>
		<title>File:OAuth2PrivateKeyJWT.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=File:OAuth2PrivateKeyJWT.png&amp;diff=78150"/>
		<updated>2025-10-03T08:15:18Z</updated>

		<summary type="html">&lt;p&gt;Tmo: Tmo uploaded a new version of File:OAuth2PrivateKeyJWT.png&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;OAuth2 Private Key JWT&lt;/div&gt;</summary>
		<author><name>Tmo</name></author>
	</entry>
	<entry>
		<id>https://wiki.innovaphone.com/index.php?title=Howto16r1:Configure_OAuth2_E-Mail&amp;diff=78149</id>
		<title>Howto16r1:Configure OAuth2 E-Mail</title>
		<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=Howto16r1:Configure_OAuth2_E-Mail&amp;diff=78149"/>
		<updated>2025-10-03T08:14:05Z</updated>

		<summary type="html">&lt;p&gt;Tmo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{FIXME|reason=This product is in the beta phase and is not yet finished}}&lt;br /&gt;
&lt;br /&gt;
innovaphone PBX and apps can be configured to send E-Mails for various subjects and purposes. Major E-Mail providers intent to discontinue the username/password authentication schemes in favour of OAuth2. PBX and Apps version 16r1 does support OAuth2 authentication for SMTP. Here is a step by step guide how to set up OAuth2 support in Microsoft 365 through the Azure Portal and how to set it up on a Google Gmail account in the Google Cloud Console.&lt;br /&gt;
&lt;br /&gt;
== Microsoft 365 ==&lt;br /&gt;
Log in to Microsoft Azure Portal (&amp;lt;nowiki&amp;gt;https://portal.azure.com&amp;lt;/nowiki&amp;gt;) and go to Microsoft Entra ID.&lt;br /&gt;
[[File:AzureMicrosoftEntraID.png|none|thumb|600x600px|/AzureMicrosoftEntraID.png|/AzureMicrosoftEntraID.png]]&lt;br /&gt;
Add a new app registration to create client credentials.&lt;br /&gt;
[[File:AzureAddAppRegistration.png|none|thumb|600x600px|/AzureAddAppRegistration.png|/AzureAddAppRegistration.png]]&lt;br /&gt;
Register the application and maybe already fill in the redirect URI for Web based application type to path OAUTH2-CLIENT/auth.htm at the PBX.&lt;br /&gt;
[[File:AzureRegisterAnApplication.png|none|thumb|600x600px|/AzureRegisterAnApplication.png|/AzureRegisterAnApplication.png]]&lt;br /&gt;
App registration is complete. Client ID and tenant needs to be configured at the PBX and every app that will be sending e-mails.&lt;br /&gt;
[[File:AzureApp.png|none|thumb|600x600px|/AzureApp.png|/AzureApp.png]]&lt;br /&gt;
Create a client secret.&lt;br /&gt;
[[File:AzureAddClientSecret.png|none|thumb|600x600px|/AzureAddClientSecret.png|/AzureAddClientSecret.png]]&lt;br /&gt;
Copy the client secret. It also needs to be configured at the PBX and every app that will be sending e-mails.&lt;br /&gt;
[[File:AzureCopyClientSecret.png|none|thumb|600x600px|/AzureCopyClientSecret.png|/AzureCopyClientSecret.png]]&lt;br /&gt;
Add permissions located in APIs my organization uses.&lt;br /&gt;
[[File:AzureAddApiPermissionMyOrganization.png|none|thumb|600x600px|/AzureAddApiPermissionMyOrganization.png|/AzureAddApiPermissionMyOrganization.png]]&lt;br /&gt;
More precisely located in Office 365 Exchange Online.&lt;br /&gt;
[[File:AzureAddApiPermissionExchange.png|none|thumb|600x600px|/AzureAddApiPermissionExchange.png|/AzureAddApiPermissionExchange.png]]&lt;br /&gt;
And there in the application permissions.&lt;br /&gt;
[[File:AzureAddApiExchangeApplication.png|none|thumb|600x600px|/AzureAddApiExchangeApplication.png|/AzureAddApiExchangeApplication.png]]&lt;br /&gt;
Namely SMTP Mail.Send.&lt;br /&gt;
[[File:AzureAddApiSendMailAsUser.png|none|thumb|600x600px|/AzureAddApiSendMailAsUser.png|/AzureAddApiSendMailAsUser.png]]&lt;br /&gt;
Grant admin permission for Mail.Send.&lt;br /&gt;
[[File:AzureGrantApiPermissions.png|none|thumb|600x600px|/AzureGrantApiPermissions.png|/AzureGrantApiPermissions.png]]&lt;br /&gt;
API permissions are now granted.&lt;br /&gt;
[[File:AzureApiPermissionsGranted.png|none|thumb|600x600px|/AzureApiPermissionsGranted.png|/AzureApiPermissionsGranted.png]]&lt;br /&gt;
Tell all redirect URIs that the PBX and the apps will be using during interactive authorization.&lt;br /&gt;
[[File:AzureRedirectUris.png|none|thumb|600x600px|/AzureRedirectUris.png|/AzureRedirectUris.png]]&lt;br /&gt;
Allow public client flows of OAuth2. Resource Owner Password Credentials Flow has the advantage that it doesn&#039;t need interactive authorization.&lt;br /&gt;
[[File:AzureAllowPublicClientFlows.png|none|thumb|600x600px|/AzureAllowPublicClientFlows.png|/AzureAllowPublicClientFlows.png]]&lt;br /&gt;
Log in to the Microsoft 365 admin center (https://admin.cloud.microsoft).&lt;br /&gt;
[[File:MS365AdminCenter.png|none|thumb|600x600px|/MS365AdminCenter.png|/MS365AdminCenter.png]]&lt;br /&gt;
Make sure that Microsoft 365 licenses are assigned to your user.&lt;br /&gt;
[[File:MS365UserLicenses.png|none|thumb|600x600px|/MS365UserLicenses.png|/MS365UserLicenses.png]]&lt;br /&gt;
Set your user active.&lt;br /&gt;
[[File:MS365ActiveUsers.png|none|thumb|600x600px|/MS365ActiveUsers.png|/MS365ActiveUsers.png]]&lt;br /&gt;
Locate the Mail tab of your user.&lt;br /&gt;
[[File:MS365UserEMail.png|none|thumb|600x600px|/MS365UserEMail.png|/MS365UserEMail.png]]&lt;br /&gt;
Allow authenticated SMTP.&lt;br /&gt;
[[File:MS365AuthenticatedSMTP.png|none|thumb|600x600px|/MS365AuthenticatedSMTP.png|/MS365AuthenticatedSMTP.png]]&lt;br /&gt;
Login to the Exchange admin center (&amp;lt;nowiki&amp;gt;https://admin.exchange.microsoft.com&amp;lt;/nowiki&amp;gt;).&lt;br /&gt;
[[File:ExchangeAdminCenter.png|none|thumb|600x600px|/ExchangeAdminCenter.png|/ExchangeAdminCenter.png]]&lt;br /&gt;
Remove deactivation of the SMTP AUTH protocol.&lt;br /&gt;
[[File:ExchangeRemoveDeavtivatedOAuth2.png|none|thumb|600x600px|/ExchangeRemoveDeavtivatedOAuth2.png|/ExchangeRemoveDeavtivatedOAuth2.png]]&lt;br /&gt;
With this Microsoft setup the OAuth2 configuration for the resource owner password credentials flow can be filled in as follows. &lt;br /&gt;
[[File:OAuth2ResourceOwnerPasswordCredentials.png|none|thumb|600x600px|/OAuth2ResourceOwnerPasswordCredentials.png|/OAuth2ResourceOwnerPasswordCredentials.png]]&lt;br /&gt;
For interactive authorization this is the OAuth2 configuration. Authorize e-mail access one time and send a test mail to verify everything went well.&lt;br /&gt;
[[File:OAuth2InteractiveAuthorization.png|none|thumb|600x600px|/OAuth2InteractiveAuthorization.png|/OAuth2InteractiveAuthorization.png]]&lt;br /&gt;
&lt;br /&gt;
== Gmail ==&lt;br /&gt;
Login to the Google Cloud Console (https://console.cloud.google.com), select a project, New project.&lt;br /&gt;
[[File:GoogleSelectProject.png|none|thumb|600x600px|/GoogleSelectProject.png|/GoogleSelectProject.png]]&lt;br /&gt;
Create the project.&lt;br /&gt;
[[File:GoogleCreateProject.png|none|thumb|600x600px|/GoogleCreateProject.png|/GoogleCreateProject.png]]&lt;br /&gt;
Client credentials will be created in this project.&lt;br /&gt;
[[File:GoogleProjectCreated.png|none|thumb|600x600px|/GoogleProjectCreated.png|/GoogleProjectCreated.png]]&lt;br /&gt;
From the library specify the APIs needed to access.&lt;br /&gt;
[[File:GoogleApisServicesFromLibrary.png|none|thumb|600x600px|/GoogleApisServicesFromLibrary.png|/GoogleApisServicesFromLibrary.png]]&lt;br /&gt;
These are in the Gmail API.&lt;br /&gt;
[[File:GoogleApisServicesApiLibrary.png|none|thumb|600x600px|/GoogleApisServicesApiLibrary.png|/GoogleApisServicesApiLibrary.png]]&lt;br /&gt;
Choose the Gmail API and enable it.&lt;br /&gt;
[[File:GoogleGmailApis.png|none|thumb|600x600px|/GoogleGmailApis.png|/GoogleGmailApis.png]]&lt;br /&gt;
Credentials need to be created.&lt;br /&gt;
[[File:GoogleGmailApiAdded.png|none|thumb|600x600px|/GoogleGmailApiAdded.png|/GoogleGmailApiAdded.png]]&lt;br /&gt;
Invoke the help me choose wizard.&lt;br /&gt;
[[File:GoogleCreateCredentialsHelpMeChoose.png|none|thumb|600x600px|/GoogleCreateCredentialsHelpMeChoose.png|/GoogleCreateCredentialsHelpMeChoose.png]]&lt;br /&gt;
User data access is needed.&lt;br /&gt;
[[File:GoogleCredentialsUserData.png|none|thumb|600x600px|/GoogleCredentialsUserData.png|/GoogleCredentialsUserData.png]]&lt;br /&gt;
Configure the consent screen of the interactive authorization.&lt;br /&gt;
[[File:GoogleOAuthConsentScreen.png|none|thumb|600x600px|/GoogleOAuthConsentScreen.png|/GoogleOAuthConsentScreen.png]]&lt;br /&gt;
Specify the permissions that need to be authorized by the user.&lt;br /&gt;
[[File:GoogleOAuthScopes.png|none|thumb|600x600px|/GoogleOAuthScopes.png|/GoogleOAuthScopes.png]]&lt;br /&gt;
Its mail.google.com in general.&lt;br /&gt;
[[File:GoogleScopeMailGoogleCom.png|none|thumb|600x600px|/GoogleScopeMailGoogleCom.png|/GoogleScopeMailGoogleCom.png]]&lt;br /&gt;
And its to send email on the users behalf.&lt;br /&gt;
[[File:GoogleScopeAuthGmailSend.png|none|thumb|600x600px|/GoogleScopeAuthGmailSend.png|/GoogleScopeAuthGmailSend.png]]&lt;br /&gt;
These are the scopes needed.&lt;br /&gt;
[[File:GoogleScopes.png|none|thumb|600x600px|/GoogleScopes.png|/GoogleScopes.png]]&lt;br /&gt;
Ask client credentials for Web type application.&lt;br /&gt;
[[File:GoogleOAuthClientID.png|none|thumb|600x600px|/GoogleOAuthClientID.png|/GoogleOAuthClientID.png]]&lt;br /&gt;
Tell all redirect URIs that the PBX and the apps will be using during interactive authorization.&lt;br /&gt;
[[File:GoogleRedirectURIs.png|none|thumb|600x600px|/GoogleRedirectURIs.png|/GoogleRedirectURIs.png]]&lt;br /&gt;
Download the credentials. This json file contains all information for OAuth2 configuration.&lt;br /&gt;
[[File:GoogleClientCredentialsDownload.png|none|thumb|600x600px|/GoogleClientCredentialsDownload.png|/GoogleClientCredentialsDownload.png]]&lt;br /&gt;
Customize the OAuth consent screen&lt;br /&gt;
[[File:GoogleOAuthConsentScreenSettings.png|none|thumb|600x600px|/GoogleOAuthConsentScreenSettings.png|/GoogleOAuthConsentScreenSettings.png]]&lt;br /&gt;
Start the customization wizard.&lt;br /&gt;
[[File:GoogleConsentScreenWizard.png|none|thumb|600x600px|/GoogleConsentScreenWizard.png|/GoogleConsentScreenWizard.png]]&lt;br /&gt;
Choose which users may authorize.&lt;br /&gt;
[[File:GoogleAudienceExternal.png|none|thumb|600x600px|/GoogleAudienceExternal.png|/GoogleAudienceExternal.png]]&lt;br /&gt;
Google workspace users may choose internal audience. Users not in Google workspace proceed with external.&lt;br /&gt;
[[File:GoogleContactInformation.png|none|thumb|600x600px|/GoogleContactInformation.png|/GoogleContactInformation.png]]&lt;br /&gt;
Add a test user.&lt;br /&gt;
[[File:GoogleTestUserAdded.png|none|thumb|600x600px|/GoogleTestUserAdded.png|/GoogleTestUserAdded.png]]&lt;br /&gt;
The OAuth2 parameters can be filled in with the information from the json file downloaded above.&lt;br /&gt;
[[File:OAuth2InteractiveGmail.png|none|thumb|600x600px|/OAuth2InteractiveGmail.png|/OAuth2InteractiveGmail.png]]&lt;br /&gt;
&lt;br /&gt;
== Generic ==&lt;br /&gt;
&lt;br /&gt;
For other e-mail providers the client secret post OAuth2 flow may be configured in a generic way. Details need to be supplied by the e-mail provider.&lt;br /&gt;
[[File:OAuth2ClientSecretPost.png|none|thumb|600x600px|/OAuth2ClientSecretPost.png|/OAuth2ClientSecretPost.png]]&lt;br /&gt;
The private key jwt OAuth2 flow can be configured generically as well.&lt;br /&gt;
&lt;br /&gt;
3&lt;/div&gt;</summary>
		<author><name>Tmo</name></author>
	</entry>
	<entry>
		<id>https://wiki.innovaphone.com/index.php?title=File:OAuth2PrivateKeyJWT.png&amp;diff=78148</id>
		<title>File:OAuth2PrivateKeyJWT.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=File:OAuth2PrivateKeyJWT.png&amp;diff=78148"/>
		<updated>2025-10-03T08:11:27Z</updated>

		<summary type="html">&lt;p&gt;Tmo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;OAuth2 Private Key JWT&lt;/div&gt;</summary>
		<author><name>Tmo</name></author>
	</entry>
	<entry>
		<id>https://wiki.innovaphone.com/index.php?title=Howto16r1:Configure_OAuth2_E-Mail&amp;diff=78147</id>
		<title>Howto16r1:Configure OAuth2 E-Mail</title>
		<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=Howto16r1:Configure_OAuth2_E-Mail&amp;diff=78147"/>
		<updated>2025-10-03T07:58:49Z</updated>

		<summary type="html">&lt;p&gt;Tmo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{FIXME|reason=This product is in the beta phase and is not yet finished}}&lt;br /&gt;
&lt;br /&gt;
innovaphone PBX and apps can be configured to send E-Mails for various subjects and purposes. Major E-Mail providers intent to discontinue the username/password authentication schemes in favour of OAuth2. PBX and Apps version 16r1 does support OAuth2 authentication for SMTP. Here is a step by step guide how to set up OAuth2 support in Microsoft 365 through the Azure Portal and how to set it up on a Google Gmail account in the Google Cloud Console.&lt;br /&gt;
&lt;br /&gt;
== Microsoft 365 ==&lt;br /&gt;
Log in to Microsoft Azure Portal (&amp;lt;nowiki&amp;gt;https://portal.azure.com&amp;lt;/nowiki&amp;gt;) and go to Microsoft Entra ID.&lt;br /&gt;
[[File:AzureMicrosoftEntraID.png|none|thumb|600x600px|/AzureMicrosoftEntraID.png|/AzureMicrosoftEntraID.png]]&lt;br /&gt;
Add a new app registration to create client credentials.&lt;br /&gt;
[[File:AzureAddAppRegistration.png|none|thumb|600x600px|/AzureAddAppRegistration.png|/AzureAddAppRegistration.png]]&lt;br /&gt;
Register the application and maybe already fill in the redirect URI for Web based application type to path OAUTH2-CLIENT/auth.htm at the PBX.&lt;br /&gt;
[[File:AzureRegisterAnApplication.png|none|thumb|600x600px|/AzureRegisterAnApplication.png|/AzureRegisterAnApplication.png]]&lt;br /&gt;
App registration is complete. Client ID and tenant needs to be configured at the PBX and every app that will be sending e-mails.&lt;br /&gt;
[[File:AzureApp.png|none|thumb|600x600px|/AzureApp.png|/AzureApp.png]]&lt;br /&gt;
Create a client secret.&lt;br /&gt;
[[File:AzureAddClientSecret.png|none|thumb|600x600px|/AzureAddClientSecret.png|/AzureAddClientSecret.png]]&lt;br /&gt;
Copy the client secret. It also needs to be configured at the PBX and every app that will be sending e-mails.&lt;br /&gt;
[[File:AzureCopyClientSecret.png|none|thumb|600x600px|/AzureCopyClientSecret.png|/AzureCopyClientSecret.png]]&lt;br /&gt;
Add permissions located in APIs my organization uses.&lt;br /&gt;
[[File:AzureAddApiPermissionMyOrganization.png|none|thumb|600x600px|/AzureAddApiPermissionMyOrganization.png|/AzureAddApiPermissionMyOrganization.png]]&lt;br /&gt;
More precisely located in Office 365 Exchange Online.&lt;br /&gt;
[[File:AzureAddApiPermissionExchange.png|none|thumb|600x600px|/AzureAddApiPermissionExchange.png|/AzureAddApiPermissionExchange.png]]&lt;br /&gt;
And there in the application permissions.&lt;br /&gt;
[[File:AzureAddApiExchangeApplication.png|none|thumb|600x600px|/AzureAddApiExchangeApplication.png|/AzureAddApiExchangeApplication.png]]&lt;br /&gt;
Namely SMTP Mail.Send.&lt;br /&gt;
[[File:AzureAddApiSendMailAsUser.png|none|thumb|600x600px|/AzureAddApiSendMailAsUser.png|/AzureAddApiSendMailAsUser.png]]&lt;br /&gt;
Grant admin permission for Mail.Send.&lt;br /&gt;
[[File:AzureGrantApiPermissions.png|none|thumb|600x600px|/AzureGrantApiPermissions.png|/AzureGrantApiPermissions.png]]&lt;br /&gt;
API permissions are now granted.&lt;br /&gt;
[[File:AzureApiPermissionsGranted.png|none|thumb|600x600px|/AzureApiPermissionsGranted.png|/AzureApiPermissionsGranted.png]]&lt;br /&gt;
Tell all redirect URIs that the PBX and the apps will be using during interactive authorization.&lt;br /&gt;
[[File:AzureRedirectUris.png|none|thumb|600x600px|/AzureRedirectUris.png|/AzureRedirectUris.png]]&lt;br /&gt;
Allow public client flows of OAuth2. Resource Owner Password Credentials Flow has the advantage that it doesn&#039;t need interactive authorization.&lt;br /&gt;
[[File:AzureAllowPublicClientFlows.png|none|thumb|600x600px|/AzureAllowPublicClientFlows.png|/AzureAllowPublicClientFlows.png]]&lt;br /&gt;
Log in to the Microsoft 365 admin center (https://admin.cloud.microsoft).&lt;br /&gt;
[[File:MS365AdminCenter.png|none|thumb|600x600px|/MS365AdminCenter.png|/MS365AdminCenter.png]]&lt;br /&gt;
Make sure that Microsoft 365 licenses are assigned to your user.&lt;br /&gt;
[[File:MS365UserLicenses.png|none|thumb|600x600px|/MS365UserLicenses.png|/MS365UserLicenses.png]]&lt;br /&gt;
Set your user active.&lt;br /&gt;
[[File:MS365ActiveUsers.png|none|thumb|600x600px|/MS365ActiveUsers.png|/MS365ActiveUsers.png]]&lt;br /&gt;
Locate the Mail tab of your user.&lt;br /&gt;
[[File:MS365UserEMail.png|none|thumb|600x600px|/MS365UserEMail.png|/MS365UserEMail.png]]&lt;br /&gt;
Allow authenticated SMTP.&lt;br /&gt;
[[File:MS365AuthenticatedSMTP.png|none|thumb|600x600px|/MS365AuthenticatedSMTP.png|/MS365AuthenticatedSMTP.png]]&lt;br /&gt;
Login to the Exchange admin center (&amp;lt;nowiki&amp;gt;https://admin.exchange.microsoft.com&amp;lt;/nowiki&amp;gt;).&lt;br /&gt;
[[File:ExchangeAdminCenter.png|none|thumb|600x600px|/ExchangeAdminCenter.png|/ExchangeAdminCenter.png]]&lt;br /&gt;
Remove deactivation of the SMTP AUTH protocol.&lt;br /&gt;
[[File:ExchangeRemoveDeavtivatedOAuth2.png|none|thumb|600x600px|/ExchangeRemoveDeavtivatedOAuth2.png|/ExchangeRemoveDeavtivatedOAuth2.png]]&lt;br /&gt;
With this Microsoft setup the OAuth2 configuration for the resource owner password credentials flow can be filled in as follows. &lt;br /&gt;
[[File:OAuth2ResourceOwnerPasswordCredentials.png|none|thumb|600x600px|/OAuth2ResourceOwnerPasswordCredentials.png|/OAuth2ResourceOwnerPasswordCredentials.png]]&lt;br /&gt;
For interactive authorization this is the OAuth2 configuration. Authorize e-mail access one time and send a test mail to verify everything went well.&lt;br /&gt;
[[File:OAuth2InteractiveAuthorization.png|none|thumb|600x600px|/OAuth2InteractiveAuthorization.png|/OAuth2InteractiveAuthorization.png]]&lt;br /&gt;
&lt;br /&gt;
== Gmail ==&lt;br /&gt;
Login to the Google Cloud Console (https://console.cloud.google.com), select a project, New project.&lt;br /&gt;
[[File:GoogleSelectProject.png|none|thumb|600x600px|/GoogleSelectProject.png|/GoogleSelectProject.png]]&lt;br /&gt;
Create the project.&lt;br /&gt;
[[File:GoogleCreateProject.png|none|thumb|600x600px|/GoogleCreateProject.png|/GoogleCreateProject.png]]&lt;br /&gt;
Client credentials will be created in this project.&lt;br /&gt;
[[File:GoogleProjectCreated.png|none|thumb|600x600px|/GoogleProjectCreated.png|/GoogleProjectCreated.png]]&lt;br /&gt;
From the library specify the APIs needed to access.&lt;br /&gt;
[[File:GoogleApisServicesFromLibrary.png|none|thumb|600x600px|/GoogleApisServicesFromLibrary.png|/GoogleApisServicesFromLibrary.png]]&lt;br /&gt;
These are in the Gmail API.&lt;br /&gt;
[[File:GoogleApisServicesApiLibrary.png|none|thumb|600x600px|/GoogleApisServicesApiLibrary.png|/GoogleApisServicesApiLibrary.png]]&lt;br /&gt;
Choose the Gmail API and enable it.&lt;br /&gt;
[[File:GoogleGmailApis.png|none|thumb|600x600px|/GoogleGmailApis.png|/GoogleGmailApis.png]]&lt;br /&gt;
Credentials need to be created.&lt;br /&gt;
[[File:GoogleGmailApiAdded.png|none|thumb|600x600px|/GoogleGmailApiAdded.png|/GoogleGmailApiAdded.png]]&lt;br /&gt;
Invoke the help me choose wizard.&lt;br /&gt;
[[File:GoogleCreateCredentialsHelpMeChoose.png|none|thumb|600x600px|/GoogleCreateCredentialsHelpMeChoose.png|/GoogleCreateCredentialsHelpMeChoose.png]]&lt;br /&gt;
User data access is needed.&lt;br /&gt;
[[File:GoogleCredentialsUserData.png|none|thumb|600x600px|/GoogleCredentialsUserData.png|/GoogleCredentialsUserData.png]]&lt;br /&gt;
Configure the consent screen of the interactive authorization.&lt;br /&gt;
[[File:GoogleOAuthConsentScreen.png|none|thumb|600x600px|/GoogleOAuthConsentScreen.png|/GoogleOAuthConsentScreen.png]]&lt;br /&gt;
Specify the permissions that need to be authorized by the user.&lt;br /&gt;
[[File:GoogleOAuthScopes.png|none|thumb|600x600px|/GoogleOAuthScopes.png|/GoogleOAuthScopes.png]]&lt;br /&gt;
Its mail.google.com in general.&lt;br /&gt;
[[File:GoogleScopeMailGoogleCom.png|none|thumb|600x600px|/GoogleScopeMailGoogleCom.png|/GoogleScopeMailGoogleCom.png]]&lt;br /&gt;
And its to send email on the users behalf.&lt;br /&gt;
[[File:GoogleScopeAuthGmailSend.png|none|thumb|600x600px|/GoogleScopeAuthGmailSend.png|/GoogleScopeAuthGmailSend.png]]&lt;br /&gt;
These are the scopes needed.&lt;br /&gt;
[[File:GoogleScopes.png|none|thumb|600x600px|/GoogleScopes.png|/GoogleScopes.png]]&lt;br /&gt;
Ask client credentials for Web type application.&lt;br /&gt;
[[File:GoogleOAuthClientID.png|none|thumb|600x600px|/GoogleOAuthClientID.png|/GoogleOAuthClientID.png]]&lt;br /&gt;
Tell all redirect URIs that the PBX and the apps will be using during interactive authorization.&lt;br /&gt;
[[File:GoogleRedirectURIs.png|none|thumb|600x600px|/GoogleRedirectURIs.png|/GoogleRedirectURIs.png]]&lt;br /&gt;
Download the credentials. This json file contains all information for OAuth2 configuration.&lt;br /&gt;
[[File:GoogleClientCredentialsDownload.png|none|thumb|600x600px|/GoogleClientCredentialsDownload.png|/GoogleClientCredentialsDownload.png]]&lt;br /&gt;
Customize the OAuth consent screen&lt;br /&gt;
[[File:GoogleOAuthConsentScreenSettings.png|none|thumb|600x600px|/GoogleOAuthConsentScreenSettings.png|/GoogleOAuthConsentScreenSettings.png]]&lt;br /&gt;
Start the customization wizard.&lt;br /&gt;
[[File:GoogleConsentScreenWizard.png|none|thumb|600x600px|/GoogleConsentScreenWizard.png|/GoogleConsentScreenWizard.png]]&lt;br /&gt;
Choose which users may authorize.&lt;br /&gt;
[[File:GoogleAudienceExternal.png|none|thumb|600x600px|/GoogleAudienceExternal.png|/GoogleAudienceExternal.png]]&lt;br /&gt;
Google workspace users may choose internal audience. Users not in Google workspace proceed with external.&lt;br /&gt;
[[File:GoogleContactInformation.png|none|thumb|600x600px|/GoogleContactInformation.png|/GoogleContactInformation.png]]&lt;br /&gt;
Add a test user.&lt;br /&gt;
[[File:GoogleTestUserAdded.png|none|thumb|600x600px|/GoogleTestUserAdded.png|/GoogleTestUserAdded.png]]&lt;br /&gt;
The OAuth2 parameters can be filled in with the information from the json file downloaded above.&lt;br /&gt;
[[File:OAuth2InteractiveGmail.png|none|thumb|600x600px|/OAuth2InteractiveGmail.png|/OAuth2InteractiveGmail.png]]&lt;br /&gt;
&lt;br /&gt;
== Generic ==&lt;br /&gt;
&lt;br /&gt;
1&lt;br /&gt;
[[File:OAuth2ClientSecretPost.png|none|thumb|600x600px|/OAuth2ClientSecretPost.png]]&lt;br /&gt;
2&lt;br /&gt;
&lt;br /&gt;
3&lt;/div&gt;</summary>
		<author><name>Tmo</name></author>
	</entry>
	<entry>
		<id>https://wiki.innovaphone.com/index.php?title=Howto16r1:Configure_OAuth2_E-Mail&amp;diff=78146</id>
		<title>Howto16r1:Configure OAuth2 E-Mail</title>
		<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=Howto16r1:Configure_OAuth2_E-Mail&amp;diff=78146"/>
		<updated>2025-10-03T07:58:10Z</updated>

		<summary type="html">&lt;p&gt;Tmo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{FIXME|reason=This product is in the beta phase and is not yet finished}}&lt;br /&gt;
[[File:OAuth2ClientSecretPost.png|none|thumb|600x600px]]&lt;br /&gt;
innovaphone PBX and apps can be configured to send E-Mails for various subjects and purposes. Major E-Mail providers intent to discontinue the username/password authentication schemes in favour of OAuth2. PBX and Apps version 16r1 does support OAuth2 authentication for SMTP. Here is a step by step guide how to set up OAuth2 support in Microsoft 365 through the Azure Portal and how to set it up on a Google Gmail account in the Google Cloud Console.&lt;br /&gt;
&lt;br /&gt;
== Microsoft 365 ==&lt;br /&gt;
Log in to Microsoft Azure Portal (&amp;lt;nowiki&amp;gt;https://portal.azure.com&amp;lt;/nowiki&amp;gt;) and go to Microsoft Entra ID.&lt;br /&gt;
[[File:AzureMicrosoftEntraID.png|none|thumb|600x600px|/AzureMicrosoftEntraID.png|/AzureMicrosoftEntraID.png]]&lt;br /&gt;
Add a new app registration to create client credentials.&lt;br /&gt;
[[File:AzureAddAppRegistration.png|none|thumb|600x600px|/AzureAddAppRegistration.png|/AzureAddAppRegistration.png]]&lt;br /&gt;
Register the application and maybe already fill in the redirect URI for Web based application type to path OAUTH2-CLIENT/auth.htm at the PBX.&lt;br /&gt;
[[File:AzureRegisterAnApplication.png|none|thumb|600x600px|/AzureRegisterAnApplication.png|/AzureRegisterAnApplication.png]]&lt;br /&gt;
App registration is complete. Client ID and tenant needs to be configured at the PBX and every app that will be sending e-mails.&lt;br /&gt;
[[File:AzureApp.png|none|thumb|600x600px|/AzureApp.png|/AzureApp.png]]&lt;br /&gt;
Create a client secret.&lt;br /&gt;
[[File:AzureAddClientSecret.png|none|thumb|600x600px|/AzureAddClientSecret.png|/AzureAddClientSecret.png]]&lt;br /&gt;
Copy the client secret. It also needs to be configured at the PBX and every app that will be sending e-mails.&lt;br /&gt;
[[File:AzureCopyClientSecret.png|none|thumb|600x600px|/AzureCopyClientSecret.png|/AzureCopyClientSecret.png]]&lt;br /&gt;
Add permissions located in APIs my organization uses.&lt;br /&gt;
[[File:AzureAddApiPermissionMyOrganization.png|none|thumb|600x600px|/AzureAddApiPermissionMyOrganization.png|/AzureAddApiPermissionMyOrganization.png]]&lt;br /&gt;
More precisely located in Office 365 Exchange Online.&lt;br /&gt;
[[File:AzureAddApiPermissionExchange.png|none|thumb|600x600px|/AzureAddApiPermissionExchange.png|/AzureAddApiPermissionExchange.png]]&lt;br /&gt;
And there in the application permissions.&lt;br /&gt;
[[File:AzureAddApiExchangeApplication.png|none|thumb|600x600px|/AzureAddApiExchangeApplication.png|/AzureAddApiExchangeApplication.png]]&lt;br /&gt;
Namely SMTP Mail.Send.&lt;br /&gt;
[[File:AzureAddApiSendMailAsUser.png|none|thumb|600x600px|/AzureAddApiSendMailAsUser.png|/AzureAddApiSendMailAsUser.png]]&lt;br /&gt;
Grant admin permission for Mail.Send.&lt;br /&gt;
[[File:AzureGrantApiPermissions.png|none|thumb|600x600px|/AzureGrantApiPermissions.png|/AzureGrantApiPermissions.png]]&lt;br /&gt;
API permissions are now granted.&lt;br /&gt;
[[File:AzureApiPermissionsGranted.png|none|thumb|600x600px|/AzureApiPermissionsGranted.png|/AzureApiPermissionsGranted.png]]&lt;br /&gt;
Tell all redirect URIs that the PBX and the apps will be using during interactive authorization.&lt;br /&gt;
[[File:AzureRedirectUris.png|none|thumb|600x600px|/AzureRedirectUris.png|/AzureRedirectUris.png]]&lt;br /&gt;
Allow public client flows of OAuth2. Resource Owner Password Credentials Flow has the advantage that it doesn&#039;t need interactive authorization.&lt;br /&gt;
[[File:AzureAllowPublicClientFlows.png|none|thumb|600x600px|/AzureAllowPublicClientFlows.png|/AzureAllowPublicClientFlows.png]]&lt;br /&gt;
Log in to the Microsoft 365 admin center (https://admin.cloud.microsoft).&lt;br /&gt;
[[File:MS365AdminCenter.png|none|thumb|600x600px|/MS365AdminCenter.png|/MS365AdminCenter.png]]&lt;br /&gt;
Make sure that Microsoft 365 licenses are assigned to your user.&lt;br /&gt;
[[File:MS365UserLicenses.png|none|thumb|600x600px|/MS365UserLicenses.png|/MS365UserLicenses.png]]&lt;br /&gt;
Set your user active.&lt;br /&gt;
[[File:MS365ActiveUsers.png|none|thumb|600x600px|/MS365ActiveUsers.png|/MS365ActiveUsers.png]]&lt;br /&gt;
Locate the Mail tab of your user.&lt;br /&gt;
[[File:MS365UserEMail.png|none|thumb|600x600px|/MS365UserEMail.png|/MS365UserEMail.png]]&lt;br /&gt;
Allow authenticated SMTP.&lt;br /&gt;
[[File:MS365AuthenticatedSMTP.png|none|thumb|600x600px|/MS365AuthenticatedSMTP.png|/MS365AuthenticatedSMTP.png]]&lt;br /&gt;
Login to the Exchange admin center (&amp;lt;nowiki&amp;gt;https://admin.exchange.microsoft.com&amp;lt;/nowiki&amp;gt;).&lt;br /&gt;
[[File:ExchangeAdminCenter.png|none|thumb|600x600px|/ExchangeAdminCenter.png|/ExchangeAdminCenter.png]]&lt;br /&gt;
Remove deactivation of the SMTP AUTH protocol.&lt;br /&gt;
[[File:ExchangeRemoveDeavtivatedOAuth2.png|none|thumb|600x600px|/ExchangeRemoveDeavtivatedOAuth2.png|/ExchangeRemoveDeavtivatedOAuth2.png]]&lt;br /&gt;
With this Microsoft setup the OAuth2 configuration for the resource owner password credentials flow can be filled in as follows. &lt;br /&gt;
[[File:OAuth2ResourceOwnerPasswordCredentials.png|none|thumb|600x600px|/OAuth2ResourceOwnerPasswordCredentials.png|/OAuth2ResourceOwnerPasswordCredentials.png]]&lt;br /&gt;
For interactive authorization this is the OAuth2 configuration. Authorize e-mail access one time and send a test mail to verify everything went well.&lt;br /&gt;
[[File:OAuth2InteractiveAuthorization.png|none|thumb|600x600px|/OAuth2InteractiveAuthorization.png|/OAuth2InteractiveAuthorization.png]]&lt;br /&gt;
&lt;br /&gt;
== Gmail ==&lt;br /&gt;
Login to the Google Cloud Console (https://console.cloud.google.com), select a project, New project.&lt;br /&gt;
[[File:GoogleSelectProject.png|none|thumb|600x600px|/GoogleSelectProject.png|/GoogleSelectProject.png]]&lt;br /&gt;
Create the project.&lt;br /&gt;
[[File:GoogleCreateProject.png|none|thumb|600x600px|/GoogleCreateProject.png|/GoogleCreateProject.png]]&lt;br /&gt;
Client credentials will be created in this project.&lt;br /&gt;
[[File:GoogleProjectCreated.png|none|thumb|600x600px|/GoogleProjectCreated.png|/GoogleProjectCreated.png]]&lt;br /&gt;
From the library specify the APIs needed to access.&lt;br /&gt;
[[File:GoogleApisServicesFromLibrary.png|none|thumb|600x600px|/GoogleApisServicesFromLibrary.png|/GoogleApisServicesFromLibrary.png]]&lt;br /&gt;
These are in the Gmail API.&lt;br /&gt;
[[File:GoogleApisServicesApiLibrary.png|none|thumb|600x600px|/GoogleApisServicesApiLibrary.png|/GoogleApisServicesApiLibrary.png]]&lt;br /&gt;
Choose the Gmail API and enable it.&lt;br /&gt;
[[File:GoogleGmailApis.png|none|thumb|600x600px|/GoogleGmailApis.png|/GoogleGmailApis.png]]&lt;br /&gt;
Credentials need to be created.&lt;br /&gt;
[[File:GoogleGmailApiAdded.png|none|thumb|600x600px|/GoogleGmailApiAdded.png|/GoogleGmailApiAdded.png]]&lt;br /&gt;
Invoke the help me choose wizard.&lt;br /&gt;
[[File:GoogleCreateCredentialsHelpMeChoose.png|none|thumb|600x600px|/GoogleCreateCredentialsHelpMeChoose.png|/GoogleCreateCredentialsHelpMeChoose.png]]&lt;br /&gt;
User data access is needed.&lt;br /&gt;
[[File:GoogleCredentialsUserData.png|none|thumb|600x600px|/GoogleCredentialsUserData.png|/GoogleCredentialsUserData.png]]&lt;br /&gt;
Configure the consent screen of the interactive authorization.&lt;br /&gt;
[[File:GoogleOAuthConsentScreen.png|none|thumb|600x600px|/GoogleOAuthConsentScreen.png|/GoogleOAuthConsentScreen.png]]&lt;br /&gt;
Specify the permissions that need to be authorized by the user.&lt;br /&gt;
[[File:GoogleOAuthScopes.png|none|thumb|600x600px|/GoogleOAuthScopes.png|/GoogleOAuthScopes.png]]&lt;br /&gt;
Its mail.google.com in general.&lt;br /&gt;
[[File:GoogleScopeMailGoogleCom.png|none|thumb|600x600px|/GoogleScopeMailGoogleCom.png|/GoogleScopeMailGoogleCom.png]]&lt;br /&gt;
And its to send email on the users behalf.&lt;br /&gt;
[[File:GoogleScopeAuthGmailSend.png|none|thumb|600x600px|/GoogleScopeAuthGmailSend.png|/GoogleScopeAuthGmailSend.png]]&lt;br /&gt;
These are the scopes needed.&lt;br /&gt;
[[File:GoogleScopes.png|none|thumb|600x600px|/GoogleScopes.png|/GoogleScopes.png]]&lt;br /&gt;
Ask client credentials for Web type application.&lt;br /&gt;
[[File:GoogleOAuthClientID.png|none|thumb|600x600px|/GoogleOAuthClientID.png|/GoogleOAuthClientID.png]]&lt;br /&gt;
Tell all redirect URIs that the PBX and the apps will be using during interactive authorization.&lt;br /&gt;
[[File:GoogleRedirectURIs.png|none|thumb|600x600px|/GoogleRedirectURIs.png|/GoogleRedirectURIs.png]]&lt;br /&gt;
Download the credentials. This json file contains all information for OAuth2 configuration.&lt;br /&gt;
[[File:GoogleClientCredentialsDownload.png|none|thumb|600x600px|/GoogleClientCredentialsDownload.png|/GoogleClientCredentialsDownload.png]]&lt;br /&gt;
Customize the OAuth consent screen&lt;br /&gt;
[[File:GoogleOAuthConsentScreenSettings.png|none|thumb|600x600px|/GoogleOAuthConsentScreenSettings.png|/GoogleOAuthConsentScreenSettings.png]]&lt;br /&gt;
Start the customization wizard.&lt;br /&gt;
[[File:GoogleConsentScreenWizard.png|none|thumb|600x600px|/GoogleConsentScreenWizard.png|/GoogleConsentScreenWizard.png]]&lt;br /&gt;
Choose which users may authorize.&lt;br /&gt;
[[File:GoogleAudienceExternal.png|none|thumb|600x600px|/GoogleAudienceExternal.png|/GoogleAudienceExternal.png]]&lt;br /&gt;
Google workspace users may choose internal audience. Users not in Google workspace proceed with external.&lt;br /&gt;
[[File:GoogleContactInformation.png|none|thumb|600x600px|/GoogleContactInformation.png|/GoogleContactInformation.png]]&lt;br /&gt;
Add a test user.&lt;br /&gt;
[[File:GoogleTestUserAdded.png|none|thumb|600x600px|/GoogleTestUserAdded.png|/GoogleTestUserAdded.png]]&lt;br /&gt;
The OAuth2 parameters can be filled in with the information from the json file downloaded above.&lt;br /&gt;
[[File:OAuth2InteractiveGmail.png|none|thumb|600x600px|/OAuth2InteractiveGmail.png|/OAuth2InteractiveGmail.png]]&lt;br /&gt;
&lt;br /&gt;
== Generic ==&lt;br /&gt;
&lt;br /&gt;
1&lt;br /&gt;
&lt;br /&gt;
2&lt;br /&gt;
&lt;br /&gt;
3&lt;/div&gt;</summary>
		<author><name>Tmo</name></author>
	</entry>
	<entry>
		<id>https://wiki.innovaphone.com/index.php?title=File:OAuth2ClientSecretPost.png&amp;diff=78145</id>
		<title>File:OAuth2ClientSecretPost.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=File:OAuth2ClientSecretPost.png&amp;diff=78145"/>
		<updated>2025-10-03T07:57:49Z</updated>

		<summary type="html">&lt;p&gt;Tmo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;OAuth2 Client Secret Post&lt;/div&gt;</summary>
		<author><name>Tmo</name></author>
	</entry>
	<entry>
		<id>https://wiki.innovaphone.com/index.php?title=Howto16r1:Configure_OAuth2_E-Mail&amp;diff=78144</id>
		<title>Howto16r1:Configure OAuth2 E-Mail</title>
		<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=Howto16r1:Configure_OAuth2_E-Mail&amp;diff=78144"/>
		<updated>2025-10-03T07:51:29Z</updated>

		<summary type="html">&lt;p&gt;Tmo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{FIXME|reason=This product is in the beta phase and is not yet finished}}&lt;br /&gt;
&lt;br /&gt;
innovaphone PBX and apps can be configured to send E-Mails for various subjects and purposes. Major E-Mail providers intent to discontinue the username/password authentication schemes in favour of OAuth2. PBX and Apps version 16r1 does support OAuth2 authentication for SMTP. Here is a step by step guide how to set up OAuth2 support in Microsoft 365 through the Azure Portal and how to set it up on a Google Gmail account in the Google Cloud Console.&lt;br /&gt;
&lt;br /&gt;
== Microsoft 365 ==&lt;br /&gt;
Log in to Microsoft Azure Portal (&amp;lt;nowiki&amp;gt;https://portal.azure.com&amp;lt;/nowiki&amp;gt;) and go to Microsoft Entra ID.&lt;br /&gt;
[[File:AzureMicrosoftEntraID.png|none|thumb|600x600px|/AzureMicrosoftEntraID.png|/AzureMicrosoftEntraID.png]]&lt;br /&gt;
Add a new app registration to create client credentials.&lt;br /&gt;
[[File:AzureAddAppRegistration.png|none|thumb|600x600px|/AzureAddAppRegistration.png|/AzureAddAppRegistration.png]]&lt;br /&gt;
Register the application and maybe already fill in the redirect URI for Web based application type to path OAUTH2-CLIENT/auth.htm at the PBX.&lt;br /&gt;
[[File:AzureRegisterAnApplication.png|none|thumb|600x600px|/AzureRegisterAnApplication.png|/AzureRegisterAnApplication.png]]&lt;br /&gt;
App registration is complete. Client ID and tenant needs to be configured at the PBX and every app that will be sending e-mails.&lt;br /&gt;
[[File:AzureApp.png|none|thumb|600x600px|/AzureApp.png|/AzureApp.png]]&lt;br /&gt;
Create a client secret.&lt;br /&gt;
[[File:AzureAddClientSecret.png|none|thumb|600x600px|/AzureAddClientSecret.png|/AzureAddClientSecret.png]]&lt;br /&gt;
Copy the client secret. It also needs to be configured at the PBX and every app that will be sending e-mails.&lt;br /&gt;
[[File:AzureCopyClientSecret.png|none|thumb|600x600px|/AzureCopyClientSecret.png|/AzureCopyClientSecret.png]]&lt;br /&gt;
Add permissions located in APIs my organization uses.&lt;br /&gt;
[[File:AzureAddApiPermissionMyOrganization.png|none|thumb|600x600px|/AzureAddApiPermissionMyOrganization.png|/AzureAddApiPermissionMyOrganization.png]]&lt;br /&gt;
More precisely located in Office 365 Exchange Online.&lt;br /&gt;
[[File:AzureAddApiPermissionExchange.png|none|thumb|600x600px|/AzureAddApiPermissionExchange.png|/AzureAddApiPermissionExchange.png]]&lt;br /&gt;
And there in the application permissions.&lt;br /&gt;
[[File:AzureAddApiExchangeApplication.png|none|thumb|600x600px|/AzureAddApiExchangeApplication.png|/AzureAddApiExchangeApplication.png]]&lt;br /&gt;
Namely SMTP Mail.Send.&lt;br /&gt;
[[File:AzureAddApiSendMailAsUser.png|none|thumb|600x600px|/AzureAddApiSendMailAsUser.png|/AzureAddApiSendMailAsUser.png]]&lt;br /&gt;
Grant admin permission for Mail.Send.&lt;br /&gt;
[[File:AzureGrantApiPermissions.png|none|thumb|600x600px|/AzureGrantApiPermissions.png|/AzureGrantApiPermissions.png]]&lt;br /&gt;
API permissions are now granted.&lt;br /&gt;
[[File:AzureApiPermissionsGranted.png|none|thumb|600x600px|/AzureApiPermissionsGranted.png|/AzureApiPermissionsGranted.png]]&lt;br /&gt;
Tell all redirect URIs that the PBX and the apps will be using during interactive authorization.&lt;br /&gt;
[[File:AzureRedirectUris.png|none|thumb|600x600px|/AzureRedirectUris.png|/AzureRedirectUris.png]]&lt;br /&gt;
Allow public client flows of OAuth2. Resource Owner Password Credentials Flow has the advantage that it doesn&#039;t need interactive authorization.&lt;br /&gt;
[[File:AzureAllowPublicClientFlows.png|none|thumb|600x600px|/AzureAllowPublicClientFlows.png|/AzureAllowPublicClientFlows.png]]&lt;br /&gt;
Log in to the Microsoft 365 admin center (https://admin.cloud.microsoft).&lt;br /&gt;
[[File:MS365AdminCenter.png|none|thumb|600x600px|/MS365AdminCenter.png|/MS365AdminCenter.png]]&lt;br /&gt;
Make sure that Microsoft 365 licenses are assigned to your user.&lt;br /&gt;
[[File:MS365UserLicenses.png|none|thumb|600x600px|/MS365UserLicenses.png|/MS365UserLicenses.png]]&lt;br /&gt;
Set your user active.&lt;br /&gt;
[[File:MS365ActiveUsers.png|none|thumb|600x600px|/MS365ActiveUsers.png|/MS365ActiveUsers.png]]&lt;br /&gt;
Locate the Mail tab of your user.&lt;br /&gt;
[[File:MS365UserEMail.png|none|thumb|600x600px|/MS365UserEMail.png|/MS365UserEMail.png]]&lt;br /&gt;
Allow authenticated SMTP.&lt;br /&gt;
[[File:MS365AuthenticatedSMTP.png|none|thumb|600x600px|/MS365AuthenticatedSMTP.png|/MS365AuthenticatedSMTP.png]]&lt;br /&gt;
Login to the Exchange admin center (&amp;lt;nowiki&amp;gt;https://admin.exchange.microsoft.com&amp;lt;/nowiki&amp;gt;).&lt;br /&gt;
[[File:ExchangeAdminCenter.png|none|thumb|600x600px|/ExchangeAdminCenter.png|/ExchangeAdminCenter.png]]&lt;br /&gt;
Remove deactivation of the SMTP AUTH protocol.&lt;br /&gt;
[[File:ExchangeRemoveDeavtivatedOAuth2.png|none|thumb|600x600px|/ExchangeRemoveDeavtivatedOAuth2.png|/ExchangeRemoveDeavtivatedOAuth2.png]]&lt;br /&gt;
With this Microsoft setup the OAuth2 configuration for the resource owner password credentials flow can be filled in as follows. &lt;br /&gt;
[[File:OAuth2ResourceOwnerPasswordCredentials.png|none|thumb|600x600px|/OAuth2ResourceOwnerPasswordCredentials.png|/OAuth2ResourceOwnerPasswordCredentials.png]]&lt;br /&gt;
For interactive authorization this is the OAuth2 configuration. Authorize e-mail access one time and send a test mail to verify everything went well.&lt;br /&gt;
[[File:OAuth2InteractiveAuthorization.png|none|thumb|600x600px|/OAuth2InteractiveAuthorization.png|/OAuth2InteractiveAuthorization.png]]&lt;br /&gt;
&lt;br /&gt;
== Gmail ==&lt;br /&gt;
Login to the Google Cloud Console (https://console.cloud.google.com), select a project, New project.&lt;br /&gt;
[[File:GoogleSelectProject.png|none|thumb|600x600px|/GoogleSelectProject.png|/GoogleSelectProject.png]]&lt;br /&gt;
Create the project.&lt;br /&gt;
[[File:GoogleCreateProject.png|none|thumb|600x600px|/GoogleCreateProject.png|/GoogleCreateProject.png]]&lt;br /&gt;
Client credentials will be created in this project.&lt;br /&gt;
[[File:GoogleProjectCreated.png|none|thumb|600x600px|/GoogleProjectCreated.png|/GoogleProjectCreated.png]]&lt;br /&gt;
From the library specify the APIs needed to access.&lt;br /&gt;
[[File:GoogleApisServicesFromLibrary.png|none|thumb|600x600px|/GoogleApisServicesFromLibrary.png|/GoogleApisServicesFromLibrary.png]]&lt;br /&gt;
These are in the Gmail API.&lt;br /&gt;
[[File:GoogleApisServicesApiLibrary.png|none|thumb|600x600px|/GoogleApisServicesApiLibrary.png|/GoogleApisServicesApiLibrary.png]]&lt;br /&gt;
Choose the Gmail API and enable it.&lt;br /&gt;
[[File:GoogleGmailApis.png|none|thumb|600x600px|/GoogleGmailApis.png|/GoogleGmailApis.png]]&lt;br /&gt;
Credentials need to be created.&lt;br /&gt;
[[File:GoogleGmailApiAdded.png|none|thumb|600x600px|/GoogleGmailApiAdded.png|/GoogleGmailApiAdded.png]]&lt;br /&gt;
Invoke the help me choose wizard.&lt;br /&gt;
[[File:GoogleCreateCredentialsHelpMeChoose.png|none|thumb|600x600px|/GoogleCreateCredentialsHelpMeChoose.png|/GoogleCreateCredentialsHelpMeChoose.png]]&lt;br /&gt;
User data access is needed.&lt;br /&gt;
[[File:GoogleCredentialsUserData.png|none|thumb|600x600px|/GoogleCredentialsUserData.png|/GoogleCredentialsUserData.png]]&lt;br /&gt;
Configure the consent screen of the interactive authorization.&lt;br /&gt;
[[File:GoogleOAuthConsentScreen.png|none|thumb|600x600px|/GoogleOAuthConsentScreen.png|/GoogleOAuthConsentScreen.png]]&lt;br /&gt;
Specify the permissions that need to be authorized by the user.&lt;br /&gt;
[[File:GoogleOAuthScopes.png|none|thumb|600x600px|/GoogleOAuthScopes.png|/GoogleOAuthScopes.png]]&lt;br /&gt;
Its mail.google.com in general.&lt;br /&gt;
[[File:GoogleScopeMailGoogleCom.png|none|thumb|600x600px|/GoogleScopeMailGoogleCom.png|/GoogleScopeMailGoogleCom.png]]&lt;br /&gt;
And its to send email on the users behalf.&lt;br /&gt;
[[File:GoogleScopeAuthGmailSend.png|none|thumb|600x600px|/GoogleScopeAuthGmailSend.png|/GoogleScopeAuthGmailSend.png]]&lt;br /&gt;
These are the scopes needed.&lt;br /&gt;
[[File:GoogleScopes.png|none|thumb|600x600px|/GoogleScopes.png|/GoogleScopes.png]]&lt;br /&gt;
Ask client credentials for Web type application.&lt;br /&gt;
[[File:GoogleOAuthClientID.png|none|thumb|600x600px|/GoogleOAuthClientID.png|/GoogleOAuthClientID.png]]&lt;br /&gt;
Tell all redirect URIs that the PBX and the apps will be using during interactive authorization.&lt;br /&gt;
[[File:GoogleRedirectURIs.png|none|thumb|600x600px|/GoogleRedirectURIs.png|/GoogleRedirectURIs.png]]&lt;br /&gt;
Download the credentials. This json file contains all information for OAuth2 configuration.&lt;br /&gt;
[[File:GoogleClientCredentialsDownload.png|none|thumb|600x600px|/GoogleClientCredentialsDownload.png|/GoogleClientCredentialsDownload.png]]&lt;br /&gt;
Customize the OAuth consent screen&lt;br /&gt;
[[File:GoogleOAuthConsentScreenSettings.png|none|thumb|600x600px|/GoogleOAuthConsentScreenSettings.png|/GoogleOAuthConsentScreenSettings.png]]&lt;br /&gt;
Start the customization wizard.&lt;br /&gt;
[[File:GoogleConsentScreenWizard.png|none|thumb|600x600px|/GoogleConsentScreenWizard.png|/GoogleConsentScreenWizard.png]]&lt;br /&gt;
Choose which users may authorize.&lt;br /&gt;
[[File:GoogleAudienceExternal.png|none|thumb|600x600px|/GoogleAudienceExternal.png|/GoogleAudienceExternal.png]]&lt;br /&gt;
Google workspace users may choose internal audience. Users not in Google workspace proceed with external.&lt;br /&gt;
[[File:GoogleContactInformation.png|none|thumb|600x600px|/GoogleContactInformation.png|/GoogleContactInformation.png]]&lt;br /&gt;
Add a test user.&lt;br /&gt;
[[File:GoogleTestUserAdded.png|none|thumb|600x600px|/GoogleTestUserAdded.png|/GoogleTestUserAdded.png]]&lt;br /&gt;
The OAuth2 parameters can be filled in with the information from the json file downloaded above.&lt;br /&gt;
[[File:OAuth2InteractiveGmail.png|none|thumb|600x600px|/OAuth2InteractiveGmail.png|/OAuth2InteractiveGmail.png]]&lt;br /&gt;
&lt;br /&gt;
== Generic ==&lt;br /&gt;
&lt;br /&gt;
1&lt;br /&gt;
&lt;br /&gt;
2&lt;br /&gt;
&lt;br /&gt;
3&lt;/div&gt;</summary>
		<author><name>Tmo</name></author>
	</entry>
	<entry>
		<id>https://wiki.innovaphone.com/index.php?title=Howto16r1:Configure_OAuth2_E-Mail&amp;diff=78143</id>
		<title>Howto16r1:Configure OAuth2 E-Mail</title>
		<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=Howto16r1:Configure_OAuth2_E-Mail&amp;diff=78143"/>
		<updated>2025-10-03T07:50:22Z</updated>

		<summary type="html">&lt;p&gt;Tmo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{FIXME|reason=This product is in the beta phase and is not yet finished}}&lt;br /&gt;
&lt;br /&gt;
innovaphone PBX and apps can be configured to send E-Mails for various subjects and purposes. Major E-Mail providers intent to discontinue the username/password authentication schemes in favour of OAuth2. PBX and Apps version 16r1 does support OAuth2 authentication for SMTP. Here is a step by step guide how to set up OAuth2 support in Microsoft 365 through the Azure Portal and how to set it up on a Google Gmail account in the Google Cloud Console.&lt;br /&gt;
&lt;br /&gt;
== Microsoft 365 ==&lt;br /&gt;
Log in to Microsoft Azure Portal (&amp;lt;nowiki&amp;gt;https://portal.azure.com&amp;lt;/nowiki&amp;gt;) and go to Microsoft Entra ID.&lt;br /&gt;
[[File:AzureMicrosoftEntraID.png|none|thumb|600x600px|/AzureMicrosoftEntraID.png|/AzureMicrosoftEntraID.png]]&lt;br /&gt;
Add a new app registration to create client credentials.&lt;br /&gt;
[[File:AzureAddAppRegistration.png|none|thumb|600x600px|/AzureAddAppRegistration.png|/AzureAddAppRegistration.png]]&lt;br /&gt;
Register the application and maybe already fill in the redirect URI for Web based application type to path OAUTH2-CLIENT/auth.htm at the PBX.&lt;br /&gt;
[[File:AzureRegisterAnApplication.png|none|thumb|600x600px|/AzureRegisterAnApplication.png|/AzureRegisterAnApplication.png]]&lt;br /&gt;
App registration is complete. Client ID and tenant needs to be configured at the PBX and every app that will be sending e-mails.&lt;br /&gt;
[[File:AzureApp.png|none|thumb|600x600px|/AzureApp.png|/AzureApp.png]]&lt;br /&gt;
Create a client secret.&lt;br /&gt;
[[File:AzureAddClientSecret.png|none|thumb|600x600px|/AzureAddClientSecret.png|/AzureAddClientSecret.png]]&lt;br /&gt;
Copy the client secret. It also needs to be configured at the PBX and every app that will be sending e-mails.&lt;br /&gt;
[[File:AzureCopyClientSecret.png|none|thumb|600x600px|/AzureCopyClientSecret.png|/AzureCopyClientSecret.png]]&lt;br /&gt;
Add permissions located in APIs my organization uses.&lt;br /&gt;
[[File:AzureAddApiPermissionMyOrganization.png|none|thumb|600x600px|/AzureAddApiPermissionMyOrganization.png|/AzureAddApiPermissionMyOrganization.png]]&lt;br /&gt;
More precisely located in Office 365 Exchange Online.&lt;br /&gt;
[[File:AzureAddApiPermissionExchange.png|none|thumb|600x600px|/AzureAddApiPermissionExchange.png|/AzureAddApiPermissionExchange.png]]&lt;br /&gt;
And there in the application permissions.&lt;br /&gt;
[[File:AzureAddApiExchangeApplication.png|none|thumb|600x600px|/AzureAddApiExchangeApplication.png|/AzureAddApiExchangeApplication.png]]&lt;br /&gt;
Namely SMTP Mail.Send.&lt;br /&gt;
[[File:AzureAddApiSendMailAsUser.png|none|thumb|600x600px|/AzureAddApiSendMailAsUser.png|/AzureAddApiSendMailAsUser.png]]&lt;br /&gt;
Grant admin permission for Mail.Send.&lt;br /&gt;
[[File:AzureGrantApiPermissions.png|none|thumb|600x600px|/AzureGrantApiPermissions.png|/AzureGrantApiPermissions.png]]&lt;br /&gt;
API permissions are now granted.&lt;br /&gt;
[[File:AzureApiPermissionsGranted.png|none|thumb|600x600px|/AzureApiPermissionsGranted.png|/AzureApiPermissionsGranted.png]]&lt;br /&gt;
Tell all redirect URIs that the PBX and the apps will be using during interactive authorization.&lt;br /&gt;
[[File:AzureRedirectUris.png|none|thumb|600x600px|/AzureRedirectUris.png|/AzureRedirectUris.png]]&lt;br /&gt;
Allow public client flows of OAuth2. Resource Owner Password Credentials Flow has the advantage that it doesn&#039;t need interactive authorization.&lt;br /&gt;
[[File:AzureAllowPublicClientFlows.png|none|thumb|600x600px|/AzureAllowPublicClientFlows.png|/AzureAllowPublicClientFlows.png]]&lt;br /&gt;
Log in to the Microsoft 365 admin center (https://admin.cloud.microsoft).&lt;br /&gt;
[[File:MS365AdminCenter.png|none|thumb|600x600px|/MS365AdminCenter.png|/MS365AdminCenter.png]]&lt;br /&gt;
Make sure that Microsoft 365 licenses are assigned to your user.&lt;br /&gt;
[[File:MS365UserLicenses.png|none|thumb|600x600px|/MS365UserLicenses.png|/MS365UserLicenses.png]]&lt;br /&gt;
Set your user active.&lt;br /&gt;
[[File:MS365ActiveUsers.png|none|thumb|600x600px|/MS365ActiveUsers.png|/MS365ActiveUsers.png]]&lt;br /&gt;
Locate the Mail tab of your user.&lt;br /&gt;
[[File:MS365UserEMail.png|none|thumb|600x600px|/MS365UserEMail.png|/MS365UserEMail.png]]&lt;br /&gt;
Allow authenticated SMTP.&lt;br /&gt;
[[File:MS365AuthenticatedSMTP.png|none|thumb|600x600px|/MS365AuthenticatedSMTP.png|/MS365AuthenticatedSMTP.png]]&lt;br /&gt;
Login to the Exchange admin center (&amp;lt;nowiki&amp;gt;https://admin.exchange.microsoft.com&amp;lt;/nowiki&amp;gt;).&lt;br /&gt;
[[File:ExchangeAdminCenter.png|none|thumb|600x600px|/ExchangeAdminCenter.png|/ExchangeAdminCenter.png]]&lt;br /&gt;
Remove deactivation of the SMTP AUTH protocol.&lt;br /&gt;
[[File:ExchangeRemoveDeavtivatedOAuth2.png|none|thumb|600x600px|/ExchangeRemoveDeavtivatedOAuth2.png|/ExchangeRemoveDeavtivatedOAuth2.png]]&lt;br /&gt;
With this Microsoft setup the OAuth2 configuration for the resource owner password credentials flow can be filled in as follows. &lt;br /&gt;
[[File:OAuth2ResourceOwnerPasswordCredentials.png|none|thumb|600x600px|/OAuth2ResourceOwnerPasswordCredentials.png|/OAuth2ResourceOwnerPasswordCredentials.png]]&lt;br /&gt;
For interactive authorization this is the OAuth2 configuration. Authorize e-mail access one time and send a test mail to verify everything went well.&lt;br /&gt;
[[File:OAuth2InteractiveAuthorization.png|none|thumb|600x600px|/OAuth2InteractiveAuthorization.png|/OAuth2InteractiveAuthorization.png]]&lt;br /&gt;
&lt;br /&gt;
== Gmail ==&lt;br /&gt;
Login to the Google Cloud Console (https://console.cloud.google.com), select a project, New project.&lt;br /&gt;
[[File:GoogleSelectProject.png|none|thumb|600x600px|/GoogleSelectProject.png|/GoogleSelectProject.png]]&lt;br /&gt;
Create the project.&lt;br /&gt;
[[File:GoogleCreateProject.png|none|thumb|600x600px|/GoogleCreateProject.png|/GoogleCreateProject.png]]&lt;br /&gt;
Client credentials will be created in this project.&lt;br /&gt;
[[File:GoogleProjectCreated.png|none|thumb|600x600px|/GoogleProjectCreated.png|/GoogleProjectCreated.png]]&lt;br /&gt;
From the library specify the APIs needed to access.&lt;br /&gt;
[[File:GoogleApisServicesFromLibrary.png|none|thumb|600x600px|/GoogleApisServicesFromLibrary.png|/GoogleApisServicesFromLibrary.png]]&lt;br /&gt;
These are in the Gmail API.&lt;br /&gt;
[[File:GoogleApisServicesApiLibrary.png|none|thumb|600x600px|/GoogleApisServicesApiLibrary.png|/GoogleApisServicesApiLibrary.png]]&lt;br /&gt;
Choose the Gmail API and enable it.&lt;br /&gt;
[[File:GoogleGmailApis.png|none|thumb|600x600px|/GoogleGmailApis.png|/GoogleGmailApis.png]]&lt;br /&gt;
Credentials need to be created.&lt;br /&gt;
[[File:GoogleGmailApiAdded.png|none|thumb|600x600px|/GoogleGmailApiAdded.png|/GoogleGmailApiAdded.png]]&lt;br /&gt;
Invoke the help me choose wizard.&lt;br /&gt;
[[File:GoogleCreateCredentialsHelpMeChoose.png|none|thumb|600x600px|/GoogleCreateCredentialsHelpMeChoose.png|/GoogleCreateCredentialsHelpMeChoose.png]]&lt;br /&gt;
User data access is needed.&lt;br /&gt;
[[File:GoogleCredentialsUserData.png|none|thumb|600x600px|/GoogleCredentialsUserData.png|/GoogleCredentialsUserData.png]]&lt;br /&gt;
Configure the consent screen of the interactive authorization.&lt;br /&gt;
[[File:GoogleOAuthConsentScreen.png|none|thumb|600x600px|/GoogleOAuthConsentScreen.png|/GoogleOAuthConsentScreen.png]]&lt;br /&gt;
Specify the permissions that need to be authorized by the user.&lt;br /&gt;
[[File:GoogleOAuthScopes.png|none|thumb|600x600px|/GoogleOAuthScopes.png|/GoogleOAuthScopes.png]]&lt;br /&gt;
Its mail.google.com in general.&lt;br /&gt;
[[File:GoogleScopeMailGoogleCom.png|none|thumb|600x600px|/GoogleScopeMailGoogleCom.png|/GoogleScopeMailGoogleCom.png]]&lt;br /&gt;
And its to send email on the users behalf.&lt;br /&gt;
[[File:GoogleScopeAuthGmailSend.png|none|thumb|600x600px|/GoogleScopeAuthGmailSend.png|/GoogleScopeAuthGmailSend.png]]&lt;br /&gt;
These are the scopes needed.&lt;br /&gt;
[[File:GoogleScopes.png|none|thumb|600x600px|/GoogleScopes.png|/GoogleScopes.png]]&lt;br /&gt;
Ask client credentials for Web type application.&lt;br /&gt;
[[File:GoogleOAuthClientID.png|none|thumb|600x600px|/GoogleOAuthClientID.png|/GoogleOAuthClientID.png]]&lt;br /&gt;
Tell all redirect URIs that the PBX and the apps will be using during interactive authorization.&lt;br /&gt;
[[File:GoogleRedirectURIs.png|none|thumb|600x600px|/GoogleRedirectURIs.png|/GoogleRedirectURIs.png]]&lt;br /&gt;
Download the credentials. This json file contains all information for OAuth2 configuration.&lt;br /&gt;
[[File:GoogleClientCredentialsDownload.png|none|thumb|600x600px|/GoogleClientCredentialsDownload.png|/GoogleClientCredentialsDownload.png]]&lt;br /&gt;
Customize the OAuth consent screen&lt;br /&gt;
[[File:GoogleOAuthConsentScreenSettings.png|none|thumb|600x600px|/GoogleOAuthConsentScreenSettings.png|/GoogleOAuthConsentScreenSettings.png]]&lt;br /&gt;
Start the customization wizard.&lt;br /&gt;
[[File:GoogleConsentScreenWizard.png|none|thumb|600x600px|/GoogleConsentScreenWizard.png|/GoogleConsentScreenWizard.png]]&lt;br /&gt;
Choose which users may authorize.&lt;br /&gt;
[[File:GoogleAudienceExternal.png|none|thumb|600x600px|/GoogleAudienceExternal.png|/GoogleAudienceExternal.png]]&lt;br /&gt;
Google workspace users may choose internal audience. Users not in Google workspace proceed with external.&lt;br /&gt;
[[File:GoogleContactInformation.png|none|thumb|600x600px|/GoogleContactInformation.png|/GoogleContactInformation.png]]&lt;br /&gt;
Add a test user.&lt;br /&gt;
[[File:GoogleTestUserAdded.png|none|thumb|600x600px|/GoogleTestUserAdded.png|/GoogleTestUserAdded.png]]&lt;br /&gt;
The OAuth2 parameters can be filled in with the information from the json file downloaded above.&lt;br /&gt;
[[File:OAuth2InteractiveGmail.png|none|thumb|600x600px|/OAuth2InteractiveGmail.png|/OAuth2InteractiveGmail.png]]&lt;br /&gt;
8&lt;/div&gt;</summary>
		<author><name>Tmo</name></author>
	</entry>
	<entry>
		<id>https://wiki.innovaphone.com/index.php?title=File:OAuth2InteractiveGmail.png&amp;diff=78142</id>
		<title>File:OAuth2InteractiveGmail.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=File:OAuth2InteractiveGmail.png&amp;diff=78142"/>
		<updated>2025-10-03T07:37:23Z</updated>

		<summary type="html">&lt;p&gt;Tmo: Tmo uploaded a new version of File:OAuth2InteractiveGmail.png&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;OAuth2 interactive Gmail&lt;/div&gt;</summary>
		<author><name>Tmo</name></author>
	</entry>
	<entry>
		<id>https://wiki.innovaphone.com/index.php?title=Howto16r1:Configure_OAuth2_E-Mail&amp;diff=78141</id>
		<title>Howto16r1:Configure OAuth2 E-Mail</title>
		<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=Howto16r1:Configure_OAuth2_E-Mail&amp;diff=78141"/>
		<updated>2025-10-03T07:33:52Z</updated>

		<summary type="html">&lt;p&gt;Tmo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{FIXME|reason=This product is in the beta phase and is not yet finished}}&lt;br /&gt;
&lt;br /&gt;
innovaphone PBX and apps can be configured to send E-Mails for various subjects and purposes. Major E-Mail providers intent to discontinue the username/password authentication schemes in favour of OAuth2. PBX and Apps version 16r1 does support OAuth2 authentication for SMTP. Here is a step by step guide how to set up OAuth2 support in Microsoft 365 through the Azure Portal and how to set it up on a Google Gmail account in the Google Cloud Console.&lt;br /&gt;
&lt;br /&gt;
== Microsoft 365 ==&lt;br /&gt;
Log in to Microsoft Azure Portal (&amp;lt;nowiki&amp;gt;https://portal.azure.com&amp;lt;/nowiki&amp;gt;) and go to Microsoft Entra ID.&lt;br /&gt;
[[File:AzureMicrosoftEntraID.png|none|thumb|600x600px|/AzureMicrosoftEntraID.png|/AzureMicrosoftEntraID.png]]&lt;br /&gt;
Add a new app registration to create client credentials.&lt;br /&gt;
[[File:AzureAddAppRegistration.png|none|thumb|600x600px|/AzureAddAppRegistration.png|/AzureAddAppRegistration.png]]&lt;br /&gt;
Register the application and maybe already fill in the redirect URI for Web based application type to path OAUTH2-CLIENT/auth.htm at the PBX.&lt;br /&gt;
[[File:AzureRegisterAnApplication.png|none|thumb|600x600px|/AzureRegisterAnApplication.png|/AzureRegisterAnApplication.png]]&lt;br /&gt;
App registration is complete. Client ID and tenant needs to be configured at the PBX and every app that will be sending e-mails.&lt;br /&gt;
[[File:AzureApp.png|none|thumb|600x600px|/AzureApp.png|/AzureApp.png]]&lt;br /&gt;
Create a client secret.&lt;br /&gt;
[[File:AzureAddClientSecret.png|none|thumb|600x600px|/AzureAddClientSecret.png|/AzureAddClientSecret.png]]&lt;br /&gt;
Copy the client secret. It also needs to be configured at the PBX and every app that will be sending e-mails.&lt;br /&gt;
[[File:AzureCopyClientSecret.png|none|thumb|600x600px|/AzureCopyClientSecret.png|/AzureCopyClientSecret.png]]&lt;br /&gt;
Add permissions located in APIs my organization uses.&lt;br /&gt;
[[File:AzureAddApiPermissionMyOrganization.png|none|thumb|600x600px|/AzureAddApiPermissionMyOrganization.png|/AzureAddApiPermissionMyOrganization.png]]&lt;br /&gt;
More precisely located in Office 365 Exchange Online.&lt;br /&gt;
[[File:AzureAddApiPermissionExchange.png|none|thumb|600x600px|/AzureAddApiPermissionExchange.png|/AzureAddApiPermissionExchange.png]]&lt;br /&gt;
And there in the application permissions.&lt;br /&gt;
[[File:AzureAddApiExchangeApplication.png|none|thumb|600x600px|/AzureAddApiExchangeApplication.png|/AzureAddApiExchangeApplication.png]]&lt;br /&gt;
Namely SMTP Mail.Send.&lt;br /&gt;
[[File:AzureAddApiSendMailAsUser.png|none|thumb|600x600px|/AzureAddApiSendMailAsUser.png|/AzureAddApiSendMailAsUser.png]]&lt;br /&gt;
Grant admin permission for Mail.Send.&lt;br /&gt;
[[File:AzureGrantApiPermissions.png|none|thumb|600x600px|/AzureGrantApiPermissions.png|/AzureGrantApiPermissions.png]]&lt;br /&gt;
API permissions are now granted.&lt;br /&gt;
[[File:AzureApiPermissionsGranted.png|none|thumb|600x600px|/AzureApiPermissionsGranted.png|/AzureApiPermissionsGranted.png]]&lt;br /&gt;
Tell all redirect URIs that the PBX and the apps will be using during interactive authorization.&lt;br /&gt;
[[File:AzureRedirectUris.png|none|thumb|600x600px|/AzureRedirectUris.png|/AzureRedirectUris.png]]&lt;br /&gt;
Allow public client flows of OAuth2. Resource Owner Password Credentials Flow has the advantage that it doesn&#039;t need interactive authorization.&lt;br /&gt;
[[File:AzureAllowPublicClientFlows.png|none|thumb|600x600px|/AzureAllowPublicClientFlows.png|/AzureAllowPublicClientFlows.png]]&lt;br /&gt;
Log in to the Microsoft 365 admin center (https://admin.cloud.microsoft).&lt;br /&gt;
[[File:MS365AdminCenter.png|none|thumb|600x600px|/MS365AdminCenter.png|/MS365AdminCenter.png]]&lt;br /&gt;
Make sure that Microsoft 365 licenses are assigned to your user.&lt;br /&gt;
[[File:MS365UserLicenses.png|none|thumb|600x600px|/MS365UserLicenses.png|/MS365UserLicenses.png]]&lt;br /&gt;
Set your user active.&lt;br /&gt;
[[File:MS365ActiveUsers.png|none|thumb|600x600px|/MS365ActiveUsers.png|/MS365ActiveUsers.png]]&lt;br /&gt;
Locate the Mail tab of your user.&lt;br /&gt;
[[File:MS365UserEMail.png|none|thumb|600x600px|/MS365UserEMail.png|/MS365UserEMail.png]]&lt;br /&gt;
Allow authenticated SMTP.&lt;br /&gt;
[[File:MS365AuthenticatedSMTP.png|none|thumb|600x600px|/MS365AuthenticatedSMTP.png|/MS365AuthenticatedSMTP.png]]&lt;br /&gt;
Login to the Exchange admin center (&amp;lt;nowiki&amp;gt;https://admin.exchange.microsoft.com&amp;lt;/nowiki&amp;gt;).&lt;br /&gt;
[[File:ExchangeAdminCenter.png|none|thumb|600x600px|/ExchangeAdminCenter.png|/ExchangeAdminCenter.png]]&lt;br /&gt;
Remove deactivation of the SMTP AUTH protocol.&lt;br /&gt;
[[File:ExchangeRemoveDeavtivatedOAuth2.png|none|thumb|600x600px|/ExchangeRemoveDeavtivatedOAuth2.png|/ExchangeRemoveDeavtivatedOAuth2.png]]&lt;br /&gt;
With this Microsoft setup the OAuth2 configuration for the resource owner password credentials flow can be filled in as follows. &lt;br /&gt;
[[File:OAuth2ResourceOwnerPasswordCredentials.png|none|thumb|600x600px|/OAuth2ResourceOwnerPasswordCredentials.png|/OAuth2ResourceOwnerPasswordCredentials.png]]&lt;br /&gt;
For interactive authorization this is the OAuth2 configuration. Authorize e-mail access one time and send a test mail to verify everything went well.&lt;br /&gt;
[[File:OAuth2InteractiveAuthorization.png|none|thumb|600x600px|/OAuth2InteractiveAuthorization.png|/OAuth2InteractiveAuthorization.png]]&lt;br /&gt;
&lt;br /&gt;
== Gmail ==&lt;br /&gt;
Login to the Google Cloud Console (https://console.cloud.google.com), select a project, New project.&lt;br /&gt;
[[File:GoogleSelectProject.png|none|thumb|600x600px|/GoogleSelectProject.png|/GoogleSelectProject.png]]&lt;br /&gt;
Create the project.&lt;br /&gt;
[[File:GoogleCreateProject.png|none|thumb|600x600px|/GoogleCreateProject.png|/GoogleCreateProject.png]]&lt;br /&gt;
Client credentials will be created in this project.&lt;br /&gt;
[[File:GoogleProjectCreated.png|none|thumb|600x600px|/GoogleProjectCreated.png|/GoogleProjectCreated.png]]&lt;br /&gt;
From the library specify the APIs needed to access.&lt;br /&gt;
[[File:GoogleApisServicesFromLibrary.png|none|thumb|600x600px|/GoogleApisServicesFromLibrary.png]]&lt;br /&gt;
These are in the Gmail API.&lt;br /&gt;
[[File:GoogleApisServicesApiLibrary.png|none|thumb|600x600px|/GoogleApisServicesApiLibrary.png|/GoogleApisServicesApiLibrary.png]]&lt;br /&gt;
Choose the Gmail API and enable it.&lt;br /&gt;
[[File:GoogleGmailApis.png|none|thumb|600x600px|/GoogleGmailApis.png|/GoogleGmailApis.png]]&lt;br /&gt;
Credentials need to be created.&lt;br /&gt;
[[File:GoogleGmailApiAdded.png|none|thumb|600x600px|/GoogleGmailApiAdded.png|/GoogleGmailApiAdded.png]]&lt;br /&gt;
Invoke the help me choose wizard.&lt;br /&gt;
[[File:GoogleCreateCredentialsHelpMeChoose.png|none|thumb|600x600px|/GoogleCreateCredentialsHelpMeChoose.png|/GoogleCreateCredentialsHelpMeChoose.png]]&lt;br /&gt;
User data access is needed.&lt;br /&gt;
[[File:GoogleCredentialsUserData.png|none|thumb|600x600px|/GoogleCredentialsUserData.png|/GoogleCredentialsUserData.png]]&lt;br /&gt;
Configure the consent screen of the interactive authorization.&lt;br /&gt;
[[File:GoogleOAuthConsentScreen.png|none|thumb|600x600px|/GoogleOAuthConsentScreen.png|/GoogleOAuthConsentScreen.png]]&lt;br /&gt;
Specify the permissions that need to be authorized by the user.&lt;br /&gt;
[[File:GoogleOAuthScopes.png|none|thumb|600x600px|/GoogleOAuthScopes.png|/GoogleOAuthScopes.png]]&lt;br /&gt;
Its mail.google.com in general.&lt;br /&gt;
[[File:GoogleScopeMailGoogleCom.png|none|thumb|600x600px|/GoogleScopeMailGoogleCom.png|/GoogleScopeMailGoogleCom.png]]&lt;br /&gt;
And its to send email on the users behalf.&lt;br /&gt;
[[File:GoogleScopeAuthGmailSend.png|none|thumb|600x600px|/GoogleScopeAuthGmailSend.png|/GoogleScopeAuthGmailSend.png]]&lt;br /&gt;
These are the scopes needed.&lt;br /&gt;
[[File:GoogleScopes.png|none|thumb|600x600px|/GoogleScopes.png|/GoogleScopes.png]]&lt;br /&gt;
Ask client credentials for Web type application.&lt;br /&gt;
[[File:GoogleOAuthClientID.png|none|thumb|600x600px|/GoogleOAuthClientID.png|/GoogleOAuthClientID.png]]&lt;br /&gt;
9&lt;br /&gt;
[[File:GoogleRedirectURIs.png|none|thumb|600x600px|/GoogleRedirectURIs.png|/GoogleRedirectURIs.png]]&lt;br /&gt;
1&lt;br /&gt;
[[File:GoogleClientCredentialsDownload.png|none|thumb|600x600px|/GoogleClientCredentialsDownload.png|/GoogleClientCredentialsDownload.png]]&lt;br /&gt;
2&lt;br /&gt;
[[File:GoogleOAuthConsentScreenSettings.png|none|thumb|600x600px|/GoogleOAuthConsentScreenSettings.png|/GoogleOAuthConsentScreenSettings.png]]&lt;br /&gt;
3&lt;br /&gt;
[[File:GoogleConsentScreenWizard.png|none|thumb|600x600px|/GoogleConsentScreenWizard.png|/GoogleConsentScreenWizard.png]]&lt;br /&gt;
4&lt;br /&gt;
[[File:GoogleAudienceExternal.png|none|thumb|600x600px|/GoogleAudienceExternal.png|/GoogleAudienceExternal.png]]&lt;br /&gt;
5&lt;br /&gt;
[[File:GoogleContactInformation.png|none|thumb|600x600px|/GoogleContactInformation.png|/GoogleContactInformation.png]]&lt;br /&gt;
6&lt;br /&gt;
[[File:GoogleTestUserAdded.png|none|thumb|600x600px|/GoogleTestUserAdded.png|/GoogleTestUserAdded.png]]&lt;br /&gt;
7&lt;br /&gt;
[[File:OAuth2InteractiveGmail.png|none|thumb|600x600px|/OAuth2InteractiveGmail.png|/OAuth2InteractiveGmail.png]]&lt;br /&gt;
8&lt;/div&gt;</summary>
		<author><name>Tmo</name></author>
	</entry>
	<entry>
		<id>https://wiki.innovaphone.com/index.php?title=Howto16r1:Configure_OAuth2_E-Mail&amp;diff=78140</id>
		<title>Howto16r1:Configure OAuth2 E-Mail</title>
		<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=Howto16r1:Configure_OAuth2_E-Mail&amp;diff=78140"/>
		<updated>2025-10-03T06:05:55Z</updated>

		<summary type="html">&lt;p&gt;Tmo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{FIXME|reason=This product is in the beta phase and is not yet finished}}&lt;br /&gt;
&lt;br /&gt;
innovaphone PBX and apps can be configured to send E-Mails for various subjects and purposes. Major E-Mail providers intent to discontinue the username/password authentication schemes in favour of OAuth2. PBX and Apps version 16r1 does support OAuth2 authentication for SMTP. Here is a step by step guide how to set up OAuth2 support in Microsoft 365 through the Azure Portal and how to set it up on a Google Gmail account in the Google Cloud Console.&lt;br /&gt;
&lt;br /&gt;
== Microsoft 365 ==&lt;br /&gt;
Log in to Microsoft Azure Portal (&amp;lt;nowiki&amp;gt;https://portal.azure.com&amp;lt;/nowiki&amp;gt;) and go to Microsoft Entra ID.&lt;br /&gt;
[[File:AzureMicrosoftEntraID.png|none|thumb|600x600px|/AzureMicrosoftEntraID.png|/AzureMicrosoftEntraID.png]]&lt;br /&gt;
Add a new app registration to create client credentials.&lt;br /&gt;
[[File:AzureAddAppRegistration.png|none|thumb|600x600px|/AzureAddAppRegistration.png|/AzureAddAppRegistration.png]]&lt;br /&gt;
Register the application and maybe already fill in the redirect URI for Web based application type to path OAUTH2-CLIENT/auth.htm at the PBX.&lt;br /&gt;
[[File:AzureRegisterAnApplication.png|none|thumb|600x600px|/AzureRegisterAnApplication.png|/AzureRegisterAnApplication.png]]&lt;br /&gt;
App registration is complete. Client ID and tenant needs to be configured at the PBX and every app that will be sending e-mails.&lt;br /&gt;
[[File:AzureApp.png|none|thumb|600x600px|/AzureApp.png|/AzureApp.png]]&lt;br /&gt;
Create a client secret.&lt;br /&gt;
[[File:AzureAddClientSecret.png|none|thumb|600x600px|/AzureAddClientSecret.png|/AzureAddClientSecret.png]]&lt;br /&gt;
Copy the client secret. It also needs to be configured at the PBX and every app that will be sending e-mails.&lt;br /&gt;
[[File:AzureCopyClientSecret.png|none|thumb|600x600px|/AzureCopyClientSecret.png|/AzureCopyClientSecret.png]]&lt;br /&gt;
Add permissions located in APIs my organization uses.&lt;br /&gt;
[[File:AzureAddApiPermissionMyOrganization.png|none|thumb|600x600px|/AzureAddApiPermissionMyOrganization.png|/AzureAddApiPermissionMyOrganization.png]]&lt;br /&gt;
More precisely located in Office 365 Exchange Online.&lt;br /&gt;
[[File:AzureAddApiPermissionExchange.png|none|thumb|600x600px|/AzureAddApiPermissionExchange.png|/AzureAddApiPermissionExchange.png]]&lt;br /&gt;
And there in the application permissions.&lt;br /&gt;
[[File:AzureAddApiExchangeApplication.png|none|thumb|600x600px|/AzureAddApiExchangeApplication.png|/AzureAddApiExchangeApplication.png]]&lt;br /&gt;
Namely SMTP Mail.Send.&lt;br /&gt;
[[File:AzureAddApiSendMailAsUser.png|none|thumb|600x600px|/AzureAddApiSendMailAsUser.png|/AzureAddApiSendMailAsUser.png]]&lt;br /&gt;
Grant admin permission for Mail.Send.&lt;br /&gt;
[[File:AzureGrantApiPermissions.png|none|thumb|600x600px|/AzureGrantApiPermissions.png|/AzureGrantApiPermissions.png]]&lt;br /&gt;
API permissions are now granted.&lt;br /&gt;
[[File:AzureApiPermissionsGranted.png|none|thumb|600x600px|/AzureApiPermissionsGranted.png|/AzureApiPermissionsGranted.png]]&lt;br /&gt;
Tell all redirect URIs that the PBX and the apps will be using during interactive authorization.&lt;br /&gt;
[[File:AzureRedirectUris.png|none|thumb|600x600px|/AzureRedirectUris.png|/AzureRedirectUris.png]]&lt;br /&gt;
Allow public client flows of OAuth2. Resource Owner Password Credentials Flow has the advantage that it doesn&#039;t need interactive authorization.&lt;br /&gt;
[[File:AzureAllowPublicClientFlows.png|none|thumb|600x600px|/AzureAllowPublicClientFlows.png|/AzureAllowPublicClientFlows.png]]&lt;br /&gt;
Log in to the Microsoft 365 admin center (https://admin.cloud.microsoft).&lt;br /&gt;
[[File:MS365AdminCenter.png|none|thumb|600x600px|/MS365AdminCenter.png|/MS365AdminCenter.png]]&lt;br /&gt;
Make sure that Microsoft 365 licenses are assigned to your user.&lt;br /&gt;
[[File:MS365UserLicenses.png|none|thumb|600x600px|/MS365UserLicenses.png|/MS365UserLicenses.png]]&lt;br /&gt;
Set your user active.&lt;br /&gt;
[[File:MS365ActiveUsers.png|none|thumb|600x600px|/MS365ActiveUsers.png|/MS365ActiveUsers.png]]&lt;br /&gt;
Locate the Mail tab of your user.&lt;br /&gt;
[[File:MS365UserEMail.png|none|thumb|600x600px|/MS365UserEMail.png|/MS365UserEMail.png]]&lt;br /&gt;
Allow authenticated SMTP.&lt;br /&gt;
[[File:MS365AuthenticatedSMTP.png|none|thumb|600x600px|/MS365AuthenticatedSMTP.png|/MS365AuthenticatedSMTP.png]]&lt;br /&gt;
Login to the Exchange admin center (&amp;lt;nowiki&amp;gt;https://admin.exchange.microsoft.com&amp;lt;/nowiki&amp;gt;).&lt;br /&gt;
[[File:ExchangeAdminCenter.png|none|thumb|600x600px|/ExchangeAdminCenter.png|/ExchangeAdminCenter.png]]&lt;br /&gt;
Remove deactivation of the SMTP AUTH protocol.&lt;br /&gt;
[[File:ExchangeRemoveDeavtivatedOAuth2.png|none|thumb|600x600px|/ExchangeRemoveDeavtivatedOAuth2.png|/ExchangeRemoveDeavtivatedOAuth2.png]]&lt;br /&gt;
With this Microsoft setup the OAuth2 configuration for the resource owner password credentials flow can be filled in as follows. &lt;br /&gt;
[[File:OAuth2ResourceOwnerPasswordCredentials.png|none|thumb|600x600px|/OAuth2ResourceOwnerPasswordCredentials.png|/OAuth2ResourceOwnerPasswordCredentials.png]]&lt;br /&gt;
For interactive authorization this is the OAuth2 configuration. Authorize e-mail access one time and send a test mail to verify everything went well.&lt;br /&gt;
[[File:OAuth2InteractiveAuthorization.png|none|thumb|600x600px|/OAuth2InteractiveAuthorization.png|/OAuth2InteractiveAuthorization.png]]&lt;br /&gt;
&lt;br /&gt;
== Gmail ==&lt;br /&gt;
Login to the Google Cloud Console (https://console.cloud.google.com), select a project, New project.&lt;br /&gt;
[[File:GoogleSelectProject.png|none|thumb|600x600px|/GoogleSelectProject.png|/GoogleSelectProject.png]]&lt;br /&gt;
Create the project.&lt;br /&gt;
[[File:GoogleCreateProject.png|none|thumb|600x600px|/GoogleCreateProject.png|/GoogleCreateProject.png]]&lt;br /&gt;
Client credentials will be created in this project.&lt;br /&gt;
[[File:GoogleProjectCreated.png|none|thumb|600x600px|/GoogleProjectCreated.png|/GoogleProjectCreated.png]]&lt;br /&gt;
From the library specify the APIs needed to access.&lt;br /&gt;
[[File:GoogleApisServicesFromLibrary.png|none|thumb|600x600px]]&lt;br /&gt;
These are in the Gmail API.&lt;br /&gt;
[[File:GoogleApisServicesApiLibrary.png|none|thumb|600x600px|/GoogleApisServicesApiLibrary.png|/GoogleApisServicesApiLibrary.png]]&lt;br /&gt;
Choose the Gmail API and enable it.&lt;br /&gt;
[[File:GoogleGmailApis.png|none|thumb|600x600px|/GoogleGmailApis.png|/GoogleGmailApis.png]]&lt;br /&gt;
Credentials need to be created.&lt;br /&gt;
[[File:GoogleGmailApiAdded.png|none|thumb|600x600px|/GoogleGmailApiAdded.png|/GoogleGmailApiAdded.png]]&lt;br /&gt;
Invoke the help me choose wizard.&lt;br /&gt;
[[File:GoogleCreateCredentialsHelpMeChoose.png|none|thumb|600x600px|/GoogleCreateCredentialsHelpMeChoose.png|/GoogleCreateCredentialsHelpMeChoose.png]]&lt;br /&gt;
Access is needed with interactive authorization and user data access.&lt;br /&gt;
[[File:GoogleCredentialsUserData.png|none|thumb|600x600px|/GoogleCredentialsUserData.png|/GoogleCredentialsUserData.png]]&lt;br /&gt;
3&lt;br /&gt;
[[File:GoogleOAuthConsentScreen.png|none|thumb|600x600px|/GoogleOAuthConsentScreen.png|/GoogleOAuthConsentScreen.png]]&lt;br /&gt;
4&lt;br /&gt;
[[File:GoogleOAuthScopes.png|none|thumb|600x600px|/GoogleOAuthScopes.png|/GoogleOAuthScopes.png]]&lt;br /&gt;
5&lt;br /&gt;
[[File:GoogleScopeMailGoogleCom.png|none|thumb|600x600px|/GoogleScopeMailGoogleCom.png|/GoogleScopeMailGoogleCom.png]]&lt;br /&gt;
6&lt;br /&gt;
[[File:GoogleScopeAuthGmailSend.png|none|thumb|600x600px|/GoogleScopeAuthGmailSend.png|/GoogleScopeAuthGmailSend.png]]&lt;br /&gt;
7&lt;br /&gt;
[[File:GoogleScopes.png|none|thumb|600x600px|/GoogleScopes.png|/GoogleScopes.png]]&lt;br /&gt;
8&lt;br /&gt;
[[File:GoogleOAuthClientID.png|none|thumb|600x600px|/GoogleOAuthClientID.png|/GoogleOAuthClientID.png]]&lt;br /&gt;
9&lt;br /&gt;
[[File:GoogleRedirectURIs.png|none|thumb|600x600px|/GoogleRedirectURIs.png|/GoogleRedirectURIs.png]]&lt;br /&gt;
1&lt;br /&gt;
[[File:GoogleClientCredentialsDownload.png|none|thumb|600x600px|/GoogleClientCredentialsDownload.png|/GoogleClientCredentialsDownload.png]]&lt;br /&gt;
2&lt;br /&gt;
[[File:GoogleOAuthConsentScreenSettings.png|none|thumb|600x600px|/GoogleOAuthConsentScreenSettings.png|/GoogleOAuthConsentScreenSettings.png]]&lt;br /&gt;
3&lt;br /&gt;
[[File:GoogleConsentScreenWizard.png|none|thumb|600x600px|/GoogleConsentScreenWizard.png|/GoogleConsentScreenWizard.png]]&lt;br /&gt;
4&lt;br /&gt;
[[File:GoogleAudienceExternal.png|none|thumb|600x600px|/GoogleAudienceExternal.png|/GoogleAudienceExternal.png]]&lt;br /&gt;
5&lt;br /&gt;
[[File:GoogleContactInformation.png|none|thumb|600x600px|/GoogleContactInformation.png|/GoogleContactInformation.png]]&lt;br /&gt;
6&lt;br /&gt;
[[File:GoogleTestUserAdded.png|none|thumb|600x600px|/GoogleTestUserAdded.png|/GoogleTestUserAdded.png]]&lt;br /&gt;
7&lt;br /&gt;
[[File:OAuth2InteractiveGmail.png|none|thumb|600x600px|/OAuth2InteractiveGmail.png|/OAuth2InteractiveGmail.png]]&lt;br /&gt;
8&lt;/div&gt;</summary>
		<author><name>Tmo</name></author>
	</entry>
	<entry>
		<id>https://wiki.innovaphone.com/index.php?title=File:GoogleApisServicesFromLibrary.png&amp;diff=78139</id>
		<title>File:GoogleApisServicesFromLibrary.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=File:GoogleApisServicesFromLibrary.png&amp;diff=78139"/>
		<updated>2025-10-03T06:01:09Z</updated>

		<summary type="html">&lt;p&gt;Tmo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;APIs services from library&lt;/div&gt;</summary>
		<author><name>Tmo</name></author>
	</entry>
	<entry>
		<id>https://wiki.innovaphone.com/index.php?title=Howto16r1:Configure_OAuth2_E-Mail&amp;diff=78123</id>
		<title>Howto16r1:Configure OAuth2 E-Mail</title>
		<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=Howto16r1:Configure_OAuth2_E-Mail&amp;diff=78123"/>
		<updated>2025-10-02T21:08:38Z</updated>

		<summary type="html">&lt;p&gt;Tmo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{FIXME|reason=This product is in the beta phase and is not yet finished}}&lt;br /&gt;
&lt;br /&gt;
innovaphone PBX and apps can be configured to send E-Mails for various subjects and purposes. Major E-Mail providers intent to discontinue the username/password authentication schemes in favour of OAuth2. PBX and Apps version 16r1 does support OAuth2 authentication for SMTP. Here is a step by step guide how to set up OAuth2 support in Microsoft 365 through the Azure Portal and how to set it up on a Google Gmail account in the Google Cloud Console.&lt;br /&gt;
&lt;br /&gt;
== Microsoft 365 ==&lt;br /&gt;
Log in to Microsoft Azure Portal (&amp;lt;nowiki&amp;gt;https://portal.azure.com&amp;lt;/nowiki&amp;gt;) and go to Microsoft Entra ID.&lt;br /&gt;
[[File:AzureMicrosoftEntraID.png|none|thumb|600x600px|/AzureMicrosoftEntraID.png|/AzureMicrosoftEntraID.png]]&lt;br /&gt;
Add a new app registration to create client credentials.&lt;br /&gt;
[[File:AzureAddAppRegistration.png|none|thumb|600x600px|/AzureAddAppRegistration.png|/AzureAddAppRegistration.png]]&lt;br /&gt;
Register the application and maybe already fill in the redirect URI for Web based application type to path OAUTH2-CLIENT/auth.htm at the PBX.&lt;br /&gt;
[[File:AzureRegisterAnApplication.png|none|thumb|600x600px|/AzureRegisterAnApplication.png|/AzureRegisterAnApplication.png]]&lt;br /&gt;
App registration is complete. Client ID and tenant needs to be configured at the PBX and every app that will be sending e-mails.&lt;br /&gt;
[[File:AzureApp.png|none|thumb|600x600px|/AzureApp.png|/AzureApp.png]]&lt;br /&gt;
Create a client secret.&lt;br /&gt;
[[File:AzureAddClientSecret.png|none|thumb|600x600px|/AzureAddClientSecret.png|/AzureAddClientSecret.png]]&lt;br /&gt;
Copy the client secret. It also needs to be configured at the PBX and every app that will be sending e-mails.&lt;br /&gt;
[[File:AzureCopyClientSecret.png|none|thumb|600x600px|/AzureCopyClientSecret.png|/AzureCopyClientSecret.png]]&lt;br /&gt;
Add permissions located in APIs my organization uses.&lt;br /&gt;
[[File:AzureAddApiPermissionMyOrganization.png|none|thumb|600x600px|/AzureAddApiPermissionMyOrganization.png|/AzureAddApiPermissionMyOrganization.png]]&lt;br /&gt;
More precisely located in Office 365 Exchange Online.&lt;br /&gt;
[[File:AzureAddApiPermissionExchange.png|none|thumb|600x600px|/AzureAddApiPermissionExchange.png|/AzureAddApiPermissionExchange.png]]&lt;br /&gt;
And there in the application permissions.&lt;br /&gt;
[[File:AzureAddApiExchangeApplication.png|none|thumb|600x600px|/AzureAddApiExchangeApplication.png|/AzureAddApiExchangeApplication.png]]&lt;br /&gt;
Namely SMTP Mail.Send.&lt;br /&gt;
[[File:AzureAddApiSendMailAsUser.png|none|thumb|600x600px|/AzureAddApiSendMailAsUser.png|/AzureAddApiSendMailAsUser.png]]&lt;br /&gt;
Grant admin permission for Mail.Send.&lt;br /&gt;
[[File:AzureGrantApiPermissions.png|none|thumb|600x600px|/AzureGrantApiPermissions.png|/AzureGrantApiPermissions.png]]&lt;br /&gt;
API permissions are now granted.&lt;br /&gt;
[[File:AzureApiPermissionsGranted.png|none|thumb|600x600px|/AzureApiPermissionsGranted.png|/AzureApiPermissionsGranted.png]]&lt;br /&gt;
Tell all redirect URIs that the PBX and the apps will be using during interactive authorization.&lt;br /&gt;
[[File:AzureRedirectUris.png|none|thumb|600x600px|/AzureRedirectUris.png|/AzureRedirectUris.png]]&lt;br /&gt;
Allow public client flows of OAuth2. Resource Owner Password Credentials Flow has the advantage that it doesn&#039;t need interactive authorization.&lt;br /&gt;
[[File:AzureAllowPublicClientFlows.png|none|thumb|600x600px|/AzureAllowPublicClientFlows.png|/AzureAllowPublicClientFlows.png]]&lt;br /&gt;
Log in to the Microsoft 365 admin center (https://admin.cloud.microsoft).&lt;br /&gt;
[[File:MS365AdminCenter.png|none|thumb|600x600px|/MS365AdminCenter.png|/MS365AdminCenter.png]]&lt;br /&gt;
Make sure that Microsoft 365 licenses are assigned to your user.&lt;br /&gt;
[[File:MS365UserLicenses.png|none|thumb|600x600px|/MS365UserLicenses.png|/MS365UserLicenses.png]]&lt;br /&gt;
Set your user active.&lt;br /&gt;
[[File:MS365ActiveUsers.png|none|thumb|600x600px|/MS365ActiveUsers.png|/MS365ActiveUsers.png]]&lt;br /&gt;
Locate the Mail tab of your user.&lt;br /&gt;
[[File:MS365UserEMail.png|none|thumb|600x600px|/MS365UserEMail.png|/MS365UserEMail.png]]&lt;br /&gt;
Allow authenticated SMTP.&lt;br /&gt;
[[File:MS365AuthenticatedSMTP.png|none|thumb|600x600px|/MS365AuthenticatedSMTP.png|/MS365AuthenticatedSMTP.png]]&lt;br /&gt;
Login to the Exchange admin center (&amp;lt;nowiki&amp;gt;https://admin.exchange.microsoft.com&amp;lt;/nowiki&amp;gt;).&lt;br /&gt;
[[File:ExchangeAdminCenter.png|none|thumb|600x600px|/ExchangeAdminCenter.png|/ExchangeAdminCenter.png]]&lt;br /&gt;
Remove deactivation of the SMTP AUTH protocol.&lt;br /&gt;
[[File:ExchangeRemoveDeavtivatedOAuth2.png|none|thumb|600x600px|/ExchangeRemoveDeavtivatedOAuth2.png|/ExchangeRemoveDeavtivatedOAuth2.png]]&lt;br /&gt;
With this Microsoft setup the OAuth2 configuration for the resource owner password credentials flow can be filled in as follows. &lt;br /&gt;
[[File:OAuth2ResourceOwnerPasswordCredentials.png|none|thumb|600x600px|/OAuth2ResourceOwnerPasswordCredentials.png|/OAuth2ResourceOwnerPasswordCredentials.png]]&lt;br /&gt;
For interactive authorization this is the OAuth2 configuration. Authorize e-mail access one time and send a test mail to verify everything went well.&lt;br /&gt;
[[File:OAuth2InteractiveAuthorization.png|none|thumb|600x600px|/OAuth2InteractiveAuthorization.png|/OAuth2InteractiveAuthorization.png]]&lt;br /&gt;
&lt;br /&gt;
== Gmail ==&lt;br /&gt;
1&lt;br /&gt;
[[File:GoogleSelectProject.png|none|thumb|600x600px|/GoogleSelectProject.png]]&lt;br /&gt;
2&lt;br /&gt;
[[File:GoogleCreateProject.png|none|thumb|600x600px|/GoogleCreateProject.png]]&lt;br /&gt;
3&lt;br /&gt;
[[File:GoogleProjectCreated.png|none|thumb|600x600px|/GoogleProjectCreated.png]]&lt;br /&gt;
4&lt;br /&gt;
[[File:GoogleEnabledApisServices.png|none|thumb|600x600px|/GoogleEnabledApisServices.png]]&lt;br /&gt;
5&lt;br /&gt;
[[File:GoogleApisServicesLibrary.png|none|thumb|600x600px|/GoogleApisServicesLibrary.png]]&lt;br /&gt;
6&lt;br /&gt;
[[File:GoogleApisServicesApiLibrary.png|none|thumb|600x600px|/GoogleApisServicesApiLibrary.png]]&lt;br /&gt;
7&lt;br /&gt;
[[File:GoogleGmailApis.png|none|thumb|600x600px|/GoogleGmailApis.png]]&lt;br /&gt;
8&lt;br /&gt;
[[File:GoogleAddGmailApi.png|none|thumb|600x600px|/GoogleAddGmailApi.png]]&lt;br /&gt;
9&lt;br /&gt;
[[File:GoogleGmailApiAdded.png|none|thumb|600x600px|/GoogleGmailApiAdded.png]]&lt;br /&gt;
1&lt;br /&gt;
[[File:GoogleCreateCredentialsHelpMeChoose.png|none|thumb|600x600px|/GoogleCreateCredentialsHelpMeChoose.png]]&lt;br /&gt;
2&lt;br /&gt;
[[File:GoogleCredentialsUserData.png|none|thumb|600x600px|/GoogleCredentialsUserData.png]]&lt;br /&gt;
3&lt;br /&gt;
[[File:GoogleOAuthConsentScreen.png|none|thumb|600x600px|/GoogleOAuthConsentScreen.png]]&lt;br /&gt;
4&lt;br /&gt;
[[File:GoogleOAuthScopes.png|none|thumb|600x600px|/GoogleOAuthScopes.png]]&lt;br /&gt;
5&lt;br /&gt;
[[File:GoogleScopeMailGoogleCom.png|none|thumb|600x600px|/GoogleScopeMailGoogleCom.png]]&lt;br /&gt;
6&lt;br /&gt;
[[File:GoogleScopeAuthGmailSend.png|none|thumb|600x600px|/GoogleScopeAuthGmailSend.png]]&lt;br /&gt;
7&lt;br /&gt;
[[File:GoogleScopes.png|none|thumb|600x600px|/GoogleScopes.png]]&lt;br /&gt;
8&lt;br /&gt;
[[File:GoogleOAuthClientID.png|none|thumb|600x600px|/GoogleOAuthClientID.png]]&lt;br /&gt;
9&lt;br /&gt;
[[File:GoogleRedirectURIs.png|none|thumb|600x600px|/GoogleRedirectURIs.png]]&lt;br /&gt;
1&lt;br /&gt;
[[File:GoogleClientCredentialsDownload.png|none|thumb|600x600px|/GoogleClientCredentialsDownload.png]]&lt;br /&gt;
2&lt;br /&gt;
[[File:GoogleOAuthConsentScreenSettings.png|none|thumb|600x600px|/GoogleOAuthConsentScreenSettings.png]]&lt;br /&gt;
3&lt;br /&gt;
[[File:GoogleConsentScreenWizard.png|none|thumb|600x600px|/GoogleConsentScreenWizard.png]]&lt;br /&gt;
4&lt;br /&gt;
[[File:GoogleAudienceExternal.png|none|thumb|600x600px|/GoogleAudienceExternal.png]]&lt;br /&gt;
5&lt;br /&gt;
[[File:GoogleContactInformation.png|none|thumb|600x600px|/GoogleContactInformation.png]]&lt;br /&gt;
6&lt;br /&gt;
[[File:GoogleTestUserAdded.png|none|thumb|600x600px|/GoogleTestUserAdded.png]]&lt;br /&gt;
7&lt;br /&gt;
[[File:OAuth2InteractiveGmail.png|none|thumb|600x600px|/OAuth2InteractiveGmail.png]]&lt;br /&gt;
8&lt;/div&gt;</summary>
		<author><name>Tmo</name></author>
	</entry>
	<entry>
		<id>https://wiki.innovaphone.com/index.php?title=Howto16r1:Configure_OAuth2_E-Mail&amp;diff=78122</id>
		<title>Howto16r1:Configure OAuth2 E-Mail</title>
		<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=Howto16r1:Configure_OAuth2_E-Mail&amp;diff=78122"/>
		<updated>2025-10-02T21:07:47Z</updated>

		<summary type="html">&lt;p&gt;Tmo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{FIXME|reason=This product is in the beta phase and is not yet finished}}&lt;br /&gt;
[[File:OAuth2InteractiveGmail.png|none|thumb|600x600px]]&lt;br /&gt;
innovaphone PBX and apps can be configured to send E-Mails for various subjects and purposes. Major E-Mail providers intent to discontinue the username/password authentication schemes in favour of OAuth2. PBX and Apps version 16r1 does support OAuth2 authentication for SMTP. Here is a step by step guide how to set up OAuth2 support in Microsoft 365 through the Azure Portal and how to set it up on a Google Gmail account in the Google Cloud Console.&lt;br /&gt;
&lt;br /&gt;
== Microsoft 365 ==&lt;br /&gt;
Log in to Microsoft Azure Portal (&amp;lt;nowiki&amp;gt;https://portal.azure.com&amp;lt;/nowiki&amp;gt;) and go to Microsoft Entra ID.&lt;br /&gt;
[[File:AzureMicrosoftEntraID.png|none|thumb|600x600px|/AzureMicrosoftEntraID.png|/AzureMicrosoftEntraID.png]]&lt;br /&gt;
Add a new app registration to create client credentials.&lt;br /&gt;
[[File:AzureAddAppRegistration.png|none|thumb|600x600px|/AzureAddAppRegistration.png|/AzureAddAppRegistration.png]]&lt;br /&gt;
Register the application and maybe already fill in the redirect URI for Web based application type to path OAUTH2-CLIENT/auth.htm at the PBX.&lt;br /&gt;
[[File:AzureRegisterAnApplication.png|none|thumb|600x600px|/AzureRegisterAnApplication.png|/AzureRegisterAnApplication.png]]&lt;br /&gt;
App registration is complete. Client ID and tenant needs to be configured at the PBX and every app that will be sending e-mails.&lt;br /&gt;
[[File:AzureApp.png|none|thumb|600x600px|/AzureApp.png|/AzureApp.png]]&lt;br /&gt;
Create a client secret.&lt;br /&gt;
[[File:AzureAddClientSecret.png|none|thumb|600x600px|/AzureAddClientSecret.png|/AzureAddClientSecret.png]]&lt;br /&gt;
Copy the client secret. It also needs to be configured at the PBX and every app that will be sending e-mails.&lt;br /&gt;
[[File:AzureCopyClientSecret.png|none|thumb|600x600px|/AzureCopyClientSecret.png|/AzureCopyClientSecret.png]]&lt;br /&gt;
Add permissions located in APIs my organization uses.&lt;br /&gt;
[[File:AzureAddApiPermissionMyOrganization.png|none|thumb|600x600px|/AzureAddApiPermissionMyOrganization.png|/AzureAddApiPermissionMyOrganization.png]]&lt;br /&gt;
More precisely located in Office 365 Exchange Online.&lt;br /&gt;
[[File:AzureAddApiPermissionExchange.png|none|thumb|600x600px|/AzureAddApiPermissionExchange.png|/AzureAddApiPermissionExchange.png]]&lt;br /&gt;
And there in the application permissions.&lt;br /&gt;
[[File:AzureAddApiExchangeApplication.png|none|thumb|600x600px|/AzureAddApiExchangeApplication.png|/AzureAddApiExchangeApplication.png]]&lt;br /&gt;
Namely SMTP Mail.Send.&lt;br /&gt;
[[File:AzureAddApiSendMailAsUser.png|none|thumb|600x600px|/AzureAddApiSendMailAsUser.png|/AzureAddApiSendMailAsUser.png]]&lt;br /&gt;
Grant admin permission for Mail.Send.&lt;br /&gt;
[[File:AzureGrantApiPermissions.png|none|thumb|600x600px|/AzureGrantApiPermissions.png|/AzureGrantApiPermissions.png]]&lt;br /&gt;
API permissions are now granted.&lt;br /&gt;
[[File:AzureApiPermissionsGranted.png|none|thumb|600x600px|/AzureApiPermissionsGranted.png|/AzureApiPermissionsGranted.png]]&lt;br /&gt;
Tell all redirect URIs that the PBX and the apps will be using during interactive authorization.&lt;br /&gt;
[[File:AzureRedirectUris.png|none|thumb|600x600px|/AzureRedirectUris.png|/AzureRedirectUris.png]]&lt;br /&gt;
Allow public client flows of OAuth2. Resource Owner Password Credentials Flow has the advantage that it doesn&#039;t need interactive authorization.&lt;br /&gt;
[[File:AzureAllowPublicClientFlows.png|none|thumb|600x600px|/AzureAllowPublicClientFlows.png|/AzureAllowPublicClientFlows.png]]&lt;br /&gt;
Log in to the Microsoft 365 admin center (https://admin.cloud.microsoft).&lt;br /&gt;
[[File:MS365AdminCenter.png|none|thumb|600x600px|/MS365AdminCenter.png|/MS365AdminCenter.png]]&lt;br /&gt;
Make sure that Microsoft 365 licenses are assigned to your user.&lt;br /&gt;
[[File:MS365UserLicenses.png|none|thumb|600x600px|/MS365UserLicenses.png|/MS365UserLicenses.png]]&lt;br /&gt;
Set your user active.&lt;br /&gt;
[[File:MS365ActiveUsers.png|none|thumb|600x600px|/MS365ActiveUsers.png|/MS365ActiveUsers.png]]&lt;br /&gt;
Locate the Mail tab of your user.&lt;br /&gt;
[[File:MS365UserEMail.png|none|thumb|600x600px|/MS365UserEMail.png|/MS365UserEMail.png]]&lt;br /&gt;
Allow authenticated SMTP.&lt;br /&gt;
[[File:MS365AuthenticatedSMTP.png|none|thumb|600x600px|/MS365AuthenticatedSMTP.png|/MS365AuthenticatedSMTP.png]]&lt;br /&gt;
Login to the Exchange admin center (&amp;lt;nowiki&amp;gt;https://admin.exchange.microsoft.com&amp;lt;/nowiki&amp;gt;).&lt;br /&gt;
[[File:ExchangeAdminCenter.png|none|thumb|600x600px|/ExchangeAdminCenter.png|/ExchangeAdminCenter.png]]&lt;br /&gt;
Remove deactivation of the SMTP AUTH protocol.&lt;br /&gt;
[[File:ExchangeRemoveDeavtivatedOAuth2.png|none|thumb|600x600px|/ExchangeRemoveDeavtivatedOAuth2.png|/ExchangeRemoveDeavtivatedOAuth2.png]]&lt;br /&gt;
With this Microsoft setup the OAuth2 configuration for the resource owner password credentials flow can be filled in as follows. &lt;br /&gt;
[[File:OAuth2ResourceOwnerPasswordCredentials.png|none|thumb|600x600px|/OAuth2ResourceOwnerPasswordCredentials.png|/OAuth2ResourceOwnerPasswordCredentials.png]]&lt;br /&gt;
For interactive authorization this is the OAuth2 configuration. Authorize e-mail access one time and send a test mail to verify everything went well.&lt;br /&gt;
[[File:OAuth2InteractiveAuthorization.png|none|thumb|600x600px|/OAuth2InteractiveAuthorization.png|/OAuth2InteractiveAuthorization.png]]&lt;br /&gt;
&lt;br /&gt;
== Gmail ==&lt;br /&gt;
1&lt;br /&gt;
[[File:GoogleSelectProject.png|none|thumb|600x600px|/GoogleSelectProject.png]]&lt;br /&gt;
2&lt;br /&gt;
[[File:GoogleCreateProject.png|none|thumb|600x600px|/GoogleCreateProject.png]]&lt;br /&gt;
3&lt;br /&gt;
[[File:GoogleProjectCreated.png|none|thumb|600x600px|/GoogleProjectCreated.png]]&lt;br /&gt;
4&lt;br /&gt;
[[File:GoogleEnabledApisServices.png|none|thumb|600x600px|/GoogleEnabledApisServices.png]]&lt;br /&gt;
5&lt;br /&gt;
[[File:GoogleApisServicesLibrary.png|none|thumb|600x600px|/GoogleApisServicesLibrary.png]]&lt;br /&gt;
6&lt;br /&gt;
[[File:GoogleApisServicesApiLibrary.png|none|thumb|600x600px|/GoogleApisServicesApiLibrary.png]]&lt;br /&gt;
7&lt;br /&gt;
[[File:GoogleGmailApis.png|none|thumb|600x600px|/GoogleGmailApis.png]]&lt;br /&gt;
8&lt;br /&gt;
[[File:GoogleAddGmailApi.png|none|thumb|600x600px|/GoogleAddGmailApi.png]]&lt;br /&gt;
9&lt;br /&gt;
[[File:GoogleGmailApiAdded.png|none|thumb|600x600px|/GoogleGmailApiAdded.png]]&lt;br /&gt;
1&lt;br /&gt;
[[File:GoogleCreateCredentialsHelpMeChoose.png|none|thumb|600x600px|/GoogleCreateCredentialsHelpMeChoose.png]]&lt;br /&gt;
2&lt;br /&gt;
[[File:GoogleCredentialsUserData.png|none|thumb|600x600px|/GoogleCredentialsUserData.png]]&lt;br /&gt;
3&lt;br /&gt;
[[File:GoogleOAuthConsentScreen.png|none|thumb|600x600px|/GoogleOAuthConsentScreen.png]]&lt;br /&gt;
4&lt;br /&gt;
[[File:GoogleOAuthScopes.png|none|thumb|600x600px|/GoogleOAuthScopes.png]]&lt;br /&gt;
5&lt;br /&gt;
[[File:GoogleScopeMailGoogleCom.png|none|thumb|600x600px|/GoogleScopeMailGoogleCom.png]]&lt;br /&gt;
6&lt;br /&gt;
[[File:GoogleScopeAuthGmailSend.png|none|thumb|600x600px|/GoogleScopeAuthGmailSend.png]]&lt;br /&gt;
7&lt;br /&gt;
[[File:GoogleScopes.png|none|thumb|600x600px|/GoogleScopes.png]]&lt;br /&gt;
8&lt;br /&gt;
[[File:GoogleOAuthClientID.png|none|thumb|600x600px|/GoogleOAuthClientID.png]]&lt;br /&gt;
9&lt;br /&gt;
[[File:GoogleRedirectURIs.png|none|thumb|600x600px|/GoogleRedirectURIs.png]]&lt;br /&gt;
1&lt;br /&gt;
[[File:GoogleClientCredentialsDownload.png|none|thumb|600x600px|/GoogleClientCredentialsDownload.png]]&lt;br /&gt;
2&lt;br /&gt;
[[File:GoogleOAuthConsentScreenSettings.png|none|thumb|600x600px|/GoogleOAuthConsentScreenSettings.png]]&lt;br /&gt;
3&lt;br /&gt;
[[File:GoogleConsentScreenWizard.png|none|thumb|600x600px|/GoogleConsentScreenWizard.png]]&lt;br /&gt;
4&lt;br /&gt;
[[File:GoogleAudienceExternal.png|none|thumb|600x600px|/GoogleAudienceExternal.png]]&lt;br /&gt;
5&lt;br /&gt;
[[File:GoogleContactInformation.png|none|thumb|600x600px|/GoogleContactInformation.png]]&lt;br /&gt;
6&lt;br /&gt;
[[File:GoogleTestUserAdded.png|none|thumb|600x600px|/GoogleTestUserAdded.png]]&lt;br /&gt;
7&lt;br /&gt;
&lt;br /&gt;
8&lt;/div&gt;</summary>
		<author><name>Tmo</name></author>
	</entry>
	<entry>
		<id>https://wiki.innovaphone.com/index.php?title=File:OAuth2InteractiveGmail.png&amp;diff=78121</id>
		<title>File:OAuth2InteractiveGmail.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=File:OAuth2InteractiveGmail.png&amp;diff=78121"/>
		<updated>2025-10-02T21:07:27Z</updated>

		<summary type="html">&lt;p&gt;Tmo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;OAuth2 interactive Gmail&lt;/div&gt;</summary>
		<author><name>Tmo</name></author>
	</entry>
	<entry>
		<id>https://wiki.innovaphone.com/index.php?title=Howto16r1:Configure_OAuth2_E-Mail&amp;diff=78114</id>
		<title>Howto16r1:Configure OAuth2 E-Mail</title>
		<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=Howto16r1:Configure_OAuth2_E-Mail&amp;diff=78114"/>
		<updated>2025-10-02T21:01:38Z</updated>

		<summary type="html">&lt;p&gt;Tmo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{FIXME|reason=This product is in the beta phase and is not yet finished}}&lt;br /&gt;
&lt;br /&gt;
innovaphone PBX and apps can be configured to send E-Mails for various subjects and purposes. Major E-Mail providers intent to discontinue the username/password authentication schemes in favour of OAuth2. PBX and Apps version 16r1 does support OAuth2 authentication for SMTP. Here is a step by step guide how to set up OAuth2 support in Microsoft 365 through the Azure Portal and how to set it up on a Google Gmail account in the Google Cloud Console.&lt;br /&gt;
&lt;br /&gt;
== Microsoft 365 ==&lt;br /&gt;
Log in to Microsoft Azure Portal (&amp;lt;nowiki&amp;gt;https://portal.azure.com&amp;lt;/nowiki&amp;gt;) and go to Microsoft Entra ID.&lt;br /&gt;
[[File:AzureMicrosoftEntraID.png|none|thumb|600x600px|/AzureMicrosoftEntraID.png|/AzureMicrosoftEntraID.png]]&lt;br /&gt;
Add a new app registration to create client credentials.&lt;br /&gt;
[[File:AzureAddAppRegistration.png|none|thumb|600x600px|/AzureAddAppRegistration.png|/AzureAddAppRegistration.png]]&lt;br /&gt;
Register the application and maybe already fill in the redirect URI for Web based application type to path OAUTH2-CLIENT/auth.htm at the PBX.&lt;br /&gt;
[[File:AzureRegisterAnApplication.png|none|thumb|600x600px|/AzureRegisterAnApplication.png|/AzureRegisterAnApplication.png]]&lt;br /&gt;
App registration is complete. Client ID and tenant needs to be configured at the PBX and every app that will be sending e-mails.&lt;br /&gt;
[[File:AzureApp.png|none|thumb|600x600px|/AzureApp.png|/AzureApp.png]]&lt;br /&gt;
Create a client secret.&lt;br /&gt;
[[File:AzureAddClientSecret.png|none|thumb|600x600px|/AzureAddClientSecret.png|/AzureAddClientSecret.png]]&lt;br /&gt;
Copy the client secret. It also needs to be configured at the PBX and every app that will be sending e-mails.&lt;br /&gt;
[[File:AzureCopyClientSecret.png|none|thumb|600x600px|/AzureCopyClientSecret.png|/AzureCopyClientSecret.png]]&lt;br /&gt;
Add permissions located in APIs my organization uses.&lt;br /&gt;
[[File:AzureAddApiPermissionMyOrganization.png|none|thumb|600x600px|/AzureAddApiPermissionMyOrganization.png|/AzureAddApiPermissionMyOrganization.png]]&lt;br /&gt;
More precisely located in Office 365 Exchange Online.&lt;br /&gt;
[[File:AzureAddApiPermissionExchange.png|none|thumb|600x600px|/AzureAddApiPermissionExchange.png|/AzureAddApiPermissionExchange.png]]&lt;br /&gt;
And there in the application permissions.&lt;br /&gt;
[[File:AzureAddApiExchangeApplication.png|none|thumb|600x600px|/AzureAddApiExchangeApplication.png|/AzureAddApiExchangeApplication.png]]&lt;br /&gt;
Namely SMTP Mail.Send.&lt;br /&gt;
[[File:AzureAddApiSendMailAsUser.png|none|thumb|600x600px|/AzureAddApiSendMailAsUser.png|/AzureAddApiSendMailAsUser.png]]&lt;br /&gt;
Grant admin permission for Mail.Send.&lt;br /&gt;
[[File:AzureGrantApiPermissions.png|none|thumb|600x600px|/AzureGrantApiPermissions.png|/AzureGrantApiPermissions.png]]&lt;br /&gt;
API permissions are now granted.&lt;br /&gt;
[[File:AzureApiPermissionsGranted.png|none|thumb|600x600px|/AzureApiPermissionsGranted.png|/AzureApiPermissionsGranted.png]]&lt;br /&gt;
Tell all redirect URIs that the PBX and the apps will be using during interactive authorization.&lt;br /&gt;
[[File:AzureRedirectUris.png|none|thumb|600x600px|/AzureRedirectUris.png|/AzureRedirectUris.png]]&lt;br /&gt;
Allow public client flows of OAuth2. Resource Owner Password Credentials Flow has the advantage that it doesn&#039;t need interactive authorization.&lt;br /&gt;
[[File:AzureAllowPublicClientFlows.png|none|thumb|600x600px|/AzureAllowPublicClientFlows.png|/AzureAllowPublicClientFlows.png]]&lt;br /&gt;
Log in to the Microsoft 365 admin center (https://admin.cloud.microsoft).&lt;br /&gt;
[[File:MS365AdminCenter.png|none|thumb|600x600px|/MS365AdminCenter.png|/MS365AdminCenter.png]]&lt;br /&gt;
Make sure that Microsoft 365 licenses are assigned to your user.&lt;br /&gt;
[[File:MS365UserLicenses.png|none|thumb|600x600px|/MS365UserLicenses.png|/MS365UserLicenses.png]]&lt;br /&gt;
Set your user active.&lt;br /&gt;
[[File:MS365ActiveUsers.png|none|thumb|600x600px|/MS365ActiveUsers.png|/MS365ActiveUsers.png]]&lt;br /&gt;
Locate the Mail tab of your user.&lt;br /&gt;
[[File:MS365UserEMail.png|none|thumb|600x600px|/MS365UserEMail.png|/MS365UserEMail.png]]&lt;br /&gt;
Allow authenticated SMTP.&lt;br /&gt;
[[File:MS365AuthenticatedSMTP.png|none|thumb|600x600px|/MS365AuthenticatedSMTP.png|/MS365AuthenticatedSMTP.png]]&lt;br /&gt;
Login to the Exchange admin center (&amp;lt;nowiki&amp;gt;https://admin.exchange.microsoft.com&amp;lt;/nowiki&amp;gt;).&lt;br /&gt;
[[File:ExchangeAdminCenter.png|none|thumb|600x600px|/ExchangeAdminCenter.png|/ExchangeAdminCenter.png]]&lt;br /&gt;
Remove deactivation of the SMTP AUTH protocol.&lt;br /&gt;
[[File:ExchangeRemoveDeavtivatedOAuth2.png|none|thumb|600x600px|/ExchangeRemoveDeavtivatedOAuth2.png|/ExchangeRemoveDeavtivatedOAuth2.png]]&lt;br /&gt;
With this Microsoft setup the OAuth2 configuration for the resource owner password credentials flow can be filled in as follows. &lt;br /&gt;
[[File:OAuth2ResourceOwnerPasswordCredentials.png|none|thumb|600x600px|/OAuth2ResourceOwnerPasswordCredentials.png|/OAuth2ResourceOwnerPasswordCredentials.png]]&lt;br /&gt;
For interactive authorization this is the OAuth2 configuration. Authorize e-mail access one time and send a test mail to verify everything went well.&lt;br /&gt;
[[File:OAuth2InteractiveAuthorization.png|none|thumb|600x600px|/OAuth2InteractiveAuthorization.png|/OAuth2InteractiveAuthorization.png]]&lt;br /&gt;
&lt;br /&gt;
== Gmail ==&lt;br /&gt;
1&lt;br /&gt;
[[File:GoogleSelectProject.png|none|thumb|600x600px]]&lt;br /&gt;
2&lt;br /&gt;
[[File:GoogleCreateProject.png|none|thumb|600x600px]]&lt;br /&gt;
3&lt;br /&gt;
[[File:GoogleProjectCreated.png|none|thumb|600x600px]]&lt;br /&gt;
4&lt;br /&gt;
[[File:GoogleEnabledApisServices.png|none|thumb|600x600px]]&lt;br /&gt;
5&lt;br /&gt;
[[File:GoogleApisServicesLibrary.png|none|thumb|600x600px]]&lt;br /&gt;
6&lt;br /&gt;
[[File:GoogleApisServicesApiLibrary.png|none|thumb|600x600px]]&lt;br /&gt;
7&lt;br /&gt;
[[File:GoogleGmailApis.png|none|thumb|600x600px]]&lt;br /&gt;
8&lt;br /&gt;
[[File:GoogleAddGmailApi.png|none|thumb|600x600px]]&lt;br /&gt;
9&lt;br /&gt;
[[File:GoogleGmailApiAdded.png|none|thumb|600x600px]]&lt;br /&gt;
1&lt;br /&gt;
[[File:GoogleCreateCredentialsHelpMeChoose.png|none|thumb|600x600px]]&lt;br /&gt;
2&lt;br /&gt;
[[File:GoogleCredentialsUserData.png|none|thumb|600x600px]]&lt;br /&gt;
3&lt;br /&gt;
[[File:GoogleOAuthConsentScreen.png|none|thumb|600x600px]]&lt;br /&gt;
4&lt;br /&gt;
[[File:GoogleOAuthScopes.png|none|thumb|600x600px]]&lt;br /&gt;
5&lt;br /&gt;
[[File:GoogleScopeMailGoogleCom.png|none|thumb|600x600px]]&lt;br /&gt;
6&lt;br /&gt;
[[File:GoogleScopeAuthGmailSend.png|none|thumb|600x600px]]&lt;br /&gt;
7&lt;br /&gt;
[[File:GoogleScopes.png|none|thumb|600x600px]]&lt;br /&gt;
8&lt;br /&gt;
[[File:GoogleOAuthClientID.png|none|thumb|600x600px]]&lt;br /&gt;
9&lt;br /&gt;
[[File:GoogleRedirectURIs.png|none|thumb|600x600px]]&lt;br /&gt;
1&lt;br /&gt;
[[File:GoogleClientCredentialsDownload.png|none|thumb|600x600px]]&lt;br /&gt;
2&lt;br /&gt;
[[File:GoogleOAuthConsentScreenSettings.png|none|thumb|600x600px]]&lt;br /&gt;
3&lt;br /&gt;
[[File:GoogleConsentScreenWizard.png|none|thumb|600x600px]]&lt;br /&gt;
4&lt;br /&gt;
[[File:GoogleAudienceExternal.png|none|thumb|600x600px]]&lt;br /&gt;
5&lt;br /&gt;
[[File:GoogleContactInformation.png|none|thumb|600x600px]]&lt;br /&gt;
6&lt;br /&gt;
[[File:GoogleTestUserAdded.png|none|thumb|600x600px]]&lt;br /&gt;
7&lt;br /&gt;
&lt;br /&gt;
8&lt;/div&gt;</summary>
		<author><name>Tmo</name></author>
	</entry>
	<entry>
		<id>https://wiki.innovaphone.com/index.php?title=File:GoogleTestUserAdded.png&amp;diff=78113</id>
		<title>File:GoogleTestUserAdded.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=File:GoogleTestUserAdded.png&amp;diff=78113"/>
		<updated>2025-10-02T21:01:07Z</updated>

		<summary type="html">&lt;p&gt;Tmo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Test user added&lt;/div&gt;</summary>
		<author><name>Tmo</name></author>
	</entry>
	<entry>
		<id>https://wiki.innovaphone.com/index.php?title=File:GoogleContactInformation.png&amp;diff=78111</id>
		<title>File:GoogleContactInformation.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=File:GoogleContactInformation.png&amp;diff=78111"/>
		<updated>2025-10-02T21:00:38Z</updated>

		<summary type="html">&lt;p&gt;Tmo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Contact information&lt;/div&gt;</summary>
		<author><name>Tmo</name></author>
	</entry>
	<entry>
		<id>https://wiki.innovaphone.com/index.php?title=File:GoogleAudienceExternal.png&amp;diff=78110</id>
		<title>File:GoogleAudienceExternal.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=File:GoogleAudienceExternal.png&amp;diff=78110"/>
		<updated>2025-10-02T21:00:08Z</updated>

		<summary type="html">&lt;p&gt;Tmo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Audience external&lt;/div&gt;</summary>
		<author><name>Tmo</name></author>
	</entry>
	<entry>
		<id>https://wiki.innovaphone.com/index.php?title=File:GoogleConsentScreenWizard.png&amp;diff=78108</id>
		<title>File:GoogleConsentScreenWizard.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=File:GoogleConsentScreenWizard.png&amp;diff=78108"/>
		<updated>2025-10-02T20:59:35Z</updated>

		<summary type="html">&lt;p&gt;Tmo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Consent screen wizard&lt;/div&gt;</summary>
		<author><name>Tmo</name></author>
	</entry>
	<entry>
		<id>https://wiki.innovaphone.com/index.php?title=File:GoogleOAuthConsentScreenSettings.png&amp;diff=78105</id>
		<title>File:GoogleOAuthConsentScreenSettings.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=File:GoogleOAuthConsentScreenSettings.png&amp;diff=78105"/>
		<updated>2025-10-02T20:58:32Z</updated>

		<summary type="html">&lt;p&gt;Tmo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;OAuth consent screen settings&lt;/div&gt;</summary>
		<author><name>Tmo</name></author>
	</entry>
	<entry>
		<id>https://wiki.innovaphone.com/index.php?title=File:GoogleClientCredentialsDownload.png&amp;diff=78103</id>
		<title>File:GoogleClientCredentialsDownload.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=File:GoogleClientCredentialsDownload.png&amp;diff=78103"/>
		<updated>2025-10-02T20:57:52Z</updated>

		<summary type="html">&lt;p&gt;Tmo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Client credentials download&lt;/div&gt;</summary>
		<author><name>Tmo</name></author>
	</entry>
	<entry>
		<id>https://wiki.innovaphone.com/index.php?title=File:GoogleRedirectURIs.png&amp;diff=78100</id>
		<title>File:GoogleRedirectURIs.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=File:GoogleRedirectURIs.png&amp;diff=78100"/>
		<updated>2025-10-02T20:57:15Z</updated>

		<summary type="html">&lt;p&gt;Tmo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Redirect URIs&lt;/div&gt;</summary>
		<author><name>Tmo</name></author>
	</entry>
	<entry>
		<id>https://wiki.innovaphone.com/index.php?title=File:GoogleOAuthClientID.png&amp;diff=78098</id>
		<title>File:GoogleOAuthClientID.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=File:GoogleOAuthClientID.png&amp;diff=78098"/>
		<updated>2025-10-02T20:56:44Z</updated>

		<summary type="html">&lt;p&gt;Tmo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;OAuth Client ID&lt;/div&gt;</summary>
		<author><name>Tmo</name></author>
	</entry>
	<entry>
		<id>https://wiki.innovaphone.com/index.php?title=File:GoogleScopes.png&amp;diff=78097</id>
		<title>File:GoogleScopes.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=File:GoogleScopes.png&amp;diff=78097"/>
		<updated>2025-10-02T20:56:03Z</updated>

		<summary type="html">&lt;p&gt;Tmo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Scopes&lt;/div&gt;</summary>
		<author><name>Tmo</name></author>
	</entry>
	<entry>
		<id>https://wiki.innovaphone.com/index.php?title=File:GoogleScopeAuthGmailSend.png&amp;diff=78095</id>
		<title>File:GoogleScopeAuthGmailSend.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=File:GoogleScopeAuthGmailSend.png&amp;diff=78095"/>
		<updated>2025-10-02T20:55:37Z</updated>

		<summary type="html">&lt;p&gt;Tmo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Scope auth gmail.send&lt;/div&gt;</summary>
		<author><name>Tmo</name></author>
	</entry>
	<entry>
		<id>https://wiki.innovaphone.com/index.php?title=File:GoogleScopeMailGoogleCom.png&amp;diff=78092</id>
		<title>File:GoogleScopeMailGoogleCom.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=File:GoogleScopeMailGoogleCom.png&amp;diff=78092"/>
		<updated>2025-10-02T20:54:30Z</updated>

		<summary type="html">&lt;p&gt;Tmo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Scope mail.google.com&lt;/div&gt;</summary>
		<author><name>Tmo</name></author>
	</entry>
	<entry>
		<id>https://wiki.innovaphone.com/index.php?title=File:GoogleOAuthScopes.png&amp;diff=78091</id>
		<title>File:GoogleOAuthScopes.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=File:GoogleOAuthScopes.png&amp;diff=78091"/>
		<updated>2025-10-02T20:53:45Z</updated>

		<summary type="html">&lt;p&gt;Tmo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;OAuth scopes&lt;/div&gt;</summary>
		<author><name>Tmo</name></author>
	</entry>
	<entry>
		<id>https://wiki.innovaphone.com/index.php?title=File:GoogleOAuthConsentScreen.png&amp;diff=78089</id>
		<title>File:GoogleOAuthConsentScreen.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=File:GoogleOAuthConsentScreen.png&amp;diff=78089"/>
		<updated>2025-10-02T20:53:16Z</updated>

		<summary type="html">&lt;p&gt;Tmo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;OAuth consent screen&lt;/div&gt;</summary>
		<author><name>Tmo</name></author>
	</entry>
	<entry>
		<id>https://wiki.innovaphone.com/index.php?title=File:GoogleCredentialsUserData.png&amp;diff=78088</id>
		<title>File:GoogleCredentialsUserData.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=File:GoogleCredentialsUserData.png&amp;diff=78088"/>
		<updated>2025-10-02T20:52:38Z</updated>

		<summary type="html">&lt;p&gt;Tmo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Credentials user data&lt;/div&gt;</summary>
		<author><name>Tmo</name></author>
	</entry>
	<entry>
		<id>https://wiki.innovaphone.com/index.php?title=File:GoogleCreateCredentialsHelpMeChoose.png&amp;diff=78086</id>
		<title>File:GoogleCreateCredentialsHelpMeChoose.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=File:GoogleCreateCredentialsHelpMeChoose.png&amp;diff=78086"/>
		<updated>2025-10-02T20:52:04Z</updated>

		<summary type="html">&lt;p&gt;Tmo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Create credentials, help me choose&lt;/div&gt;</summary>
		<author><name>Tmo</name></author>
	</entry>
	<entry>
		<id>https://wiki.innovaphone.com/index.php?title=File:GoogleGmailApiAdded.png&amp;diff=78085</id>
		<title>File:GoogleGmailApiAdded.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=File:GoogleGmailApiAdded.png&amp;diff=78085"/>
		<updated>2025-10-02T20:51:10Z</updated>

		<summary type="html">&lt;p&gt;Tmo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Gmail API added&lt;/div&gt;</summary>
		<author><name>Tmo</name></author>
	</entry>
	<entry>
		<id>https://wiki.innovaphone.com/index.php?title=File:GoogleAddGmailApi.png&amp;diff=78084</id>
		<title>File:GoogleAddGmailApi.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=File:GoogleAddGmailApi.png&amp;diff=78084"/>
		<updated>2025-10-02T20:50:36Z</updated>

		<summary type="html">&lt;p&gt;Tmo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Add Gmail API&lt;/div&gt;</summary>
		<author><name>Tmo</name></author>
	</entry>
	<entry>
		<id>https://wiki.innovaphone.com/index.php?title=File:GoogleGmailApis.png&amp;diff=78083</id>
		<title>File:GoogleGmailApis.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=File:GoogleGmailApis.png&amp;diff=78083"/>
		<updated>2025-10-02T20:50:04Z</updated>

		<summary type="html">&lt;p&gt;Tmo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Gmail APIs&lt;/div&gt;</summary>
		<author><name>Tmo</name></author>
	</entry>
	<entry>
		<id>https://wiki.innovaphone.com/index.php?title=File:GoogleApisServicesApiLibrary.png&amp;diff=78082</id>
		<title>File:GoogleApisServicesApiLibrary.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=File:GoogleApisServicesApiLibrary.png&amp;diff=78082"/>
		<updated>2025-10-02T20:49:29Z</updated>

		<summary type="html">&lt;p&gt;Tmo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;APIs Services API Library&lt;/div&gt;</summary>
		<author><name>Tmo</name></author>
	</entry>
	<entry>
		<id>https://wiki.innovaphone.com/index.php?title=File:GoogleApisServicesLibrary.png&amp;diff=78081</id>
		<title>File:GoogleApisServicesLibrary.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=File:GoogleApisServicesLibrary.png&amp;diff=78081"/>
		<updated>2025-10-02T20:48:34Z</updated>

		<summary type="html">&lt;p&gt;Tmo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Apis Services Library&lt;/div&gt;</summary>
		<author><name>Tmo</name></author>
	</entry>
	<entry>
		<id>https://wiki.innovaphone.com/index.php?title=File:GoogleEnabledApisServices.png&amp;diff=78080</id>
		<title>File:GoogleEnabledApisServices.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=File:GoogleEnabledApisServices.png&amp;diff=78080"/>
		<updated>2025-10-02T20:47:54Z</updated>

		<summary type="html">&lt;p&gt;Tmo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Enabled APIs &amp;amp; Services&lt;/div&gt;</summary>
		<author><name>Tmo</name></author>
	</entry>
	<entry>
		<id>https://wiki.innovaphone.com/index.php?title=File:GoogleProjectCreated.png&amp;diff=78079</id>
		<title>File:GoogleProjectCreated.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=File:GoogleProjectCreated.png&amp;diff=78079"/>
		<updated>2025-10-02T20:47:10Z</updated>

		<summary type="html">&lt;p&gt;Tmo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Project created&lt;/div&gt;</summary>
		<author><name>Tmo</name></author>
	</entry>
	<entry>
		<id>https://wiki.innovaphone.com/index.php?title=File:GoogleCreateProject.png&amp;diff=78078</id>
		<title>File:GoogleCreateProject.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=File:GoogleCreateProject.png&amp;diff=78078"/>
		<updated>2025-10-02T20:46:31Z</updated>

		<summary type="html">&lt;p&gt;Tmo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Create project&lt;/div&gt;</summary>
		<author><name>Tmo</name></author>
	</entry>
</feed>