如何在 Oracle 中进行 Kerberos 身份验证?

How to make Kerberos authentication in Oracle?

我有 Windows Server 2008 r2,带有 myora.local 域和 AD。有服务器Oracle。我在Win7上有客户端。 在服务器上:

-C:\krb\krb.conf

MYORA.LOCAL
MYORA.LOCAL myora.local admin server

-C:\krb\krb5.realms

[libdefaults]
default_realm=MYORA.LOCAL
[realms]
MYORA.LOCAL= {
    kdc=DomainController.myora.local:88
}
[domain_realm]
.local.myora=MYORA.LOCAL

-sqlnet.ora

SQLNET.KERBEROS5_CONF= c:\krb\krb.conf
SQLNET.KERBEROS5_REALMS = c:\krb\krb5.realms
SQLNET.KERBEROS5_CC_NAME = C:\krb\v5srvtab
SQLNET.AUTHENTICATION_SERVICES= (BEQ, TCPS, NTS, KERBEROS5)
NAMES.DIRECTORY_PATH= (TNSNAMES, EZCONNECT)
SQLNET.KERBEROS5_CONF_MIT = TRUE
SQLNET.AUTHENTICATION_KERBEROS5_SERVICE = krbtgt

okinit 为 Kefir@MYORA.LOCAL(计算机服务器上的用户名)工作

我在客户端上执行了所有相同的步骤(sqlnet.ora除外),但 okinit 出现错误: 从本地名称 user1 找不到,从计算机名称它有凭据问题。 我应该更改或添加什么?

该错误可能告诉您,对于您的数据库服务原则(您从中发布密钥表的帐户),您没有在帐户属性中选择“不需要预身份验证”。

对于您的客户端,您应该从 sqlnet.ora 中的身份验证服务列表中删除 beq。如果您不使用它们,请同时删除 NTS(windows 本机)和 TCPS(证书)。

在您的 krb5.conf 文件中,将大写字母添加到您的域领域,以及不以句点为前缀的别名 - 如下所示:

[domain_realm]
.local.myora=MYORA.LOCAL
local.myora=MYORA.LOCAL
.MYORA.LOCAL=MYORA.LOCAL
MYORA.LOCAL=MYORA.LOCAL

您可能想看一下这个视频 - 它可能会回答您可能 运行 提出的其他问题 https://www.youtube.com/watch?v=d_d0j9ssQys&ab_channel=OracleDevelopers