如何在OWIN流中正确配置SAML 2.0 SP

时间:2017-04-28 03:33:58

标签: owin saml-2.0 kentor-authservices

我正在尝试在我的OWIN网站上使用使用Kentor auth服务的SAML。但我认为配置有问题,因为SAML返回Url与我配置的不一样。我一定有什么不对劲。

这是配置

<kentor.authServices entityId="https://admin.mercedes-forms.ggg.com.au" returnUrl="http://admin.mercedes-forms.ggg.com.au/Callback/Saml2">    
    <identityProviders>
      <add entityId="https://int.smfed.extranet.daimler.com/" 
           signOnUrl="https://cdiwl-appstest.i.daimler.com/affwebservices/public/saml2sso" 
           allowUnsolicitedAuthnResponse="true" binding="HttpRedirect">
        <signingCertificate fileName="~/App_Data/int.smfed.extranet.daimler.com.cer" />
      </add>
    </identityProviders>
    <federations>
      <add metadataLocation="http://admin.mercedes-forms.ggg.com.au/Federation" allowUnsolicitedAuthnResponse="true" />
    </federations>
    <serviceCertificates>
      <add fileName="~/App_Data/Kentor.AuthServices.StubIdp.cer" />
    </serviceCertificates>
  </kentor.authServices> 

以下是身份验证请求

<saml2p:AuthnRequest xmlns:saml2p="urn:oasis:names:tc:SAML:2.0:protocol" xmlns:saml2="urn:oasis:names:tc:SAML:2.0:assertion" ID="idaa4b00c6cd334f5c927526106a6da12f" Version="2.0" IssueInstant="2017-04-05T00:18:45Z" Destination="https://cdiwl-appstest.i.daimler.com/affwebservices/public/saml2sso" AssertionConsumerServiceURL="https://admin.mercedes-forms.ggg.com.au/AuthServices/Acs">
  <saml2:Issuer>https://admin.mercedes-forms.ggg.com.au</saml2:Issuer>
</saml2p:AuthnRequest>

提前致谢。

1 个答案:

答案 0 :(得分:3)

在您的应用程序中由AuthServices处理SAML 后,

ReturnUrl使用。因此,您在身份验证请求中看到的ReturnUrl中未反映AssertionConsumerServiceURL值是正确的。如果您想要自定义该位置,ModulePath参数更符合您的要求:https://github.com/KentorIT/authservices/blob/master/doc/Configuration.md#modulepath-attribute

例如,典型的流程可能是这样的:

  1. 在您的应用程序中使用requests / somesecurepath
  2. 您的身份验证系统(涉及AuthServices)将其重定向到身份提供程序,为第4步保存/ somesecurepath的值
  3. 身份提供商将SAML发回给位于/ AuthServices / Acs的断言使用者服务(除非您使用ModulePath选项自定义此位置)
  4. AuthServices重定向到步骤1中的原始请求位置
  5. 如果没有保存原始请求的位置,则ReturnUrl值才会起作用,例如对于未经请求/ idp启动的流程。