我们目前正在考虑使用密钥斗篷来保护我们的系统。但是,我们不确定要给受信任的(非人类)合作伙伴访问我们系统资源的正确策略。
在这种情况下,受信任的合作伙伴可能是一个Web服务,将对我们系统上的公共数据具有只读访问权限。访问的资源不属于特定用户(即一些常规统计信息)。
我可以想到两种可能的方法:
- 经典的API密钥解决方案。有利的一面是,这是一种合理的安全解决方案,对我们和我们的系统几乎没有任何成本。据我所知,不利的一面是似乎没有内置的密钥斗篷解决方案。因此,我们系统的一部分将必须保护自己,这可能意味着我们必须在keycloak客户端配置中将这些路由公开。
- 使用密钥斗篷的oAuth解决方案。在这里,我们的合作伙伴将获得用户名/密码和特定角色。好处包括可以100%使用密钥斗篷保护我们的系统。但是,此用户将由自动化服务而不是人员使用,并且似乎没有为这种应用程序制作密钥斗篷。我知道可以通过对keycloak的API调用来检索令牌。但是在keycloak中仍然内置了重定向到登录页面的重定向,每种自动处理方式似乎都是一种肮脏的解决方法。
因此,我向认证专家提出的问题是:密钥斗篷中是否有一些内置功能可以处理这种情况(或经典的API密钥)?对于这种情况,像oAuth2这样的方法是否正确?