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

2024-01-01 23:48

本文主要是介绍【转】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记录一下如何通过代码获取访问令牌。

这篇关于【转】D365 FO第三方集成(一)---访问认证(应用注册)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/560825

相关文章

springboot依靠security实现digest认证的实践

《springboot依靠security实现digest认证的实践》HTTP摘要认证通过加密参数(如nonce、response)验证身份,避免明文传输,但存在密码存储风险,相比基本认证更安全,却因... 目录概述参数Demopom.XML依赖Digest1Application.JavaMyPasswo

利用Python操作Word文档页码的实际应用

《利用Python操作Word文档页码的实际应用》在撰写长篇文档时,经常需要将文档分成多个节,每个节都需要单独的页码,下面:本文主要介绍利用Python操作Word文档页码的相关资料,文中通过代码... 目录需求:文档详情:要求:该程序的功能是:总结需求:一次性处理24个文档的页码。文档详情:1、每个

SpringBoot集成WebService(wsdl)实践

《SpringBoot集成WebService(wsdl)实践》文章介绍了SpringBoot项目中通过缓存IWebService接口实现类的泛型入参类型,减少反射调用提升性能的实现方案,包含依赖配置... 目录pom.XML创建入口ApplicationContextUtils.JavaJacksonUt

Java中的分布式系统开发基于 Zookeeper 与 Dubbo 的应用案例解析

《Java中的分布式系统开发基于Zookeeper与Dubbo的应用案例解析》本文将通过实际案例,带你走进基于Zookeeper与Dubbo的分布式系统开发,本文通过实例代码给大家介绍的非常详... 目录Java 中的分布式系统开发基于 Zookeeper 与 Dubbo 的应用案例一、分布式系统中的挑战二

Java 缓存框架 Caffeine 应用场景解析

《Java缓存框架Caffeine应用场景解析》文章介绍Caffeine作为高性能Java本地缓存框架,基于W-TinyLFU算法,支持异步加载、灵活过期策略、内存安全机制及统计监控,重点解析其... 目录一、Caffeine 简介1. 框架概述1.1 Caffeine的核心优势二、Caffeine 基础2

使用Node.js和PostgreSQL构建数据库应用

《使用Node.js和PostgreSQL构建数据库应用》PostgreSQL是一个功能强大的开源关系型数据库,而Node.js是构建高效网络应用的理想平台,结合这两个技术,我们可以创建出色的数据驱动... 目录初始化项目与安装依赖建立数据库连接执行CRUD操作查询数据插入数据更新数据删除数据完整示例与最佳

使用Go调用第三方API的方法详解

《使用Go调用第三方API的方法详解》在现代应用开发中,调用第三方API是非常常见的场景,比如获取天气预报、翻译文本、发送短信等,Go作为一门高效并发的编程语言,拥有强大的标准库和丰富的第三方库,可以... 目录引言一、准备工作二、案例1:调用天气查询 API1. 注册并获取 API Key2. 代码实现3

springboot集成easypoi导出word换行处理过程

《springboot集成easypoi导出word换行处理过程》SpringBoot集成Easypoi导出Word时,换行符n失效显示为空格,解决方法包括生成段落或替换模板中n为回车,同时需确... 目录项目场景问题描述解决方案第一种:生成段落的方式第二种:替换模板的情况,换行符替换成回车总结项目场景s

SpringBoot集成redisson实现延时队列教程

《SpringBoot集成redisson实现延时队列教程》文章介绍了使用Redisson实现延迟队列的完整步骤,包括依赖导入、Redis配置、工具类封装、业务枚举定义、执行器实现、Bean创建、消费... 目录1、先给项目导入Redisson依赖2、配置redis3、创建 RedissonConfig 配

PHP应用中处理限流和API节流的最佳实践

《PHP应用中处理限流和API节流的最佳实践》限流和API节流对于确保Web应用程序的可靠性、安全性和可扩展性至关重要,本文将详细介绍PHP应用中处理限流和API节流的最佳实践,下面就来和小编一起学习... 目录限流的重要性在 php 中实施限流的最佳实践使用集中式存储进行状态管理(如 Redis)采用滑动