我正在尝试将 SSO 从我的 Laravel 8.13 站点设置到我相关的 Freshdesk 支持门户。
我想要的是登录到我的站点的用户,然后能够单击一个按钮并无缝登录到我的 Freshdesk 支持门户,这样他们就可以在那里查看非公开文档并在需要时提出票证。
使用 Laravel Passport 10.1 我可以创建一个令牌(使用 Postman 测试),但在尝试进行身份验证时从 Freshdesk 收到错误消息。
An error occurred while attempting to retrieve the userinfo resource: could not extract response: no
suitable httpmessageconverter found for response type [java.util.map<java.lang.string,
java.lang.object>] and content type [text/html;charset=utf-8]
我以前没有使用过 OAuth 并且遇到了问题。当然,我对 OAuth 的理解可能完全错误,但我发现很难获得有关 Laravel Passport / Freshdesk OAuth 连接的可用文档。
我已经解决了尽可能多的相关 SO 问题,但到目前为止似乎没有什么完全适合我的问题。
我还获得了 Freshdesk 的公开票,并与 Freshdesk 支持成员进行了在线支持会话,但他们告诉我问题在我这边,他们无法提供进一步的帮助。
我原以为要使用的客户端类型是个人访问客户端,但我已经尝试过,以及密码授予客户端,并为两种客户端类型获得了相同的消息(如上)。
就 Freshdesk 上的“用户信息 URL*”字段而言,
我努力了
http://testsite.ngrok.io/oauth/tokens
and
http://testsite.ngrok.io/oauth/personal-access-tokens
and
http://testsite.ngrok.io/api/user
但没有运气 - 关于找不到上述用户信息资源的相同消息。
如果我直接浏览到
http://testsite.ngrok.io/oauth/personal-access-tokens
我得到以下返回:
[{"id":"e595f342722c1045e061f2f026fa7f07181b3d5c69016e9999c5640f1e65928ff6fe2621565ff666c5",
"user_id":43128,"client_id":7,"name":null,"scopes":"openid","email","profile"],"revoked":false,
"created_at":"2021-01-26 10:16:12","updated_at":"2021-01-26 10:16:12",
"expires_at":"2022-01-26T10:16:12.000000Z","client":
{"id":7,"user_id":null,"name":"freshworksPersonalAccessClient",
"provider":null,
"redirect":"https:\/\/testsite.freshworks.com\/sp\/OAUTH\/27402945223480041\/callback",
"personal_access_client":true,"password_client":false,"revoked":false,
"created_at":"2021-01-19T23:19:39.000000Z","updated_at":"2021-01-19T23:19:39.000000Z"}}]
所以有些东西被退回了,但我不确定这是否接近 Freshdesk 正在寻找的东西。Freshdesk的支持文档指出:
但我不知道在哪里创建该信息或需要以什么格式将其发送到 Freshdesk。
我已经看过这个问题,并相信(即使它是针对旧版本的)UserRepository.php 文件中的“getUserEntityByUserCredentials”代码中可能有一些内容,但我已将记录器调用放入该函数中,但似乎没有被称为。
任何帮助都绝对很棒。如果需要任何进一步的信息,请告诉我。
尽管我更愿意将其保留在 Laravel 生态系统中,但我也愿意以任何其他方式将 SSO 设置到 Freshdesk,而无需使用 ADFS、OneLogin、Okta、Azure 等第三方身份提供程序。我只需要完成这件事。