如何在API网关中结合用户级和客户端级身份验证?

克里斯·C

我们正在寻求实现Web(外部用户)SSO和API网关,以支持Web应用程序和移动应用程序以及潜在的第三方应用程序甚至B2B方案。

我的想法是让SSO网关处理用户对网站和API的访问,使用OAuth或OpenID Connect对最终用户进行身份验证。

对于任何API URL,API网关都位于其后。这旨在使用诸如客户机ID和密码之类的东西来处理客户机/应用程序级别的身份验证。

SSO / API网关

想法是,用户将登录到网站或移动应用程序,然后/如果/当该应用程序需要调用API时,它将需要发送其自己的凭据(客户端凭据流)以及承载令牌,以证明谁用户也是如此(资源所有者密码流)。

客户端凭证与安全性无关,而与对API函数的粗粒度访问有关,它提供了API使用情况,流量整形,SLA等的可见性,但是需要用户身份来强制执行下游的数据级授权。

我看过的大多数API网关似乎仅支持单一级别的身份验证,例如,目前我们正在研究可以使用OAuth进行身份验证以处理用户或应用程序的Apigee,但目前尚不清楚该怎么做两者都一次。

是否有任何方法可以使SSO网关的用户承载令牌与API网关的客户端承载令牌或凭据很好地配合使用,最好采用一种基于标准的方式?还是我们只需要破解它,以便其中一个进入auth标头,另一个进入有效负载?还是有一种方法可以同时满足两个目的(例如,混合承载令牌)?

我对身份管理中的所有工作(OAuth2,OpenID Connect,UMA等)正在进行的工作感到惊讶,没有人正在寻找一种同时处理多个身份验证级别(用户,客户端,设备等)的方法。

克里斯·冯·西

不幸的是,我没有足够的声誉积分来评论上一篇文章,所以我在这里加两分钱。全面披露:我为Apigee工作。

http://apigee.com/docs/api-services/content/oauthv2-policy#accesstokenelement解释了如何在授权标头以外的位置将访问令牌赋予Apigee OAuthV2策略。如果您已将SSO承载令牌存储为Apigee OAuth令牌的属性,则在验证Apigee令牌后,您将自动获取SSO承载令牌作为流变量,并可以根据需要使用它。

例如,如果您在请求中将令牌作为“令牌”查询参数发送,则可以在OAuthV2策略中编写以下代码

request.queryparam.token

然后该策略将从该查询参数中将其提取。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Web api 2客户端和用户两部分身份验证

来自分类Dev

Rest API:客户端授权和最终用户身份验证

来自分类Dev

如何使用客户端证书在Web API中进行身份验证和授权

来自分类Dev

通过用户身份验证保护特定客户端的API

来自分类Dev

如何使用快递作为代理和XHR作为客户端通过客户端身份验证联系Twitter API

来自分类Dev

Jmeter-如何在Jmeter中测试受客户端证书身份验证保护的api?

来自分类Dev

macOS客户端的身份验证和策略管理

来自分类Dev

Java:如何添加SSL客户端身份验证

来自分类Dev

使用Fabric和Twitter API客户端获取“已通过Twitter进行身份验证”

来自分类Dev

如何在Java 11客户端-MongoDB 4.4(SSL)之间进行身份验证?

来自分类Dev

如何在iPhone编程中使用身份验证质询发送HTTP客户端请求

来自分类Dev

如何在 ruby 客户端脚本中安全地存储身份验证凭据?

来自分类Dev

Sharepoint客户端身份验证

来自分类Dev

Caldav(和carddav)兼容的客户端,支持TLS客户端证书身份验证

来自分类Dev

在客户端进行身份验证,如何现在保护我的Java Rest API?

来自分类Dev

如何将Windows身份验证凭据从客户端传递到Web API服务

来自分类Dev

在客户端进行身份验证,如何现在保护我的Java Rest API?

来自分类Dev

Owin身份验证-如何获取请求身份验证令牌的客户端的IP地址

来自分类Dev

如何获得使用带有客户端身份验证的客户端mvc应用程序的SignalR连接的用户的身份?

来自分类Dev

是否可以使用WIF客户端从客户端传递用户名和密码来登录ADFS联合身份验证?

来自分类Dev

如何在 python 中的 Twisted 客户端服务器应用程序中添加身份验证(用户名/密码)?

来自分类Dev

Firebase 安全规则,如何对客户端应用程序而非用户进行身份验证?

来自分类Dev

我的ASP.NET Core App Service Web API如何同时支持AAD承载令牌和客户端证书身份验证?

来自分类Dev

客户端模式下的OpenSSL:验证身份验证

来自分类Dev

如何在apache-commons net中使用生成的证书配置客户端身份验证

来自分类Dev

如何在httpClient 4.3.x中强制http客户端不自动处理身份验证挑战?

来自分类Dev

进行身份验证时如何在码头服务器中获取客户端证书

来自分类Dev

如何在apache-commons net中使用生成的证书配置客户端身份验证

来自分类Dev

如何在春季集成中设置TLS服务器以对客户端进行身份验证?

Related 相关文章

  1. 1

    Web api 2客户端和用户两部分身份验证

  2. 2

    Rest API:客户端授权和最终用户身份验证

  3. 3

    如何使用客户端证书在Web API中进行身份验证和授权

  4. 4

    通过用户身份验证保护特定客户端的API

  5. 5

    如何使用快递作为代理和XHR作为客户端通过客户端身份验证联系Twitter API

  6. 6

    Jmeter-如何在Jmeter中测试受客户端证书身份验证保护的api?

  7. 7

    macOS客户端的身份验证和策略管理

  8. 8

    Java:如何添加SSL客户端身份验证

  9. 9

    使用Fabric和Twitter API客户端获取“已通过Twitter进行身份验证”

  10. 10

    如何在Java 11客户端-MongoDB 4.4(SSL)之间进行身份验证?

  11. 11

    如何在iPhone编程中使用身份验证质询发送HTTP客户端请求

  12. 12

    如何在 ruby 客户端脚本中安全地存储身份验证凭据?

  13. 13

    Sharepoint客户端身份验证

  14. 14

    Caldav(和carddav)兼容的客户端,支持TLS客户端证书身份验证

  15. 15

    在客户端进行身份验证,如何现在保护我的Java Rest API?

  16. 16

    如何将Windows身份验证凭据从客户端传递到Web API服务

  17. 17

    在客户端进行身份验证,如何现在保护我的Java Rest API?

  18. 18

    Owin身份验证-如何获取请求身份验证令牌的客户端的IP地址

  19. 19

    如何获得使用带有客户端身份验证的客户端mvc应用程序的SignalR连接的用户的身份?

  20. 20

    是否可以使用WIF客户端从客户端传递用户名和密码来登录ADFS联合身份验证?

  21. 21

    如何在 python 中的 Twisted 客户端服务器应用程序中添加身份验证(用户名/密码)?

  22. 22

    Firebase 安全规则,如何对客户端应用程序而非用户进行身份验证?

  23. 23

    我的ASP.NET Core App Service Web API如何同时支持AAD承载令牌和客户端证书身份验证?

  24. 24

    客户端模式下的OpenSSL:验证身份验证

  25. 25

    如何在apache-commons net中使用生成的证书配置客户端身份验证

  26. 26

    如何在httpClient 4.3.x中强制http客户端不自动处理身份验证挑战?

  27. 27

    进行身份验证时如何在码头服务器中获取客户端证书

  28. 28

    如何在apache-commons net中使用生成的证书配置客户端身份验证

  29. 29

    如何在春季集成中设置TLS服务器以对客户端进行身份验证?

热门标签

归档