使用 kerberos 和 AD 的 Oracle 数据库身份验证

Posted

技术标签:

【中文标题】使用 kerberos 和 AD 的 Oracle 数据库身份验证【英文标题】:Oracle database authentication using kerberos and AD 【发布时间】:2019-07-10 13:18:56 【问题描述】:

我们正处于配置即将升级的数据库 (19c) 以直接针对 AD 进行身份验证的规划阶段(无 Oracle 代理)。我已经阅读了 Oracle 提供的一些关于如何执行此操作的文档。大多数文档都侧重于使用密码(密码过滤器/验证器)。唯一的问题是我们的 AD 管理员坚决反对在我们现有的 AD 基础设施中实施 Oracle 的密码过滤器。话虽如此,其中一位安全人员说我们可以使用 Kerberos 来实现 oracle 身份验证。根据我的阅读,使用 Kerberos 的文档散落在各处,没有那么详细: 1) 客户端不再使用用户名/密码 - 他们使用钱包式连接(例如 /@dbname)进行连接 2) 不仅 Oracle DB 需要一些配置更改,每个计划使用 Kerberos 的客户端也需要更改

我对 Kerberos、它的工作原理以及实现它时会发生什么一无所知,但我希望,最后是: 1) 没有客户端更改/安装(只有 oracle DB 会有配置更改) 用户将继续像以前一样提供凭据 - 完全透明 2)不需要密码过滤器,因为我们的管理员对它有“牛肉”

所以我的问题是: 如果在 >=18c 上直接针对 AD 使用 Kerberos:

1) 客户端用户是否仍然提供用户名和密码来针对 AD 进行身份验证,或者客户端是否由于客户端上发生的票证/令牌/配置而简单地被“接受”(即客户端只是受信任的) ?

2) 是否需要进行客户端配置更改,或者客户端是否与数据库联系,而数据库及其配置更改会根据传递的客户端信息对 AD 进行身份验证

3) 是否需要偶尔发生任何额外的手动组件(定期检索票证/令牌/某物)(例如,它过期了)

所以最后,我们希望对每个客户端都完全透明,并使用除 AD 密码验证器之外的其他东西。

提前致谢。

-吉姆

【问题讨论】:

仅供参考,对于所有尝试使用 Active Directory 和 Kerberos 启用 Oracle 集中管理用户的人,我终于完成了任务(只花了我大约 6 个月的时间)。我有关于如何实现这一点的详细说明。如果您有类似的任务并需要帮助,请告诉我,我可以为您提供我的文档。 吉姆 - 我对你学到的东西很感兴趣 - 最好的联系方式是什么? 您好。我学到了很多关于这整个过程的知识。我已经建立了一个详尽的文档,它解释了(希望)一切 - 它是如何工作的,如何安装/配置/实现,陷阱等。如果您想要一份副本,请告诉我您的电子邮件地址,我会寄给你的。我将不得不编辑某些组件。如果您有兴趣在您的环境中进行设置,这将为您节省数周的麻烦。告诉我。 吉姆 - 我在 martin.herbener@education.ky.gov - 谢谢 【参考方案1】:

听起来您想使用 Active Directory 通过网络针对 Oracle 数据库对 Windows 客户端进行身份验证,而无需进行任何客户端更改。

这是一个非常开放且复杂的 *** 问题。

您可能一直在阅读有关 Third Party Network Authentication using Oracle Advanced Security 的文档。您可以使用 Kerberos、SSL、RADIUS、PKI 等。对于大多数这些选项,您需要在客户端上进行一些设置,因为 Oracle 客户端和服务器都需要通过第三方系统进行身份验证或验证。

我认为您需要Enterprise User Security(使用 Oracle Internet Directory)。假设您使用基于密码的身份验证,则不需要更改客户端。在这种情况下,Oracle Internet Directory 可以将其用户目录与 AD 同步,因此您的用户可以使用相同的用户名/密码。但是,当他们更改他们的 AD 密码时,他们需要单独更改他们的 Oracle 密码。

另一方面,您可以减轻 AD 管理员对 Oracle 密码复杂性要求的担忧,因为 you can change or remove those 可以满足您的 AD 要求。

【讨论】:

以上是关于使用 kerberos 和 AD 的 Oracle 数据库身份验证的主要内容,如果未能解决你的问题,请参考以下文章

建立Windows AD对Kerberos的单向信任(允许使用域账号登录Kerberos集群)

建立Windows AD对Kerberos的单向信任(允许使用域账号登录Kerberos集群)

kerberos 配置解决常见问题

在没有用户密码的情况下生成 AD Kerberos 票证

kerberos 身份验证-功能组

jdbc kerberos oracle 身份验证