Как связать вошедшего в систему пользователя с поставщиком идентификации Facebook в Okta

В настоящее время я работаю над проектом, в котором мы хотим подключить профили facebook к существующим (и вошедшим в систему) пользователям Okta.

Сайт сделан в ASP.NET с использованием Sitecore 6.5.

Мы используем «URL-адрес авторизации» для входа в систему и привязки учетной записи с переадресацией вызовов.

Я могу зарегистрироваться и создать учетную запись у поставщика удостоверений facebook, когда пользователь не вошел в систему Okta. В этом случае он следует за перенаправлениями выноски, и мы получаем tx_id. Наведите указатель мыши, когда вы вошли в Okta и посещаете тот же «Авторизовать URL», он следует за redirect_uri, где вы получаете id_token в результате. это строка JWT, которую мне удалось расшифровать (пример результата) .

Как я могу использовать информацию в JWT, чтобы связать пользователя с поставщиком удостоверений? Или есть другой способ сделать это? Я не могу найти какие-либо методы или вызовы API для добавления пользователя к поставщику удостоверений без tx_id.


person Robin B    schedule 01.12.2016    source источник


Ответы (1)


Я полагаю, что вы использовали https://developer.okta.com/docs/api/resources/social_authentication.html, чтобы добавить социальную аутентификацию FB для пользователей. Да, после просмотра конечного URL

https://example.okta.com/oauth2/v1/authorize?idp=0oa0bcde12fghiJkl3m4&client_id=AbcDE0fGHI1jk2LM34no&scope=openid%20email%20profile&response_type=id_token&response_mode=fragment&state=someState&nonce=someNonce&redirect_uri=someState&nonce=someNonce&redirect_uri/social_auth

вы будете перенаправлены в свое приложение https://app.example.com/social_auth с токеном идентификатора в URL. В перенаправленном приложении вы можете читать, декодировать и создавать сеанс для пользователя. Однако такой же профиль пользователя создается и в Okta.

Как только профиль пользователя социальной аутентификации будет создан в Okta, вы можете использовать его для получения токена id в следующий раз.

person Sohaib Ajmal    schedule 06.12.2016
comment
Спасибо за Ваш ответ. Однако я не могу заставить его работать. Когда пользователь не вошел в систему, я могу выполнить ваши действия. Но когда он входит в систему, я напрямую получаю id_token с социальной информацией. Я не могу создать сеанс или не могу связать idp с пользователем с ним (или не знаю, как это сделать). Возможно, у вас есть пример кода или своего рода поток, в котором я могу видеть вызовы API/перенаправления? Я также собираюсь зарегистрировать билет в Окте. Будем держать вас в курсе. - person Robin B; 06.12.2016