[英]Windows integrated authentication for java web application SSO
背景 :我目前有一個Java Web應用程序,該應用程序在Mac的localhost上運行。 用戶可以登錄到Web應用程序,並且其憑據也將通過在我的本地計算機上的特定端口上運行的OpenLDAP服務器進行驗證(特別是使用此docker映像 )。 該Web應用程序包括與LDAP服務器交互以提供登錄用戶名和密碼的代碼。 驗證成功后,用戶將登錄並可以繼續使用該應用程序的功能。
問題 :此Web應用程序將部署到將使用Windows的客戶端。 他們正在請求SSO功能-即,在其域下成功登錄到他們的Windows計算機將避免在運行Web應用程序時登錄到Web應用程序。 客戶端不能在其機器上運行其他Java應用程序,這將有助於SSO-簡單地登錄其Windows機器應繞過登錄Web應用程序的需要,這意味着需要以某種方式配置Windows,並且Web應用程序需要為SSO配置某種方式。 出於測試目的,我使用的是Windows 7虛擬機,該虛擬機在運行和測試Web應用程序的同一台計算機上運行。
我已經對SPNEGO,Java GSS API(看起來需要客戶端代碼才能與服務器進行通信),Kerberos,Windows IIS等進行過研究。我知道如何在Windows中啟用Windows集成身份驗證,但是我不知道如何實際在我的Web應用程序中使用它來啟用SSO。 基本上,在這種情況下,我仍在努力實現特定情況下的SSO功能。 以下是一些具體問題:
Windows SSO基於Kerberos,而不基於LDAP。 人們通常將它們混淆的原因是Microsoft Active Directory既充當LDAP服務器又充當Kerberos服務器。
如果您需要Windows用戶的透明身份驗證(SSO),則必須實現Kerberos身份驗證。
他們將如何為Web應用程序實現Kerberos的方式稱為SPNEGO。
您需要執行以下操作:
如您所見,LDAP不參與此身份驗證流程(盡管下一步可以將其用於授權)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.