Как создать метаданные федерации XML для "Trust of Party Trust" и "Trusts Provider Trusts" для ADFS 2.0

Одно из наших веб-приложений хотело бы подключиться к серверу ADFS 2.0, чтобы получить токен учетных данных и проверить на нем роли пользователя. Администратор сервера ADFS попросил нас предоставить им XML файл метаданных федерации, чтобы они могли создавать доверяющие доверительные отношения. Я googled и только нахожу, как загрузить XML-метаданные федерации федерации ADFS, используя URL-адрес: https:// [имя сервера adfs]/federationmetadata/2007-06/federationmetadata.xml Но не мог найти руководства для создания метаданных XML XML для создания Trust of Trust Trust Trusts Provider Trusts. Есть ли инструменты для создания этих файлов метаданных? Поделитесь некоторыми идеями о том, как создать.

Спасибо

Л

Отвечайте на мой вопрос:

Я обнаружил, что инструменты Federation Utility в WindowsIdentityFoundation-SDK-4.0 на http://www.microsoft.com/en-ca/download/details.aspx?id=4451 сделают это.

Ответы

Ответ 1

На самом деле URL-адрес

https://server/federationmetadata/2007-06/federationmetadata.xml

Нет инструментов, о которых я знаю.

Вы можете использовать класс Microsoft.IdentityModel.Protocols.WSFederation.Metadata или ссылаться Генерация метаданных федерации Динамически.

Взгляните на "Thinktecture.IdentityServer.v2/src/Libraries/Thinktecture.IdentityServer.Protocols/FederationMetadata" поверх Thinktecture.IdentityServer.v2.

Или, если ваше приложение использует WIF в каталоге метаданных.

Update:

В WIF, если вы не хотите, чтобы маркер был зашифрован, вам не нужен сертификат. Это больше для стороны ADFS, поскольку она должна подписать токен и приложение. необходим открытый ключ для проверки.

Пример:

<?xml version="1.0" encoding="utf-8"?>
<EntityDescriptor ID="_5b6cd05c-a5e3-470d-a2fc-6c6f66633d1b" entityID="http://localhost/app/" 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: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://localhost/app/</Address>
            </EndpointReference>
        </fed:TargetScopes>
        <fed:PassiveRequestorEndpoint>
            <EndpointReference xmlns="http://www.w3.org/2005/08/addressing">
                <Address>http://localhost/app/</Address>
            </EndpointReference>
        </fed:PassiveRequestorEndpoint>
    </RoleDescriptor>
</EntityDescriptor>

где localhost\app\должен быть вашим URL-адресом приложения. Обратите внимание на косую черту!

Ответ 2

Я должен был сделать это недавно, никогда раньше не использовал .Net или ADFS и имел только URL-адрес метаданных сервера (STS), с которым я пытался интегрироваться. У меня был базовый ПК с Windows 10 и пыталась настроить Node.js webapp как RP. Это то, что я сделал:

  • На компьютере Win 10 перейдите в Панель управления → Программы и компоненты → Включите или отключите функции Windows → Включить Windows Identity Foundation 3.5

  • Установлен Windows Identity Foundation SDK 4.0 (как упоминается оригинальным автором).

  • Создал базовый файл Web.config, содержащий:

    <?xml version="1.0" encoding="utf-8" ?>
    <configuration>
      <system.web>
    
      </system.web>
    </configuration>
    
  • В каталоге установки SDK я нашел FedUtil.exe и FedUtilSampleUserInput.xml. В образце файла были указаны все параметры, которые запросил FedUtil.exe, что было очень полезно.

  • Запустил FedUtil.exe в качестве администратора (щелкните правой кнопкой мыши в проводнике файлов), предоставив только что созданный файл Web.config, URL-адрес webapp, URL-адрес метаданных сервера (STS) в качестве "существующей STS" и выбрав для создания нового сертификата по умолчанию.

  • Lo and behold, был создан файл FederationMetadata.xml, и мой файл Web.config был обновлен автоматически.

  • Затем я не комментировал некоторые типы претензий в обновленном файле Web.config и повторно запускал FedUtil.exe, а затем обновлял свой файл FederationMetadata.xml с дополнительными типами требований, которые мне нужны из STS ( например, электронная почта, имя, фамилия)

  • Предоставлен файл FederationMetadata.xml администратору STS, который работает!

Единственным недостатком является то, что для этого потребовалась машина Windows... Я не уверен, что бы я сделал на Mac или Linux!

Ответ 3

Для создания метаданных SAML RP существует веб-инструмент, доступный в samltool.com, который может помочь. Я не нашел один для WS-Federation, кроме утилиты федерации...

Я также недавно обнаружил сайт rcFederation, который поддерживает федерацию AD FS/WS-Federation

Ответ 4

Метаданные xml для создания "доверия сторонней воспроизведения" не являются метаданными федерации ADFS, а метаданиями SP (Saml issuer) xml.