【发布时间】:2018-06-12 19:43:43
【问题描述】:
在使用 OpenID Connect 对 Azure AD B2C 进行身份验证期间,cookie 的作用是什么?有必要使用cookie吗? OpenID Connect 管道中是否隐式使用了 cookie?是否有符合 OpenID Connect 中 cookie 角色的文档?
【问题讨论】:
标签: openid-connect azure-ad-b2c cookie-authentication
在使用 OpenID Connect 对 Azure AD B2C 进行身份验证期间,cookie 的作用是什么?有必要使用cookie吗? OpenID Connect 管道中是否隐式使用了 cookie?是否有符合 OpenID Connect 中 cookie 角色的文档?
【问题讨论】:
标签: openid-connect azure-ad-b2c cookie-authentication
cookies在那里的作用是什么?
Cookie 的作用是让浏览器拥有无状态会话。
将 ID 令牌放入浏览器 cookie 可用于实现轻量级无状态会话。这消除了在服务器端(内存或磁盘)存储会话的需要,这对于必须良好扩展的应用程序来说可能是一个相当大的负担。通过验证 ID 令牌来检查会话 cookie。如果令牌已过期,应用程序可以通过静默的prompt=none 请求简单地向 OP 请求新令牌。
有必要使用cookie吗?
推荐,非必需。用于维护请求和回调之间状态的不透明值。通常,跨站点请求伪造(CSRF、XSRF)缓解是通过将此参数的值与浏览器 cookie 加密绑定来完成的。
在 openId 连接管道中是否隐式使用了 cookie?是 有任何符合 cookie 角色的文档 openid 连接?
关于OpenID Connect中cookies的更多详情,可以参考this document。(在本站搜索cookie)
希望这会有所帮助!
【讨论】:
我在我的博客上写了关于在 ASP.NET Core 2.0 中启用 OIDC:https://joonasw.net/view/aspnet-core-2-azure-ad-authentication。
从那里引述 OIDC 和 cookie 的责任:
Cookies 负责两件事:
- 让用户登录(创建身份验证 cookie 并将其返回给浏览器)
- 验证请求中的 cookie 并从中创建用户主体
此处的 Cookie 不完全是 OpenID Connect 的一部分,应用程序使用它们来维护用户的会话他们使用 OIDC 登录后。
尽管它们可用于保存随请求发送给身份提供者的随机数。这样,当用户被重定向回应用程序时,应用程序可以检查它们是否匹配。
Cookie 是 Web 应用程序在后续请求中了解用户身份的最常用方式。
【讨论】:
B2C Cookie 使用户不必连续登录。如果他们刚刚登录并再次访问登录页面,则无需再次登录。*
*有一个prompt parameter,可用于始终强制用户登录。
【讨论】: