Linkedin OAuth2.0:如何为多租户应用程序配置带有通配符子域 url 的 OAuth 2.0 重定向 URL

Linkedin OAuth2.0 : How to configure OAuth 2.0 Redirect URL with a wildcard subdomain url for a multi tenant application

我正在尝试为多租户站点配置 LinkedIn 应用程序。我将有 20 多个租户使用同一个应用程序,而且每次都会增加。

根据 Linkedin API 文档 (https://developer.linkedin.com/docs/oauth2),我们需要确保以下几点

  1. 我们强烈建议尽可能使用 HTTPS

  2. URL必须是 绝对(例如“https://example.com/auth/callback”,而不是 "/auth/callback")

  3. URL 参数被忽略(即 https://example.com/?id=1 is the same as https://example.com/)

  4. URLs 不能包含#(即 “https://example.com/auth/callback#linkedin”无效)

我能否将重定向 url 配置为 https://*.mysite.com/auth/linkedin/callback 而不是分别指定每个租户的 url。

您不能进行基于子域的通配符映射,因为 IP 应该知道 RP。

您可以在获得授权回调后更改逻辑,因此您设置了 cookie,然后您必须将用户重定向回租户 URL 而不是基础 URL。

无论如何,在成功授权后,您会将用户重定向到一个操作,只需找出子域并构造 URL 并执行重定向

HTH

编辑

由于使用 URL 或其他方法似乎是一种 hack,能否请您尝试拥有一个 facade 类应用程序(或类似网关的应用程序)URL 在 linkedin 中注册,然后在收到响应时,它可以使用状态或其他因素重定向到租户 URL。这可以使用 302 并且除非用户使用非常慢的网络,否则它将不可见。这种方法不需要任何类似 hack 的方法。

这里的 state 可以是一个函数,它获取租户信息并生成一个动态散列,该散列存储起来用于跟踪和重定向。