Give access to the AppStore in a WiFi HotSpot - app-store

One of our hotel clients provide free WiFi to its guests with a Hot Spot, however, there are available only a few URL to access them freely (such as Facebook or the website of the hotel) and if you need more access you should log in.
We have developed the App for the hotel and one of its features is that if you open the App it gives you a complete access to the hotel WiFi, so you can navigate to any page you want.
Therefore, it is necessary that the guests can download the app through the AppStore without being logged in to the hotel WiFi, so the guest can download the App and get the access immediately.
We have a trace of the URL that calls the AppStore for search and downloading the App and we have set the Hot Spot to allow access to this URL, however, the AppStore tells us that we have no connection.
What URL should we need to enable in our Hot Spot for the AppStore to work properly?
These are the routes that have enabled:
search.itunes.apple.com
play.itunes.apple.com
init.itunes.apple.com
su.itunes.apple.com
itunes.apple.com
se.itunes.apple.com
p59-buy.itunes.apple.com
pd-st.itunes.apple.com
xp.apple.com
sp.itunes.apple.com
Thank you for your help.

Apple Appstore communicate using HTTPS. So router in the middle will not know what url that been use by client due to it's encrypted.
The solution is, instead of allow those by url. you need to allow it by ip address.
I would suggest to allow connection to the following address.
17.154.0.0/16 Apple's Class B Subnet includes phobos.apple.com address(es)
23.63.98.0/23 Akamai Technologies CDN
Please keep in mind that xxx.xxx.xxx.xxx/16 mean 255.255.0.0.
And it will be equal to allow ip adresss from 17.154.0.0 - 17.154.255.255
Also Akamai is a Content delivery service So ip address will various from location. I would suggest you to try to ping swcdn.apple.com get ipaddress and allow those /23 server.

Related

Obtain WAN IP address from Google Assistant Webhooks

During the Account Linking of our app with Google Assistant, we authenticate the user by mapping its WAN IP Address.
Once Webhooks intents are received, they are coming from Google cloud, not the user device, so the WAN IP doesn't match. It's then impossible to know if the user is still at home.
It seems there are ways of obtaining user and device identity, like name or device location. Is there a way of obtaining the device WAN IP address?
(à la x-forwarded-for).
In short - no.
The Assistant platform is meant to allow users to, somewhat transparently, move from device to device. The device ID isn't even standard.
If you need to know their location to make sure they haven't moved, then you can ask for their physical location. For speaker devices, such as the Home, it will use the device location that was set by the user, but for mobile devices it will use the GPS.

Bitrix : About install im.bitrix.info to own server

I bought bitrix self host version then I installed it to my server.
But when checking I see all message interact with Bot Framwork all through to bitrix server: im.bitrix.info, can I setup a application as im.bitrix.info by my self at my own server for controlling.
I need it because many cases I can debug what problem with skype bot or bitrix problem.
Unfortunately, no.
Some organizations may restrict Internet access due to security reasons. In this case Firewall controls the incoming and outgoing network traffic based on predetermined security rules. In order to to be able to work with your Bitrix24 account, please make sure you have the following addresses allowed in your Firewall: *.bitrix24.com, *.bitrix24.net (Bitrix24.Network, authorization)
International domains:
*.bitrix24.de (Germany)
*.bitrix24.es (Spanish speaking countries)
*.bitrix24.com.br (Portuguese speaking countries)
*.bitrix24.cn (China)
*.bitrix24.in (India)
*.bitrix24.eu (Europe)
*.bitrix24.fr (France)
For all of the above mentioned addresses we recommend to allow subnet mask *.bitrix24.*.
Please note that the following addresses should be allowed as well in order to provide simaltaneous work of such services as telephony, bots, open channels, videos: *.bitrix.info, bitrix*.cdnvideo.ru, *.cloudfront.net
https://helpdesk.bitrix24.com/open/6355275/
Bitrix telephony, bots, open channels and videos work through the cloud server.

Setup XMPP server to use other JSON API on webserver for user storage and authentication

We are developing a consumer hardware product. Each device is registered on a central webserver and the owner also have a user account to which the device is linked. The owner may also choose to share the device with other users.
Now, to solve the problem of getting through firewalls etc we are using XMPP: the user access his/her devices using an iOS/Android app. The app connects to the XMPP-server and so does the hardware devices. So the app can access the devices by sending custom XMPP stanzas.
Currently the device and the mobile app use the same JID, so the device will allow messages only from the same bare JID as itself uses. To allow for sharing devices we are planning to use the roster instead: the device will get its own JID ("hw381983829#thexmppserver.com") and will accept stanzas from all JID's in its roster.
The problem I'm having is that the users, devices and device-sharing data are stored on the webserver. I would like to use this same information on the XMPP-server: all users and devices on the webserver are allowed to login to XMPP and the roster of a device is the same as the users that may access it. This information can be accessed through a JSON API.
One way would be to mirror changes as they happen, but I don't like that idea since there are too many steps that could go wrong.
The best solution I can think of is to let the XMPP server use the JSON API instead of its builtin database. It would be read-only, but that is not a problem since all registration and sharing should be done on the webserver.
Any ideas on how to proceed? The functionality described above is more or less all that we need: we don't need S2S, offline messages, etc. We are currently using Ejabberd, but Prosody or Openfire are perhaps better alternatives?
For authentication, it looks like this ejabberd contribution does exactly what you need:
https://github.com/processone/ejabberd-contrib/tree/master/ejabberd_auth_http
For roster, it is easy to write a custom roster module that will be hitting your HTTP backend instead of query the database thanks to ejabberd API.
You can have a look at mod_roster as a guide to implement the methods: https://github.com/processone/ejabberd/blob/master/src/mod_roster.erl

Do apple app policies allow you to share the users IP address with 3rd parties

I'm working on an iphone app and will be using a 3rd party advertising services. The advertisting service want me to provide them with the users IP address via an API call. This is so the ad service can track users across web and app.
So is the IP address counted as device information? Do apple policies allow me to share the IP address with a 3rd party? My privacy policy will indicate that I'm collecting and passing on the IP address.
Thanks.
Any time your application makes a HTTP request, the receiving web server will get the calling device's IP address. That's the nature of the beast.
Thousands of iOS applications make external HTTP requests and don't provide a custom EULA (look at all the apps out there with ads in them).
So, it is obviously not against Apple's policies. IP addresses are not technically personally identifiable information.
However, you should not share the device's unique identifier (found by doing [[UIDevice currentDevice] uniqueIdentifier]) because that is considered personally identifiable information and could be use to track a specific user. It may not be against Apple's policy, but it is likely illegal in the USA unless you provide a sufficient EULA.

Detect if iphone/ipad connected to VPN via public wifi programmatically

We have an app wherein certain functionality needs to work only when the user is connected to a router associated with his account (we have some information about user accounts and home routers).
However, it is possible for the user to set up a VPN connection to his home router via any public wifi/3g network. We want to block certain functionality if that is the case.
Any ideas as to how it can be detected using any of the existing iphone/ipad apis?
Thanks,
Hetal
There is a flag in the reachability API called kSCNetworkReachabilityFlagsTransientConnection.
It is true when you are connected via a VPN and false if you are not connected via a VPN.
We used this flag value to check for our conditions.
There's no iOS API (public at least) that is going to give you information on whether you're running on a home router or public WiFi connection. You can only determine that you're on a WiFi connection vs. 3G. (for example, see the Reachability sample)
You might be able to do some sort of lookup based on the device's current IP address. You'd have to have each user register their router's IP address and have your application validate it before running, etc. But still, there'd be no guarantee that user's home router is secured. In other words, it could be just as wide open as a public WiFi.