Data authentication for Visio Services (SharePoint Server 2010)
Applies to: SharePoint Server 2010
Summary: Visio Services supports connections with Excel workbooks, SharePoint lists, SQL Server databases, and OLE DB and ODBC data sources. These are categorized as internal or external data sources as follows:
Data hosted within the SharePoint farm, such as a Microsoft Excel workbook or a SharePoint list.
External data, such as Microsoft SQL Server data, or an OLE DB or ODBC data source.
Retrieving data from a data source requires a user to be authenticated by the data source and then authorized to access the data that is contained therein. In the case of a Web drawing, Visio Services will authenticate to the data source on behalf of the user who is viewing it in order to refresh the data to which the drawing is connected.
Which authentication method Visio Services can use to retrieve data depends on the type of the underlying data source, as outlined in the following table. For data sources that support more than one authentication method, data connections must specify which one to use.
Data source | Authentication method |
---|---|
SharePoint lists |
SharePoint user permissions |
Excel workbooks |
SharePoint user permissions |
SQL Server |
One of:
|
OLE DB/ODBC |
Varies per data source, typically a user-name and password pair stored in the connection string. |
Custom data providers can also be used. For more information, see Creating a Custom Data Provider with Visio Services (https://go.microsoft.com/fwlink/p/?LinkId=196860).
The following data sources are supported in Microsoft Visio but not in Visio Services:
Access databases
Excel workbooks not hosted on SharePoint Server
OLAP
Connecting to data hosted on SharePoint Server
Visio Services supports data-connected Web drawings that are connected to data hosted within the SharePoint farm, including the following:
Excel workbooks residing in a document library
Data in SharePoint lists
Connecting to Excel workbooks
Visio Services uses the Web drawing viewer's SharePoint Server credentials to connect to an .xlsx Excel workbook. For the authentication operation to succeed, the following conditions must be met:
Excel Services must be provisioned correctly and configured on the SharePoint farm.
The workbook must be hosted on the same farm as the Web drawing.
The Web drawing viewer must have at least "read" permissions to the Excel workbook.
No other configuration steps are required to enable this kind of data connection.
Note
As part of connecting to an Excel workbook, Visio Services requests that Excel Services refresh the workbook if it contains connections to external data. In this case, the drawing viewer's identity is passed on to Excel Services so that Excel Services can authenticate to underlying data sources to refresh the workbook.
Connecting to SharePoint lists
Visio Services uses the Web drawing viewer's SharePoint Server credentials to connect to a SharePoint list. For the authentication operation to succeed the following conditions must be met:
The SharePoint list must be hosted on the same farm as the Web drawing.
The Web drawing viewer must have at least "read" permissions to the SharePoint list.
No other configuration steps are required to enable this kind of data connection.
Connecting to external data
Visio Services can connect to various external data sources, including SQL Server, OLE DB/ODBC, and custom data providers. To connect to the data source, Visio Services uses a specific data provider for each data source.
As a security measure, Visio Services must explicitly trust data providers before they can be used. For more information about trusted data providers, see Configure Visio Graphics Service trusted data providers (SharePoint Server 2010).
Connecting to a Microsoft SQL Server data source can be done by using either:
Windows authentication
SQL Server Authentication
Other data sources use a connection string usually consisting of a user name and password.
Data connections
Visio Web drawings use one of two kinds of connections:
Embedded connections
Linked connections
Embedded connections are stored as part of the Visio Web drawing. Linked connections are stored externally to a Web drawing in Office Data Connection (ODC) files. To use a linked connection, a Web drawing must reference an .odc file that is also stored in the same farm as the Web drawing. Each data connection consists of:
A connection string
A query string
An authentication method
Optionally, some metadata required to retrieve external data
Each kind of connection has its advantages and drawbacks discussed here; choose the one that best suits your scenario.
Connection type | Embedded connections | ODC files |
---|---|---|
Data sources supported |
|
|
Advantages |
|
|
Drawbacks |
|
|
Choose a linked data connection, by using an ODC file, for scenarios in which you must have a data connection to an enterprise-scale relational data source such as SQL Server. Linked data connections are most useful in scenarios in which they will be shared across many users and in which administrator control of the connection is important.
Note
ODC files must first be created in Excel and exported to SharePoint Server before it can be used with Visio Services.
Choose an embedded connection for scenarios in which you have to have a quick data connection to a small or file-based data source that will only be used by some users.
ODC files can be stored in a data connection library, a special kind of SharePoint document library. Centralizing data connections in such a document library has several advantages:
Administrators can restrict write access to a data connection library to trusted data connection authors to ensure that only well tested and secure data connections are used by Web drawing authors.
Administrators have a single location to manage data connections for a large group of users.
Administrators can easily approve, audit, revert and manage data connection files by using document library versioning and workflow features.
Data connection libraries can be reused across other Office applications such as Excel, Excel Services, Microsoft InfoPath 2010, InfoPath Forms Services, and Microsoft Word.
End-users only have a single location to find drawing data, reducing confusion and user training.
For information about how to create data connection libraries, see How to: Create and Use a Data Connection Library (https://go.microsoft.com/fwlink/p/?LinkID=188117). For information about how to create ODC files, see Create, edit, and manage connections to external data (https://go.microsoft.com/fwlink/p/?LinkID=196894).
Windows authentication
Windows authentication requires that Visio Services present to SQL Server a set of Windows credentials. This kind of credential is common on Windows networks and is the same credential used to log on to computers on a Windows domain or to connect to a computer that is running Exchange Server. Windows credentials are considered the most secure and manageable means of controlling access to SQL Server databases. However, one obstacle to using Windows authentication with Visio Services is the Windows double hop security measure, wherein a user's credentials cannot be passed across more than one computer in a Windows network. Given that Visio Services is a multi-tiered system, special authentication methods are required for Visio Services to retrieve data on behalf of the end-user.
The authentication method to choose depends on various factors as outlined in the following table. Choose the one that best suits your scenario.
Authentication method | Kerberos delegation | Secure Store | Unattended Service Account |
---|---|---|---|
Description |
Using constrained Kerberos delegation, the drawing viewer's Windows credentials are sent to the data source directly. |
Using the Secure Store Service, the viewer's Windows credentials are mapped to another set of credentials specified in a Secure Store target application. |
Using the Secure Store Service, all viewers are mapped to a unique set of credentials called the Unattended Service Account that is stored in a specific Secure Store target application specified in Visio Services Global Settings. |
Data connection credentials |
The Windows credentials of the Web drawing viewer. |
The credentials specified in the Secure Store target application. |
The credentials of the Unattended Service Account. |
Advantages |
|
|
|
Drawbacks |
|
|
|
For the authentication operation to succeed … |
|
|
|
Kerberos delegation
Choose Kerberos delegation for secure and fast authentication to enterprise-scale relational data sources that support Windows authentication. For information about configuring Kerberos delegation, see:
Configuring Kerberos Authentication for Microsoft SharePoint 2010 Products (https://go.microsoft.com/fwlink/p/?LinkId=196600)
Secure Store
Choose Secure Store for authentication to enterprise-scale relational data sources that may or may not support Windows Authentication. Secure Store is also useful in scenarios in which you want to control user credential mappings.
For information about using Secure Store with Visio Services, see Use Visio Services with Secure Store.
Video demonstration
This demonstration shows the steps for configuring Visio Services with Secure Store.
Watch the video (https://go.microsoft.com/fwlink/p/?LinkId=196864). To download the video file, right-click the link, and then click Save Target As.
Unattended Service Account
For ease of configuration the Visio Graphics Service provides a special configuration where an administrator can create a unique mapping where all users are mapped into to a single set of credentials.
This account, known as the Unattended Service Account, must be a low-privilege Windows domain account. Visio Service impersonates this account when it connects to a data source on behalf of a Web drawing viewer.
It is a best practice to give this account as few network permissions as possible, typically only access to log into the network and access the data source you want to have users connect to. For best security, be sure that the Unattended Service Account does not have access to the SharePoint Configuration and Content databases.
The Unattended Service Account is used by Visio Services:
When an ODC file specifies the use of the Unattended Service Account for either Windows or SQL Server Authentication
When no ODC is used, and Kerberos authentication fails
Note
The unattended account can be a local computer account of type Windows. If the unattended service account is configured as a local computer account, ensure that the configuration is identical on every application server running Visio Services. For manageability reasons, it is best practice to use a domain account
Choose the Unattended Service Account when connecting to small ad-hoc deployments in which security is less important or for which speed of deployment is essential.
For information about using the Unattended Service Account with Visio Services, see Use Visio Services with Secure Store.
Video demonstration
This demonstration shows the steps for configuring Visio Services with the Unattended Service Account.
Watch the video (https://go.microsoft.com/fwlink/p/?LinkId=196865). To download the video file, right-click the link, and then click Save Target As.
SQL Server Authentication
SQL Server Authentication requires that Visio Services present a SQL Server user name and password to a SQL Server data source to authenticate. Visio Services extracts this username and password from the data connection's connection string and passes it to the data source.
To reduce security risks, Visio Services impersonates the Unattended Service Account when connecting to such a data source.
Authentication against OLEDB/ODBC data sources
Authentication to third party data sources typically requires that Visio Services present a user name and password to a data source. Like SQL Server Authentication, Visio Services extracts this user name and password from the data connection's connection string and passes them to the data source.
To reduce security risks, Visio Services impersonates the Unattended Service Account when connecting to such a data source.
Data refresh
Visio Services supports refreshing drawings connected to one or more of the following data sources:
SQL Server
SharePoint lists
Excel workbooks hosted in SharePoint Server
Oracle 9i, 9iR2, 10g, 10gR2, 11g, 11gR2, and DB2 9.2
Note
If the data source you plan to connect to is not in the list above, you can add support for it by creating a Visio Custom Data Provider. This technology enables you to wrap your existing data sources into one that Visio Services can consume. For more information, see Creating a Custom Data Provider with Visio Services (https://go.microsoft.com/fwlink/p/?LinkID=191029) in the MSDN Library Online.
External data refresh is the result of the following set of steps through Visio Services.
Creating a drawing: A drawing author uploads a data-connected Web drawing to SharePoint Server 2010.
Triggering Refresh: The drawing viewer triggers refresh on a data-connected Web drawing.
Data Connections: Visio Services retrieves data connection information for each external data source in the drawing.
Trusted Data Providers: Visio Services checks to see if there is a trusted data provider it can use to retrieve data.
Authentication: Visio Services authenticates into the data source and retrieves the requested data on behalf of the drawing viewer.
Drawing Refresh: Visio Services updates the Web drawing based on the data source data and returns it to the viewer.
Refresh can be triggered in one of following ways from within the browser:
The end-user opens the Web drawing.
The end-user clicks on the refresh button on an already open Web drawing.
The end-user loads a page that contains the Visio Web Access Web part which was configured to refresh automatically by a site designer.
Note
A SharePoint site designer must place the Visio Web Access Web part on a page and configure it to refresh periodically.
Refresh can also be triggered in third party solutions by calling through JavaScript the Vwa.VwaControl.refreshDiagram Method of the Visio Web Access Web Part's Mash-up API. For more information, see Customizing Visio Web Drawings in the Visio Web Access Web Part (https://go.microsoft.com/fwlink/p/?LinkID=196503) in the MSDN Library Online.
If there are no previously cached versions of this Web drawing, any of these actions will trigger a refresh and update the Web drawing. For information about configuring cache settings for Visio Services, see Configure Visio Graphics Service global settings (SharePoint Server 2010).
See Also
Concepts
Use Visio Services with SharePoint lists (SharePoint Server 2010)
Use Visio Services with complex data queries
Use Visio Services with Secure Store
Secure Store for Business Intelligence service applications (SharePoint Server 2010)