Windows Server 2016 AD FS 4.0 для проверки подлинности внешнего веб-приложения с помощью OAUTH JWT и Shared Secret
Мы пытаемся заставить продукт SaaS проходить аутентификацию на наших службах AD FS 4.0, работающих на Windows Server 2016.
Веб-приложение настроено для единого входа с использованием JWT и позволяет нам настраивать общий секретный ключ, URL-адрес входа в систему и URL- адрес выхода из системы
Я получил приложение для перенаправления на экран входа в AD FS https: // имя_хоста / adfs / oauth2 / авторизация и аутентификация в активном каталоге. Оттуда он возвращает кодовое значение, которое, как я знаю, нужно перейти по https://hostname//adfs/oauth/token, но здесь я застрял.
Нужно ли создавать веб-службу, которая получает код от конечной точки авторизации, отправляет его в конечную точку токена и затем перенаправляет обратно в веб-приложение с помощью JWT? Или AD FS может сделать это самостоятельно, если я правильно настрою?
Я хочу, чтобы веб-приложение перенаправляло на экран входа в систему AD FS (выполнено), AD FS для аутентификации в AD (выполнено), а затем (сделало магию) и перенаправило обратно в веб-приложение с помощью JWT.
РЕДАКТИРОВАТЬ:
Вот что я хочу с Server 2016 AD FS 4.0. Нужно ли мне создавать собственную службу ADFS/AUTHORIZE->code->ADFS/TOKEN->jwt->Application URL?
ОБНОВИТЬ:
Похоже, вы должны контролировать клиентское приложение, что не относится к случаям, когда вы используете сторонний SaaS. Поэтому нам нужно реализовать myapi такой, чтобы.
- SaaS перенаправляет на / adfs / oauth2 / authorize
- AD FS перенаправляет на /myapi/?code=ab2..3cf
- Myapi сообщения
code
to /adfs/oauth2/token - Ответ AD FS содержит JWT
- myapi перенаправляет в SaaS с /?jwt= токеном
1 ответ
Этот поток называется предоставлением кода авторизации.
Хорошая схема здесь.
Получите код, отправьте его в конечную точку /token, получите токен доступа, отправьте его в API в заголовке авторизации.
Если продукт SaaS имеет стек OpenID Connect, он должен сделать это автоматически. Продукт SaaS должен управлять потоком.
Обновить:
Единственное, что вам нужно сделать с ADFS, это настроить его. Программирование не требуется.
Вам нужно кодировать на стороне клиента.
Клиент отправляет / авторизует конечную точку.
ADFS отвечает кодом.
Клиент отправляет код на / токен конечной точки.
ADFS отвечает токеном.
Клиент отправляет токен в API.