[英]IBM MobileFirst Platform 8.0 app authenticity not working on iOS
[英]IBM Worklight - How to enable App Authenticity in a native iOS app?
我們有一個iOS和Android混合應用程序環境,在其中,我們可以使用以下命令成功運行App Authenticity(可通過下拉菜單來控制功能):
<mobileSecurityTest name="app">
<testAppAuthenticity/>
<testUser realm="wl_anonymousUserRealm"/>
<testDeviceId provisioningType="none" />
</mobileSecurityTest>
我們在Worklight項目中添加了一個“ iOS Native API”項目,用於XCode 5中的本機iOS客戶端開發。我們能夠成功連接到WL服務器,並在不同的適配器中調用所有現有的適配器過程。
對於本機API項目,我們現在還希望啟用App Authenticity。 當我們在本機API項目的應用程序描述符中使用與混合應用程序中相同的MobileSecurityTest時 ,可以將其部署到WL服務器,並在iOS本機API條目中啟用“應用程序真實性”功能(下拉菜單以控制該功能)在控制台中。
在本機iOS應用/項目中,我們設置:
當我們要連接到WL服務器時,我們將無法運行成功的身份驗證。 我們看到DeviceAuthManager嘗試從設備獲取UUID,但是服務器返回錯誤響應:
2013-09-24 08:58:35.530 App[32535:c07] DeviceAuthManager:getWorklightUniqueDeviceId --> returning UUID from the keychain
2013-09-24 08:58:35.564 App[32535:c07]
isCustomResponse
2013-09-24 08:58:35.564 App[32535:c07] this is it: Status: 403
InvocationResult: (null)
InvocationContext: {
delegate = "<MyConnectionListener: 0x7d73ec0>";
}
Response text: /*-secure-
{"WL-Authentication-Failure":{"wl_authenticityRealm":{"reason":"com.ibm.json.java.JSONObject cannot be cast to java.lang.String"}}}*/
2013-09-24 08:58:35.564 App[32535:c07] [ERROR] Worklight: -[WLRequest requestFailed:]:309::Status code='403' error='(null)'
2013-09-24 08:58:35.565 App[32535:c07] [ERROR] Worklight: -[WLClient onInitRequestFailure:userInfo:]:410::
我們確實在有和沒有注冊僅打印響應的ChallengeHandler的情況下進行了嘗試。 結果相同,只是如果我們具有ChallengeHandler,我們可以看到isCustomResponse方法中打印的錯誤響應。
另外,還會自動顯示一個“ Worklight”對話框,其中顯示“錯誤:處理來自應用程序的請求時遇到錯誤(關閉)” 。
我們可以看到在6.0中有worklight.plist值:
<key>wlUid</key>
<string>wY/mbnwKTDDYQUvuQCdSgg==</string>
5.0.6是否也有必要? 我們的plist文件沒有該文件。
當我們將worklight.plist文件中的環境值從iOSnative
為我們的應用名稱(或其他名稱)時,我們得到一個響應Response文本:
{"errorCode":"UNEXPECTED_ERROR","errorMsg":null}
所以我假設這個值iOSnative是必須存在的固定值?
9月30日:WL 6.0.0.1更新
在WL 6.0.0.1中,當我們將其與Studio 6.0.0生成的iOSApi環境部署到Tomcat上的Consumer Server一起使用時,似乎沒有顯示相同的錯誤。
現在我們得到:
Invocation Failure: Status: 403
InvocationResult: {
"WL-Authentication-Failure" = {
"wl_authenticityRealm" = {
reason = "forbidden state";
};
};
}
當我們Enabled, blocking
,當我們更改為Enabled, servicing
時,我們可以連接並調用適配器。 (以前的5.0.6錯誤無法實現)
現在我們假定我們需要以某種方式設置我們的iOS證書或簽名,用於在Wl服務器上為iOS模擬器和iOS設備(開發人員和發行證書)對應用程序進行簽名,以便WL Server允許連接?
有人可以幫助我們完成在XCode 5項目中設置iOS本機App Authenticity以成功連接到服務器所需的步驟,然后再通過Enabled, blocking
調用適配器。
我們確實將worklight.group添加到了iOS應用程序的啟用的鑰匙串共享功能中。
我們將所有Wl iOSAPI文件(包括帶有wlUid的plist文件) 復制到了iOS應用程序xCode5項目中?
如上所述,它可以與“啟用服務”和“禁用AppAuthenticity”功能一起使用。
為了使App Authenticity在使用適用於iOS的Worklight Native API的本機iOS應用程序中起作用,其步驟與Eclipse端的Hybrid應用程序中的步驟相同:
authenticationConfig.xml
設置securityTest application-descriptor.xml
application-descriptor.xml
中將bundleId添加到iPhone環境中 但是,在Xcode中還有1個額外的步驟要做。
打開生成的Xcode項目后:
-ObjC
現在,您可以在iOS Simulator /設備上清理和/或運行項目。 應該管用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.