注册 SaaS 应用程序

本文介绍如何使用 Microsoft Azure 门户 注册 SaaS 应用程序,以及如何获取发布者的访问令牌(Microsoft Entra 访问令牌)。 发布者将使用此令牌通过调用 SaaS 履行 API 对 SaaS 应用程序进行身份验证。 履行 API 使用 OAuth 2.0 客户端凭据在 Microsoft Entra ID (v2.0) 终结点上授予流,以发出服务到服务访问令牌请求。

Azure 市场不会对 SaaS 服务用于最终用户的身份验证方法施加任何约束。 下面的流仅在 Azure 市场中对 SaaS 服务进行身份验证时是必需的。

有关 Microsoft Entra ID(Active Directory)的详细信息,请参阅 什么是身份验证

注册由 Microsoft Entra ID 保护的应用程序

任何想要使用 Microsoft Entra ID 功能的应用程序都必须首先在 Microsoft Entra 租户中注册。 此注册过程涉及提供Microsoft Entra 有关应用程序的一些详细信息。 若要使用 Azure 门户注册新应用程序,请执行以下步骤:

  1. 登录到 Azure 门户

  2. 如果帐户允许你访问多个帐户,请选择右上角的帐户。 然后将门户会话设置为所需的 Microsoft Entra 租户。

  3. 在左侧导航窗格中,选择 Microsoft Entra ID 服务,选择 应用注册,然后选择 新应用程序注册

    SaaS Entra 应用注册屏幕的屏幕截图。

  4. 在“创建”页上,输入应用程序的注册信息:

    • 名称:输入有意义的应用程序名称

    • 支持的帐户类型

      选择“仅此组织目录中的帐户(单个租户)”

  5. 完成后,选择“注册”。 Microsoft Entra ID 为新应用程序分配唯一 应用程序 ID。 必须注册一个仅访问该 API 的应用,并注册为单个租户。

  6. 若要创建客户端机密,请导航到 证书 & 机密 页,然后选择 +新建客户端密码。 请务必复制机密值以在代码中使用。

Microsoft Entra 应用 ID 与发布者 ID 相关联,因此请确保在所有产品/服务中都使用相同的应用 ID。

注意

如果发布者在合作伙伴中心有两个或更多不同的帐户,则Microsoft Entra 应用注册详细信息只能在一个帐户中使用。 不支持在不同发布者帐户下为产品/服务使用相同的租户 ID 和应用 ID 对。

注意

必须在用于创建令牌的租户中为已注册的应用创建服务主体。 请参阅本文档 如何为应用注册创建服务主体

如何获取发布者的授权令牌

注册应用程序后,可以使用 Azure AD v2 终结点以编程方式请求发布者的授权令牌(Microsoft Entra 访问令牌)。 发布者在调用各种 SaaS 履行 API 时必须使用此令牌。 此令牌仅有效一小时。

有关这些令牌的详细信息,请参阅 Microsoft Entra 访问令牌。 在下面的流中使用了 V2 终结点令牌。

使用 HTTP POST 获取令牌

HTTP 方法

发布

请求 URL

https://login.microsoftonline.com/*{tenantId}*/oauth2/v2.0/token

URI 参数
参数名称 必填 描述
tenantId True 已注册 Microsoft Entra 应用程序的租户 ID。
请求标头
标头名称 必填 描述
content-type True 与请求关联的内容类型。 默认值为 application/x-www-form-urlencoded
请求正文
属性名 必填 描述
grant_type True 授予类型。 使用 "client_credentials"
client_id True 与 Microsoft Entra 应用关联的客户端/应用标识符。
client_secret True 与 Microsoft Entra 应用关联的机密。
scope True 使用默认作用域请求令牌的目标资源。 使用 20e940b3-4c77-4b0b-9a53-9e16a1b010a7/.default,因为在这种情况下,Marketplace SaaS API 总是作为目标资源。
Response
名字 类型 描述
200 正常 TokenResponse 请求成功。
TokenResponse

示例响应:

{
      "token_type": "Bearer",
      "expires_in": "3600",
      "ext_expires_in": "0",
      "access_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6ImlCakwxUmNxemhpeTRmcHhJeGRacW9oTTJZayIsImtpZCI6ImlCakwxUmNxemhpeTRmcHhJeGRacW9oTTJZayJ9…"
  }
元素 描述
access_token 此元素是你在调用所有 SaaS 履行和市场计量 API 时作为授权参数传递的 <access_token>。 调用受保护的 REST API 时,令牌作为“持有者”令牌嵌入 Authorization 请求标头字段中,允许 API 对调用方进行身份验证。
expires_in 访问令牌自颁发之日起、在到期之前持续有效的秒数。 可以在令牌的 iat 声明字段中找到颁发时间。
expires_on 访问令牌过期的时间跨度。 日期表示为“1970-01-01T0:0:0Z UTC”(对应于令牌的 exp 声明)中的秒数。
token_type 令牌的类型,即“持有者”访问令牌,这意味着资源可以向此令牌持有者授予访问权限。

受 Microsoft Entra ID 保护的应用现在可以使用 SaaS 履行订阅 API 版本 2SaaS 履行运营 API 版本 2

视频教程