OKTA从另一个应用程序验证用户会话

时间:2017-03-18 07:20:04

标签: session okta

使用OktaSignIn小部件,我看到我可以获得res.session.token。我可以在另一个应用程序中使用此(或其他一些属性) - 使用API​​Key - 并验证这是一个有效的会话吗?

我们只想要一个简单易用的auth系统,并且不想设置OpenAuth ......

似乎无法找到任何我需要的API ..但当然可能错过了它......

编辑。基本上......我们的前端使用OktaSignInWidget ...然后我们希望在我们的API服务层可以验证的承载令牌中使用它。

谢谢!

2 个答案:

答案 0 :(得分:0)

看起来这样可行......

  

/ API / V1 /会话/我

从中获取身份。

  

{ “ID”: “102wtHeHhr4Q4q4rh2Fjy6pGA”, “用户id”: “00u9uwkfyfiz3Y7uk0h7”,

然后......这可以通过并使用API​​密钥...发出GET到......

  

/ API / V1 /会话/ 102wtHeHhr4Q4q4rh2Fjy6pGA

...返回

会话...

对/ api / v1 / sessions的调用需要API密钥 - 这很好。

答案 1 :(得分:0)

正如您所提到的,您可以使用会话ID通过以下方式查看会话在Okta服务器上是否仍然有效:

  1. 为okta session交换sessionToken
  2. 重定向回您的应用后,调用/ api / v1 / sessions / me获取sessionId
  3. 在带有apiToken的/ api / v1 / sessions / id请求中使用该sessionId,看看它是否仍然有效
  4. 只要用户没有退出Okta,但浏览器状态可能不同,这将存在 - 例如,当用户的浏览器关闭时,Okta会话cookie通常会被删除,而会话可能仍然存在于服务器上。

    或者,要检查浏览器会话是否仍然存在,您可以通过向/ api / v1 / sessions /我发出请求来在客户端进行验证检查 - 一个问题是确保启用了CORS您的应用运行的域名都是如此,因此他们有权向Okta提出此请求。

    上述方法有效,但听起来好像你应该关注的是Okta的API Access Management(OAuth2) - 它是为这种类型的流程设计的(将Bearer令牌传递给您的API服务)层)。