2013-05-06 101 views
3

我知道这个问题似乎类似于其他的儿子在这里,但我已经试过张贴在这里的答案:Securing WCF 4.5 service using Azure ACS 2.0Azure的WCF服务与Azure的Active Directory验证

这里:Federated authentication (single-sign-on) for a WCF REST/HTML-service on Azure

答案既不似乎是有关。

这是我到目前为止。

  • 各种辅助角色的Azure云服务,并与REST和SOAP端点
  • 与一对夫妇的用户
  • ACS命名空间的蔚蓝的活动目录帐户WCF Web角色。

WCF服务将由几个不同的公司使用,但除此之外关闭。我们选择azure活动目录为wcf服务和其他应用程序提供SSO。

这是我想做的事:

  • 创建用户/于 Azure的Active Directory中使用WCF服务的每个公司的密码。
  • 只允许拥有有效用户名和密码对的公司获取访问令牌
  • 让每个公司使用其令牌访问WCF方法。

我不认为这会很难完成,但所有的教程似乎都是针对IIS托管或自行托管的服务与控制台应用程序。

我迄今所做的:

  • 添加WCF服务在蔚蓝的活动目录
  • 集成应用程序创建的ACS命名testAAD一个新的身份提供者,并从添加的WS-联合会元集成应用到供应商
  • 补充说,将新创建的testAAD身份提供
  • 增加了一个规则组与使用testAAD身份提供商和默认设置直通规则依赖方应用程序。

查看选项1 here了解更多详情。 我需要知道我所做的事情是否接近正确,如果是,我如何让WCF服务开始使用这些设置。

其他信息:

  • WIF 4.5
  • VS2012临
  • C#

任何相关的教程链接或一般性的建议将是巨大的。提前致谢。

更新: 只需添加更多的信息,WCF服务是由许多不同的网站张贴。我们的每个客户都会从他们自己的网页表单收集数据,然后使用c#代码添加服务引用,或者如果使用php,则通过类似curl的方式将数据发布到url。该服务具有休息和肥皂端点。例如,他们会发送一个XML或SOAP请求到mynamespace.cloudapp.net/myservice.svc/servicemethod。我要么让他们发送他们的用户名和密码,并在实际的WCF方法中验证这些凭据,或让他们请求身份验证令牌,然后将该身份验证令牌发送给他们的请求。

更新2 我想我找到了缺失的一块。为了使用活动目录作为身份提供者,它看起来像我需要建立一个ADFS服务器。我曾认为ADFS服务器已经安装了Azure Active Directory帐户,但显然情况并非如此?有没有办法做到这一点没有ADFS服务器?

回答

0

您尚未涉及的主要问题是how will these companies use that WCF service?。通过您的门户网站,或通过丰富的客户端(如WinForms/WPF)?

如果是富客户端,你可以看看this blog post?它向您展示了如何使用令牌来保护WCF服务并从WPF应用程序访问该服务。

如果您打算只允许通过您的门户网站访问WCF服务,则图片会有所不同。您可以先通过Azure AD保护您的门户并获取用户令牌。然后使用该标记对WCF进行身份验证。

但是在真正的web场景中,将调用服务的client实际上是your web server。如果是这种情况,我会用Azure AD保护我的门户网站。然后用一个访问令牌保护我的WCF。我可以从Azure AD Access Control中的服务身份获取该令牌。并提供此“服务令牌”作为我的web server每个WCF呼叫的一部分。为了增加审计(和合规性),我还会发送原始用户令牌,以跟踪谁访问了什么以及何时访问。

+0

感谢您的快速回复,请参阅我的更新。我不确定你提到的任何场景是否适合我的情况。 – 2013-05-07 16:43:28

相关问题