本篇是基于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. 设置多台机器linux服务器ssh相互无密码访问

    在每台服务器上都执行ssh-keygen -t rsa生成密钥对: $ ssh-keygen -t rsa Generating public/private rsa key pair. Enter ...

  2. 判断一个类是否为另一个类的实例 instanceof关键字和isAssignableFrom方法的区别

    Which of the following is better? a instanceof B or B.class.isAssignableFrom(a.getClass()) The only ...

  3. 通过超链接启动App

    问题:微信里分享一个链接给你,你点击这个链接,一.如果你安装了这个钱包,那就直接打开钱包.二.如果没有安装钱包就跳转到下载钱包的地方 要点:首先要让浏览器知道 app 是谁,然后再让浏览器调用app ...

  4. Chrome 的 Material Design Refresh UI初探

    今天Chrome自动升级到69.0.3497.92, 发现UI已经变成了"Material Design Refresh". Chrome 浏览器的页面标签已经不再像以往那样倾斜和 ...

  5. mpvue小程序图片404

    mpvue开发小程序时候,要添加静态本地图片 <img src="../../images/bg.png" alt=""> 会报错: VM14878 ...

  6. How to correctly handle ThreadLocal.get() returning null

    Java's ThreadLocals make certain things easy, but special care must be taken to make sure they are r ...

  7. Flutter踩坑日记:接入现有iOS项目

    之前搞的Flutter版工具链已经弄完了,感兴趣的朋友可以围观下,Android版本dio库(v2.0.14)发送网络请求老是报错,去官方提了issue还没回,于是今天搞一下把Flutter模块接入到 ...

  8. CodeForces -977F(突破定式思维+map应用)

    题目链接: https://cn.vjudge.net/problem/CodeForces-977F /* 问题 输入n和n个数的数列 计算并输出最长增量为1的上升子序列 解题思路 用n2的最长上升 ...

  9. Spring基础(3) : 静态工厂和实例工厂创建bean

    public class Factory { public static Person staticCreate(){ Person p = new Person(); p.name="st ...

  10. 50道sql练习题和答案

    最近两年的工作没有写过多少SQL,感觉水平下降十分严重,网上找了50道练习题学习和复习 原文地址:50道SQL练习题及答案与详细分析 1.0数据表介绍 --1.学生表 Student(SId,Snam ...