Freshdesk OAuth SSO: страница входа в Freshdesk не проверяет мою страницу авторизации?

#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

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

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

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

диалоговое окно входа в систему

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

Теперь на вкладке 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

Единый вход с OAuth 2.0

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

вход в freshdesk

Где теперь отображается (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 для получения сведений о пользователе.