注册 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 门户注册新应用程序,请执行以下步骤:
登录到 Azure 门户。
如果帐户有权访问多个租户,请在右上角选择该帐户。 然后将门户会话设置为所需的Microsoft Entra 租户。
在左侧导航窗格中,选择Microsoft Entra ID 服务,选择应用注册,然后选择“新建应用程序注册”。
在“创建”页上,输入应用程序的注册信息:
名称:输入有意义的应用程序名称
支持的帐户类型:
仅选择此组织目录中的帐户(单租户)。
完成后,选择“注册”。 Microsoft Entra ID 为新应用程序分配唯 一的应用程序 ID 。 必须注册一个仅访问 API 的应用,并将其注册为单个租户。
若要创建客户端密码,请导航到“证书和机密”页,然后选择“+ 新建客户端密码”。 请确保复制该机密值,以便在代码中使用。
Microsoft Entra 应用 ID 与发布者 ID 相关联,因此请确保在所有产品/服务中使用相同的应用 ID。
注意
如果发布者在合作伙伴中心有两个或更多不同的帐户,则Microsoft Entra 应用注册详细信息只能在一个帐户中使用。 不支持使用相同的租户 ID,不支持在不同发布者帐户下为产品/服务配对应用 ID 对。
注意
必须在用于创建令牌的租户中创建已注册应用的服务主体。 请参阅本文档 ,了解如何为应用注册创建服务主体。
如何获取发布者的授权令牌
注册应用程序后,可以使用 Azure AD v2 终结点以编程方式请求发布者的授权令牌(Microsoft Entra 访问令牌)。 发布者在调用各种 SaaS 履行 API 时必须使用此令牌。 此令牌仅在 1 小时内有效。
有关这些令牌的详细信息,请参阅 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 ,因为在本例中市场 SaaS API 始终是目标资源。 |
响应
名称 | Type | 说明 |
---|---|---|
200 OK | TokenResponse | 请求成功。 |
TokenResponse
示例响应:
{
"token_type": "Bearer",
"expires_in": "3600",
"ext_expires_in": "0",
"access_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6ImlCakwxUmNxemhpeTRmcHhJeGRacW9oTTJZayIsImtpZCI6ImlCakwxUmNxemhpeTRmcHhJeGRacW9oTTJZayJ9…"
}
元素 | 说明 |
---|---|
access_token |
此元素是 <access_token> ,在调用所有 SaaS 履行和市场计量 API 时,该值将作为授权参数传递。 调用受保护 REST API 时,该令牌将作为“持有者”令牌嵌入在 Authorization 请求标头字段中,使 API 能够对调用方进行身份验证。 |
expires_in |
访问令牌在过期之前保持有效的秒数,从颁发时间开始算起。 可在令牌的 iat 声明中找到颁发时间。 |
expires_on |
访问令牌过期的时间范围。 该日期表示为自“1970-01-01T0:0:0Z UTC”开始的秒数(对应于令牌的 exp 声明)。 |
token_type |
令牌的类型,这是一个“持有者”访问令牌,意味着资源可向此令牌的持有者授予访问权限。 |
相关内容
Microsoft Entra ID 保护的应用现在可以使用 SaaS 履行订阅 API 版本 2 和 SaaS 履行操作 API 版本 2。
视频教程