Security In Business Connectivity Services In SharePoint 2013

There are some types of authentication scenarios where the external system isn’t allowed to accept credentials directly from Business Connectivity Services. Yet the external system is able to accept them from 3rd parties and an authentication service that it is able to trust. That 3rd party is generally going to be a security token provider.

 They will accept a grouping of information called assertions about a user. The entire grouping is called the claim, and it can have plenty of information about the person requesting it. This can extend well beyond the username and password. The claim may contain metadata including the email address of that requestor or a security group that they belong to.

 With 3rd party authentication, the service performed will create a security token from the user. The Business Connectivity Service is then going to present that security token to the external system. It will look to see what the data is that the user is authorized to have access to.

When the external system in use doesn’t support credentials based or claims based authentication, then you have to create a customized solution that will take your own needs into consideration. It will take the credentials that you create with Business Connectivity Services and create a format that the external system is going to accept. This is possible to create for OData that has been secured either with OAuth or a custom ASP.NET HTTP module.

You are going to have to find out what the stakeholders of the business see as the solution as well as how they feel users should interact with it. They may need to interact with the data through Apps for Office, External lists, External web parts, Office 2013 , On premises SharePoint installation, SharePoint Online, and SharePoint Server.

The way in which the users will access the data determines how you will set up the external content type for Business Connectivity Services. This is how the users will be able to access that external data. When Business Connectivity Services offers a solution requiring apps for Office and SharePoint application, the external content type has to be customized to such an application.

If you don’t have to rely on apps for Business Connectivity Services, then the external content type has to be developed for the Business Data Connectivity only. Such external content is stored in the BDC Metadata Store. With on premises SharePoint 2013 installation, the external content type is stored in the BDC Metadata Store. A farm administrator will need to manage the security for them.

It is possible to share those external content types with multiple Business Connectivity Services web application. With SharePoint Online, the external content types have to be stored for you to use them in an all on site collection. The apps for SharePoint and Office scoped external content gets stored as XML file in the app for these applications. They can’t be used by other apps regardless of if they are on premises or SharePoint Online.

The connection setting objects offer the connection information including Names for any certificates required, Service address for the external data, Type of authentication in use, and URL.

With connection settings objects, they are separate from an external content type. The Business Connectivity Services solution has to connect with an external system. It uses the information that you select to define that connection separately from the external content type that was developed. You can only use connection settings objects with OData. Both of the apps are external content types.

The connection settings objects get managed in SharePoint Central Administration. All of the solutions have to be granted permission to use connection settings object. They can be used by multiple Business Connectivity Service solutions.  If the apps for SharePoint and Office are accessed through an OData source, you can create an automated app scoped external content type.

This is completed with the use of Visual Studio 2013. It has tools built into it that allow you to create external content types. Just point the Visual Studio 2013 at the OData service URL. The external content type can be used by an external data list. The app scoped external content type can also be used with a custom code including .NET using CSOM or JavaScript using JS CSOM.

You will have to include in your plan who will have permissions for which objects within that Business Connectivity Services solution. You will be able to grand as well as to restrict access based on the solution that you select. You will need to work with the external system administrator as well as the farm administrators for SharePoint to successfully set this up. The online administrators can configure the permission. There are three roles that must be involved with any Business Connectivity Services solution:

There are many roles that fall into this particular category. They include Managing permissions on the external system, Creating and managing Business Data Connectivity Service application, Importing Business Data Connectivity models, and Managing permissions on the BDC Metadata Store.

The SharePoint farm administrators have to be involved with publishing the application and creating the management connection objectives if the apps for SharePoint are using Business Connectivity Services.

This role involves understanding the various business needs for the solution. The common tasks include Creating external content types, Creating BDC models, and Creating the apps for SharePoint that Business Connectivity Services will use.

These are the users that will manipulate and use the external data from the Business Connectivity Services solution. There can be many user roles for a solution, and the users can have different levels of permission. That level will depend on their role within the organization.

There are four main elements to all Business Connectivity Services solutions that have to have managed permissions:

Each external system needs a method for authentication to take place as well as for authorization. Working with the external system administrator allows for identifying a method to grant access to the solutions users that are parallel to the principle of least privileges. This offers a mapping of groups of users from the Business Connectivity Services to a single account on the external side of things.

It will restrict access until a user has been authenticated and authorized to access data. Mapping between individual accounts and each system is also a possibility to consider. The external system will need to use the Secure Store Service though for authentication unless the credentials are already found within SharePoint.

The central infrastructure of the Business Connectivity Services has to be looked at because it is a shared service application. It has to be configured and managed so that the permissions are accessible through Central Administration. Creating a shared service application requires the rights of a farm administrator.

It is an option to delegate administration to Business Data Connectivity service application after you create it. You can manage the assignment of permissions to BDC Metadata Store too in Central Administration. The permissions assigned allow for management of BDC models, External content types, and External Systems.

It is necessary to assign and execute permissions for an external content type to all users within the Business Connectivity Services solution. The tables below show a detailed mapping of those objections, permissions, and abilities.


Planning Zones for Web Applications In SharePoint 2013

There are different logical paths, and zones represent them for gaining access to the same sites within a given web application. Each of these web applications may have up to 5 zones. As you create a web application, one of the zones will be named default by Central Administration (WCAM). You can create the additional zones by extending the web application. Then you can select any of the zone names that remain. They include:

  1. Intranet
  2. Extranet
  3. Internet
  4. Custom

 The plan you have in place for the different zones depends on:

  1. Classic Mode This isn’t recommended, and you can only implement 1 type of authentication in each zone. It is important to know that this option only supports Windows authentication methods.
  2. Claims Based Authentication This is recommended and you can implement several providers on one zone. You do have the option of using many zones if you like.

When you use claims based authentication for more than one method per zone, it is recommended that you do so on the default zone. This will result in the same URL for all users. When you decide to implement many authentication methods on the same zone, you will encounter the following restrictions:

  1. Only 1 instance of forms based authentication can be placed in a zone.
  2. For multiple SAML token based authentication, providers are configured for the farm. All of them appear as options when you create a web application or a new zone. You can configure all of them on the same zone. 

It is possible for users from various directory stores to use the same URL in order to access a partner website.

NTLM is required for the crawl component to be able to successfully access content. There must be at least 1 zone that is configured to use NTLM authentication. If it isn’t configured in the default zone, the crawl component will be able to use another zone that is configured to do so.

In order to successfully implement more than 1 zone for web applications you need to:

  1. Use the default zone to implement your secure authentication settings. A request won’t be able to be associated with a specific zone unless the settings and security of the default zone are applied. This is the zone that was created when you made the web application. The most secure authentication settings are created for end user access, so they will be able to access the default zone. 
  2. Use the minimum number of zones that are required in order to provide users access. Each of the zones is associated with a new IIS site and domain. They allow the web application to be accessed. Don’t add new access points until they are required.
  3. Make sure at least 1 of the zones is configured to use NTLM authentication for the crawl component. Don’t create dedicated zones for the index component unless you must.

The default zone can be used for remote employees as each zone offers a different URL. You can assign employees to different zones based on if they work in-house for you or externally. With server to server authentication, the servers are able to authenticate based on requests for resources from one to the other for the users. Servers that are able to run SharePoint 2013 or other software that supports Microsoft protocols offer a new set of functions that can be accessed through cross server resource sharing.

In order to provide the right resources from one server to the next, there is a server to server authentication. The server that runs SharePoint 2013 has to be able to:

  1. Verify the requested server is trusted. This requires you to configure the server so that it runs SharePoint 2013 to trust the server sending requests. This is a one way trust relationship.
  2. Verify that the type of access the sever is requesting is authorized. You must configure the sever that runs SharePoint 2013 for the right set of permissions for the requested resources.

The server to server authentication protocol in SharePoint 2013 is separated from the user authentication. It isn’t used as a sign in authentication protocol by SharePoint users. The server-to-server authentication protocol uses the Open Authorization 2.0 Protocol (OAuth). It doesn’t add to the set of user sign on protocols such as WS Federation. There aren’t any new user authentication protocols found in SharePoint 2013. The server to server authentication doesn’t appear in the list of identity providers.