{"id":448,"date":"2015-03-17T07:01:54","date_gmt":"2015-03-17T12:01:54","guid":{"rendered":"http:\/\/www.shiftedthought.com\/?p=448"},"modified":"2022-03-09T00:40:33","modified_gmt":"2022-03-09T05:40:33","slug":"sharepoint-2013-office-claims","status":"publish","type":"post","link":"https:\/\/www.shiftedthought.com\/?p=448","title":{"rendered":"SharePoint 2013 &#8211; Office + Claims"},"content":{"rendered":"<p>With newer releases of IE and Office, we&#8217;re seeing more and more of our SharePoint sites using claims authentication present users with login prompts directly in Office applications. As a security best practice, we avoid leaving persistent cookies around on end user devices. The only issue with this is that when a user attempts to click on a link to an office document, Office will often try to directly open up the file directly from the SharePoint site as opposed to local cached or downloaded copy. When it does so, it will not be able to &#8220;share&#8221; the authentication session and there will a fresh login prompt. Depending on the level of customization of your SharePoint site, and the inner workings of your trusted identity provider; your user may never get to the document. In any case there are a lot of extra clicks and a poor user experience.<\/p>\n<p>So, how do we get back to the old ways where a user is prompted with the download dialog, Open\/Save\/Cancel.<\/p>\n<p>Block all of the &#8220;enhancements&#8221; that have been added to IIS to let IE and Office &#8220;discover&#8221; that you&#8217;re on a SharePoint site.<\/p>\n<p>In IE9 and IE10, IE will see that the mimetype is an office document, launch said office prodcut, and send along the document URL. \u00a0At this point Office says, well, lets check this URL to see if it really is SharePoint. \u00a0Office will execute direct http requests with the HTTP Verbs Options and Propfind which (assuming you login) SharePoint responds well to and says, yeah sure I&#8217;m a SharePoint site. \u00a0Office then gives the user options for checking in and out directly from the Office client<\/p>\n<p>Fix: Block the HTTP verbs Options and Propfind HTTP Verbs<\/p>\n<p>IE11 makes use of a newer response header called X-MS-InvokeApp. \u00a0This tells IE hey, this is an Office Document, hosted on SharePoint, and you should invoke whatever office application you have. \u00a0If it happens to the full MS Office suite, lets go ahead and try to open in integrated mode. \u00a0On top of that, just to be sure Office will also execute a HEAD\u00a0http request and check the response headers itself.<\/p>\n<p>Fix: Remove\/rename the X-MS-InvokeApp response header in IIS and also block the HEAD tag. (in addition to the IE9\/IE10 fixes)<\/p>\n","protected":false},"excerpt":{"rendered":"<p>With newer releases of IE and Office, we&#8217;re seeing more and more of our SharePoint sites using claims authentication present users with login prompts directly in Office applications. As a security best practice, we avoid leaving persistent cookies around on end user devices. The only issue with this is that when a user attempts to &hellip; <a href=\"https:\/\/www.shiftedthought.com\/?p=448\" class=\"more-link\">Continue reading <span class=\"screen-reader-text\">SharePoint 2013 &#8211; Office + Claims<\/span> <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[20,3],"tags":[],"class_list":["post-448","post","type-post","status-publish","format-standard","hentry","category-archive","category-sharepoint"],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p28JZm-7e","_links":{"self":[{"href":"https:\/\/www.shiftedthought.com\/index.php?rest_route=\/wp\/v2\/posts\/448","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.shiftedthought.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.shiftedthought.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.shiftedthought.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.shiftedthought.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=448"}],"version-history":[{"count":2,"href":"https:\/\/www.shiftedthought.com\/index.php?rest_route=\/wp\/v2\/posts\/448\/revisions"}],"predecessor-version":[{"id":462,"href":"https:\/\/www.shiftedthought.com\/index.php?rest_route=\/wp\/v2\/posts\/448\/revisions\/462"}],"wp:attachment":[{"href":"https:\/\/www.shiftedthought.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=448"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.shiftedthought.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=448"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.shiftedthought.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=448"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}