我打算为市政府设计一个建筑。 这些要求包括CMS作为门户网站和主要用于未来应用程序的通用基础架构,以共享增加的服务,如身份验证,授权,pubsub,日志。
主要要求:
在外部身份验证模块中验证CMS用户
重新使用此身份验证模块的未来应用程序
使用SSO功能登录的未来应用程序
使用XACML进行授权
添加了具有REST API的服务
提供OAuth服务
我很坦率地感到困惑。我主要在企业环境中工作。但是我越是调查,我越觉得这些要求将企业与网络内容混合在一起。市政当局不是企业。
最初,我似乎很清楚:在CMS后面有一些身份验证提供程序,以及一个授权模块。 OAuth用于REST API,用户通过CMS前端登录。
然后我开始调查SSO。 SSO解决方案实际上似乎有某种拦截器模式。首先,您登录到SSO,然后如果经过身份验证(并且已授权)成功访问资源 - CMS(不是首先想到的那种方式)。
但OAuth如何在这里发挥作用? - OAuth能否提供某种SSO功能? - 所有用户和API是否只能通过OAuth进行身份验证? - OAuth是否适合验证单个用户(登录)而不是请求访问API的应用程序? - IdentityProviders和OAuth如何一起玩?
最重要的是,我正在申请资源,我可以通过这些资源向我介绍如何实现我的要求的最新最佳实践和架构,将所有概念(授权,身份验证,SSO,OAuth)放在一起。