{"id":7427,"date":"2026-11-04T12:00:02","date_gmt":"2026-11-04T12:00:02","guid":{"rendered":"https:\/\/twproject.com\/support\/?page_id=7427"},"modified":"2026-11-04T12:00:05","modified_gmt":"2026-11-04T12:00:05","slug":"microsoft-entra-id","status":"publish","type":"page","link":"https:\/\/twproject.com\/support\/twproject-advanced-usage\/connections\/microsoft-entra-id\/","title":{"rendered":"Microsoft Entra ID login"},"content":{"rendered":"<p>Twproject integrates with Microsoft Entra ID (formerly Azure Active Directory) through the <strong>OAuth2 login<\/strong> built into the product: users click a button, authenticate on Microsoft and Twproject recognizes them by their email address. No extra modules to install and no Tomcat changes: everything is configured from the Twproject administration page and from an app registration on Entra ID.<\/p>\n<p>This guide applies both to on-premise installations and to dedicated cloud instances. Where the steps differ, it says so.<\/p>\n<p>The mechanism is a standard authorization code flow. Twproject redirects the user to the Microsoft authorization endpoint, receives the code on its callback, exchanges it for an access token and queries the Microsoft Graph userinfo endpoint. From the result it reads the email and looks for the Twproject operator who has that email as <strong>login name<\/strong>.<\/p>\n<p>What is <strong>not<\/strong> included in this version, to avoid wrong expectations:<\/p>\n<ul>\n<li>SAML 2.0: not supported. The integration is OAuth2\/OpenID Connect.<\/li>\n<li>Automatic provisioning: a user who does not already exist in Twproject is not created at the first login.<\/li>\n<li>Group and role synchronization: areas, roles and assignments are still managed inside Twproject.<\/li>\n<li>Silent SSO: at every login Twproject asks Microsoft to authenticate the user again (<code>prompt=login<\/code>).<\/li>\n<\/ul>\n<h2>Prerequisites<\/h2>\n<p>These conditions must be true, otherwise the login button does not appear or the login fails.<\/p>\n<table>\n<thead>\n<tr>\n<th>Prerequisite<\/th>\n<th>What to check<\/th>\n<th>Where<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>Enterprise license<\/td>\n<td>OAuth2 login is available only with an Enterprise level license. With a lower license the tab does not appear and the login does not start.<\/td>\n<td>Admin \u2192 License<\/td>\n<\/tr>\n<tr>\n<td>Dedicated installation<\/td>\n<td>It works on on-premise installations and on dedicated cloud instances. It is not available on the shared cloud.<\/td>\n<td>Contract<\/td>\n<\/tr>\n<tr>\n<td>HTTPS and public URL<\/td>\n<td>Twproject must be reachable over https and its public URL must be configured correctly: it is used to build the redirect URI, which Microsoft accepts only over https. On dedicated cloud instances Twproject has already configured it.<\/td>\n<td>Admin \u2192 Global settings \u2192 Server config (on-premise only)<\/td>\n<\/tr>\n<tr>\n<td>Login name = company email<\/td>\n<td>Everyone who will sign in with Entra ID must have as login name exactly the email address returned by Microsoft (usually the primary email). The comparison is case-insensitive.<\/td>\n<td>Person editor \u2192 Security\/Login<\/td>\n<\/tr>\n<tr>\n<td>Administrator with email<\/td>\n<td>Whoever performs the configuration must already have their Entra email as login name: the activation test checks that the user returned by Microsoft is that same person, enabled and administrator.<\/td>\n<td>Person editor \u2192 Security\/Login<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><strong>Public URL (on-premise only).<\/strong> In Admin \u2192 Global settings \u2192 Server config the fields <em>public\/DNS server name<\/em>, <em>exposed http port<\/em> and <em>http protocol<\/em> must match the address users reach Twproject with. The description line shows the full URL the server will use.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-7423\" src=\"https:\/\/twproject.com\/support\/wp-content\/uploads\/2026\/11\/entra-id-server-config-en.png\" alt=\"Global settings, Server config tab\" width=\"1395\" height=\"475\" srcset=\"https:\/\/twproject.com\/support\/wp-content\/uploads\/2026\/11\/entra-id-server-config-en.png 1395w, https:\/\/twproject.com\/support\/wp-content\/uploads\/2026\/11\/entra-id-server-config-en-300x102.png 300w, https:\/\/twproject.com\/support\/wp-content\/uploads\/2026\/11\/entra-id-server-config-en-1024x349.png 1024w, https:\/\/twproject.com\/support\/wp-content\/uploads\/2026\/11\/entra-id-server-config-en-768x262.png 768w\" sizes=\"auto, (max-width: 1395px) 100vw, 1395px\" \/><\/p>\n<p><strong>Login name.<\/strong> Each person&#8217;s login name is shown and changed in the Security\/Login tab of the resource, with the <em>Change login name<\/em> button. In the example below the login name is <code>user169<\/code> and should be replaced with the user&#8217;s email. For many users, the REST API on the <code>person<\/code> object is more convenient.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-7405\" src=\"https:\/\/twproject.com\/support\/wp-content\/uploads\/2026\/11\/entra-id-login-name-en.png\" alt=\"Person editor, Security\/Login: the login name\" width=\"1080\" height=\"387\" srcset=\"https:\/\/twproject.com\/support\/wp-content\/uploads\/2026\/11\/entra-id-login-name-en.png 1080w, https:\/\/twproject.com\/support\/wp-content\/uploads\/2026\/11\/entra-id-login-name-en-300x108.png 300w, https:\/\/twproject.com\/support\/wp-content\/uploads\/2026\/11\/entra-id-login-name-en-1024x367.png 1024w, https:\/\/twproject.com\/support\/wp-content\/uploads\/2026\/11\/entra-id-login-name-en-768x275.png 768w\" sizes=\"auto, (max-width: 1080px) 100vw, 1080px\" \/><\/p>\n<p>A user without a mailbox in Entra ID has no <code>email<\/code> field in the Microsoft response, and their login fails even if the login name is correct.<\/p>\n<h2>Step 1: register Twproject on Entra ID<\/h2>\n<p>On the Microsoft Entra portal (Entra ID \u2192 App registrations \u2192 New registration) the tenant administrator creates a registration with these values.<\/p>\n<table>\n<thead>\n<tr>\n<th>Field<\/th>\n<th>Value<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>Name<\/td>\n<td>Twproject (or a name of your choice)<\/td>\n<\/tr>\n<tr>\n<td>Supported account types<\/td>\n<td>Accounts in this organizational directory only (single tenant)<\/td>\n<\/tr>\n<tr>\n<td>Platform<\/td>\n<td>Web<\/td>\n<\/tr>\n<tr>\n<td>Redirect URI<\/td>\n<td>The redirect URI shown in the Twproject OAUTH2 tab (see step 2), copied exactly. It looks like <code>https:\/\/&lt;host&gt;\/&lt;context&gt;\/applications\/teamwork\/security\/oauth\/oauthLogin.jsp<\/code> on-premise and <code>https:\/\/&lt;your-instance&gt;.twproject.cloud\/applications\/teamwork\/security\/oauth\/oauthLogin.jsp<\/code> on the cloud.<\/td>\n<\/tr>\n<tr>\n<td>Certificates &amp; secrets<\/td>\n<td>A new client secret. Copy its <strong>value<\/strong> right away: it cannot be read later<\/td>\n<\/tr>\n<tr>\n<td>API permissions<\/td>\n<td>Microsoft Graph, delegated: <code>openid<\/code>, <code>profile<\/code>, <code>email<\/code>. Grant admin consent for the tenant<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>From the Overview page of the registration, three values must be passed to whoever configures Twproject:<\/p>\n<ul>\n<li><strong>Application (client) ID<\/strong>: becomes the Client ID.<\/li>\n<li><strong>Directory (tenant) ID<\/strong>: goes into the authorization and token endpoints.<\/li>\n<li><strong>Client secret value<\/strong>: becomes the Client secret.<\/li>\n<\/ul>\n<p>The secret expires, after 24 months at most. When it expires nobody can sign in any more: put it on the calendar, regenerate it in advance and enter it again in Twproject.<\/p>\n<p>Admin consent prevents every user from seeing the Microsoft consent screen at the first login. Tenant policies (MFA, conditional access) apply as usual, because authentication happens on Microsoft&#8217;s pages.<\/p>\n<h2>Step 2: configure Twproject<\/h2>\n<p>Everything is done from Admin \u2192 Security and Authentication, by an administrator whose login name is already their Entra email.<\/p>\n<h3>2.1 Show the OAUTH2 tab<\/h3>\n<p>The <em>OAUTH2 auth.<\/em> tab stays hidden until the <code>CUSTOM_FEATURE_OAUTH_ENABLED<\/code> customization is enabled. It is in Admin \u2192 Advanced customization, row <em>Enable OAUTH2<\/em>: tick the box, the value is saved automatically.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-7403\" src=\"https:\/\/twproject.com\/support\/wp-content\/uploads\/2026\/11\/entra-id-enable-oauth2.png\" alt=\"Advanced customization: the Enable OAUTH2 row\" width=\"1568\" height=\"56\" srcset=\"https:\/\/twproject.com\/support\/wp-content\/uploads\/2026\/11\/entra-id-enable-oauth2.png 1568w, https:\/\/twproject.com\/support\/wp-content\/uploads\/2026\/11\/entra-id-enable-oauth2-300x11.png 300w, https:\/\/twproject.com\/support\/wp-content\/uploads\/2026\/11\/entra-id-enable-oauth2-1024x37.png 1024w, https:\/\/twproject.com\/support\/wp-content\/uploads\/2026\/11\/entra-id-enable-oauth2-768x27.png 768w, https:\/\/twproject.com\/support\/wp-content\/uploads\/2026\/11\/entra-id-enable-oauth2-1536x55.png 1536w\" sizes=\"auto, (max-width: 1568px) 100vw, 1568px\" \/><\/p>\n<p>Back in Security and Authentication, the <em>OAUTH2 auth.<\/em> tab appears next to <em>Standard auth.<\/em> and <em>LDAP\/AD auth.<\/em><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-7421\" src=\"https:\/\/twproject.com\/support\/wp-content\/uploads\/2026\/11\/entra-id-security-authentication.png\" alt=\"Security and Authentication with the OAUTH2 auth. tab\" width=\"1393\" height=\"475\" srcset=\"https:\/\/twproject.com\/support\/wp-content\/uploads\/2026\/11\/entra-id-security-authentication.png 1393w, https:\/\/twproject.com\/support\/wp-content\/uploads\/2026\/11\/entra-id-security-authentication-300x102.png 300w, https:\/\/twproject.com\/support\/wp-content\/uploads\/2026\/11\/entra-id-security-authentication-1024x349.png 1024w, https:\/\/twproject.com\/support\/wp-content\/uploads\/2026\/11\/entra-id-security-authentication-768x262.png 768w\" sizes=\"auto, (max-width: 1393px) 100vw, 1393px\" \/><\/p>\n<h3>2.2 Fill in the OAUTH2 auth. tab<\/h3>\n<p>The <em>Pre-fill data with OAUTH2 provider<\/em> combo with the <em>Microsoft<\/em> entry fills in the endpoints from the Microsoft discovery document. It uses the <code>common<\/code> tenant: replace it with your directory ID, so that Microsoft accepts only your tenant. If the fields stay empty after the pre-fill, fill them in by hand with the values below. On-premise this happens when the Twproject Content Security Policy blocks the call to login.microsoftonline.com.<\/p>\n<table>\n<thead>\n<tr>\n<th>Field<\/th>\n<th>Value to enter<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>Provider ID<\/td>\n<td><code>MICROSOFT<\/code> (free label: it appears on the login button, &#8220;Authenticate with Microsoft&#8221;)<\/td>\n<\/tr>\n<tr>\n<td>Token endpoint<\/td>\n<td><code>https:\/\/login.microsoftonline.com\/&lt;tenant-id&gt;\/oauth2\/v2.0\/token<\/code><\/td>\n<\/tr>\n<tr>\n<td>Authorization endpoint<\/td>\n<td><code>https:\/\/login.microsoftonline.com\/&lt;tenant-id&gt;\/oauth2\/v2.0\/authorize<\/code><\/td>\n<\/tr>\n<tr>\n<td>User info endpoint<\/td>\n<td><code>https:\/\/graph.microsoft.com\/oidc\/userinfo<\/code><\/td>\n<\/tr>\n<tr>\n<td>Scopes supported<\/td>\n<td><code>openid profile email<\/code> (remove <code>offline_access<\/code> if the pre-fill adds it: it is not needed)<\/td>\n<\/tr>\n<tr>\n<td>Client ID<\/td>\n<td>Application (client) ID of the registration<\/td>\n<\/tr>\n<tr>\n<td>Client secret<\/td>\n<td>Client secret value<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-7417\" src=\"https:\/\/twproject.com\/support\/wp-content\/uploads\/2026\/11\/entra-id-oauth2-tab.png\" alt=\"OAUTH2 auth. tab filled in for Entra ID\" width=\"1395\" height=\"465\" srcset=\"https:\/\/twproject.com\/support\/wp-content\/uploads\/2026\/11\/entra-id-oauth2-tab.png 1395w, https:\/\/twproject.com\/support\/wp-content\/uploads\/2026\/11\/entra-id-oauth2-tab-300x100.png 300w, https:\/\/twproject.com\/support\/wp-content\/uploads\/2026\/11\/entra-id-oauth2-tab-1024x341.png 1024w, https:\/\/twproject.com\/support\/wp-content\/uploads\/2026\/11\/entra-id-oauth2-tab-768x256.png 768w\" sizes=\"auto, (max-width: 1395px) 100vw, 1395px\" \/><\/p>\n<p>At the bottom of the tab Twproject prints the exact redirect URI to register on Entra ID and reminds you that OAuth login uses the email as login name. The red warning is shown until the logged-in administrator has an email as login name.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-7419\" src=\"https:\/\/twproject.com\/support\/wp-content\/uploads\/2026\/11\/entra-id-redirect-uri.png\" alt=\"The information box with the redirect URI\" width=\"1568\" height=\"84\" srcset=\"https:\/\/twproject.com\/support\/wp-content\/uploads\/2026\/11\/entra-id-redirect-uri.png 1568w, https:\/\/twproject.com\/support\/wp-content\/uploads\/2026\/11\/entra-id-redirect-uri-300x16.png 300w, https:\/\/twproject.com\/support\/wp-content\/uploads\/2026\/11\/entra-id-redirect-uri-1024x55.png 1024w, https:\/\/twproject.com\/support\/wp-content\/uploads\/2026\/11\/entra-id-redirect-uri-768x41.png 768w, https:\/\/twproject.com\/support\/wp-content\/uploads\/2026\/11\/entra-id-redirect-uri-1536x82.png 1536w\" sizes=\"auto, (max-width: 1568px) 100vw, 1568px\" \/><\/p>\n<h3>2.3 Test and enable<\/h3>\n<ol>\n<li>Click <strong>Test connection and save<\/strong>. A Microsoft popup opens: the administrator signs in with their Entra account.<\/li>\n<li>Twproject checks that the email returned by Microsoft matches the logged-in administrator, and that they are enabled and administrator. If the check passes, the parameters are saved and a confirmation message appears. If it fails, the message says which email Microsoft returned: that is the value that must match the login name.<\/li>\n<li>Only after a successful test is <strong>Enable OAUTH2 authentication<\/strong> unlocked. Clicking it switches the authentication type to OAuth2, immediately and without a restart.<\/li>\n<\/ol>\n<p>From then on the login page shows only the Microsoft button. Before point 3, every user must have their login name aligned with their email (see prerequisites).<\/p>\n<h2>How login changes for users<\/h2>\n<p>Today the login page asks for login name and password in two steps.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-7413\" src=\"https:\/\/twproject.com\/support\/wp-content\/uploads\/2026\/11\/entra-id-login-standard-en.png\" alt=\"Standard login: login name and password\" width=\"600\" height=\"360\" srcset=\"https:\/\/twproject.com\/support\/wp-content\/uploads\/2026\/11\/entra-id-login-standard-en.png 600w, https:\/\/twproject.com\/support\/wp-content\/uploads\/2026\/11\/entra-id-login-standard-en-300x180.png 300w\" sizes=\"auto, (max-width: 600px) 100vw, 600px\" \/><\/p>\n<p>With OAuth2 enabled the page shows only the invitation to authenticate with the provider and a button. Username and password disappear for everyone.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-7409\" src=\"https:\/\/twproject.com\/support\/wp-content\/uploads\/2026\/11\/entra-id-login-oauth2-en.png\" alt=\"Login with OAuth2 enabled: only the Microsoft button\" width=\"600\" height=\"300\" srcset=\"https:\/\/twproject.com\/support\/wp-content\/uploads\/2026\/11\/entra-id-login-oauth2-en.png 600w, https:\/\/twproject.com\/support\/wp-content\/uploads\/2026\/11\/entra-id-login-oauth2-en-300x150.png 300w\" sizes=\"auto, (max-width: 600px) 100vw, 600px\" \/><\/p>\n<p>What happens when the user clicks:<\/p>\n<ol>\n<li>A <strong>popup<\/strong> opens with the Microsoft sign-in page. A company popup blocker in the browser prevents the login: popups must be allowed for the Twproject address.<\/li>\n<li>Microsoft always asks for credentials, because Twproject sends <code>prompt=login<\/code>. Tenant policies (MFA, conditional access) apply at every login.<\/li>\n<li>Microsoft sends the browser back to the Twproject callback, which exchanges the code for a token and reads the user&#8217;s email.<\/li>\n<li>Twproject looks for the operator with that login name. If it exists and is enabled, the user is in; if it does not exist, the user sees a generic login error.<\/li>\n<li>If Twproject has mandatory OTP, the OTP step stays and is asked after the Microsoft authentication.<\/li>\n<\/ol>\n<p>The Twproject &#8220;remember me&#8221; cookie, if enabled in the security settings, keeps working: users who have it do not go through Microsoft every time they open the browser, until the cookie expires.<\/p>\n<p>REST APIs with an <code>APIKey<\/code> and MCP access do not change: they do not go through the login page.<\/p>\n<h2>Limits and things to know<\/h2>\n<ul>\n<li><strong>All or nothing.<\/strong> With OAuth2 enabled nobody signs in with username and password. External consultants, suppliers or technical accounts without an Entra identity can no longer access the interface. List them before enabling it.<\/li>\n<li><strong>No provisioning.<\/strong> Users must be created in Twproject before they can sign in. A new hire in Entra does not appear automatically.<\/li>\n<li><strong>No groups.<\/strong> Areas, roles and assignments are still managed in Twproject. Entra group membership is not read.<\/li>\n<li><strong>Disable in two places.<\/strong> Disabling a person in Entra blocks their login, but the Twproject operator stays active (counts against licenses, receives notifications). Disable them in Twproject too.<\/li>\n<li><strong>Secret expiry.<\/strong> When the client secret expires, login stops for everyone. Set a reminder before the expiry date.<\/li>\n<li><strong>Popup.<\/strong> The flow uses a popup window. The browser must allow it for the Twproject address.<\/li>\n<li><strong>No silent SSO.<\/strong> Microsoft asks for credentials at every login. The Twproject &#8220;remember me&#8221; cookie softens this.<\/li>\n<li><strong>Secret in clear text (on-premise).<\/strong> The client secret is stored in clear text in the <code>commons\/settings\/global.properties<\/code> file of the installation. Restrict the file permissions to the Tomcat user.<\/li>\n<\/ul>\n<h2>Emergency recovery<\/h2>\n<p>If the configuration breaks (expired secret, deleted registration, administrator without email) and nobody can sign in any more, it cannot be fixed from the interface.<\/p>\n<ul>\n<li><strong>On-premise:<\/strong> in the <code>commons\/settings\/global.properties<\/code> file set <code>AUTHENTICATION_TYPE=ENABLE_STANDARD_AUTHENTICATION<\/code> and restart Tomcat. Username and password work again.<\/li>\n<li><strong>Cloud:<\/strong> write to Twproject support with the address of your instance. We restore standard authentication with username and password, then you can fix the configuration and enable OAuth2 again.<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Twproject integrates with Microsoft Entra ID (formerly Azure Active Directory) through the OAuth2 login built into the product: users click a button, authenticate on Microsoft and Twproject recognizes them by their email address. No extra modules to install and no Tomcat changes: everything is configured from the Twproject administration page and from an app registration [&hellip;]<\/p>\n","protected":false},"author":6,"featured_media":0,"parent":2383,"menu_order":27,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-7427","page","type-page","status-publish","hentry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v25.4 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Microsoft Entra ID login | Twproject support<\/title>\n<meta name=\"description\" content=\"Twproject integrates with Microsoft Entra ID (formerly Azure Active Directory) through the OAuth2 login built into the product: users click a button,\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/twproject.com\/support\/twproject-advanced-usage\/connections\/microsoft-entra-id\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Microsoft Entra ID login | Twproject support\" \/>\n<meta property=\"og:description\" content=\"Twproject integrates with Microsoft Entra ID (formerly Azure Active Directory) through the OAuth2 login built into the product: users click a button,\" \/>\n<meta property=\"og:url\" content=\"https:\/\/twproject.com\/support\/twproject-advanced-usage\/connections\/microsoft-entra-id\/\" \/>\n<meta property=\"og:site_name\" content=\"Twproject support\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/twproject\" \/>\n<meta property=\"article:modified_time\" content=\"2026-11-04T12:00:05+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/twproject.com\/support\/wp-content\/uploads\/2026\/11\/entra-id-server-config-en.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1395\" \/>\n\t<meta property=\"og:image:height\" content=\"475\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"9 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/twproject.com\/support\/twproject-advanced-usage\/connections\/microsoft-entra-id\/\",\"url\":\"https:\/\/twproject.com\/support\/twproject-advanced-usage\/connections\/microsoft-entra-id\/\",\"name\":\"Microsoft Entra ID login | Twproject support\",\"isPartOf\":{\"@id\":\"https:\/\/twproject.com\/support\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/twproject.com\/support\/twproject-advanced-usage\/connections\/microsoft-entra-id\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/twproject.com\/support\/twproject-advanced-usage\/connections\/microsoft-entra-id\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/twproject.com\/support\/wp-content\/uploads\/2026\/11\/entra-id-server-config-en.png\",\"datePublished\":\"2026-11-04T12:00:02+00:00\",\"dateModified\":\"2026-11-04T12:00:05+00:00\",\"description\":\"Twproject integrates with Microsoft Entra ID (formerly Azure Active Directory) through the OAuth2 login built into the product: users click a button,\",\"breadcrumb\":{\"@id\":\"https:\/\/twproject.com\/support\/twproject-advanced-usage\/connections\/microsoft-entra-id\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/twproject.com\/support\/twproject-advanced-usage\/connections\/microsoft-entra-id\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/twproject.com\/support\/twproject-advanced-usage\/connections\/microsoft-entra-id\/#primaryimage\",\"url\":\"https:\/\/twproject.com\/support\/wp-content\/uploads\/2026\/11\/entra-id-server-config-en.png\",\"contentUrl\":\"https:\/\/twproject.com\/support\/wp-content\/uploads\/2026\/11\/entra-id-server-config-en.png\",\"width\":1395,\"height\":475},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/twproject.com\/support\/twproject-advanced-usage\/connections\/microsoft-entra-id\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/twproject.com\/support\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Advanced usage\",\"item\":\"https:\/\/twproject.com\/support\/twproject-advanced-usage\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Import \/ Export\",\"item\":\"https:\/\/twproject.com\/support\/twproject-advanced-usage\/connections\/\"},{\"@type\":\"ListItem\",\"position\":4,\"name\":\"Microsoft Entra ID login\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/twproject.com\/support\/#website\",\"url\":\"https:\/\/twproject.com\/support\/\",\"name\":\"Twproject support\",\"description\":\"Twproject documentation online\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/twproject.com\/support\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Microsoft Entra ID login | Twproject support","description":"Twproject integrates with Microsoft Entra ID (formerly Azure Active Directory) through the OAuth2 login built into the product: users click a button,","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/twproject.com\/support\/twproject-advanced-usage\/connections\/microsoft-entra-id\/","og_locale":"en_US","og_type":"article","og_title":"Microsoft Entra ID login | Twproject support","og_description":"Twproject integrates with Microsoft Entra ID (formerly Azure Active Directory) through the OAuth2 login built into the product: users click a button,","og_url":"https:\/\/twproject.com\/support\/twproject-advanced-usage\/connections\/microsoft-entra-id\/","og_site_name":"Twproject support","article_publisher":"https:\/\/www.facebook.com\/twproject","article_modified_time":"2026-11-04T12:00:05+00:00","og_image":[{"width":1395,"height":475,"url":"https:\/\/twproject.com\/support\/wp-content\/uploads\/2026\/11\/entra-id-server-config-en.png","type":"image\/png"}],"twitter_misc":{"Est. reading time":"9 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/twproject.com\/support\/twproject-advanced-usage\/connections\/microsoft-entra-id\/","url":"https:\/\/twproject.com\/support\/twproject-advanced-usage\/connections\/microsoft-entra-id\/","name":"Microsoft Entra ID login | Twproject support","isPartOf":{"@id":"https:\/\/twproject.com\/support\/#website"},"primaryImageOfPage":{"@id":"https:\/\/twproject.com\/support\/twproject-advanced-usage\/connections\/microsoft-entra-id\/#primaryimage"},"image":{"@id":"https:\/\/twproject.com\/support\/twproject-advanced-usage\/connections\/microsoft-entra-id\/#primaryimage"},"thumbnailUrl":"https:\/\/twproject.com\/support\/wp-content\/uploads\/2026\/11\/entra-id-server-config-en.png","datePublished":"2026-11-04T12:00:02+00:00","dateModified":"2026-11-04T12:00:05+00:00","description":"Twproject integrates with Microsoft Entra ID (formerly Azure Active Directory) through the OAuth2 login built into the product: users click a button,","breadcrumb":{"@id":"https:\/\/twproject.com\/support\/twproject-advanced-usage\/connections\/microsoft-entra-id\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/twproject.com\/support\/twproject-advanced-usage\/connections\/microsoft-entra-id\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/twproject.com\/support\/twproject-advanced-usage\/connections\/microsoft-entra-id\/#primaryimage","url":"https:\/\/twproject.com\/support\/wp-content\/uploads\/2026\/11\/entra-id-server-config-en.png","contentUrl":"https:\/\/twproject.com\/support\/wp-content\/uploads\/2026\/11\/entra-id-server-config-en.png","width":1395,"height":475},{"@type":"BreadcrumbList","@id":"https:\/\/twproject.com\/support\/twproject-advanced-usage\/connections\/microsoft-entra-id\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/twproject.com\/support\/"},{"@type":"ListItem","position":2,"name":"Advanced usage","item":"https:\/\/twproject.com\/support\/twproject-advanced-usage\/"},{"@type":"ListItem","position":3,"name":"Import \/ Export","item":"https:\/\/twproject.com\/support\/twproject-advanced-usage\/connections\/"},{"@type":"ListItem","position":4,"name":"Microsoft Entra ID login"}]},{"@type":"WebSite","@id":"https:\/\/twproject.com\/support\/#website","url":"https:\/\/twproject.com\/support\/","name":"Twproject support","description":"Twproject documentation online","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/twproject.com\/support\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"}]}},"_links":{"self":[{"href":"https:\/\/twproject.com\/support\/wp-json\/wp\/v2\/pages\/7427","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/twproject.com\/support\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/twproject.com\/support\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/twproject.com\/support\/wp-json\/wp\/v2\/users\/6"}],"replies":[{"embeddable":true,"href":"https:\/\/twproject.com\/support\/wp-json\/wp\/v2\/comments?post=7427"}],"version-history":[{"count":0,"href":"https:\/\/twproject.com\/support\/wp-json\/wp\/v2\/pages\/7427\/revisions"}],"up":[{"embeddable":true,"href":"https:\/\/twproject.com\/support\/wp-json\/wp\/v2\/pages\/2383"}],"wp:attachment":[{"href":"https:\/\/twproject.com\/support\/wp-json\/wp\/v2\/media?parent=7427"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}