从SharePoint到ASP .NET的基于声明的身份验证

时间:2015-01-15 20:19:22

标签: model-view-controller sharepoint-2010 claims-based-identity sts-securitytokenservice

我正在尝试在SharePoint门户上创建单个登录。我已经尝试了各种方法,所以如果有人有更好的建议,那么我全都耳朵,但我试图通过基于声明的身份验证来做到这一点。我有一个运行安全令牌服务的SharePoint Web服务站点设置。它目前正在我的SharePoint服务器上的其他SharePoint站点使用,并且工作正常。我试图做的是使用相同的安全令牌服务向Web应用程序发出令牌,以用作从我的SharePoint门户实现这些Web应用程序单点登录的声明。

首先,这可能吗?

其次,如何生成供我的ASP .NET MVC应用程序使用的令牌?

我对安全令牌服务知之甚少,它是由不在我工作地点工作的其他人建立的,不幸的是我不能咨询他们。提前谢谢。

更新: 我现在收到以下错误:

Parser Error Message: ID1024: The configuration property value is not valid.
Property name: 'certificateReference'
Error: 'ID1025: Cannot find a unique certificate that matches the criteria.
StoreName: 'CertificateAuthority'
StoreLocation: 'CurrentUser'
X509FindType: 'FindByThumbprint'
FindValue: '‎mythumbprint'

我安装了我的证书并验证它位于受信任的根证书颁发机构的Root \ Certificates中。任何想法可能是什么问题?

注:

感谢您的帮助,这应该从一开始就提到过,但我在Visual Studio 2013中使用.NET Framework 4.5,所以请回答这个问题。到目前为止,答案和评论可能适用于早期版本的.NET和VS,但似乎在我的情况下不起作用。

更新:

我似乎已经解决了至少部分问题。看来我正在验证,但屏幕是空白的。我仍然在努力解决这个问题,但任何有类似问题的人this对我帮助很大。经过进一步检查后,我收到500内部服务器错误(在ADFS成功验证我之后),但该错误未出现在浏览器中我只在firebug中看到它。

2 个答案:

答案 0 :(得分:2)

是的,您可以在SharePoint和ASP.Net MVC应用程序之间实现单点登录。

由于您的SharePoint已经使用STS进行了设置,因此您需要为STS设置MVC应用程序。您不需要生成令牌,生成令牌并由STS返回到您的MVC应用程序。

要为STS配置MVC,您需要Windows Identity Framework。接下来,将MVC应用程序配置为使用基于声明的身份验证,请参阅http://msdn.microsoft.com/en-us/library/hh291061(v=vs.110).aspx

此外,如果您使用ADFS作为SharePoint,请阅读ADFS Federation

答案 1 :(得分:0)

我的空白页问题似乎是基于声明的身份验证和基于表单的身份验证代码在我的应用程序中混合在一起的结果。我已经决定创建一个简单的联合MVC应用程序(我能够工作),然后慢慢将代码从我现有的应用程序转移到简单的应用程序中,看看它在哪里中断。我建议任何尝试完成类似工作的人都不要尝试简单地改变身份验证方法,就像我试图做的那样,但要在新的简单应用程序中运行所需的身份验证,并将现有应用程序移植到新的应用程序中。对你而言,这是一种更长,更艰苦的方式,但就我而言,如果我刚开始这样做,它会更快。如果我想出任何新的有用信息,我会更新这个答案。

感谢所有为此提供帮助的人,这确实帮助我到达了现在的位置!