A few weeks ago on Twitter we saw an interesting post regarding InfoPath forms not working properly for external users. Naturally we had to investigate this issue, because as a consulting firm it's important for us to know these little quirks and kinks before recommending an InfoPath form solution to companies that might have a lot of external users. Thanks to Twitter's 140 character limit, I didn't have a lot of information to go off of to launch my investigation, so I decided to start in the most obvious place and then dig. I opened InfoPath and created a very simple SharePoint List Form and connected it to my SharePoint playground. Then I invited my personal email address to the site as an external user and tried to interact with the InfoPath form and list. To my great surprise, it worked. I decided I needed more information on this InfoPath form issue.
Then I learned that Nintex reported the same issue, but in their case it only referenced the public web application, and they weren't sure about anything to do with external sharing and the internal web application. This Twitter post was getting more and more intriguing by the minute. Normally PAITgroup doesn't use the public web application, so I needed to do a bit of research about public web applications and external users. It turns out, this particular InfoPath form issue one of those "known errors"/"works as intended" things.
According to the SharePoint Online services description, InfoPath Forms Services are only supported in Office 365 Enterprise E3 plans or higher. That means that users that are part of an O365 environment with an E3 plan will automatically be qualified to use the InfoPath forms because their accounts have an E3 license. Okay, that makes sense. Now according to Microsoft,
"External users inherit the use rights of the SharePoint Online customer who is inviting them to collaborate. That is, if an organization purchases an E3 Enterprise plan, and builds a site that uses enterprise features, the external user is granted rights to use and/or view the enterprise features within the site collection they are invited to. While external users can be invited as extended project members to perform a full range of actions on a site, they will not have the exact same capabilities as a full, paid, licensed member within your organization."
There is a table of restrictions that external users face, and InfoPath Forms Services is not among them. Therefore, you would assume that an organization that has purchased an E3 license and subsequently has access to InfoPath Forms Services would extend that service to its external users. This is only half true.
On an internal site, this never becomes an issue because all of the users are internal and they each have the appropriate license. If you have a site that is accessible by internal and external users, and the external users are required to log-in with credentials, then they should have access to the InfoPath forms because of the inheritance described above. The InfoPath form issue doesn't pop up until you try to interact with the forms from an anonymous guest user, or a user that is not logged in and attempting to access the form from a public facing site. In this case, the user does not have the appropriate license, and therefore does not have access to InfoPath Form Services. Similarly, if a user logs in but the license tied to their account doesn't meet the InfoPath Forms Services requirements, they won't have access either. Therefore, it is recommended that the use of InfoPath forms be restricted to internal sites, or sites where users are required to log in with credentials.
Going back to the original Tweet, I'm assuming this lengthy explanation wouldn't fit in 140 characters.