Для этого задействованы 3 сервера, все они реализованы в .NET.
- сервер приложений (существующее клиентское приложение для согласования с SP)
- сервер аутентификации (SP)
- Azure AD (IDP)
Мне нужно иметь возможность:
- Аутентифицироваться с помощью облачной учетной записи Microsoft через SAML2.0
- Сохранить маркер SAML
- Сопоставить его с OAuth2.0токен, чтобы они могли войти в систему с другими учетными записями
Я зарегистрировался для приложения, не входящего в галерею Azure AD, сыграл с примером кода, который к нему подключился, и успешно прошел проверку подлинности с помощью перенаправления браузера.Но для этого приложения мне нужно, чтобы оно было прозрачным для пользователя, чтобы они вводили свои учетные данные через телефон / веб-приложение, оно передавало учетные данные на сервер авторизации, а затем выполнял SAML от имени пользователя. Пользователь не должен перенаправляться в потоке. Я понимаю, что это, вероятно, сводит на нет некоторые функции, которыми обладает SAML, но в принципе это может работать?
Коммерческие библиотеки не являются опцией, и ниИдентичность как услуга как Auth0.Я также посмотрел SAML.20 ECP, если у вас есть какие-либо предложения.
Примечание, во время игры с https://github.com/Sustainsys/Saml2, я столкнулся с блокировщиком, где "Подпись проверена правильно с ключом, содержащимсяв подписи, но этот ключ не является доверенным. "Я скачал файл .cer
из AAD, но у меня не было способа связать закрытый ключ, чтобы SP мог проверить ответ.