gpt4 book ai didi

具有 Azure Active Directory 身份验证的 Azure WCF 服务

转载 作者:行者123 更新时间:2023-12-02 05:00:56 24 4
gpt4 key购买 nike

我知道这个问题看起来与这里的其他儿子相似,但我已经尝试了此处发布的答案:Securing WCF 4.5 service using Azure ACS 2.0

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

两者似乎都不相关。

这是我到目前为止所拥有的。

  • 具有各种辅助角色的 Azure 云服务,以及具有 REST 和 SOAP 端点的 WCF Web 角色
  • 拥有几个用户的 Azure Active Directory 帐户
  • ACS 命名空间。

WCF 服务将由几家不同的公司使用,但其他公司已关闭。我们选择 Azure Active Directory 为 wcf 服务和其他应用程序提供 SSO。

这是我想做的:

  • 为使用 WCF 服务的每个公司创建用户/密码Azure 事件目录。
  • 仅允许拥有有效用户名和密码对的公司获取访问 token
  • 让每家公司使用自己的 token 来访问 WCF 方法。

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

到目前为止我做了什么:

  • 将 WCF 服务添加为 Azure Active Directory 中的集成应用
  • 在 ACS 中创建了一个名为 testAAD 的新身份提供商,并将 WS-Federation 元数据从集成应用添加到该提供商
  • 添加了使用新创建的 testAAD 身份提供商的依赖方应用程序
  • 添加了一个规则组,其中包含使用 testAAD 身份提供商和默认设置的传递规则。

请参阅选项 1 here更多细节。我需要知道我所做的是否接近正确,如果是,如何让 WCF 服务开始使用这些设置。

其他信息:

  • WIF 4.5
  • VS2012 专业版
  • C#

任何相关的教程链接或一般建议都会很棒。提前致谢。

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

更新2我想我找到了缺失的部分。为了使用 Active Directory 作为身份提供程序,我似乎需要设置 ADFS 服务器。我原以为 ADFS 服务器已使用 azure 事件目录帐户设置,但显然情况并非如此?有没有办法在没有 ADFS 服务器的情况下做到这一点?

最佳答案

您没有提到的主要问题是这些公司将如何使用该 WCF 服务?。通过您的门户网站,还是通过富客户端(例如 WinForms/WPF)?

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

如果您计划仅允许通过门户网站访问 WCF 服务,则图片会有所不同。您可以首先通过 Azure AD 保护您的门户并获取用户的 token 。然后使用该 token 针对 WCF 进行身份验证。

但在真正的 Web 场景中,调用服务的客户端实际上是您的 Web 服务器。如果是这种情况,我将仅使用 Azure AD 保护我的 Web 门户。然后使用单个访问 token 保护我的 WCF。我可以从 Azure AD 访问控制中的服务标识获取该 token 。并提供此“服务 token ”作为来 self 的 Web 服务器 的每个 WCF 调用的一部分。为了增加审核(和合规性),我还将发送原始用户 token ,以跟踪谁访问了什么以及何时访问。

关于具有 Azure Active Directory 身份验证的 Azure WCF 服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16403426/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com