如何保护网站静态 URL 和 Worklight 控制台?

Posted

技术标签:

【中文标题】如何保护网站静态 URL 和 Worklight 控制台?【英文标题】:How to protect the website static URL and Worklight console? 【发布时间】:2015-09-16 09:54:32 【问题描述】:

我使用 Mobilefirst V7.0 使用 AngularJS 开发了一个 Worklight Web/Mobile 网站。我想保护我的 Web 应用程序的 URL,这样如果某些用户在没有正确身份验证的情况下直接尝试在地址栏中键入 URL(例如:www.mydomain/app/dashboard),他应该被推送到登录页面提供凭据(用户名/密码),而不是转发到仪表板页面。我使用 worklight AdapterbasedAuthentication 对用户进行身份验证,使用 challageHandler。现在我想保护网站 URL 和 Worklight 控制台。任何人都可以告诉我如何在工作灯中实现这一点。如果可能,请为我提供一些代码。提前谢谢大家。

编辑 嗨 Idan Adar,谢谢您的回复。 以下是我要做的任务: 我正在尝试通过在 authenticationconfig.xml 文件中进行配置来保护我的网站 URL,当某些匿名用户尝试通过手动输入 url 来访问网站时,我正在尝试显示默认的 worklight login.html 页面。在执行下面的代码时,我在浏览器中得到了 challangeHandler 对象,但没有得到我需要的 login.html 页面。您能否建议并告诉我如何在未经授权的 url 访问时显示 login.html 页面,并建议一些解决方案来解决此问题。

<staticResources>
    <resource  id="logUploadServlet" securityTest="myWebUrlTest">
    <urlPatterns>/apps/services/preview/myProject/common/1.0/default/index.html/*</urlPatterns>
     </resource>
 </staticResources> 
<securityTests>
    <webSecurityTest name="myWebUrlTest">
        <testUser realm="SampleAppRealm"/>
    </webSecurityTest>
</securityTests> 
<realms> 
    <realm name="SampleAppRealm" loginModule="StrongDummy">
        <className>com.worklight.core.auth.ext.FormBasedAuthenticator</className>
        <parameter name="login-page" value="login.html" />
    </realm>
</realms>
<loginModules>
    <loginModule name="StrongDummy" expirationInSeconds="-1">
        <className>com.worklight.core.auth.ext.NonValidatingLoginModule</className>
    </loginModule>
</loginModules>

【问题讨论】:

【参考方案1】:

保护 Worklight 控制台与您的应用程序或您编写的任何代码无关。它与您将 Worklight Server 部署到的应用程序服务器相关,无论是 WebSphere、Liberty 还是 Tomcat。

您需要做的是禁止访问某些 URL。事实上,通常这些 URL 会在您的网络内部。

一个简单的拓扑应该是这样的:

公共互联网 ---- HTTP 服务器/防火墙 ---(可选)负载平衡器 --- WORKLIGHT SERVER(S)

因此,您需要做的是阻止来自公共 Internet 的任何请求访问您的专用网络。

为此,您需要与您的 IT 管理员联系。 您可以将他/她引导至以下有关 Worklight Server 的可用端点及其各种操作的用户文档主题:http://www-01.ibm.com/support/knowledgecenter/SSHS8R_6.3.0/com.ibm.worklight.installconfig.doc/admin/r_rest_api_endpoints.html

【讨论】:

您好 Idan Adar,感谢您的回复。以下是我要做的任务:我正在尝试通过在 authenticationconfig.xml 文件中进行配置来保护我的网站 URL,当某些匿名用户尝试通过手动输入 url 来访问网站时,我正在尝试显示默认工作灯login.html 页面。在执行下面的代码时,我在浏览器中得到了 challangeHandler 对象,但没有得到我需要的 login.html 页面。您能否建议并告诉我如何在未经授权的 url 访问时显示 login.html 页面并提出一些解决方案来解决此问题。 默认情况下,在 v7.0 中已经有控制台身份验证,所以我不清楚你为什么需要添加任何东西。 我正在使用 Worklight V7.0、Angularjs 开发一个移动 webApp,我想在其中保护我网站的所有 Url(移动 WebApp)。因此,当有人试图直接在地址栏中输入 url 并尝试访问未经授权的页面时,应该抛出一个挑战来处理这个未经授权的 url 访问,并且应该将他重定向到登录页面以提供用户名和密码。这正是我必须实现的。为此,我尝试使用 worklight 的 属性来保护静态 url。但我没有成功。请建议我解决这个问题。 这与您的应用程序没有任何关系。这仅与您的服务器有关。不是你的浏览器,也不是 AngularJS。请再次阅读我给您的链接并将其提供给您的 IT 管理员。作为开发人员,您无需在您的应用程序中做任何事情来实现这一点。再次仔细阅读我写的内容。

以上是关于如何保护网站静态 URL 和 Worklight 控制台?的主要内容,如果未能解决你的问题,请参考以下文章

如何做URL静态化 和页面的静态化

如何保护 Amazon S3 URL

如何做URL静态化 和页面的静态化

IBM Worklight 5.0.6.1 - 使用加密的 worklight.properties 文件保护 Worklight 控制台

保护 Azure 存储帐户中托管的静态网站的路由

Worklight 5.0.5.1 && 保护应用程序