【转】D365 FO第三方集成(一)---访问认证(应用注册)

从Axapta3.0的COM Business Connector,到AX4.0和AX2009的 .NET Business Connector,到AX2012的WCF Services,最后到D365FO的接口方式。
AX的接口演化,几乎见证了微软整个技术栈的变迁。
D365 FO的Web Services比起AX2012有了飞跃,用起来比AX2012好了很多。
最近在开发一个接口供第三方调用,边做边记录一下过程。
D365托管在云上,可以使用Azure的一些组件完成与D365的集成,比如App Logic,很多功能不需要重复造轮子。
但是搞清楚原理才能更好地使用别人的轮子,所以还是从头做一遍再用别人的轮子比较好。
另外有时候汽车的轮子虽好,装在自行车上也不合适。
这篇blog记录一下访问认证中的应用注册。
D365托管在Azure云上,最大化利用Azure的现有的技术栈,Web Services的认证用了Azure里的应用注册,通过应用注册获取访问D365的访问令牌。
应用注册
微软官方网站上有详细的说明,这里只是记录我做的过程,不见得合理。
登陆azure portal,找到应用注册。

 新建应用注册

 输入应用的名字,选择任何组织目录。

 点击注册,完成注册过程,可以看到注册以后的信息

 上面的应用程序ID(APPID),租户ID(tenantID)在后面程序访问的时候都要用到。
点击终结点

 其中的令牌终结点,我们获取Token的时候需要用到。
接下来需要配置API权限,让注册的应用可以访问D365 FO应用。

 点击添加权限,选择DynamicsERP.

 

 选择委托的权限,选择权限,添加。

创建访问密码

 

 创建好以后一定要拷贝下来,要不然后面再也看不到密码了。

 这个密码配合前面提到的APPID用于请求访问令牌。
到这里Azure Portal上的内容就差不多了,当然还有很多细节问题没涉及。
在D365 FO中也需要登记一下APPID,这样D365FO才能验证访问请求带过来的访问令牌是否合法,如果不设置,访问的时候会提示,远程服务器返回错误: (403) 已禁止。
系统管理->设置->Azure AD应用程序

客户端ID输入应用程序ID,用户ID选择一个有相应权限的系统用户。

 

 到此为止,应用注册就完成了,下一篇blog记录一下如何通过代码获取访问令牌。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/437676.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【转】Postman系列一:Postman安装及使用过程中遇到的问题

一:Postman的简介、下载安装及界面说明 1.Postman的简单介绍 Postman是一款强大的网页调试和发送网页HTTP请求的工具,Postman让开发和测试人员做API(接口)测试变得更加简单。在我使用Postman之前还有一个版本,就是需要…

Hive报错:Exception in thread main java.lang.Incom。。。。 Class com.google.common.collect.ImmutableSotil

Exception in thread “main” java.lang.IncompatibleClassChangeError: Class com.google.common.collect.ImmutableSotil.NavigableMap Exception in thread "main" java.lang.IncompatibleClassChangeError: Class com.google.common.collect.ImmutableSotil.Na…

Python 数据分析三剑客之 Pandas(十):数据读写

CSDN 课程推荐:《迈向数据科学家:带你玩转Python数据分析》,讲师齐伟,苏州研途教育科技有限公司CTO,苏州大学应用统计专业硕士生指导委员会委员;已出版《跟老齐学Python:轻松入门》《跟老齐学Py…

Hive优化

一、 Fetch抓取 Fetch抓取是指,Hive中对某些情况的查询可以不必使用MapReduce计算。 例如:SELECT * FROM employees;在这种情况下,Hive可以简单地读取employee对应的存储目录下的文件,然后输出查询结果到控制台。 在hive-default…

COVID-19 肺炎疫情数据实时监控(python 爬虫 + pyecharts 数据可视化 + wordcloud 词云图)

文章目录【1x00】前言【2x00】思维导图【3x00】数据结构分析【4x00】主函数 main()【5x00】数据获取模块 data_get【5x01】初始化函数 init()【5x02】中国总数据 china_total_data()【5x03】全球总数据 global_total_data()【5x04】中国每日数据 china_daily_data()【5x05】境外…

【转】Postman系列二:Postman中get接口实战讲解(接口测试介绍,接口测试流程,头域操作)

一:接口测试介绍 接口测试:就是针对软件对外提供服务的接口输入输出进行测试,以及接口间相互逻辑的测试,验证接口功能和接口描述文档的一致性。 接口测试好处:接口测试通常能对系统测试的更为彻底,更高的保…

hive或mysql报错Too many connections

in acquiring locks: com.zaxxer.hikari.pool.HikariPool$PoolInitializationException: Failed to initializ e pool: Data source rejected establishment of connection, message from server: “Too many connections” 显示:Too many connections &#xff0c…

Python3 爬虫实战 — 前程无忧招聘信息爬取 + 数据可视化

爬取时间:2020-07-11(2020年10月测试,增加了反爬,此代码已失效!!!)实现目标:根据用户输入的关键字爬取相关职位信息存入 MongoDB,读取数据进行可视化展示。涉…

【转】Postman系列三:Postman中post接口实战(上传文件、json请求)

一:接口测试过程中GET请求与POST请求的主要区别 从开发角度我们看get与post的主要区别是: 1.Get是用来从服务器上获得数据,而Post是用来向服务器上传递数据; 2.Get安全性比Post低:Get将表单中数据的按照keyvalue的形式…

Hadoop datanode正常启动,但是jps差不多datanode进程,而且Live nodes中却缺少节点

启动时可以看到启动成功,但是在chun2,jps的时候却没有了datanode进程,而且web端Live nodes也缺少了 百度搜索之后查到是因为hdfs.site.xml配置文件里dfs.data.dir配置的路径重复,就是多个节点存放data数据的目录路径相同了&#x…

【Python 必会技巧】使用 Python 追加写入 json 文件或更改 json 文件中的值

追加写入 json 文件 有一个 test.json 文件,包含内容如下: {"key_1": "value_1" }现需要追加写入 json 文件,向其中增加值,使其包含内容如下: {"key_1": "value_1","…

【转】Postman系列四:Postman接口请求设置环境变量和全局变量、测试沙箱和测试断言、测试集运行与导入数据文件

一:Postman中接口请求设置环境变量和全局变量 全局变量和环境变量可以通过Pre-request Script和Tests设置,会在下面测试沙箱和测试断言中讲到。 全局变量的设置:官网参考https://learning.getpostman.com/docs/postman/environments_and_glob…

Python 算法之递归与尾递归,斐波那契数列以及汉诺塔的实现

文章目录递归概念递归要素递归与迭代的区别示例一:阶乘示例二:斐波那契数列示例三:汉诺塔问题尾递归Python 中尾递归的解决方案递归概念 递归:程序调用自身的编程技巧称为递归( recursion)。用一种通俗的话…

【转】Postman系列五:Postman中电商网站cookie、token检验与参数传递实战

一:Postman中电商网站cookie实战 Postman接口请求使用cookie两种方式: 1.直接在header(头域)中添加cookie,适用于已知请求cookie头域的情况 2.使用Postman的cookie管理机制,即可以手动添加,同时…

Python 数据结构之栈的实现

文章目录栈的概念栈的特点栈的操作Python 实现栈栈的简单应用:括号匹配问题栈的简单应用:倒序输出一组元素栈的概念 栈(stack)又名堆栈,栈是一种线性数据结构,用先进后出或者是后进先出的方式存储数据&…

Scala学习

Scala学习(1.在菜鸟驿站简单学习) 由于学过java等语言,Scala简单的把语法多敲多练习就可以 新语言开始学习主要是语法的熟悉阶段,菜鸟教程里的内容全部完成一遍 object HelloWorld {def main(args: Array[String]): Unit {pri…

CSDN 2020 博客之星实时数据排名(Python 爬虫 + PyEcharts)

CSDN 2020 博客之星实时数据排名:csdn.itrhx.com CSDN 一年一度的博客之星评选开始了,官网地址:https://bss.csdn.net/m/topic/blog_star2020 ,由于官网是按照随机编号排序的,没有按照票数多少排序,为了方便…

Scala进阶-函数练习

1) map()函数 可以对整个集合进行操作,比如 创建一个Seq列表,然后用map对集合*2 val salaries Seq(2,3,4,5)val newsalaries salaries.map(_*2)2) flatMap函数 faltMap函数是map一种扩展,faltMap中传入一个函数&a…

【转】注册Azure AD 应用程序

作者:陈希章 发表于2017年3月22日 在此前的文章中,我给大家介绍了分别用Graph 浏览器以及第三方工具(POSTMAN)快速体验Microsoft Graph的功能,其中有一个重要的环节就是,开发人员需要访问Microsoft Graph的…