Hello,
I have a WebApp Application that I created using the Web AppBuilder, that point to a private map under my organization.
My goal with this is be able to open the WebApp without login, but I is not working.
My proxy (I'm using the Java implementation) configuration is:
<serverUrl url="https://org.maps.arcgis.com"
matchAll="true"
clientId="XXXXXXXXXXX"
clientSecret="ZZZZZZZZZZZZZZZZZ"
username="user"
password="pass"
tokenServiceUri="https://org.maps.arcgis.com/sharing/rest/generateToken"
/>
The Proxy seems that is working fine, but, when I try to open the WebApp I a box like this before see the WebApp:
Does anyone have any know what I am missing here?
Thank you in advance!
Guilherme,
Did you add your proxy url to your apps main config.json?
Also you normally use username and password OR clientId and clientSecret.
Robert,
About the first question, yes, my config.json is like:
"portalUrl": "https://org.maps.arcgis.com",
"appId": "123123123",
"authorizedCrossOriginDomains": [],
"title": "Web App",
"subtitle": "",
"keepAppState": true,
[...]
"map": {
"3D": false,
"2D": true,
"position": {
"left": 0,
"top": 40,
"right": 0,
"bottom": 0
},
"itemId": "0addc56a7a7e488c882f24940a981774",
"mapOptions": {},
"id": "map",
"portalUrl": "https://org.maps.arcgis.com/",
"appProxy": {
"mapItemId": "0adtc56a7a7e421c832f24940a981724",
"proxyItems": []
}
},
[...]
"httpProxy": {
"useProxy": true,
"alwaysUseProxy": false,
"url": "https://localhost:8080/Proxy/proxy.jsp",
"rules": []
},
I tried removing user/pass and using only client/secret, and also tried with the opposite, but still same issue.
Thank you.
I personally use the .Net version but here is how I always have it:
config.json:
"httpProxy": {
"useProxy": true,
"alwaysUseProxy": false,
"url": "https://machinename/Proxy/proxy.ashx",
"rules": []
},
I Never use localhost in my development.
In the proxy.config
<serverUrl url="https://blah.maps.arcgis.com" clientId="***" clientSecret="***" matchAll="true" />
<serverUrl url="http://blah.maps.arcgis.com" clientId="***" clientSecret="***" matchAll="true" />
Notice I do not use tokenServiceUri and I list https and http
Hello,
I'm sorry for take so much time to reply. I tested and still the same issue. Also, I followed the link (https://community.esri.com/groups/technical-support/blog/2015/10/28/setting-up-a-proxy-with-web-appb...) and no lucky. After sometime digging the ESRI docs, I found these text about autentication:
Tokens obtained by applications can only read public content and services. Although you cannot use an App login with private content, if your goal is to distribute or sell an app to organizations without ArcGIS Online (no named users), you may control access to your content by using your own login mechanism (I.e. Identity) to the app.
So, I don't have my own ArcGIS server. I'm using ArcGIS Online with my organization trying to show a private map inside a webmap. Do you think that this can be the issue and, maybe, the reason why I have this forced login always?
Guilherme,
When accessing your organization (just to see your content, Not a specific secured content) are you asked to login? For example if you gave me your orgs url will it ask me to login before I can view your orgs content?
Robert,
No, you can't see my organization if you don't login. It will require you to login.
Guilherme,
Can you change your orgs security setting to "Allow anonymous access to your organization's website', just for testing and see if that makes a difference?
Robert,
Did not work too, but I guess that is because the map is not sharing public. Sharing it public work as expected, but is not something that we would like to do.
Hey Robert,
I did some changes in my Proxy and, at least, changed the error. I'm facing an error 500 when try to get a fresh token for my user. The weird part is that calling the method on Postman works fine. Any idea about it?
Thank you.