C# 不带Active Directory的ASP.NET应用程序中的Office365 SSO

C# 不带Active Directory的ASP.NET应用程序中的Office365 SSO,c#,asp.net,single-sign-on,office365,C#,Asp.net,Single Sign On,Office365,我们希望从在数据库中存储用户名和密码的ASP.NET web应用程序单次登录到Office365。我们没有这些用户的Active Directory帐户 我能从office365中了解到的关于SSO的信息是,它只允许带有内部广告的SSO。但是应该有一些解决方法 任何人都可以给我一个如何实现这一点的指点。这是可能的,但很困难。我们花了大约一个月的时间来完成这件事 您需要做的是设置您自己的ws-federation安全令牌服务。你用WIF开发它。它应该公开确切的metadatw和ADFS2.0的声明

我们希望从在数据库中存储用户名和密码的ASP.NET web应用程序单次登录到Office365。我们没有这些用户的Active Directory帐户

我能从office365中了解到的关于SSO的信息是,它只允许带有内部广告的SSO。但是应该有一些解决方法


任何人都可以给我一个如何实现这一点的指点。

这是可能的,但很困难。我们花了大约一个月的时间来完成这件事

您需要做的是设置您自己的ws-federation安全令牌服务。你用WIF开发它。它应该公开确切的metadatw和ADFS2.0的声明。这是一个棘手的部分,因为这在任何地方都没有文档记录,需要对ADFS元数据进行反向工程

当sts准备就绪且功能正常时,O365将不会看到您的sts和thr ADF之间的差异,并且会很高兴地根据您自己的sts对用户进行身份验证。sts可以使用你想要的任何用户后台

另一个问题是如何自动创建O365用户帐户。这更简单,因为powershell api有很好的文档记录,允许您模拟DirSync的工作方式,这样您就不需要DirSync和AD


这只不过是表面现象,需要为艰难的研究做好准备。任何具体的问题都可以回答,但我不希望任何人提供一个循序渐进的教程。至少我们还没有找到任何东西,我们都是自己做的。

谢谢Wiktor,很高兴知道至少有一种方法可以实现它。我们将从api创建自己的用户帐户。这不是我的问题。如果你们有具体的问题,我们可以提供答案。如果这只是开箱即用,我会非常惊讶。虽然IndentityServer是一个很好的定制STS,但O365在接受定制STS的索赔时相当反复无常。你可能应该花一些时间在一项研究上,试着让双方互相交流。有可能从你那里购买解决方案吗?不幸的是,代码不是生产质量,因为它是一个研究项目。零售实施被重新安排在2013年末/2014年初。