AWS的Cognito服务提供了一个登录/注册GUI,允许用户注册站点(带有各种验证:电子邮件,电话),登录,管理忘记的密码等。当用户登录时,Cognito指导用户到您提供的回调URL。附加到回调URL的是JWT令牌(或代码)。
带有用户池的Cognito部分按预期方式工作...
该网站已部署到Tomcat。 Tomcat保护资源的内置方法受到安全性的限制。例如,通过将以下内容添加到web.xml文件中:
<security-constraint>
<web-resource-collection>
<web-resource-name>User Stuff</web-resource-name>
<url-pattern>/protected/*</url-pattern>
</web-resource-collection>
<auth-constraint>
<role-name>user</role-name>
</auth-constraint>
</security-constraint>
<login-config>
<auth-method>FORM</auth-method>
<realm-name>Authentication</realm-name>
<form-login-config>
<form-login-page>login.html</form-login-page>
<form-error-page>error.html</form-error-page>
</form-login-config>
</login-config>
为用户名和密码(或哈希)存储配置了Realm。
Tomcat部分按预期工作...
问题是我的目标是将Tomcat安全约束与Cognito的外部注册/登录GUI集成。
人们这样做吗?有什么胶水可以弥合Cognito外部GUI和Tomcat领域之间的鸿沟?
明显的问题...
登录配置不允许当前域外的URL(即https:// ...被拒绝)
触发Tomcat的身份验证需要将POST形式发送到j_security_check。与Cognito的回调URL方案不直接兼容。
或者这将占用整个OAuth / Framework堆栈(如Spring Security)来工作...