0

在 MVC 应用程序中实现 SAML 2.0 的 AuthServices 库。我提供了来自身份提供者的所有详细信息,包括元数据和 SSO URl。但我无法理解什么是服务证书。我应该在这里包含什么?我必须从 App_Data 文件夹中添加哪个证书?

现在Kentor.AuthServices.Tests.pfx证书就在那里。我应该用什么代替这个证书。我正在使用来自 kentor.authservices 库的 owin中间件身份验证。我附上了 app_start c#代码如下。

提前致谢。

var attributeConsumingService = new AttributeConsumingService("AuthServices")
        {
            IsDefault = true,
        };

        attributeConsumingService.RequestedAttributes.Add(
            new RequestedAttribute("urn:someName")
            {
                FriendlyName = "Some Name",
                IsRequired = true,
                NameFormat = RequestedAttribute.AttributeNameFormatUri
            });

        attributeConsumingService.RequestedAttributes.Add(
            new RequestedAttribute("Minimal"));

        spOptions.AttributeConsumingServices.Add(attributeConsumingService);

        spOptions.ServiceCertificates.Add(new X509Certificate2(
            AppDomain.CurrentDomain.SetupInformation.ApplicationBase + "/App_Data/Kentor.AuthServices.Tests.pfx", "", X509KeyStorageFlags.MachineKeySet));

        return spOptions;
4

1 回答 1

2

正如@explunit 在评论中所说,您通常不需要服务证书。

仅在以下情况下才需要

  • 您正在接收加密的断言。
  • Idp 要求对 AuthnRequests 进行签名。
  • 您正在使用单点注销(所有注销消息都必须签名)。

在大多数简单的设置中,不需要它,只需将其删除即可。否则,您可以生成自签名证书并使用它。SAML2 中通常不要求证书具有特定主题。我什至可以过期并且仍然工作。

于 2016-06-08T21:03:29.787 回答