如何通过Domino数据服务REST API对Lotus Domino 8.5.3中的用户进行身份验证

如何通过Domino数据服务REST API对Lotus Domino 8.5.3中的用户进行身份验证,api,rest,authentication,xpages,lotus-domino,Api,Rest,Authentication,Xpages,Lotus Domino,我想知道如何通过RESTAPI对LotusDomino8.5.3中的用户进行身份验证 我可以在“授权的请求头值”中看到,它说: 授权可能需要其他标头,具体取决于 Domino服务器强加的安全性 我没有找到关于“其他标题”的信息。有人知道如何认证吗?我们是否应该创建一个cookie并在每个请求头中发送它?Domino支持三种形式的身份验证: 基本身份验证(基于标头) 会话身份验证(基于cookie) 证书身份验证(基于X.509) 您可以通过尝试在浏览器中打开服务器上受保护的数据库来区分它们。

我想知道如何通过RESTAPI对LotusDomino8.5.3中的用户进行身份验证

我可以在“授权的请求头值”中看到,它说:

授权可能需要其他标头,具体取决于 Domino服务器强加的安全性


我没有找到关于“其他标题”的信息。有人知道如何认证吗?我们是否应该创建一个cookie并在每个请求头中发送它?

Domino支持三种形式的身份验证:

  • 基本身份验证(基于标头)
  • 会话身份验证(基于cookie)
  • 证书身份验证(基于X.509)
您可以通过尝试在浏览器中打开服务器上受保护的数据库来区分它们。如果您从浏览器中获得一个内置对话框,询问您的姓名和密码,它是基本的。如果您在浏览器中看到一个实际的网页,要求输入名称和密码,那么它就是会话。如果有对话框要求您从浏览器的密钥存储中选择一个证书,则该证书是证书。(当然,您也可以启动DominoAdministrator客户端,只需查看服务器的相关配置文档即可了解这一点。)

对于基本身份验证,您发送的每个请求都必须包含一个标头,如所述

对于会话身份验证,您需要发送cookie。实际上有两种不同的cookie格式,这取决于Domino服务器是为单服务器还是多服务器(SSO)会话身份验证而设置的。要获取cookie的值,您需要通过发布包含名称和密码的表单并读取成功发布后返回的cookie值来模拟实际用户登录。(您可以通过研究在尝试手动登录时在浏览器中返回给您的HTML来获取必须发布的表单的详细信息。)

对于证书身份验证,那么。。。这可能是一个太复杂的主题,无法在这里讨论。

在“Domino数据服务用户指南和参考”一节中,他们提到了http头“授权”:

授权用户名:密码(必须编码)

它说“必须被编码”,但没有提到什么类型的重唱。它是Base64编码,您可以在javascript中使用它进行编码和解码

如果您的用户是“john”,密码是“p455w0rd”,则必须对字符串“john:p455w0rd”进行编码(包括冒号,您可以使用:btoa(“john:p455w0rd”))进行编码,如果您的身份验证是基本的,则添加“Basic”作为前缀:

Authorization:Basic am9objpwNDU1dzByZA==

就是这样。

描述得很好。我们发现的一个典型模式是:Domino配置为一种形式的cookie身份验证,但API访问的URL在names.nsf中的Internet sites视图中设置为Basic-请记住:已验证的访问-任何需要https的方式都是安全的