#oauth-2.0 #authorization #single-sign-on #freshdesk
#oauth-2.0 #авторизация #единый вход #freshdesk
Вопрос:
Я пытаюсь подключиться к Freshdesk с помощью OAuth 2.0 для единого входа из моего приложения. Мое приложение выступает в качестве собственного поставщика удостоверений OAuth. Я настроил свой URL авторизации на Freshdesk — назовем это https://www.myWebApp.com/auth
:
Итак, теперь в целях тестирования я перехожу к URL-адресу, который служба поддержки Freshdesk предоставила пользователю для инициирования процесса единого входа:
… и я вижу красивый экран входа в систему в стиле единого входа:
Я ввожу правильный адрес электронной почты и пароль для одного из пользователей моего сайта и нажимаю «Войти».
Теперь на вкладке Chrome network я ожидаю увидеть, что Freshdesk пытается проверить мой URL-адрес авторизации. Но я этого не делаю. Я вижу это:
При загрузке моя страница авторизации ( https://myWebApp.com/auth
) отправляет пинг на мой сервер, который выдает console.log()
сообщение, а в журналах моего сервера нет такого сообщения в журнале консоли — так что Freshdesk, похоже, вообще не проверяет мою страницу авторизации.
Что мешает Freshdesk пинговать мою страницу авторизации, как должно?
Комментарии:
1. На этом экране входа в систему вы видите другую кнопку для входа через SSO?
2. Я этого не делаю. На изображении в моем сообщении показано все диалоговое окно входа.
3. Я действительно изо всех сил пытаюсь заставить SSO работать на моей стороне — вы когда-нибудь сортировали свой SSO?
4. У меня все идет своим чередом, поэтому, если вы все еще работаете над этим, дайте мне знать, и я постараюсь помочь.
5. Привет, @MhluziBhaka, я все еще пытаюсь добиться успеха и был бы очень признателен за помощь!
Ответ №1:
Вероятно, у вас уже есть кое-что, но я просто добавляю это для полноты картины.
Войдите в серверную часть и на страницу безопасности для контактов
https://stackoverflow.myfreshworks.com/security/contacts
[stackoverflow == your site :) ]
вам нужно будет создать пользовательскую политику, если у вас ее еще нет (она отличается от политики для агентов)
И для этого настройте свой SSO с помощью Oauth 2.0
Затем, если у вас есть хотя бы один SSO, настроенный для входа в систему (на https://stackoverflow .freshdesk.com/support/login ) должно выглядеть примерно так:
Где теперь отображается (1). Это будет ссылка для пинга вашего сервера по URL-адресам, которые вы настроили для единого входа:
Если для ваших контактов настроен только один SSO, эта ссылка (1) должна завершить процесс входа напрямую, а затем вы должны войти в Freshdesk как конкретный контакт.
Если у вас были настроены два параметра единого входа; например:
.. когда вы нажали на ссылку (1) на https://stackoverflow .freshdesk.com/support/login страница, затем вы должны быть перенаправлены на страницу с этими двумя вариантами:
URL-адрес для этой страницы выглядит примерно так (параметры будут отличаться для вас):
https://stackoverflow.myfreshworks.com/login
?redirect_uri=https://stackoverflow.freshdesk.com/freshid/customer_authorize_callback
amp;client_id=14416083630394368amp;slug=6117145232763
Я предполагаю, что вы могли бы использовать это как прямую ссылку на портал на вашем основном сайте.
Если у вас настроен только один параметр единого входа, вы должны иметь возможность перейти непосредственно к ссылке, как указано выше, а затем посмотреть :
вероятно, это то, к чему вы стремитесь.
Я изменил название этой кнопки (вход с помощью единого входа в контакты), чтобы убедиться, что я использую правильный и отличаюсь от входа в систему для агентов. Вы можете изменить текст в разделе Дополнительные параметры при настройке единого входа:
Надеюсь, это поможет вам на этом пути — если у вас есть какие-либо другие вопросы по этому вопросу, оставьте их в комментариях.
Комментарии:
1. Я не могу дождаться, чтобы разобраться с этим! Я дам вам знать, как это происходит.
2. Это очень помогает! Вот вопрос. Когда пользователь нажимает на ссылку (1) на вашем рисунке, Freshdesk выполняет пинг конечной точки авторизации на моем сервере. На этом этапе, как мой сервер может определить, какой пользователь пытается войти в Freshdesk? Должен ли я кодировать идентификатор пользователя в ссылке, которую мой пользователь нажимает на моем сайте, что приводит его или ее на страницу Freshdesk, где находится ссылка (1)?
3. Я вижу, что когда мое приложение отправляет моего пользователя на страницу входа в FreshDesk, мое приложение включает
state
переменную. И, когда используется ссылка cicks (1), те жеstate
данные возвращаются на мой сервер. Нужно ли мне сохранять идентификатор пользователя вstate
данных, возможно, в зашифрованном виде, чтобы, когда пользователь нажимает на ссылку (1), мой сервер мог видеть, что это за пользователь?4. Хорошо, я изучил и вижу, что
state
это случайная строка. Когда он возвращается из FreshDesk, клиент или сервер могут проверить, является ли он законным. Если я хочу, чтобы сервер это сделал, похоже, мне сначала нужно изменить базу данных, чтобы сохранитьstate
значение и имя связанного пользователя.5. Да, это немного похоже на чечетку. Вы бы отправляли первоначальный запрос в Freshdesk со своего сайта как зарегистрированный пользователь, поэтому только в токене доступа (после утверждения) вы отправляли бы идентификатор пользователя в Freshdesk. Затем Freshdesk отправляет запрос на ваш URL-адрес userinfo для получения сведений о пользователе.