WSO2 身份服务器用户身份验证的 HTTP 请求

HTTP requests for WSO2 Identity Server user authentication

我正在编写一个 REST API 供我们的内部应用程序使用。我需要通过 http 请求 code grant 登录和注销身份服务器的用户

presentation

我需要知道如何调用以下端点:

案例:

我们公司有很多应用。我想要一点身份验证,这将在他们的 company-x 帐户中发生,就像您只需要登录到 atlassian 帐户即可访问 jira 和 confluence cloud 一样。我正在为我们的前端开发人员工作的 REST API(截至目前)。

presentation

我不能简单地让用户登录到 WSO2 IS,因为他们只需要一个模块来管理他们的 company-x 个人资料和其他基本内容。通过这个我想我有2个选择:

  1. 自定义 WSO2 身份服务器 UI 和权限。但问题是,我仍然需要一个端点来获取 id_token。我也不确定这是否是正确的方法。
  2. 了解如何调用 /authorize、/accesstoken、/login 和 /logout 端点并编写我自己的 最低要求 UI 并提供一个端点 响应id_token

如果您使用代码授权类型,浏览器会从 /authorize 重定向到 /login。我不认为你可以通过 REST 调用来处理它。 (您可以通过在每个 302 响应的 location header 中调用 url 来处理这个问题。但我认为这不是一个很好的方法。)如果你想开发一个REST API,我觉得password grant类型会更合适。

在前端有一个基本的登录页面并使用 request path authenticator 获得授权 code/id_token 怎么样?

基本上这意味着无需将用户重定向到 IS 登录页面,您可以从您创建的基本登录页面中提取用户名和密码,并将授权授予请求与凭据一起发送。

因此您的授权码请求将是:

https://localhost:9443/oauth2/authorize?response_type=code&client_id=JqB4NGZLMC6L3n4jz094FMls2Joa&redirect_uri=https://localhost/callback&scope=openid&sectoken=<sec_token>

sec_token = base64encode(用户名:密码)

您需要在服务提供商配置中添加 basic-auth request path authenticator。此请求应该 return 您的授权 code。如果您想要 id_token,只需使用带有请求路径身份验证的 隐式流程