{"id":909,"date":"2024-12-31T20:46:41","date_gmt":"2024-12-31T19:46:41","guid":{"rendered":"https:\/\/sparrow365.de\/?p=909"},"modified":"2025-04-20T22:39:37","modified_gmt":"2025-04-20T20:39:37","slug":"custom-m365-terms-of-use-part-1-tenant-wide-settings","status":"publish","type":"post","link":"https:\/\/sparrow365.de\/index.php\/en\/2024\/12\/31\/custom-m365-terms-of-use-part-1-tenant-wide-settings\/","title":{"rendered":"Custom M365 Terms of Use Part 1: Tenant-Wide Settings"},"content":{"rendered":"<p>One of the most typical &quot;German problems&quot; is the need to feel <strong>secure in terms of data protection<\/strong>. We aim to have a contract with anyone who does anything. Everyone entering a building should sign something, and ideally, anyone we speak to should confirm, preferably with a wax seal, that we are allowed to communicate with them.<\/p>\n<p>In IT, this translates into wanting an <strong>explicit confirmation<\/strong> from every collaboration partner. Otherwise, we couldn\u2019t &quot;process&quot; their audio and chat data. By the way, they&#8217;ll also appear in the file history on SharePoint. Maybe we also want non-disclosure agreements or codes of conduct confirmed at login, or something else along those lines.<\/p>\n<p>For simplicity&#8217;s sake, let\u2019s group all these digital documents under the umbrella term <strong>&quot;Terms of Use&quot; (ToU)<\/strong>.<\/p>\n<p>Recently, I had to compile the options for <strong><em>Terms of Use<\/em><\/strong> within <strong>M365<\/strong>. Since I couldn\u2019t find a good summary during my research, I believe my findings could be valuable to others.<\/p>\n<p>This first part will describe the settings that <strong><em>should<\/em><\/strong> apply to the <strong>entire M365 environment<\/strong> of an organization and all connected applications.<\/p>\n<blockquote>\n<p><a href=\"https:\/\/sparrow365.de\/index.php\/en\/2024\/12\/31\/custom-m365-terms-of-use-part-1-tenant-wide-settings\/\"><em>In Part 2, I will focus on options within custom integrated applications.<\/em><\/a><\/p>\n<\/blockquote>\n<p><br class =\"\"><\/p>\n<hr \/>\n<h2>User Types<\/h2>\n<p>Since options and behaviors apply differently to various user types, let\u2019s clarify some terminology upfront:<\/p>\n<ol>\n<li>\n<p><strong>Internal Users<\/strong>: Users within your tenant. Their consent is typically confirmed through an employment agreement or contractual relationship. However, this group often includes contractors, for whom confirming Terms of Use is necessary.  <\/p>\n<blockquote>\n<p><em><strong>Not &quot;Internal Employees&quot;!<\/strong> This refers to the technical account, not the user&#8217;s organizational affiliation.<\/em><\/p>\n<\/blockquote>\n<\/li>\n<li>\n<p><strong>Guests<\/strong>: External users explicitly invited to the tenant and required to authenticate.<\/p>\n<\/li>\n<li>\n<p><strong>Other\/Anonymous Users<\/strong>: Users who are not invited to the tenant and do not authenticate. For example, they may appear as &quot;Unverified&quot; in Teams meetings.<\/p>\n<\/li>\n<\/ol>\n<p>With these terms clarified, let\u2019s dive into the settings.<\/p>\n<hr \/>\n<h2>Privacy Statement URL<\/h2>\n<p>For Entra administrators, the most obvious place to host privacy information is in the <a href=\"https:\/\/entra.microsoft.com\/#view\/Microsoft_AAD_IAM\/TenantOverview.ReactView\"><strong>&quot;Overview&quot; section of the Entra ID Admin Center<\/strong><\/a>.<br \/>\nSince only a URL can be stored, a web server is needed to host the corresponding content.<\/p>\n<p><img decoding=\"async\" style=\"max-height:500px;\" src=\"https:\/\/sparrow365.de\/wp-content\/uploads\/2024\/12\/0_TenantprivacyStatementResized.webp\" alt=\"PrivacyStatementURLinEntra\"><\/p>\n<p><br class=\"\"><\/p>\n<p>The same setting is also available in the <a href=\"https:\/\/admin.microsoft.com\/Adminportal\/Home#\/Settings\/SecurityPrivacy\/:\/Settings\/L1\/PrivacyProfile\"><strong>M365 Admin Center<\/strong><\/a>, and changes made in one admin center automatically reflect in the other.<\/p>\n<p><img decoding=\"async\" style=\"max-height:500px;\" src=\"https:\/\/sparrow365.de\/wp-content\/uploads\/2024\/12\/0_TenantPrivacyStatementAltResized.webp\" alt=\"M365AdminCenterPrivacyStatement\"><\/p>\n<blockquote>\n<p><em>The slightly less detailed<\/em> <a href=\"https:\/\/learn.microsoft.com\/en-us\/entra\/fundamentals\/properties-area#add-your-privacy-information\"><em>Microsoft documentation<\/em><\/a><\/p>\n<\/blockquote>\n<hr \/>\n<p>This URL replaces the default <strong>Privacy Statement<\/strong> link in many (<em>but not all<\/em>) Microsoft 365 products (e.g., Teams and SharePoint).<\/p>\n<p>Two examples:<\/p>\n<table>\n<thead>\n<tr>\n<th>SharePoint Invite Link<\/th>\n<th><a href=\"https:\/\/learn.microsoft.com\/en-us\/microsoftteams\/meeting-privacy-statement#meeting-join-experience\">&quot;Teams Meeting Join Experience&quot;<\/a><\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><img decoding=\"async\" style=\"max-height:500px;\" src=\"https:\/\/sparrow365.de\/wp-content\/uploads\/2024\/12\/0_1_InUseAnonymousSharingLinkScaled.webp\" alt=\"SharePoint Invite Link\" ><\/td>\n<td><img decoding=\"async\" style=\"max-height:500px;\" src=\"https:\/\/sparrow365.de\/wp-content\/uploads\/2024\/12\/0_1_TeamsMeetingJoinScaled.webp\" alt=\"TeamsMeetingJoinUrl\" ><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><br class=\"\"><\/p>\n<p><strong>Internal Users<\/strong> and <strong>Guests<\/strong> can also always view the <strong>Privacy Statement<\/strong> of the current organization on the <a href=\"https:\/\/myaccount.microsoft.com\/settingsandprivacy\/privacy\"><strong>MyAccount page<\/strong><\/a>:<\/p>\n<p><img decoding=\"async\" style=\"max-height:500px;\" src=\"https:\/\/sparrow365.de\/wp-content\/uploads\/2024\/12\/0_1_TenantprivacyStatementInUse.webp\" alt=\"PrivacyStatementinMyAccount\" ><\/p>\n<hr \/>\n<p><br class=\"\"><\/p>\n<p>If you wish to look at the Privacy Statements of all Organisations where you are a Member or Guest, you can do so under <a href=\"https:\/\/myaccount.microsoft.com\/organizations\"><strong>&quot;organizations&quot;<\/strong><\/a>.<\/p>\n<p><img decoding=\"async\" style=\"max-height:400px;\" src=\"https:\/\/sparrow365.de\/wp-content\/uploads\/2025\/04\/2_PrivacyInfoOrganizationPicker.png\" alt=\"Privacy Statements in Organization Picker\"><\/p>\n<hr \/>\n<p><br class=\"\"><\/p>\n<p>In practice, these links are mostly accessed by data protection officers or users who enjoy reading terms and conditions. Theoretically, an <strong>anonymous user<\/strong> could stumble upon the URL if they visit a supported page. <strong><em>There is no enforcement to view or acknowledge these links<\/em><\/strong>. From a legal perspective this should suffice in most cases, however<br \/>\n\u26a0\ufe0f <em>This is not legal advice!<\/em> \u26a0\ufe0f<\/p>\n<p><br class=\"\"><\/p>\n<hr \/>\n<h2>Tenant Login Page<\/h2>\n<p>An important exception to the &quot;Privacy Statement&quot; URL setting is the login process\u2014the page where users sign in to the organization\u2019s environment. Here, the &quot;Company Branding&quot; settings in the <a href=\"https:\/\/entra.microsoft.com\/#view\/Microsoft_AAD_UsersAndTenants\/CompanyBrandingOverview.ReactView\">Entra ID Admin Center<\/a> have to be set instead.<\/p>\n<blockquote>\n<p><em>These settings only apply if Entra ID authentication is used! If ADFS or a third-party identity provider is federated, the login experience must be configured there.<\/em><\/p>\n<\/blockquote>\n<p><img decoding=\"async\" src=\"https:\/\/sparrow365.de\/wp-content\/uploads\/2024\/12\/1_1_BrandingTermsOfUse.webp\" alt=\"LoginPageFooter\" \/><\/p>\n<p>By default, no footer is displayed during login. When enabled, both the text and URLs for &quot;Terms of Use&quot; and &quot;Privacy and Cookies&quot; can be customized for different purposes.<\/p>\n<table>\n<thead>\n<tr>\n<th>Enable Footer<\/th>\n<th>Set URLs<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><img decoding=\"async\" src=\"https:\/\/sparrow365.de\/wp-content\/uploads\/2024\/12\/1_BrandingEnableFooter.webp\" alt=\"EnableFooter\" \/><\/td>\n<td><img decoding=\"async\" src=\"https:\/\/sparrow365.de\/wp-content\/uploads\/2024\/12\/1_BrandingSetFooterURL.webp\" alt=\"Set URLs\" \/><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<blockquote>\n<p>For more information, see the <a href=\"https:\/\/learn.microsoft.com\/en-us\/entra\/fundamentals\/how-to-customize-branding#footer\"><em>Microsoft documentation<\/em><\/a>.<\/p>\n<\/blockquote>\n<p>It remains unlikely that a user will klick one of these links.<\/p>\n<p><br class=\"\"><\/p>\n<hr \/>\n<h2>Conditional Access<\/h2>\n<p>If explicit acceptance of Terms of Use is required, Conditional Access is the only tenant-level solution.  <\/p>\n<p>Using a Conditional Access policy, users must confirm that they\u2019ve read and accepted the uploaded PDF before accessing applications.<\/p>\n<p><strong>Key features include:<\/strong><\/p>\n<ul>\n<li><strong>Multilingual support<\/strong>: ToU can be provided in various languages.<\/li>\n<li><strong>Mandatory expansion<\/strong>: Users can be required to expand the document before confirmation.<\/li>\n<li><strong>Renewal<\/strong>: Consent can be re-validated after a set period.<\/li>\n<\/ul>\n<p><br class=\"\"><\/p>\n<p><img decoding=\"async\" style=\"max-height:500px;\" src=\"https:\/\/learn.microsoft.com\/en-us\/entra\/identity\/conditional-access\/media\/terms-of-use\/user-tou.png\" alt=\"TermsOfUseSplash\" ><\/p>\n<hr \/>\n<p><strong>Limitations:<\/strong><\/p>\n<ol>\n<li>Since this is a Conditional Access feature, an Entra ID P1 license is required for all users under ToU enforcement.<\/li>\n<li>We are often asked to set a ToU for <strong>only<\/strong> Teams, SharePoint <strong>or<\/strong> Exchange. However, since M365 applications are so tightly interwoven, &quot;Office 365&quot; should always be treated as a single application &#8211; a ToU should cover all applications under this umbrella<\/li>\n<li>A maximum of 40 ToUs can be defined, so limit yourself on application specific ones.<\/li>\n<li>Conditional Access is part of the authentication process, therefore consent cannot be collected from <strong>anonymous users<\/strong>.<\/li>\n<\/ol>\n<blockquote>\n<p>Configuration of ToU is already covered very well, here are some of the best resources I have seen:<\/p>\n<ul>\n<li>Blog-Post from the perspective of a citrix-administrator: <a href=\"https:\/\/jasonsamuel.com\/how-to-use-azure-ad-conditional-access-to-add-a-terms-of-use-eula-to-citrix-workspace-microsoft-wvd-office-365-and-saas-apps\">How to use Azure AD Conditional Access to add a Terms of Use EULA<\/a>  <\/li>\n<li>Microsoft documentation: <a href=\"https:\/\/learn.microsoft.com\/en-us\/entra\/identity\/conditional-access\/terms-of-use\">Terms of Use in Conditional Access<\/a><\/li>\n<\/ul>\n<\/blockquote>\n<p><br class=\"\"><\/p>\n<blockquote>\n<p><strong>From practical experience:<\/strong><br \/>\n<em>Another limitation when using Conditional Access Terms of Use exists in non-persistent VDI environments.<br \/>\nIn these environments, Single Sign-On (SSO) is interrupted, requiring users to repeatedly confirm the Terms of Use.<br \/>\nNon-persistent VDIs are <a href=\"https:\/\/learn.microsoft.com\/en-us\/entra\/identity\/devices\/howto-device-identity-virtual-desktop-infrastructure#supported-scenarios\">officially unsupported by Microsoft<\/a>; thus, solutions depend on individual goodwill from Microsoft support or third-party support.<br \/>\nWe could only disable Conditional Access ToU for the affected users.<\/em><\/p>\n<\/blockquote>\n<p><br class=\"\"><\/p>\n<hr \/>\n<h2>Summary<\/h2>\n<p>The options shown so far leave some challenges in coverage:<\/p>\n<table>\n<thead>\n<tr>\n<th>Setting<\/th>\n<th>Affected User Types<\/th>\n<th>Visibility<\/th>\n<th>Explicit Confirmation<\/th>\n<th>&quot;File Type&quot;<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>Tenant Privacy Info<\/td>\n<td><em>All<\/em> <br class=\"\"> (context-dependent only Internal Users and Guests)<\/td>\n<td>MyAccount, M365 app pages, invites<\/td>\n<td>\u274c Not required<\/td>\n<td>URL<\/td>\n<\/tr>\n<tr>\n<td>Tenant Branding<\/td>\n<td>Internal Users, Guests<\/td>\n<td>Microsoft Login page<\/td>\n<td>\u274c Not required<\/td>\n<td>URL<\/td>\n<\/tr>\n<tr>\n<td>Conditional Access ToU<\/td>\n<td>Internal Users, Guests<\/td>\n<td>Upon login (with re-confirmation interval); separate ToU per Application possible (up to 40)<\/td>\n<td>\u2705 Required<\/td>\n<td>PDF<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>While gaps remain in addressing specific user types or requiring explicit consent, other options can complement these measures.<\/p>\n<p><strong>In <a href=\"https:\/\/sparrow365.de\/index.php\/en\/2024\/12\/31\/custom-m365-terms-of-use-part-1-tenant-wide-settings\/\">Part 2<\/a>, we\u2019ll explore additional tools in Enterprise Apps<\/strong><\/p>\n","protected":false},"excerpt":{"rendered":"<p>One of the most typical &quot;German problems&quot; is the need to feel secure in terms of data protection. We aim to have a contract with anyone who does anything. Everyone entering a building should sign something, and ideally, anyone we speak to should confirm, preferably with a wax seal, that we are allowed to communicate&#8230; &raquo; <a class=\"read-more-link\" href=\"https:\/\/sparrow365.de\/index.php\/en\/2024\/12\/31\/custom-m365-terms-of-use-part-1-tenant-wide-settings\/\">weiterlesen<\/a><\/p>\n","protected":false},"author":2,"featured_media":905,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[76,366],"tags":[80,84,138,370,88,90,363,449,451,453],"class_list":["post-909","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-me-id-en","category-m365","tag-aad-en","tag-azure-ad-en","tag-conditional-access","tag-data-protection","tag-entra-en","tag-entra-id-en","tag-microsoft-365-en","tag-privacy-statement-en","tag-terms-of-use-en","tag-tou-en"],"_links":{"self":[{"href":"https:\/\/sparrow365.de\/index.php\/wp-json\/wp\/v2\/posts\/909","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/sparrow365.de\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/sparrow365.de\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/sparrow365.de\/index.php\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/sparrow365.de\/index.php\/wp-json\/wp\/v2\/comments?post=909"}],"version-history":[{"count":5,"href":"https:\/\/sparrow365.de\/index.php\/wp-json\/wp\/v2\/posts\/909\/revisions"}],"predecessor-version":[{"id":964,"href":"https:\/\/sparrow365.de\/index.php\/wp-json\/wp\/v2\/posts\/909\/revisions\/964"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/sparrow365.de\/index.php\/wp-json\/wp\/v2\/media\/905"}],"wp:attachment":[{"href":"https:\/\/sparrow365.de\/index.php\/wp-json\/wp\/v2\/media?parent=909"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/sparrow365.de\/index.php\/wp-json\/wp\/v2\/categories?post=909"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/sparrow365.de\/index.php\/wp-json\/wp\/v2\/tags?post=909"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}