我知道这个问题在这里似乎与其他儿子类似,但我尝试过这里发布的答案:Securing WCF 4.5 service using Azure ACS 2.0
在这里:Federated authentication (single-sign-on) for a WCF REST/HTML-service on Azure
答案似乎没有相关性。这是我到目前为止所拥有的。
WCF服务将由几家不同的公司使用,但除此之外关闭。我们选择了azure活动目录来为wcf服务和其他应用程序提供SSO。
这是我想要做的:
我认为这不会很难实现,但所有教程似乎都是针对IIS托管或自托管服务的控制台应用程序。
到目前为止我做了什么:
有关详细信息,请参阅选项1 here。 我需要知道我所做的是否接近正确,如果是,如何让WCF服务开始使用这些设置。
其他信息:
任何相关的教程链接或一般建议都会很棒。提前谢谢。
更新 只是为了添加更多信息,WCF服务正由许多不同的网站发布。我们的每个客户都会从他们自己的网络表单中收集数据,然后使用c#代码添加服务引用,或者如果他们使用php,则通过卷曲等方式将数据发布到网址。该服务有休息和肥皂端点。例如,他们会向mynamespace.cloudapp.net/myservice.svc/servicemethod发送XML或SOAP请求。我要么让他们发送带有该请求的用户名和密码,并在实际的WCF方法中验证这些凭证,要么让他们请求认证令牌,然后发送该认证令牌及其请求。
更新2 我想我找到了丢失的一块。为了将活动目录用作身份提供程序,我看起来需要设置ADFS服务器。我曾经以为ADFS服务器已经设置了azure活动目录帐户,但显然不是这样的情况?没有ADFS服务器有没有办法做到这一点?
答案 0 :(得分:0)
您未涉及的主要问题是how will these companies use that WCF service?
。通过您的门户网站,或通过富客户端(如WinForms / WPF)?
如果是富客户端,您可以查看this blog post?它向您展示了如何使用令牌保护WCF服务并从WPF应用程序访问该服务。
如果您打算只允许通过门户网站访问WCF服务,那么图片就会有所不同。您可以先通过Azure AD保护您的门户网站并获取用户的令牌。然后使用该令牌对WCF进行身份验证。
但在真正的网络方案中,调用该服务的client
实际上是your web server
。如果是这种情况,我将使用Azure AD保护我的Web门户。然后使用单个访问令牌保护我的WCF。我可以从Azure AD访问控制中的服务标识获取该令牌。并将此“服务令牌”作为我web server
的每个WCF调用的一部分提供。为了增加审计(和合规性),我还将发送原始用户令牌,以跟踪谁访问了什么以及何时访问。