首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从RP终止OneLogin会话?

如何从RP终止OneLogin会话?
EN

Stack Overflow用户
提问于 2021-05-04 06:32:10
回答 1查看 19关注 0票数 0

我有一个React SPA,我最初在其中使用Cognito对用户进行身份验证,以访问受保护的Lambda微服务。现在,我必须集成SSO与基于SAML的,后台,垂直的应用程序。

我将连接器添加到垂直应用程序的OneLogin,将OneLogin添加为Cognito的Idp,并为我的SPA添加了一个OIDC连接器,并将SPA更改为使用OneLogin而不是Cognito进行身份验证。SSO运行正常,但我的用户无法注销。当他们退出SPA或垂直应用程序并返回时,它会再次登录。如果他们导航到垂直应用程序,他们也会在那里登录。Postman告诉我,我仍然可以访问AWS网关端点。

根据OneLogin上的开发人员知识库,https://developers.onelogin.com/api-docs/1/users/log-user-out,没有可用的注销端点或函数,但我可以使用V1应用编程接口。这些文档太过时了,我不知道我能不能相信它们。

截至11月,这个帖子的https://github.com/onelogin/onelogin-oidc-node/issues/8说注销功能将在2021年第一季度可用,但我找不到任何关于新功能的文档。

我尝试按照建议使用v1接口注销,但收到CORS错误:

代码语言:javascript
复制
Access to fetch at 'https://api.us.onelogin.com/api/1/users/***/logout' from origin 'http://localhost:3000' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. If an opaque response serves your needs, set the request's mode to 'no-cors' to fetch the resource with CORS disabled.
VM95:1 PUT https://api.us.onelogin.com/api/1/users/***/logout net::ERR_FAILED

失败代码:

代码语言:javascript
复制
  const putOptions = {
    method: 'PUT',
    headers: { 
      'Authorization' : 'bearer:' + token,
      'mode' : 'no-cors'
    }
  };
  const response = await fetch(`https://api.us.onelogin.com/api/1/users/${userid}/logout`, putOptions);

如果我理解正确的话,我认为我必须先使用client_secret和client_id建立一个API“会话”,然后才能调用这些API。这是一个只使用微服务的无服务器应用程序。我不能在JS中嵌入秘密和id。

如何在没有服务器且不公开client_id和client_secret的情况下,通过RP终止所有三个连接器上的OneLogin会话?

EN

回答 1

Stack Overflow用户

发布于 2021-05-04 14:35:02

我知道我想得太多了。我在https://developers.onelogin.com/openid-connect/api/logout.找到了v2注销端点

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67376593

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档