Как создать XML метаданных федерации для "Доверие проверяющей стороны" и "Доверие поставщика утверждений" для ADFS 2.0
Одно из наших веб-приложений хотело бы подключиться к серверу ADFS 2.0, чтобы получить токен учетных данных и проверить роли пользователей на основе этого. Администратор сервера ADFS попросил нас предоставить им XML-файл метаданных федерации, чтобы они могли создавать отношения доверия проверяющей стороны. Я гуглил и нашел только, как загрузить XML метаданных федерации сервера ADFS с помощью URL - https: // [имя сервера adfs ] /federationmetadata/2007-06/federationmetadata.xml Но не смог найти ни одного руководства по созданию XML метаданных федерации для создания " Доверие доверяющей стороны " и " Доверие провайдера претензий ". Есть ли инструменты для создания этих файлов метаданных? Пожалуйста, поделитесь идеей о том, как создать.
Спасибо
L u
Ответь на мой вопрос:
Я обнаружил, что утилиты Federation Utility в WindowsIdentityFoundation-SDK-4.0 по адресу http://www.microsoft.com/en-ca/download/details.aspx?id=4451 сделают это.
4 ответа
На самом деле URL
https://server/federationmetadata/2007-06/federationmetadata.xml
Там нет инструментов, которые я знаю.
Вы можете использовать класс http://msdn.microsoft.com/en-us/library/microsoft.identitymodel.protocols.wsfederation.metadata.aspx или ссылаться на динамическое создание метаданных федерации.
Взгляните на "Thinktecture.IdentityServer.v2 / src / Libraries / Thinktecture.IdentityServer.Protocols / FederationMetadata" на https://github.com/thinktecture/Thinktecture.IdentityServer.v2.
Или, если ваше приложение использует WIF, оно находится в каталоге метаданных.
Обновить:
В 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 вашего приложения. Примечание конец косая черта!
Я должен был сделать это недавно, никогда раньше не использовал.Net или ADFS и имел только URL-адрес метаданных сервера (STS), с которым я пытался интегрироваться. У меня был базовый ПК с Windows 10, и я пытался настроить веб-приложение Node.js в качестве 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-адрес веб-приложения, URL-адрес метаданных сервера (STS) в качестве "существующего STS" и выбрав создание по умолчанию. сертификат.
И вот, файл FederationMetadata.xml был создан, и мой файл Web.config обновился автоматически.
Затем я откомментировал некоторые типы утверждений в обновленном файле Web.config и повторно запустил FedUtil.exe, который затем обновил мой FederationMetadata.xml дополнительными типами утверждений, которые мне были нужны из STS (например, электронная почта, имя и фамилия). фамилия)
Предоставил FederationMetadata.xml администратору STS, который работал!
Единственным недостатком является то, что все это требует компьютера Windows... Я не уверен, что я сделал бы на Mac или Linux!
Для создания метаданных SAML RP на samltool.com доступен веб-инструмент, который может помочь. Я не нашел ни одного для WS-Federation, кроме утилиты Federation...
Я также недавно обнаружил сайт rcFederation, который поддерживает AD FS / WS-Federation
XML-метаданные для создания "Доверия к воспроизводящей стороне" - это не метаданные федерации ADFS, а XML-метаданные SP (издателя Saml).