使用Extension Provider实行 BCS OData 自定义身份验证

Categories: Other
Tags: No Tags
Comments: No Comments
Published on: 2012 年 12 月 18 日

[原文发表地址]  BCS OData Custom Authentication using Extension Provider

[原文发表时间]  2012-11-30 13:28

SharePoint 2013中的Business Connectivity Services (BCS) 支持连接到基于 OData 的 LOB 系统。BCS为OData 服务支持以下几种身份验证模式:

  • PassThrough
  • RevertToSelf
  • Credentials
  • Windows Credentials
  • Digest Credentials
  • 使用OData Extension Provider进行自定义身份验证

在本文中,我们详细介绍了如何从 SharePoint on-premises中连接到任何 OData 服务,并使用 OData extension provider进行自定义身份验证。

OData service provider可以支持的自定义身份验证方案的一些示例如下:

  • 使用 Windows Azure Access Control Service (ACS) 进行验证
  • 客户端基于证书的身份验证

若要启用这些自定义身份验证机制,您需要执行一个OData extension provider,然后在 BCS 中配置相同的东西。在每次调用OData LOB服务时,OData extension provider都是由BCS激活的。

注意:BCS 支持使用 OData extension provider进行自定义身份验证,但这只限于托管在on-premises SharePoint 中的应用程序或那些使用hybrid (通过hybrid从SharePoint Online连接到基于on-premise的LOB) 连接的应用程序。此限制是因为它不可能在 SharePoint Online 中安装自定义程序集。

执行 OData extension provider

  1. 在 Visual Studio 2010 中,创建一个新的项目。选择项目类型为Class LibraryODataExtensionFigure1[2]
  2. 更改文件名称和类名称为ODataOAuthExtensionProvider.
  3. 向项目中添加对Microsoft.BusinessData.dll程序集的引用。向类中添加Microsoft.BusinessData.SystemSpecific.OData命名空间。
  4. 空的自定义 OData extension provider执行应如下所示:ODataExtensionFigure2[2]
  5. 通过选择项目设置下的" Signing "选项,对程序集进行签名。生成 SampleODataExtensionProvider.dll 程序集。

安装OData extension provider程序

在 SharePoint web 前端 (WFE) 机器上的全局程序集缓存 (GAC) 中安装SampleODataExtensionProvider.dll。

如果 BCS 被配置为通过hybrid从 SharePoint Online 连接到on-premises LOB 系统,那么 SampleODataExtensionProvider.dll必须安装在SharePoint on-premises WFE上的GAC 中。

配置一个从SharePoint on-premisesOData 服务的连接

为了从 BCS中连接到OData 服务,必须在 SharePoint 中创建一个连接设置,这可以通过使用 BCS Windows PowerShell commandlet实现。

连接设置包含了 SharePoint BCS连接到 OData LOB 系统所必需的信息(OData Service URI、 OData Service Metadata URI、 身份验证模式和Extension Provider)。

New-SPODataConnectionSetting -Name "ContosoServiceApp" -ServiceContext "http://contoso" -ServiceAddressURL "http://tv.telerik.com/services/OData.svc" -AuthenticationMode "Anonymous" -ExtensionProvider "SampleODataExtensionProvider. ODataOAuthExtensionProvider, SampleODataExtensionProvider, Version=1.0.0.0, Culture=neutral, PublicKeyToken=34c4d4fa89a6bb3b

参数名称

说明

名称

连接设置 Id 应该在 BCS 模型中提到,且应该是唯一的。

ServiceContext

SharePoint Site Collection URI

ServiceAddressUrl

OData Service Address URI。OData metadata URI 是service URI + $ 元数据。如果 OData Metadata URI 是不同的, 那么通过参数 MetadataAddressUrl指定。

AuthenticationMode

针对 OData Service URI 进行身份验证时,使用到的身份验证模式。"匿名"在这里指的是 BCS 没有做任何身份验证。

ExtensionProvider

OData extension provider完全有资格的程序集名称。此程序集应被安装 在SharePoint WFE上的 GAC 中。

BCS 模型中配置连接

必须在 BCS 模型中指定连接信息。BCS 运行时使用连接信息来调用LOB OData 服务。

若要指定连接信息,在BCS 模型中添加以下属性,通过将它添加到LOB 系统和 LOB 系统实例实现。

<Property Name="ODataConnectionSettingsId" Type="System.String"> ContosoServiceApp </Property>

ODataExtensionFigure3[2]

摘要

这篇文章详细描述了如何使用OData extension provider 来支持BCS OData 连接器的自定义身份验证。

按照以上提到的步骤,您应该能够导入一个 BCS 模型,它连接到一个OData 服务,并拥有一个支持自定义身份验证的extension provider。在下一篇文章中,我们会更改OData extension provider来对 Windows Azure ACS 进行身份验证。

No Comments - Leave a comment

Leave a comment


Welcome , today is 星期三, 2017 年 03 月 29 日