0

我将尽量使问题尽可能清晰和直接。

  1. 使用 Okta 配置的社交身份验证 (Facebook),将重定向 URI 作为我的自定义 web 应用程序的 URL。此自定义 web 应用程序依赖 Okta 进行身份验证。
  2. 用户访问我的自定义 web 应用程序(未经身份验证)并单击社交身份验证 URL 以登录到我的自定义 web 应用程序。
  3. 用户遵循正常流程,由 facebook 和 Okta 进行身份验证(按照通常的流程),然后由 Okta 重定向回自定义 web 应用程序。
  4. 整个流程是成功的,用户可以在他们的浏览器中看到一个 Okta 会话 cookie。
  5. 自定义 webapp 现在需要通过调用 Okta API 向用户显示他们自己的个人资料。

问题:我的自定义 web 应用程序如何识别刚刚登录的用户,以便他们可以使用 API 获取他们的 Okta 个人资料?

我知道由于 Facebook 向 OAuth 客户端 (Okta) 发送的声明,Okta 知道谁刚刚登录,但是我的应用程序如何知道登录用户的身份?

谢谢,

贾廷

4

1 回答 1

0

这取决于您为应用选择的OAuth2 流程,但最终状态是从 Okta 获取id_token,其中包含有关刚刚登录的用户的声明

如果您已response_type=code在社交身份验证 url ( /authorize ) 中设置,则在第 4 步之后,您将在重定向中获得一个查询参数,然后您可以使用/token端点code进行交换。id_token

或者,如果您已设置response_type=id_token,您应该已经id_token在重定向中拥有 - 您只需要验证/解码它(更多信息在这里)。

于 2017-01-26T18:41:26.903 回答