Freshdesk OAuth SSO: Страница входа Freshdesk не пингует мою страницу аутентификации?

Я пытаюсь подключиться к Freshdesk с помощью OAuth 2.0 для единого входа из своего приложения. Мое приложение выступает в качестве собственного поставщика удостоверений OAuth. Я настроил свой URL-адрес авторизации на Freshdesk — назовем его https://www.myWebApp.com/auth:

Итак, теперь в целях тестирования я перехожу к URL-адресу, который служба поддержки Freshdesk предоставила пользователю, чтобы инициировать процесс единого входа:

https://myWebApp.freshdesk.com/login/normal

... и я вижу красивый экран входа в систему в стиле sso:

Я ввожу правильный адрес электронной почты и пароль для одного из пользователей моего сайта и нажимаю «Войти».

Теперь на вкладке сети Chrome я ожидаю, что Freshdesk попытается пропинговать мой URL-адрес авторизации. Но я не знаю. Я вижу это:

При загрузке моя страница авторизации (https://myWebApp.com/auth) пингует мой сервер, который выдает сообщение console.info(), а в журналах моего сервера нет такого сообщения в журнале консоли, так что Freshdesk, похоже, вообще не пингует мою страницу авторизации.

Что мешает Freshdesk проверить мою страницу авторизации должным образом?

На этом экране входа вы видите еще одну кнопку для входа через SSO?

Mhluzi Bhaka 18.01.2021 10:08

Я не делаю. Изображение в моем сообщении показывает весь диалог входа в систему.

VikR 18.01.2021 20:35

Я действительно изо всех сил пытаюсь заставить SSO работать на моей стороне - вы когда-нибудь разбирали свой SSO?

Mhluzi Bhaka 27.01.2021 02:51

У меня это происходит на моей стороне, поэтому, если вы все еще работаете над этим, дайте мне знать, и я постараюсь помочь.

Mhluzi Bhaka 27.01.2021 10:56

Привет, @MhluziBhaka, я все еще пытаюсь добиться этого и буду очень признателен за помощь!

VikR 27.01.2021 23:27

Оки, сочиняю ответ - но просто для интереса, что ты используешь для oauth? Вы сами пишете или используете что-то вроде laravel-passport? Кроме того, пользователи, которым вы хотите предоставить доступ к агентам или контактам freshdesk?

Mhluzi Bhaka 28.01.2021 01:33

Потрясающий! Я пишу это сам, и мое приложение также является собственным поставщиком удостоверений OAuth. Пожалуйста, дайте мне знать, если я могу предоставить любую дополнительную информацию!

VikR 28.01.2021 01:39

Круто, пользователи, которым вы хотите предоставить доступ к агентам или контактам freshdesk?

Mhluzi Bhaka 28.01.2021 01:54

Они контакты.

VikR 28.01.2021 01:58
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
9
502
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вероятно, здесь есть немало того, что у вас уже есть, но я просто добавляю его для полноты картины.

Зашел в бэкэнд и на страницу безопасности для контактов

 https://stackoverflow.myfreshworks.com/security/contacts 
 [stackoverflow == your site :) ]

вам нужно будет создать пользовательскую политику, если у вас ее еще нет (она отличается от политики для агентов)

И для этого настройте систему единого входа с помощью Oauth 2.0.

Затем, если у вас настроен хотя бы один SSO, ваш логин (по адресу https://stackoverflow.freshdesk.com/support/login) должен выглядеть так:

Где (1) теперь появляется. Это будет ссылка для проверки связи с вашим сервером через URL-адреса, которые вы настроили для SSO:

Если для ваших контактов настроена только одна система единого входа, эта ссылка (1) должна завершить процесс входа напрямую, а затем вы должны войти в Freshdesk как конкретный контакт.

Если у вас было настроено два варианта SSO; например:

.. когда вы щелкнули ссылку (1) на странице https://stackoverflow.freshdesk.com/support/login, вы должны быть перенаправлены на страницу с этими двумя вариантами:

URL-адрес этой страницы выглядит примерно так (параметры для вас будут другими):

https://stackoverflow.myfreshworks.com/login
?redirect_uri=https://stackoverflow.freshdesk.com/freshid/customer_authorize_callback
&client_id=14416083630394368&slug=6117145232763

Я предполагаю, что вы могли бы использовать это как прямую ссылку на портал на вашем основном сайте.

Если у вас настроен только один параметр SSO, вы сможете перейти непосредственно к ссылке, как указано выше, а затем увидеть:

что, вероятно, то, к чему вы стремитесь.

Я изменил название этой кнопки (Войти с контактами SSO), просто чтобы убедиться, что я использую правильную кнопку, и чтобы отличить ее от входа в систему для агентов. Вы можете изменить текст в разделе «Дополнительные параметры» при настройке единого входа:

Надеюсь, это поможет вам на этом пути — если у вас есть какие-либо другие вопросы по этому вопросу, пишите их в комментариях.

Я не могу дождаться, чтобы справиться с этим! Я дам вам знать, как это происходит.

VikR 28.01.2021 22:35

Это очень помогает! Вот вопрос. Когда пользователь щелкает ссылку (1) на вашем рисунке, Freshdesk пингует конечную точку аутентификации на моем сервере. Как в таком случае мой сервер может определить, какой пользователь пытается войти в Freshdesk? Должен ли я кодировать идентификатор пользователя в ссылке, которую пользователь нажимает на моем сайте, что приводит его или ее на страницу Freshdesk, где находится ссылка (1)?

VikR 31.01.2021 09:02

Я вижу, что когда мое приложение отправляет моего пользователя на страницу входа FreshDesk, мое приложение включает переменную state. И когда я использую ссылку cicks (1), те же state данные возвращаются на мой сервер. Нужно ли мне хранить идентификатор пользователя в данных state, возможно, в зашифрованном виде, чтобы, когда пользователь нажимает ссылку (1), мой сервер мог видеть, что это за пользователь?

VikR 31.01.2021 18:04

Хорошо, я изучил и вижу, что state — это случайная строка. Когда он возвращается из FreshDesk, клиент или сервер могут проверить его подлинность. Если я хочу, чтобы сервер сделал это, мне сначала нужно изменить базу данных, чтобы сохранить значение state и назвать связанного пользователя.

VikR 31.01.2021 19:11

Да, это что-то вроде чечетки. Вы будете отправлять первоначальный запрос в Freshdesk со своего сайта как вошедший в систему пользователь, поэтому только в токене доступа (после утверждения) вы будете отправлять идентификатор пользователя в Freshdesk. Затем Freshdesk отправляет запрос на ваш URL-адрес userinfo для получения сведений о пользователе.

Mhluzi Bhaka 02.02.2021 22:31

Потрясающий. Это идет хорошо. Я отправляю состояние для входа в систему Freshdesk, и когда я нажимаю ссылку (1), Freshdesk успешно достигает конечной точки моего приложения, отправляя состояние обратно для проверки.

VikR 03.02.2021 00:55

не могли бы вы взглянуть на эту связанную проблему, которую я только что опубликовал в SO? Я получаю сообщение об ошибке CORS при вызове Freshdesk redirect_uri. :) stackoverflow.com/questions/66129115/…

VikR 10.02.2021 01:10

Другие вопросы по теме