本篇是基于dynamics 365online撰写,本文中使用的365online及azure均为试用版,因为online在国内还没落地,所以我申请的是新加坡版,online的申请方式可见我之前的博文有分享,如果已有online没有azure则可用dynamics 365的账号登陆office 365,点击下图中红框中的azure ad跳转到azure页面进行申请,试用版的申请需要绑定下信用卡,试用期一个月,如不提交付费申请是不会自动扣费的所以放心绑吧,如果你已有azure账号那需要和365绑上,具体的绑定方法见本文最后的链接,我这里没有截图可分享。

准备工作做完了那就开始吧,本例参照msdn示例,用的代码也是msdn中的示例代码,打开visual studio创建一个web application然后新建一个叫SimpleSPA.html的html页面,把示例代码贴进去,代码中关键的几行

var organizationURI = "https:// [organization name].crm5.dynamics.com";
//The URL to connect to CRM (online),比如我的使用环境https://skysoft002.crm5.dynamics.com,
//这里的skysoft002即是组织名也是后期的AD名

var tenant = "[xxx.onmicrosoft.com]";
//The name of the Azure AD organization you use  这边的xxx就是skysoft002

var clientId = "[client id]";
//The ClientId you got when you registered the application,这个要在后面在azure ad设置好后才能知道

var pageUrl = "http://localhost: [PORT #]/SimpleSPA.html";
//The URL of this page in your development environment when debugging.
注意这边的端口号,我们本地测试的时候我们F5运行之前建的web application,
本地IIS express会分配个端口号,后面在设置azure ad时需要填上

针对最后一条的port端口号,我这里运行以后是16654,本地application准备好后就去设置azure ad了。

登录azure,也可以从前面介绍的office 365入口进入,这里能看到ad目录,以及叫skysoft002的ad名称

点击skysoft002这个目录进去后,切换到应用程序界面,你可以点击添加按钮来添加应用程序,我这里已经建好了名为SimpleSPA的应用程序

点击添加按钮跳转到"要执行什么操作界面",选择"添加我的组织正在开发的应用程序"

填上应用程序的两个属性,第一个框就是上面图中login那个的地址,第二个框可以直接拷贝第一个框的地址即可

上述配置完后点击那个打勾按钮,然后页面会跳转到配置页面,页面往下拉就能看到叫做客户端id的一串码,这就是代码中clientId的值

配置页滚动条拉到最下面,点击添加应用程序要把dynamics crm online添加上(截图中我已经添加过了),再在委托的权限下拉并打勾

再点击配置页最下方的管理清单按钮,点击下载清单会有一个json文件下载下来

找到红框中的这个属性并将其设置为true,最后再点击上传清单,把修改好的json文档传上去,上述所有的修改都要在配置页面点击保存按钮进行保存。

至此azure ad的应用程序配置已完成,把SimpleSPA.html中的参数配置都更新好(本文之前贴出来代码),最后运行来看看结果。

F5运行,点击login按钮会跳转到登录页,使用online的账号登录后跳回simplespa.html页面

点击getaccounts按钮就能把数据拉出来,截图中显示的均是online中的示例数据,至此本demo结束。

本篇演示的是在html页面中通过调用online的OAuth身份验证后再通过web api取10条客户数据并展示,后续的博文会继续讲述如何在server-side程序中调用online的OAuth认证再通过web api取客户数据。

本文的参考文献如下:

https://msdn.microsoft.com/en-us/library/mt595797.aspx#bkmk_goal,

https://community.dynamics.com/crm/b/mscrmshop/archive/2016/01/31/crm-web-api-and-cors-support

文中用到的示例代码来自第一条文献

Dynamics 365Online 使用adal.js注册和配置SimpleSPA应用程序的更多相关文章

  1. SharePoint Online 使用 adal js 获取access token

    最近在写一些SharePoint 的sample code, 有兴趣的小伙伴可以查看我的GitHub. 今天给大家介绍SharePoint Framework (SPFx  )web part 当中怎 ...

  2. 手把手教从零开始在GitHub上使用Hexo搭建博客教程(一)-附GitHub注册及配置

    前言 有朋友问了我关于博客系统搭建相关的问题,由于是做开发相关的工作,我给他推荐的是使用github的gh-pages服务搭建个人博客. 推荐理由: 免费:github提供gh-pages服务是免费的 ...

  3. [转载]fullPage.js中文api 配置参数~

    fullPage.js中文api 配置参数 选项 类型 默认值 说明 verticalCentered 字符串 true 内容是否垂直居中 resize 布尔值 false 字体是否随着窗口缩放而缩放 ...

  4. SQL Server 2008 安装过程中遇到“性能计数器注册表配置单元一致性”检查失败 问题的解决方法

    操作步骤: 1. 在 Microsoft Windows 2003 或 Windows XP 桌面上,依次单击"开始"."运行",然后在"打开&quo ...

  5. js注册读秒进度条

    转载自://http://blog.csdn.net/wugouzi/article/details/12621385 <head> <meta http-equiv="C ...

  6. Dynamics AX 2012 R3 Demo 安装与配置 - 导入测试数据 (Step 4)

        在前面三节中,Reinhard分别讲解了如何配置安装环境,安装数据库服务器,AOS和客户端,安装后的编译和配置.如果一直跟随Reinhard的脚步,到这里,已经拥有一个没有数据的系统.     ...

  7. oracle server配置:监听程序未启动或数据库服务未注册到该监听程序

    第一次安装oracle时,时完全没有任何问题的, 但是当我去配置oracle_home时,误按之下进入了Database Configuration Assistant, 然后配置已有的一个数据库,就 ...

  8. DUBBO高级配置:多注册中心配置

    有时候我们需要的服务不在同一个 zookeeper 注册中心上,此时我们需要在 DUBBO 配置文件中配置多个注册中心. 下面我们在之前创建项目的基础上在 provider 模块中增加一个 IBook ...

  9. js开发环境配置

    使用Sublime Text3作为主要开发工具.下载地址:http://www.sublimetext.com/3. sublime拥有大量实用插件,使用插件需要先下载PackageControl以便 ...

随机推荐

  1. async await 的执行

    async await的执行 注意:本次代码仅在 Chrome 73 下进行测试. start 不了解 async await 的,先去看阮一峰老师的文章async 函数. 先来看一道头条的面试题,这 ...

  2. [Umbraco] document type里的父节点与子节点的设置

    虽然我们不能像做数据库设计那样建立主外键关系.但我们建立xml里父子关系,父子关系其实是指是否允许在一个页面(如频道,分类,栏目等)下创建子页面,这就相当于建立站点的树状结构,对于筛选数据会有很大的作 ...

  3. 课程一(Neural Networks and Deep Learning),第二周(Basics of Neural Network programming)—— 2、编程作业常见问题与答案(Programming Assignment FAQ)

    Please note that when you are working on the programming exercise you will find comments that say &q ...

  4. 线程同步辅助类CyclicBarrier

    CyclicBarrier 是一个可重置的多路同步点,在某些并行编程风格中很有用. 集合点同步:CyclicBarrier 多条线程同时执行一个阶段性任务时,相互等待,等到最后一个线程执行完阶段后,才 ...

  5. ES配置文件中文版

    ##################### Elasticsearch Configuration Example ##################### # This file contains ...

  6. MySQL笔记(3)---文件

    1.前言 第二章简单记录了一下InnoDB存储引擎的一个基本内容,介绍了保证高效插入的Insert Buffer,change Buffer和确保数据安全的write ahead log以及doubl ...

  7. java项目日志写到logstash-TCP/UDP

    好处:项目日志写到logstash,然后发送到ElasticSearch,可以方便查看搜索日志,还可以做报表分析. logstash是一个数据采集工具,有多种渠道,比如文件,tcp,udp等,如果是采 ...

  8. 浅谈Retrofit2+Rxjava2

    近几年,Retrofit犹如燎原之火搬席卷了整个Android界.要是不懂Retrofit,简直不好意思出门...由于近几个项目都没用到Retrofit,无奈只能业余时间自己撸一下,写的不好的地方,还 ...

  9. 拥抱了IDEA却发现再也回不去Eclipse...

    一.背景 还记得去年入职的时候,发现很多同事都在用Intellij IDEA,其实在那之前都已经接触过,只不过没有在开发中实际应用而已. 这时候我下定决心要拥抱IDEA了,尤其被它酷酷的黑色主题所吸引 ...

  10. 获取Javascript 滚动条距离顶部的距离(兼容IE6+,火狐,谷歌,其它没测)

    document.body.scrollTop || document.documentElement.scrollTop