在几个博客、问答网站和评论中似乎有许多问题会询问问题的变体:
如何正确使用 CORS 和 OpenID Connect?
这些问题的上下文通常适用于以下角色之一:
- Facebook、Azure AD 等发行者(这是规范中的“OP”或“OpenID Provider”)
- 依赖方,例如 StackExchange 或 FB Connect Auth(规范中的网站“客户端”)
在查看问题时,有时提问者或回答者会参考一些特定的配置文件,而不是明确地将用例映射到相关的OpenID Connect Flow
- 带有重定向或 Javascript 的 Web 浏览器身份验证
- 单页应用程序 (SPA)
- 一个活跃的客户端(Flash、浏览器插件、本机手机应用程序)
- 设备流程(激活 AppleTV)
我正在寻找一个或多个正确答案来描述 CORS 如何以及何时适合给定角色或使用配置文件。由于CORS wrt OpenID Connect正确使用的数量是有限的,我认为可能有几个正确的答案。
问题(改写)
应该在 OP 或客户端服务器上使用哪些 CORS 策略?
应该使用哪些 CORS 策略:
- 隐式
- 授权码
- 杂交种
- 客户端凭据
- 资源所有者密码
- 刷新令牌
- 延期补助金
什么时候 CORS 不适用,或者特别是对安全的威胁?