Web 服务身份验证

已完成

使用 C#、Python 或 Java 等其他编程语言开发应用程序时,需要先向 Business Central 服务提供身份验证凭据,然后才能使用不同的 Web 服务。 身份验证可用于 Business Central 中的 OData 和 SOAP Web 服务。

有两个 Business Central 身份验证选项:基本身份验证OAuth2 身份验证。 使用基本身份验证,您需要提供用户名和 Web 服务访问密钥作为密码,而对于 OAuth2,您需要配置 Microsoft Entra ID 应用程序。 自 2022 年 4 月起,Business Central SaaS 不再支持基本身份验证。 只有本地版本仍然支持基本身份验证。

这意味着 OAuth2 是 SaaS 版本的唯一选项,也是我们将在本学习模块中讨论的选项。

OAuth2 是由 IETF OAuth Working Group 定义的开放标准。 OAuth2 支持不同的身份验证流程,Business Central 支持其中的两种:

  • 授权代码流程

  • 客户端凭据流程

授权代码流程需要提供 Microsoft Entra ID 登录名和密码登录。 它与登录 Business Central 应用程序使用的登录名和密码相同。 通常也与 Office 365/Microsoft 365 服务使用的登录名相同。 这样,使用 OAuth2 连接到 Business Central 的应用程序,将使用您的凭据登录,因此就像是您登录一样。 这也意味着该应用程序使用的权限与 Business Central 中分配给您的用户帐户的权限相同。 此流程不需要单独的许可证,因为它使用用户许可证运行。

系统将提示用户输入凭据,因此用户每次都会看到登录对话框。 这意味着您不能将此流程用于没有用户界面的应用程序(例如:在后台运行的服务或需要检索商品信息的网上商店)。

此流程使用的权限为 Microsoft Entra ID 应用程序中的委托权限

客户端凭据流程是为需要在后台运行的服务提供的解决方案。 这个流程只需要一个客户端 ID 和一个客户端密码,不需要用户登录。 Microsoft 提供一个特殊的“应用程序”许可证,可以将其用于这些类型的应用程序,并且它是免费的。 但是不能将其用于与用户相关的服务(例如:时间、注册)。

此流程使用的权限为 Microsoft Entra ID 应用程序中的应用程序权限(服务到服务 (S2S))。

要设置 OAuth,您需要在 Microsoft Entra ID 中创建一个应用程序。 打开 Microsoft Entra ID 门户并使用组织帐户登录。

登录后,您可以从左侧的服务菜单中选择 Microsoft Entra ID。 如果找不到,请选择所有服务项目,概览门户中的所有 Microsoft Entra ID 服务,并从中选择 Microsoft Entra ID。

Microsoft Entra ID 中心的屏幕截图。

打开 Microsoft Entra ID 项目后,您需要选择应用注册,创建一个新应用。

选中“应用注册”的屏幕截图。

选择 + 新建注册按钮,开始新的应用程序注册。 提供描述应用程序的名称,选择仅此组织目录中的帐户(仅限 CompanyName - 单租户),并选择 Web 作为平台,https://businesscentral.dynamics.com/OAuthLanding.htm 作为重定向 URI。 选择注册开始注册。

重定向 URI 务必与上面描述的完全一样,因为此 URI 区分大小写。

注册应用程序页面的屏幕截图。

选择菜单中的证书和密码,创建新的客户端密码。 系统将要求您输入说明和到期日期。 到期日期最多只能为 24 个月。 也就是说,您应该每 24 个月(或更早)创建一个新密钥。

确保复制客户端密码的值,因为离开此页面后该值将不再可见。

下一步是指定 API 权限。 从菜单中选择 API 权限,然后选择 + 添加权限按钮。 从列表中选择 Dynamics 365 Business Central。 现在将为您提供两个选项(我们在上面介绍过):

  • 委托的权限

  • 应用程序权限

选择委托的权限,创建以特定用户身份登录的应用程序。 选中后,您可以从列表中选择 Financials.ReadWrite.All,再选择添加权限

“请求 API 权限”页面的屏幕截图。

使用 OAuth2 时,您需要一些值来设置身份验证。 现在要收集所有值:

  • 客户端 ID:您可以在应用程序的概述页面找到此值。 这是应用程序 (客户端) ID GUID 值。

  • 客户端密码:您从证书和密码页复制的值

  • OAuth 2.0 授权终结点:选择终结点按钮打开一个窗格,您可以在其中选择此终结点值。

  • OAuth 2.0 令牌终结点:选择终结点按钮打开一个窗格,您可以在其中选择此终结点值。

  • 范围:这取决于您要支持的 OAuth2 流程的类型。 对于委托的权限为 https://api.businesscentral.dynamics.com/Financials.ReadWrite.All,对于应用程序权限为 https://api.businesscentral.dynamics.com/.default

OAuth2 身份验证值的屏幕截图。

现在您已准备好使用这些值来设置 OAuth2 身份验证。