【问题标题】:How to authenticate to an API using an external identity provider?如何使用外部身份提供者对 API 进行身份验证?
【发布时间】:2019-07-20 00:34:00
【问题描述】:

我在同一台机器上有以下设置:

  • WSO2-上午
  • WSO2-IM-KM(身份管理器作为密钥管理器)

身份管理器将身份验证联合到外部 OpenID 身份提供者。

到目前为止我做了什么:

  • 在两个组件之间共享数据库
  • 让 WSO2-AM 将身份验证委托给 WSO2-IM-KM
  • 将外部提供者配置为生成的服务提供者(在 WSO2-AM 商店中创建应用程序时在 WSO2-IM-KM 中生成)

当前行为:

我的问题:

  • 我应该如何自动化我之前描述的手动步骤?我是否负责创建一个专用端点来执行此操作,以使 authorization_code 与客户端混淆,或者 WSO2 中是否有内置端点?如果合适,这个端点是什么?
  • 是否有生成oauth2/authorize URL 的端点?

经过进一步研究:

我发现以下文档https://docs.wso2.com/display/IS540/Authorization+Code+Grant 似乎表明我需要一个“客户端”,但我没有,我只需要通过外部身份提供者对我的 API 进行身份验证。

【问题讨论】:

  • 在此错误期间,您在 API 管理器服务器中是否有任何错误日志?我认为日志上应该有一些错误(比如授权相关错误等)
  • 你是说 jaggery_oidc_acs.jag 应该可以工作吗?
  • 是的。请参阅使用 jaggery_oidc_acs.jag 的docs.wso2.com/display/AM260/…

标签: wso2 wso2is wso2-am openid-connect


【解决方案1】:

问题01的解答

如果你想使用授权码授权类型来获取访问令牌,肯定应该有一个回调 URL 来获取授权码。如果您的回调 URL 是真实的,则无需执行任何手动步骤,只需从发送到回调 URL 的请求查询参数中检索授权代码即可。您可以从 Playground2 示例应用程序 [1] 中检查此行为,其中回调 URL 为 http://localhost:8080/playground2/oauth2client

回答问题02

请检查 identity.xml 中的 OAuth2AuthzEPUrl 标签

[1]https://docs.wso2.com/display/IS570/Setting+Up+the+Sample+Webapp

【讨论】:

    猜你喜欢
    • 2018-01-22
    • 2018-11-28
    • 2013-12-05
    • 2022-06-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-08
    • 2019-05-08
    相关资源
    最近更新 更多