首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将数据从mod-auth外部身份验证器传播到服务页

如何将数据从mod-auth外部身份验证器传播到服务页
EN

Stack Overflow用户
提问于 2015-08-12 11:11:55
回答 1查看 617关注 0票数 1

背景

在我们的Apache配置中,我们使用mod-auth-external (先前介绍的谷歌代码)来调用谷歌代码身份验证。

现在有一个关于正确处理基于阴影的密码过期的请求:

  1. 如果密码在警告期之前,Apache应该使用HTTP状态代码200进行响应。这里没什么新鲜事。
  2. 如果密码处于警告期(其有效期接近结束),Apache应该使用HTTP状态代码200进行响应,但以某种方式包含有关警告期的信息。
  3. 如果密码处于过期期(密码不再有效,但用户仍然可以自行更改密码),则Apache应该使用HTTP状态代码401响应,并以某种方式包含有关过期期的信息。
  4. 如果密码过期(密码不再有效,帐户被锁定,管理员必须解锁它),Apache应该使用HTTP状态代码401响应,并以某种方式包含有关锁定状态的信息。

(还存在页面丢失或其他错误的角落情况。现在还不清楚该怎么办。但是,解决上述问题似乎也能解决这些问题。)

我们的PAM身份验证器(通过mod-auth-external使用)能够通过调整返回值来区分这些情况。我们已经有了。

但是,问题是如何从身份验证器获取为该页提供服务的相关操作的信息(实际页面包含200状态代码或401错误文档)。

当前调查

应当指出,要求2与要求3和要求4之间存在着显著的差异。

仅需求3和4本身就容易一些,因为它们都涉及我们的mod-auth-external身份验证器返回错误(访问被拒绝)。因此,我们只需要知道如何在401错误页中获得错误代码。我甚至在提出的问题上的mod-auth-external页面上。

要求2要困难得多。在这种情况下,我们的身份验证器必须返回0(授予访问权),并且仍然以某种方式将有关警告的信息传播到最终服务的任何内容。

日志解析

显而易见(而且丑陋)的想法是解析日志。mod-auth-external谷歌代码Wiki的描述提到,身份验证器返回值被写入Apache。此外,标准错误流的身份验证器打印结果也会被记录。

这可用于将信息从身份验证器传递给其他实体。

这里的困难在于,不清楚如何安全地进行这项工作。如何打印,以确保“其他实体”将正确匹配当前的请求与日志条目。仅仅使用URL似乎是不够的,因为可以同时对同一个URL进行多个请求。但我看不出更有用的东西是什么身份验证器。

这里的另一个问题是,为了能够解析日志,您必须为“另一个实体”运行一些非平凡的代码。这使得事情变得更加复杂,因为我们应该怎么做呢?

另一个想法

如果我们可以让身份验证器以某种方式修改“请求会话”(或者其他什么,可能只是环境?-我不知道,我对Apache来说还是新手)来添加任意数据,那么我们(几乎)就在家里了。

我们的身份验证者会以某种方式存储“密码状态”,也可能会在警告/过期期结束前的几天内存储(如果适用)。然后,在服务401错误页时,我们将检索该错误页并使用它动态生成页面的内容。

或者更好的是,我们将它存储在会话中,以便另一端可以直接读取这些数据。(对于不只是显示页面的浏览器的情况下。)

但到目前为止我还不知道该怎么做。

你知道如何满足这些要求吗?

EN

回答 1

Stack Overflow用户

发布于 2015-10-05 20:03:44

一个多月以来,我在这里没有得到任何答复。也不在我为mod-auth-external打开的mod-auth-external上。

因此,我结束了对mod-auth-external的自定义修改。我不喜欢修改第三方软件,但这个似乎死了。另外,我们使用的是相当旧的版本(2.2.9,我将其升级到2.2.11,最后一个版本是2.2.x行)。反正已经有了一些定制。

我在给我的GitHub问题的评论中解释了解决方案的细节,所以我不会在这里重复它们。

然而,我将评论影子细节,因为他们没有提到那里。

我有两个选择:要么使用getspnam函数检索影子数据,要么解析PAM生成的消息。第一次尝试基于getspnam函数,但最后我使用了PAM消息。这些我都没有充分的理由。但是,我决定在HTTP响应中传播,不仅是影子状态,还包括生成的任何PAM消息,因此,遵循这种方式似乎更容易。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31963542

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档