、认证方式有三种

Oauth2.0,

Token-based

http/windows

二、用户登录与应用登录区别

两者区别在于:当用户登录时,服务器端平台是否直接识别登录信息和验证登录信息。

应用登录是间接认证,可以在应用登录的方法中增加额外的认证逻辑,如clientId、Ip等等。应用登录是服务器端验证,避免前端认证信息被盗用。

三、注册应用程序

http://doc.arcgis.com/en/arcgis-online/share-maps/add-items.htm#ESRI_SECTION2_20AF85308FD548B5ADBAE28836F66D3F

注册程序后会出现

四、oauth2.0

(1)oauth2.0+user登录 ,只需要注册应用中的appid。 IdentityManager来管理认证信息。

例子参见anjiangis/portal_oauth_popup.html

var info = new ArcGISOAuthInfo({
  appId: "<this is where your app id would go>",
  popup: true
});
esriId.registerOAuthInfos([info]);

(2)oauth2.0+app 需要AppID 和AppSecret

利用注册应用中的登录,注册应用可以自主添加登录认证方法(如ip)。

参考

https://developers.arcgis.com/javascript/3/jshelp/tutorial_sharing_maps_secure_layers.html

代码等在anjiangis文件夹下的traffic和resource-proxy-master。

这个例子是结合资源代理,无需登录。比较迷糊。

五、token

(1)token+user login

例子参见anjiangis/portal_oauth_popup.html

登录获取token,下次请求携带token的示例

https://servicesbeta.esri.com/security/index.html

(2)token+app login

注册应用在服务器端管理token,与资源代理合用。

四、示例代码

Oauth2.0+user login

https://developers.arcgis.com/javascript/3/jssamples/portal_oauth_inline.html

cookie保存凭证信息

https://developers.arcgis.com/javascript/3/jssamples/widget_identitymanager_client_side.html

代理方式

https://developers.arcgis.com/javascript/3/jshelp/tutorial_sharing_maps_secure_layers.html

proxy for dotnet 代码下载及使用教程

https://github.com/Esri/resource-proxy/blob/master/DotNet/README.md

token获取和利用方式

https://developers.arcgis.com/documentation/core-concepts/security-and-authentication/accessing-arcgis-online-services/

五、自身实践

采用简单的oauth2.0+app方式。 需要AppID 和AppSecret

(1)将需要保护的内容/服务改为公开为某个用户或组织

(2)在gisonline或者portal上添加应用程序,并查看app的AppID 和AppSecret。此信息是用来给客户端访问,获取token的,该token就可以访问该用户下的其他受保护内容/服务。

(3)用postman测试下,能否登录成功,获取token.

(4)请求服务时携带token即可

token = "Z-tB9aDlY9Lzp9bJOZiRMLhqnCis1……aorCzVs2PUg5gIz-3crqTwGmQ..";

var fUrl = "https://services8.arcgis.com……/arcgis/rest/services/enterprise/FeatureServer/0?token=" + token;

var featureLayer = new FeatureLayer({

url: fUrl

});

map.add(featureLayer);

oauth2.0+app方式 webgis 授权的更多相关文章

  1. OAuth2.0实战之微信授权篇

    微信开发三大坑: 微信OAuth2.0授权 微信jssdk签名 微信支付签名 本篇先搞定微信OAuth2.0授权吧! 以简书的登陆页面为例,来了解一下oauth2.0验证授权的一些背景知识: 1) 传 ...

  2. iOS OAuth2.0认证和SSO授权

    OAuth2.0和SSO授权   一.OAuth2.0授权协议 一种安全的登陆协议,用户提交的账户密码不提交到本APP,而是提交到授权服务器,待服务器确认后,返回本APP一个访问令牌,本APP即可用该 ...

  3. OAuth2.0授权和SSO授权

    一. OAuth2.0授权和SSO授 1. OAuth2.0 --> 网页 --> 当前程序内授权 --> 输入账号密码 --> (自己需要获取到令牌, 自己处理逻辑) 授权成 ...

  4. Spring Boot 2.0 利用 Spring Security 实现简单的OAuth2.0认证方式2

    0.前言 经过前面一小节已经基本配置好了基于SpringBoot+SpringSecurity+OAuth2.0的环境.这一小节主要对一些写固定InMemory的User和Client进行扩展.实现动 ...

  5. OAuth2.0的四种授权模式

    1.什么是OAuth2 OAuth(开放授权)是一个开放标准,允许用户授权第三方移动应用访问他们存储在另外的服务提供者上的信息,而不需要将用户名和密码提供给第三方移动应用或分享他们数据的所有内容,OA ...

  6. Spring Boot 2.0 利用 Spring Security 实现简单的OAuth2.0认证方式1

    0. 前言 之前帐号认证用过自己写的进行匹配,现在要学会使用标准了.准备了解和使用这个OAuth2.0协议. 1. 配置 1.1 配置pom.xml 有些可能会用不到,我把我项目中用到的所有包都贴出来 ...

  7. Apache Oltu 实现 OAuth2.0 服务端【授权码模式(Authorization Code)】

    要实现OAuth服务端,就得先理解客户端的调用流程,服务提供商实现可能也有些区别,实现OAuth服务端的方式很多,具体可能看 http://oauth.net/code/ 各语言的实现有(我使用了Ap ...

  8. API开放平台接口设计-------基于OAuth2.0协议方式

    1,简介OAuth http://www.ruanyifeng.com/blog/2019/04/oauth_design.html OAuth 是什么? http://www.ruanyifeng. ...

  9. 淘宝账号基于OAuth2.0的登录验证授权登陆第三方网站

    首先得有一个注册的appkey和App Secret   该流程分三个步骤: 第一步:通过用户授权获取授权码Code: 第二步:用上一步获取的Code和应用密钥(AppSecret)通过Https P ...

随机推荐

  1. get post header获取数据方方法

    /** * get方式获取数据 * @param $url * @param $data * @return bool|string */public function methodGet($url, ...

  2. [administrative][archlinux][netctl][wpa_supplicant] 查看WIFI链接信息

    当使用 netctl + wpa_supplicant的时候,环境里同时存在好多个WIFI,而我同时有配置了他们的密钥信息在配置文件中. 那么我该如何查看,我当前链接到了哪个WIFI上? /home/ ...

  3. [web][nginx] 初识nginx -- 使用nginx搭建https DPI解码测试环境

    环境 CentOS 7 X86 文档: https://nginx.org/en/docs/ 安装: [root@dpdk ~]# cat /etc/yum.repos.d/nginx.repo [n ...

  4. Appium入门(7)__Appium Desired Capabilities

    Desired Capabilities 是由多个键值对组成,代表移动设备相关信息.由Appium Client向Appium Server发送. 但无论Appium Client使用何种语言,最终是 ...

  5. BTM学习小记

    BTM的原理跟LDA很像,下面是该模型的概率图: 由该图可以看出来,与LDA的区别在于确定主题分布和词分布后相应地取两个词(而LDA只取一个,即类比常见的骰子说法:先投掷K面的骰子得到主题z,再根据相 ...

  6. ubuntu上设备树的编译

    由DTS文件生成DTB 文件,DTB是U-BOOT用来传递给LINUX内核的参数的一种文件形式. DTB:device tree blob 1,在内核中寻找:arch/arm/boot/dts/dig ...

  7. js模拟下拉框

    html <label class="selectGroup"> <span class="selectP"></span> ...

  8. centos7.6删除重新安装python和yum

    最近在开发一个项目时出现了错误,需要重新安装python和yum,怎么安装呢?随ytkah一起来看看吧.ytkah用的linux分支的centos7.6,各位朋友在下载源的时候要注意版本的区分.现在开 ...

  9. [资料] Ceph存储系统,关于Redhat和Suse企业版存储知识汇总

    版权声明:很多其它内容,请关注[架构师技术联盟]公众号 https://blog.csdn.net/BtB5e6Nsu1g511Eg5XEg/article/details/81117091 wx_f ...

  10. 浅谈JS的变量提升

    JS的解析机制,是JS的又一大重点知识点,在面试题中更经常出现,今天就来唠唠他们的原理.首先呢,我们在我们伟大的浏览器中,有个叫做JS解析器的东西,它专门用来读取JS,执行JS.一般情况是存在作用域就 ...