带有反应的 Kerberos 身份验证
Posted
技术标签:
【中文标题】带有反应的 Kerberos 身份验证【英文标题】:Kerberos authentication with react 【发布时间】:2018-07-06 15:57:05 【问题描述】:我有一个 react 应用,它使用 axios 向我们的 REST API 服务器发出请求。
在 REST 服务器上,我们使用 kerberos 添加了身份验证。当我们简单地使用 chrome 向该服务器发出请求时,该身份验证工作正常(chrome 使用 kerberos 的票证数据传递正确的标头),但是当 react 应用程序发出请求时,票证不会添加到请求中。
我们如何访问票证并通过 react 应用发送?
注意:react 应用程序由 apache 服务器作为静态内容提供,并与不同的 REST 服务器通信。
【问题讨论】:
【参考方案1】:您应该直接使用 fetch API,而不是 axios。
我在这个项目上使用 React 做了一个 NTLM/Kerberos SSO 示例。 项目:https://github.com/jlguenego/react-sso-example
【讨论】:
【参考方案2】:如果您已经拥有票证,您可以在请求标头“Authorization”中将其传递给值为“Negotiate”。
对于访问票证,我不清楚您的反应应用程序处于哪种状态,您以哪种形式集成了 keberos 或您希望如何获得票证。例如,如果您想从用户的浏览器中获取它,您可以使用标题“WWW-Authenticate”值“NEGOTIATE”和状态 401 进行响应,如果浏览器配置正确,它将处理它并返回票证。如果您希望自己的服务用户使用它,您可以使用 npm kerberos 并通过 kerberosClient 获取票证。
【讨论】:
以上是关于带有反应的 Kerberos 身份验证的主要内容,如果未能解决你的问题,请参考以下文章