繁体   English   中英

使用 WSO2IS 中的用户名和密码授权服务提供者令牌?

[英]Authorize the Service Provider token with using the username and password in WSO2IS?

大家好,创建成功后授权服务商的时候卡住了。 让我向您解释一下,我使用此 API 集创建了服务提供者( https://is.docs.wso2.com/en/latest/apis/application-rest-api/#/Applications/createApplication

我向它添加了用户。 成功创建服务提供者后,我将获得 clientId 和密钥。 之后,我使用该 clientId 和密钥来获取访问和刷新令牌(到目前为止很酷),为了获取访问令牌和刷新令牌,我使用这个 curl 请求。

curl -u <client_id>:<secret_id> -k -d "grant_type=password&username=admin@easybazaar.co&password=admin" -H "Content-Type:application/x-www-form-urlencoded" https://<ip>/oauth2/token

一旦我有了访问令牌,我就将其提供给用户(前端团队)以将其存储在他/她的存储 session 中。 现在用户想要访问一些资源,例如活动列表,他/她还在该请求的 header 中发送该访问令牌作为不记名令牌,例如;

curl -k http://localhost:8080/activities -H "Authorization: Bearer <access-token>

现在我想验证该访问令牌并检查其验证和到期。 我探索了需要用户名和密码的内省 API,但客户端并未在每个请求中提供它。

curl -k -u <USERNAME>@<TENAND_DOMAIN>:<PASSWORD> -H 'Content-Type: application/x-www-form-urlencoded' -X POST --data 'token=<ACCESS_TOKEN>' https://<IS_HOST>:<IS_PORT>/t/<TENANT_DOMAIN>/oauth2/introspect

那么,我怎样才能实现它,是否有任何 API 集可用于此任务? 任何帮助将不胜感激。

我没有从用户那里获取任何用户名和密码来应用自省 API,我是否应该在创建服务提供程序时在令牌中使用 email,所以通过使用这个 email,我将在我的数据库中查看用户并获取凭据然后点击自省 API。

似乎这在旧版本的 IS 中不存在,并且是从 IS 6.0.0 开始引入的。 发现这个迁移问题

如果您无法迁移到 IS 6.0.0,我建议您创建一个仅具有自省令牌权限的用户(该用户将仅用于令牌自省)并使用该用户名和密码来验证内省请求。

编辑:对于 IS 6.0.0,您可以使用以下基本配置。

[[resource.access_control]]
context="(.*)/oauth2/introspect(.*)"
secure = "true"
http_method = "all"
cross_tenant = true
allowed_auth_handlers="BasicClientAuthentication"

或者您可以使用如下高级配置。

[[resource.access_control]]
context="(.*)/oauth2/introspect(.*)"
secure = "true"
http_method = "all"
cross_tenant = true
cross_access_allowed_tenants="carbon.super"
allowed_auth_handlers="BasicClientAuthentication"
permissions=["/permission/admin/manage/identity/applicationmgt/view"]
scopes=["internal_application_mgt_view"]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM