1

我正在使用 Azure AD 配置 Scim API。在配置企业应用程序时,这个“测试连接”有什么作用?

在我的情况下,我要配置的 API 端点是“ https://myapi.company.com/api/v2 ”,其中资源 URL 的格式为“ https://myapi.company.com/api/v2/scim /[资源] ”。我没有在租户 URL 中包含“scim”(根据附加的图像),因为 Azure AD 在发送请求时默认添加了它(这在某种程度上有点奇怪)。[AzureAD 将 /scim/[Resource] 例如 /scim/Users 添加到提供的基本 URL。] [参考] 1

当我尝试(单击“测试连接”或尝试保存而不测试连接)时,租户 URL 测试连接的“ https://myapi.company.com/api/v2 ”失败。

错误消息“您似乎输入了无效的凭据。请确认您使用的是正确的管理帐户信息。'。这对我来说没有任何意义。

作为实验,当尝试“ https://myapi.company.com/api/v2/scim/ ”时它是成功的。

当尝试“ https://myapi.company.com/api/v2 ”时,它是成功的。

从 Postman 或浏览器尝试时,上述所有 3 个 URL 都会给出 404。无法理解 AzureAD 对测试连接的作用。

测试连接有什么作用?

4

2 回答 2

1

测试连接发送如下请求:

GET /Users?filter=userName eq "non-existent user"

并期待这样的回应:

HTTP/1.1 200 OK
{
    "schemas": ["urn:ietf:params:scim:api:messages:2.0:ListResponse"],
    "totalResults": 0,
    "Resources": [],
    "startIndex": 1,
    "itemsPerPage": 20
}

https://docs.microsoft.com/en-us/azure/active-directory/app-provisioning/use-scim-to-provision-users-and-groups#get-user-by-query---zero-结果

于 2020-04-13T01:59:56.653 回答
0

当您按下Test Connection几个请求时,将发送到Tenant URL(SCIM 端点):

GET /scim/v2/Groups?excludedAttributes=members&filter=displayName+eq+%22AzureAD_Test-d3951745-df3d-40ae-a0a4-cc3099c34c47%22
GET /scim/v2/Users?filter=userName+eq+%22AzureAD_Test-d3951745-df3d-40ae-a0a4-cc3099c34c47%22

实际值displayNameuserName请求值是随机生成的,因此应为空ListResponse(状态码为 200 OK):

{
    "schemas": ["urn:ietf:params:scim:api:messages:2.0:ListResponse"],
    "totalResults": 0,
    "Resources": [],
    "startIndex": 1,
    "itemsPerPage": 20
}

文档中提到了这种行为:

Microsoft Azure AD 发出请求以获取随机用户和组,以确保端点和凭据有效。它也是 Azure 门户中测试连接流的一部分。

于 2020-06-08T07:32:10.790 回答