Вам не нужен сервер ADFS на вашей стороне. Хотя вы можете его использовать, у него есть несколько недостатков: относительно сложное развертывание, сложная автоматизация, ограниченная поддержка протоколов и т. Д. Вы, вероятно, потратите немало времени, чтобы настроить его так, чтобы он делал то, что вам нужно. Конечно, это мой собственный опыт.
Концептуально вы правы. Вам нужен посредник (обычно называемый «поставщиком федерации», который выполняет транзакции аутентификации между вашим приложением и любой системой, которая знает о пользователях, таких как ADFS вашего клиента).
Возможно, вы захотите проверить альтернативу, более легкую, готовую к работе с облаками и более простую в расширении. К счастью, у вас есть много вариантов:
1. Вы можете использовать IdentityServer, продукт с открытым исходным кодом, который можно развернуть рядом со своей службой. . Это продукт с открытым исходным кодом, который вы можете расширять и настраивать по своему усмотрению; и дает массу гибкости. Поскольку это OSS, вы можете «владеть» стеком и делать все, что захотите.
2. Вы можете использовать Azure AD, который является размещенным поставщиком федерации Microsoft. Он будет работать с ADFS и другими распространенными поставщиками; но имеет некоторые ограничения. (Например: он не позволит вам легко вести свою собственную базу данных пользователей, он не будет нормализовать профили пользователей, среди некоторых общих вещей, которые могут вам понадобиться).
3- Вы можете использовать Auth0, который оптимизирован для таких сценариев, как ваш. (Полное раскрытие: это продукт, над которым я работаю).
В любом случае, вы можете узнать больше об архитектуре подобных сценариев здесь.
person
Eugenio Pace
schedule
31.07.2013