简体   繁体   English

Weblogic上的SSO,AD身份验证

[英]SSO, AD authentication on weblogic

I want to do SSO with active directory on weblogic. 我想对weblogic上的活动目录执行SSO。 I have found very useful information on web. 我在网上发现了非常有用的信息。 But in all the cases it is mentioned how to configure the weblogic for the AD authentication. 但是在所有情况下都提到了如何为AD身份验证配置weblogic。 But my question is how the username will get passed to the weblogic from the apache webserver. 但是我的问题是用户名如何从apache网络服务器传递到weblogic。 If we will not get the username in the weblogic itself then SSO won't work. 如果我们无法在weblogic本身中获取用户名,则SSO将无法正常工作。 If anyone have any idea regarding the SSO AD authentication on weblogic server (in which user name get passed from apache webserver) then please share. 如果有人对weblogic服务器上的SSO AD身份验证(从apache webserver传递用户名)有任何想法,请分享。

It depends on how you set up the connections to weblogic. 这取决于您如何设置与weblogic的连接。 If you are connecting from apache, what method are you using? 如果您是从apache连接,您使用的是哪种方法? If it is working as a proxy, say from a browser, you could try to forward the credentials. 如果它充当代理,例如从浏览器说,则可以尝试转发凭据。 It is is a webservice, you need to implement some fashion, such as BASIC authentication in the header. 它是一个Web服务,您需要实现某种方式,例如标头中的BASIC身份验证。 As long as you can pass credentials, you can manage SSO. 只要您可以传递凭据,就可以管理SSO。

Normally for SSO, you would have a browser on a domain, say IE since it works with kerberos without further config, it would connect to the weblogic server. 通常对于SSO,您将在一个域上使用一个浏览器,例如IE,因为它无需进一步配置即可与kerberos一起使用,它将连接到weblogic服务器。 It would pass a ticket on to weblogic, which works as a TGT to active directory. 它会将票证传递给weblogic,后者用作活动目录的TGT。 That allows weblogic to then return a token granting access to the application to the client. 这样一来,weblogic便可以将令牌返回给客户端,以授予对该应用程序的访问权限。 Without that type of connection (ie browser to weblogic) you need to implement some way working out how to login to weblogic- otherwise who would log in to the application from apache? 如果没有这种类型的连接(即浏览器到weblogic),则需要实现某种方式来解决如何登录到weblogic的问题,否则谁将从apache登录到应用程序? Would it be apache itself as a domain account? 将其本身作为域帐户是apache吗? Assuming you want SSO from clients, you need the client to pass on their credentials to either apache (which needs to forward them somehow) or weblogic directly. 假设您需要来自客户端的SSO,则需要客户端将其凭据传递给apache(需要以某种方式转发它们)或直接将其传递给weblogic。 Weblogic supports SAML 1.1 (i don't think it inherently does 2.0 but you can add it in with extensions) which can be used to forward details from a source to a destination to perform authentication- this is something you might want to look at. Weblogic支持SAML 1.1(我不认为它本身就支持2.0,但是您可以将其添加扩展名),该SAML 1.1可用于将详细信息从源转发到目标以执行身份验证-这是您可能需要查看的内容。 The weblogic documentation exists for this between two weblogic domains, so you could use that as a starting point to create the destination. 为此,存在两个Weblogic域之间的weblogic文档,因此您可以以此为起点来创建目标。 (dont want to link the documentation as it varies depending on the version of weblogic you are using) (不要链接文档,因为文档会根据您使用的weblogic的版本而有所不同)

I've never done Kerberos setup with Apache, but have done it dozens of times with IIS and there are no settings on IIS that need to be modified for Kerberos, so I'm guessing it should be the same for Apache. 我从未使用Apache完成Kerberos设置,但是使用IIS完成了数十次,并且IIS中没有需要为Kerberos修改的设置,因此我猜想它对于Apache应该是相同的。 As long as it forwards requests to Weblogic, you should be fine. 只要它将请求转发到Weblogic,就可以了。 Your Apache's URL should be in the SPN on AD. 您的Apache的URL应该在AD上的SPN中。 Whenever you try to open it in Internet Explorer on machine that's logged into AD domain, Internet Explorer will ask AD whether it has any services registered for this URL, and once AD finds SPN that matches the URL, it will issue Kerberos ticket which contains, among other things, your domain username and service principal. 每当您尝试在登录到AD域的计算机上的Internet Explorer中打开它时,Internet Explorer都会询问AD是否为此URL注册了任何服务,并且一旦AD找到与该URL匹配的SPN,它将发出Kerberos票证,其中包含其中包括您的域用户名和服务主体。 Weblogic will get this ticket and compare service principal in it to service principals it has in its keytab file. Weblogic将获得该票证,并将其中的服务主体与其在keytab文件中拥有的服务主体进行比较。 Once it finds a match (I'm omitting boring encryption/decryption details), it will know that you're really a member of that domain and your username is considered valid. 一旦找到匹配项(我省略了无聊的加密/解密详细信息),它将知道您确实是该域的成员,并且您的用户名被认为是有效的。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM