使用 Oracle 標準的外部身份驗證
我想使用自定義外部應用程序從外部驗證我的客戶端連接。這可能使用 Oracle Standard 11g 嗎?如果是這樣,怎麼做?
(我們的自定義外部應用程序將無法訪問使用者密碼,它只會將申請轉發到其他地方)
我找到的唯一文件是關於作業系統身份驗證或使用錢包的。
恐怕這實際上是不可能的。在 Oracle 的術語中,外部身份驗證意味著:
"If users's name on client machine is identical to user's username in database, then user does not have to enter ANY password"
. 這種身份驗證方式非常弱,必須與其他安全功能結合使用,例如您允許使用者僅從一個受信任的安全主機登錄。Oracle 不支持任何 PAM 模組(例如 Informix)或其他任何模組。唯一的選擇是如何將 Oracle 連接到外部身份驗證系統:
- Kerberos/RADIUS - 需要企業版和高級安全選項,這可能需要額外的許可
- N 層身份驗證 - 類似於 Oracle 級別的 Unix su。但這需要應用程序方面的支持。
- 登錄觸發器啟用密碼保護角色。
事實上,如果您需要為客戶端進行外部身份驗證,可以通過外部密碼儲存來完成:
1)您需要使密碼外部使用SHA-1雜湊算法。(注意這與 jdbc-4 不兼容)。
2)打開
sqlnet.ora
並確保它包含以下行(如果注意您需要添加它然後保存並關閉)sqlnet.allowed_logon_version=12
要麼
sqlnet.allowed_logon_version=11
請注意,11 和 12 取決於伺服器規範。
3)注意這一步是可選的,它使密碼更強大,但我建議使用它:
ALTER SYSTEM SET SEC_CASE_SENSITIVE_LOGON = TRUE;
4)你需要一個錢包,它用於安全認證
5)創建錢包後,您需要列出外部密碼內容,可以通過以下方式完成:
mkstore -wrl wallet_location -listCredential
- 現在您需要一種方法讓客戶端連接到您的數據庫,例如活動目錄(例如 oracle 網際網路活動目錄)和
kerebros
身份驗證** 如何啟動 LDAP 身份驗證:
ALTER SYSTEM SET LDAP_DIRECTORY_SYSAUTH = YES;
** 如何通過密碼或
SSL
:ALTER SYSTEM SET LDAP_DIRECTORY_ACCESS = XXX;
其中 xxx= 密碼或SSL
(您需要選擇其中之一而不是兩者)來建立連接類型。