3

编辑:将“或 LDAP”附加到问题标题以表明我可以有一个解决方案,使我可以使用 LDAP 凭据进行身份验证。

我的问题:如何使用 Active Directory 的凭据对BusinessObjects 会话进行身份验证?

示例:我(我认为)有一个来自 SAP 的示例,说明如何在其中执行此操作,.NET但我似乎无法为Java. (请参阅此 pdf并搜索“修改 .NET Web 应用程序以启用 Kerberos”)。

目前:我有一个使用企业帐户进行身份验证的解决方案:

/**
* Logs into BusinessObjects. Sets the reportEngine and biPlatform
*/
public void loginToBusinessObjects() throws AxisFault, MalformedURLException, Exception {
  LogHelper.println("Server connection: " + boServer);

  URL boConURL = new URL(boServer);//set connection URL
  connection = new com.businessobjects.dsws.Connection(boConURL);

  boSession = new Session(connection); //setup new session

  EnterpriseCredential credential = EnterpriseCredential.Factory.newInstance();
  credential.setLogin(boUsername);
  credential.setPassword(boPassword);
  LogHelper.println(boUsername + ": ##password##");
  boSession.login(credential); //login to server
  ...
}

上面的代码效果很好。

现在:我希望能够允许用户提供他们的 Active Directory 凭据并使用这些凭据进行身份验证。但是,我似乎无法找到一种方法来做到这一点。上面代码的文档可以在同一个 pdf中找到,搜索“登录到服务器”。

注意:我可能做错了。我的组织对 Active Directory 和 LDAP 身份验证使用相同的凭据。如果有办法使用 LDAP 做到这一点可能就足够了。谢谢。

4

1 回答 1

3

答案假定您已经为用户设置了 Active Directory 和/或 LDAP 身份验证,并且用户具有该身份验证方法的别名。这应该可以通过登录 InfoView 来验证。

您应该可以通过使用 credential.setAuthType(authType) 来做到这一点。
其中 authType 是

  • “secEnterprise” 默认值
  • “secLDAP”
  • “secWinAD”

似乎并且有意义的是,默认情况下 AuthType 设置为 secEnterprise。

注意:我仍在使用 R3,它的身份验证机制略有不同,我还没有专门尝试过这个解决方案。


重要编辑:文档(这对于 BusinessObjects 来说很糟糕,任何阅读此内容的人可能已经知道)说对于活动目录,您使用“secAD”。但是,在我的测试中,我能够使用“secWinAD”成功地进行身份验证,它根本不会出现在他们的文档中的任何地方:-/(我可以找到)。

于 2012-06-29T14:25:32.317 回答