Как мне изменить файл FederationMetadata.xml моего WCF для различных развертываний?

У нас есть установка ADFS 2.0, которая хорошо работает для наших приложений MVC в различных средах. Я полагаю, что она использует "пассивную аутентификацию" (я все еще привыкаю к правильной терминологии) - это определенно то, где она перенаправляет пользователя на наш прокси adfs, если пользователь не вошел в систему, а adfs перенаправляет пользователя обратно в наше приложение MVC, как только он вошел.

Сейчас мы начинаем открывать некоторые защищенные веб-сервисы и хотим использовать эту же систему аутентификации. Насколько я понимаю, я хочу использовать ws2007FederationHttpBinding в качестве привязки для этого. Я полагаю, что у меня есть мой WCF's web.config все настроенные для этого, но моя борьба теперь сосредоточена вокруг FederationMetadata.xml файла.

Глядя на этот файл, я вижу некоторые вещи, которые явно нужно изменить, такие как entityID="http://localhost/UserServices" и сертификат. Затем есть некоторые вещи, о которых я понятия не имею, что это такое и нужно ли их менять или нет, например EntityDescriptor ID="_2b510fe8-98b8...... and CZe5mEu19/bDNoZrY8f6C559CJ....... .

Где я могу получить лучшее понимание того, как я должен управлять этим файлом для моих различных сред? У меня есть следующие среды, в которых размещены эти службы, которые мы будем развертывать тем или иным способом:

  1. Индивидуальные рабочие станции разработчиков (3x на данный момент, больше позже)
  2. Общая среда Dev для людей, пишущих приложения для этих служб, но не обязательно модифицирующих службы
  3. QA
  4. Staging
  5. Production (3 разные среды с разными сертификатами/доменами/и т.д.). )

Как таковой, у нас есть довольно упорядоченный процесс управления файлами web.config в различных окружениях с помощью преобразований и поиска/замены определенных маркеров, поэтому я хотел бы сделать то же самое с этим xml файлом. Итак, в конечном итоге, все, что я ищу, это некоторое понимание того, какие изменения необходимы при управлении этим FederationMetadata.xml файлом для моих различных сред.

Мой текущий файл FederationMetadata.base.xml приведен ниже, и я ПОЛАГАЮ, что он подходит (мне нужны только имена/роли), и мне просто нужно разумно заменить различные маркеры, такие как ~RootServiceUrlTokenToReplace~, здесь:

<?xml version="1.0" encoding="utf-8"?>
<EntityDescriptor ID="~EntityDescriptorIdTokenToReplace~" entityID="http://~RootServiceUrlTokenToReplace~" xmlns="urn:oasis:names:tc:SAML:2.0:metadata">
  <ds:Signature xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
    <ds:SignedInfo>
      <ds:CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" />
      <ds:SignatureMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#rsa-sha256" />
      <ds:Reference URI="#~ReferenceURITokenToReplace~">
        <ds:Transforms>
          <ds:Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature" />
          <ds:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" />
        </ds:Transforms>
        <ds:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
        <ds:DigestValue>~DigestValueTokenToReplace~</ds:DigestValue>
      </ds:Reference>
    </ds:SignedInfo>
    <ds:SignatureValue>~SignatureValueTokenToReplace~</ds:SignatureValue>
    <KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#">
      <X509Data>
        <X509Certificate>~CertificateTokenToReplace~</X509Certificate>
      </X509Data>
    </KeyInfo>
  </ds:Signature>
  <RoleDescriptor xsi:type="fed:ApplicationServiceType" protocolSupportEnumeration="http://schemas.xmlsoap.org/ws/2005/02/trust http://docs.oasis-open.org/ws-sx/ws-trust/200512" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:fed="http://docs.oasis-open.org/wsfed/federation/200706">
    <KeyDescriptor use="encryption">
      <KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#">
        <X509Data>
          <X509Certificate>~CertificateTokenToReplace~</X509Certificate>
        </X509Data>
      </KeyInfo>
    </KeyDescriptor>
    <fed:ClaimTypesRequested>
      <auth:ClaimType Uri="http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name" Optional="true" xmlns:auth="http://docs.oasis-open.org/wsfed/authorization/200706" />
      <auth:ClaimType Uri="http://schemas.microsoft.com/ws/2008/06/identity/claims/role" Optional="true" xmlns:auth="http://docs.oasis-open.org/wsfed/authorization/200706" />
    </fed:ClaimTypesRequested>
    <fed:TargetScopes>
      <EndpointReference xmlns="http://www.w3.org/2005/08/addressing">
        <Address>http://~RootServiceUrlTokenToReplace~</Address>
      </EndpointReference>
    </fed:TargetScopes>
    <fed:ApplicationServiceEndpoint>
      <EndpointReference xmlns="http://www.w3.org/2005/08/addressing">
        <Address>http://~RootServiceUrlTokenToReplace~</Address>
      </EndpointReference>
    </fed:ApplicationServiceEndpoint>
  </RoleDescriptor>
</EntityDescriptor>
6
задан Jaxidian 4 October 2011 в 15:45
поделиться