【问题标题】:Getting refresh_token server-side (sessionToken) with Okta使用 Okta 获取刷新令牌服务器端(会话令牌)
【发布时间】:2021-01-08 16:14:07
【问题描述】:

我们希望为我们的微服务架构使用我们自己的带有访问和刷新令牌的 httponly 严格 cookie。

我们主要使用 OKTA 身份验证 API 来使用我们自己的自定义登录页面记录用户。 我们能够使用带有 sessionToken 的 responsetype=token 在授权端点上获取 access_token,并将结果重定向为后端端点上的 form_post。

尽管在我的 okta 应用程序设置中检查了该范围内的 offline_access,但我无法检索 refresh_token。

我不想使用资源密码流,因为我们更喜欢使用 sessionToken,如果将来需要,它将与多因素一起使用。

我也尝试使用代码流并将结果重定向到我们的后端,但由于代码流是客户端的,因此会返回此错误“当令牌端点身份验证方法为‘无’时,需要 PKCE 代码验证器。”即使我们选择 .NET 应用程序也会出现此错误

我们如何使用 Okta 在服务器端检索 refresh_token?

【问题讨论】:

    标签: asp.net-core .net-core okta okta-api


    【解决方案1】:

    在这里回复你的帖子https://devforum.okta.com/t/getting-refresh-token-server-side-sessiontoken/12419/3

    除了使用您的访问令牌直接拨打 /token 之外,您还可以查看我们称为 Refresh Token Rotation 的抢先体验功能。让我们知道这是否有帮助!

    【讨论】:

    • 我无法使用 access_token 来获取 refresh_token,这没有任何意义。并且代码流似乎无法与 sessionToken 一起在授权端点上检索 refresh 和 access_token 。 /token 端点需要一个代码来检索刷新和访问令牌
    【解决方案2】:

    我能够使用 CODE 流程并从服务器端重定向到授权端点,如下所示:

    https://{YOUROKTADOMAIN}/oauth2/default/v1/authorize?client_id={YOURCLIENTID}&response_type=code&scope=openid%20offline_access&response_mode=query&redirect_uri={YOURSERVERSIDEGETURI}&state={Guid.NewGuid()}&sessionToken={SessionToken来自身份验证 API}

    此调用将回传到我的同一台服务器,因此我可以自己处理令牌并创建自己的 cookie。

    【讨论】:

      猜你喜欢
      • 2022-01-23
      • 2012-04-18
      • 1970-01-01
      • 2020-09-25
      • 2015-07-19
      • 2016-09-16
      • 2019-10-26
      • 1970-01-01
      • 2021-08-25
      相关资源
      最近更新 更多