如何使用外部身份提供商对API进行身份验证?

时间:2019-02-26 12:50:33

标签: wso2 wso2is wso2-am openid-connect

我在同一台计算机上具有以下设置:

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

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

到目前为止我做了什么:

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

当前行为:

我的问题:

  • 我应该如何使之前描述的手动步骤自动化?我是否负责创建专用端点来做到这一点,以使id_token不受客户端的影响,或者WSO2中是否有内置端点?如果合适,此端点是什么?
  • 是否有一个端点生成authorization_code URL?

进一步研究后:

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

>

1 个答案:

答案 0 :(得分:0)

正在回答问题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