因为我是 WIF 的新手。我想在 WIF 上创建一个自定义 STS,但这些文档仅适用于 .net 3.5:http: //msdn.microsoft.com/en-us/library/ee748498.aspx ,我在 vs 2012 中找不到这些模板。所以我该怎么做?任何人都可以提供一些信息给我吗?谢谢 !
3 回答
在 .NET 4.5 或简称为WIF 4.5的 WIF下仍然可以编写自定义 STS 服务。
“要创建 STS,您必须从SecurityTokenService类派生。在您的自定义类中,您必须至少覆盖GetScope和GetOutputClaimsIdentity方法... ”,Microsoft 1
您首先从System.IdentityModel.SecurityTokenService派生一个新类型。
请注意,我们现在使用SecurityTokenService,它是 .NET 4.5 的System.IdentityModel的一部分,而不是 .NET 4.5 之前的Microsoft.IdentityModel。
请参阅下面的链接以查看被动 STS 的示例。
Microsoft 的联合元数据示例是自定义 STS 的一个相当完整的示例。
MSDN:
此示例将向您展示如何在运行时在 ASP.NET Web 应用程序中动态使用 WS-Federation 元数据。您还将看到如何创建生成 WS-Federation 元数据和颁发令牌的基本 STS。
此外,此示例还展示了如何将声明集成到 .NET 框架中的基础知识。您将了解如何启用 Web 应用程序以使用 WIF。您将了解它们在现有属性和函数中的用途,以及下一步如何使用 System.Security.Claims 中的 ClaimsPrincipal 类直接使用它们。您还将学习如何使用本地 STS,它是 Visual Studio 2012 的身份和访问工具的一部分。告诉我更多
模板已替换为Identity and Access Tool。
请参阅.NET Framework 4.5 Beta 中的 Windows Identity Foundation:工具、示例、声明无处不在
根据 FedUtil 的向导,不再有自定义 STS 工具选项。正如其他帖子所暗示的那样,您仍然可以自己动手。
请参阅:Windows Identity Foundation 4.5 中的新增功能。
看看Identity Server,它是一个非常好的自定义 STS 并根据需要进行更改。
如果您是新手,那么编写自定义 STS 可能不是一个好主意 :-) 我建议您查看 ThinkTecture STS 中给出的实现(https://github.com/thinktecture/Thinktecture.IdentityServer.v2 ) 这是一个示例 STS,它处理不同的令牌类型(SAML、SWT 和 JWT)以及不同的协议(WSFederation、OAuth、...)对于许多简单的情况,这里的内容太多了,但至少代码可以工作。