Мы являемся поставщиком услуг и пытаемся внедрить единый вход, инициированный SP, используя библиотеку SAML2 . У меня есть следующие вопросы
Когда конечный пользователь пытается получить доступ к защищенному приложению / ресурсу SP, как конечная точка SP должна определить, к какому IDP следует перенаправить запрос на аутентификацию?
Существует ли какой-либо стандартный формат для приема первого / начального запроса от пользователя IDP?
При перенаправлении запроса в IDP, в каком стандартном формате отправляется ответ в IDP?
Наш технический стек: asp .net (4.5) MVC, C # и SAML2 Библиотека Sustainys
Наш клиент (в терминах единого входа IDP-Идентификатор провайдера) использует:
SAML, инициированная SP в Azure AD
Использование библиотеки SAML2 Я реализовал единый вход, инициированный IDP, в котором IDP достигает нашей конечной точки ответом SAML, и мы проверяем его с помощью сертификата IDP и извлечения атрибутов и т. Д.
Итак, для инициатора SP я получил следующее,
[Route("RequestAccess")]
[HttpPost]
public ActionResult InitialRequest()
{
// How to Identify user and its IDP url?
// What should be the return type? (To redirect user to IDP)
}
// После проверки IDP может достичь нашей существующей конечной точки, которая проверяет утверждение и перенаправляет пользователя. Я реализовал эту часть и хорошо работает в случае установки, инициированной IDP.
[Route("AssertionConsumer")]
[HttpPost]
public ActionResult ValidateIdpRequest()
{
var options = Saml2Controller.Options; //Coming from config
CommandResult result = CommandFactory.GetCommand(CommandFactory.AcsCommandName)
.Run(Request.ToHttpRequestData(),options);
string userName = result.Principal.FindFirst(ClaimTypes.NameIdentifier)?.Value;
//Set the cooking in response
//Return
}
Что мне не хватает? Любые предложения / вопросы приветствуются.
Для сценария, инициированного SP, все, что я нашел в Интернете, не имеет примера или объясняет ясно.