问题标签 [http-authentication]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
php - 如何使用纯 HTTP 身份验证和 PHP 在 Apache 下获取经过身份验证的用户名?
首先,让我们把安全考虑排除在外。我在 Apache 下使用简单的身份验证,用于一次性、仅供内部使用、非 Internet 连接的 LAN、PHP Web 应用程序。
如何在 PHP 中获取经过 HTTP 身份验证的用户名?
javascript - 使用 HTTP 身份验证自动登录的 GreaseMonkey 脚本
我有很多我在工作中编写的 GreaseMonkey 脚本,它们会自动将我登录到我们这里的内部站点。除了我们的时间表应用程序使用 HTTP 身份验证之外,我已经设法为这些站点中的几乎每个站点编写了一个脚本。
有没有办法可以使用 GreaseMonkey 自动登录这个网站?
编辑:我知道浏览器中的存储密码功能,但我的脚本更进一步,通过检查我是否在加载时(通过遍历 HTML)登录到站点,然后将帖子提交到登录页面。这消除了必须加载网站、进入登录页面、输入我的凭据,然后点击提交的步骤
javascript - 如何禁止浏览器的身份验证对话框?
我的 Web 应用程序有一个登录页面,该页面通过 AJAX 调用提交身份验证凭据。如果用户输入了正确的用户名和密码,一切都很好,但如果不是,则会发生以下情况:
- Web 服务器确定尽管请求包含格式正确的 Authorization 标头,但标头中的凭据未成功进行身份验证。
- Web 服务器返回一个 401 状态代码,并包含一个或多个 WWW-Authenticate 标头,其中列出了支持的身份验证类型。
- 浏览器检测到我对 XMLHttpRequest 对象的调用的响应是 401,并且响应包括 WWW-Authenticate 标头。然后它会弹出一个身份验证对话框,再次询问用户名和密码。
这一切都很好,直到第 3 步。我不想弹出对话框,我想在我的 AJAX 回调函数中处理 401 响应。(例如,通过在登录页面上显示错误消息。)当然,我希望用户重新输入他们的用户名和密码,但我希望他们看到我友好、令人放心的登录表单,而不是浏览器的丑陋默认身份验证对话框。
顺便说一句,我无法控制服务器,因此不能让它返回自定义状态代码(即 401 以外的代码)。
有什么办法可以抑制身份验证对话框?特别是,我可以在 Firefox 2 或更高版本中取消“需要身份验证”对话框吗?有什么方法可以抑制 IE 6 及更高版本中的 Connect to [host]对话框?
编辑
来自作者的附加信息(9 月 18 日):
我应该补充一点,弹出的浏览器身份验证对话框的真正问题是它向用户提供的信息不足。
用户刚刚通过登录页面上的表单输入了用户名和密码,他认为他已经正确输入了它们,并且他点击了提交按钮或回车。他的期望是他将被带到下一页,或者可能被告知他输入的信息有误,应该再试一次。然而,他却看到了一个意想不到的对话框。
该对话框不承认他刚刚输入了用户名和密码这一事实。它没有明确说明存在问题并且他应该再试一次。取而代之的是,对话框会向用户显示诸如“网站说:' [realm] '”之类的神秘信息。其中[realm]是只有程序员才会喜欢的简短领域名称。
Web 浏览器设计者注意:如果对话框本身更加用户友好,没有人会问如何抑制身份验证对话框。我做登录表单的全部原因是我们的产品管理团队正确地认为浏览器的身份验证对话框很糟糕。
security - Kerberos 和 T125 协议
为什么 Kerberos 身份验证使用 T125 协议?我相信 Kerberos 身份验证的行为方式如下:
- 客户向 Kerberos 授权请求一张票
- Kerberos 授权向客户端提供票证
- 客户端尝试向服务器进行身份验证并将此票证发送到服务器。
- 服务器通过 Kerberos 授权验证票证是否正常,并对客户端进行身份验证。
现在,在这个过程中,在哪里使用了 T125,为什么?
客户端是否在尝试访问(例如:对于每个 HTTP GET 页面)时向服务器发送票证,并且服务器随时检查此票证,还是在“对话”开始时只检查一次?
谢谢!
django - 我可以在 Django 中使用 HTTP 基本身份验证吗?
我们有一个在 Apache 上运行的网站,访问该网站有许多通过 HTTP 基本身份验证保护的静态页面。
我使用 Django 对用户管理的内置支持,使用 Django 编写了网站的新部分。
我遇到的问题是用户必须通过 HTTP Basic 身份验证登录一次,然后再次使用 Django 登录表单。这对用户来说既笨拙又非常混乱。
我想知道是否有人找到了一种方法让 Django 使用 HTTP 基本身份验证信息登录用户。
我不希望将密码传递给 Django,但如果用户dave
已通过 Apache 的身份验证,那么他们也应该自动登录到 Django dave
。
(一种选择是让 Apache 和 Django 共享一个用户存储以确保共同的用户名和密码,但这仍然会涉及两个登录提示,这是我试图避免的。)
http - 通过 IIS 在 ASP Classic 中进行 HTTP 身份验证(基本或摘要)
我想在 ASP 经典中开发一个网站,对脚本控制下的数据库或密码列表使用 HTTP 身份验证。理想情况下,该解决方案不应涉及任何组件或 IIS 设置,因为脚本应可在托管环境中运行。
任何线索/代码都非常感谢。
.net - WCF WebHttp 混合身份验证(基本和匿名)
所有这些都与 WebHttp 绑定有关,托管在自定义服务主机中(此时 IIS 不是一个选项)。
我已经实现了自定义 UserNamePasswordValidator 和自定义 IAuthorizationPolicy。当我将端点的绑定配置为使用基本身份验证时,一切都按我的意愿工作(自定义主体、自定义角色等)。
我还想添加匿名 HTTP 访问的能力,并让我的自定义实现将匿名用户置于一些默认角色等。(如果没有发送 Authenticate 标头)。
现在发生的情况是,在我的任何自定义代码被命中之前,匿名用户都会收到 401。如果我关闭 HTTP Basic 身份验证要求,则完全忽略 Authenticate 标头。
如何配置或注入 Authenticate 标头,以两种方式执行此操作(不创建 2 个单独的端点)?
browser - 为什么浏览器中的 http auth UI 如此糟糕?
为什么没有注销按钮?为什么没有“您登录的网站”列表?是因为 HTTP 规范有问题吗?
如果 Web 开发人员实际上可以依赖 HTTP 身份验证,他们的生活会轻松得多……
apache - Apache/.htaccess - 对域进行密码保护,但将其中的某些 URI 列入白名单
所以这就是我想做的事情:
访问http://example.com/ * 需要用户输入用户名/密码,除非他们访问特定的 URI(例如http://example.com/contact/、http://example.com /blog/等)他们不应该进行身份验证。http://example.com(根)也应该打开。
我知道我必须设置一些特殊的 .htaccess 指令,但我不知道该怎么做。有谁知道我怎么能做到这一点?
任何帮助将非常感激。谢谢!
authentication - IIS7 和身份验证问题
我有一个标准的 ASP.NET 网站,部署到我们的开发机器(我们服务器机房的内部机器)。
现在,内部和外部用户都可以访问这个开发站点。现在,在 IIS6 中,我们曾经拥有它,因此关闭了匿名身份验证并打开了其他东西.. 为用户提供了一个用于用户名和密码的弹出模型框。我认为他们必须输入一些在 web.config 文件中定义的用户名或密码?(不是他们的网站帐户用户名/密码)/
现在,使用 IIS7,当我关闭Anon Auth并打开Basic或Windows Auth时,我可以访问该站点但它试图使用这些凭据登录我..而不是用户注册的帐户(使用一些库存标准 asp.net 网络表单页面)。
那么......是否可以“锁定”整个网站并让测试人员获得对该网站的一般访问权限......这与他们的网站用户名和密码不同。这些用户名和密码是在网站中使用的。
那有意义吗?
干杯!
没有授权部分。
另外,当我将“摘要身份验证”添加到 iis7 并启用它(并禁用其他所有内容)时,我得到弹出窗口(kewl!)但我不确定我需要传递什么凭据。我在哪里可以定义那些手动凭据(因此它们与网站的用户分开)??