Итак, это как бы связано с вопросом здесь: Как включить CORS при регистрации приложения Azure при использовании в потоке авторизации OAuth с PKCE?
Я хочу реализовать OAuth 2 для наших одностраничных приложений JavaScript, написанных на ExtJS. Серверная часть написана на .NET (в настоящее время 4.6.2) и имеет как сервисы JSON, используемые пользовательским интерфейсом (реализация Ext.Direct), так и сервисы SOAP, используемые для интеграции клиентов.
В настоящее время мы обрабатываем нашу собственную аутентификацию, которая на самом деле работает очень похоже на поток кода авторизации. Мы входим в систему с идентификатором клиента, именем пользователя и паролем, чтобы получить токен генерации токена (TGT), а затем используем его для запроса краткосрочного токена обслуживания продукта (PST). Запрос PST продлевает жизнь TGT. По истечении срока действия TGT пользователь должен пройти повторную аутентификацию.
Для маршрута OAuth 2 я, очевидно, хотел бы, чтобы пользовательский интерфейс направлял людей на страницу входа в Azure, чтобы пользователь входил там, с любым MFA, который им может потребоваться, а затем возвращался в пользовательский интерфейс как известный пользователь. Меня не беспокоит, куда я беру токен службы продукта, хотя я думаю, что имеет смысл перейти в Azure, если это возможно, поскольку в конечном итоге мы хотели бы переместить всех в том направлении, в котором я подозреваю.
Итак, я заключил часть приведенного выше кода в класс ExtJS и смог получить действительный токен авторизации. Все идет нормально. Когда я затем пытаюсь запросить токен доступа, я столкнулся с той же проблемой с CORS, что и плакат с этим вопросом. Я просто не понимаю, как кто-то может использовать код авторизации с потоком PKCE в Azure в настоящий момент, поскольку ваше приложение никогда не будет размещено в том же домене, который используется для входа в систему ?!
В любом случае. Мне интересно, какие у меня варианты. Теперь мне интересно, могу ли я опубликовать код авторизации, который передается обратно в пользовательский интерфейс (возможно, с кодом PKCE), вплоть до веб-служб и заставить веб-службы обрабатывать связь с Azure для токенов доступа. Есть ли у этого больше шансов на успех, или я просто собираюсь решить ту же проблему?
Неявный поток - это не вариант. Никто из наших клиентов этого не примет.
Какие еще есть варианты? Есть ли чисто серверный вариант Azure, который я должен использовать, а потом беспокоиться о пользовательском интерфейсе?
Пытаюсь увидеть путь вперед! Буду признателен за любые идеи, которые у вас могут быть.
Привет, Уэсти