带有SAML 2.0的SSO用于通配符域

时间:2016-10-07 14:53:17

标签: single-sign-on saml saml-2.0

我为ADFS 2.0手动编写“依赖方信任”和“声明提供商信任”的联合元数据XML 这可能是一个基本的例子......

<?xml version="1.0" encoding="utf-8"?>
<EntityDescriptor ID="_271f377f-78d8-4133-8c46-a73c4936bb1f" entityID="https://example.com" xmlns="urn:oasis:names:tc:SAML:2.0:metadata">
  <RoleDescriptor xsi:type="fed:ApplicationServiceType" xmlns:fed="http://docs.oasis-open.org/wsfed/federation/200706" protocolSupportEnumeration="http://docs.oasis-open.org/wsfed/federation/200706" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <fed:TargetScopes>
      <wsa:EndpointReference xmlns:wsa="http://www.w3.org/2005/08/addressing">
        <wsa:Address>https://example.com/</wsa:Address>
      </wsa:EndpointReference>
    </fed:TargetScopes>
    <fed:PassiveRequestorEndpoint>
      <wsa:EndpointReference xmlns:wsa="http://www.w3.org/2005/08/addressing">
        <wsa:Address>https://example.com/</wsa:Address>
      </wsa:EndpointReference>
    </fed:PassiveRequestorEndpoint>
  </RoleDescriptor>
</EntityDescriptor>

有一些方法可以使用像wild carddomain这样的东西来授权我的所有环境(开发,集成,预生产,生产......)

例如......

<EntityDescriptor ID="_271f377f-78d8-4133-8c46-a73c4936bb1f" entityID="https://*.example.com" xmlns="urn:oasis:names:tc:SAML:2.0:metadata">
        <wsa:Address>https://*.example.com/</wsa:Address>

to mach ..

https://des.example.com/

https://int.example.com/

https://pre.example.com/

https://pro.example.com/

我已阅读What to present at SAML EntityID URL?,但以防万一。

1 个答案:

答案 0 :(得分:0)

无法在EntityID中使用通配符,原因有几个

  • “*”在URI中允许12但不作为通配符运行,因此这不会产生您正在寻找的效果

    < / LI>
  • 每个实体(由它的EntityID标识)应该有自己的端点,以便其他SAML实体现在可以在哪里重定向浏览器或向其发出反向通道请求和/或应该侦听请求的位置。

您只需复制EntityDescriptor并更改每个环境的值

即可