次の方法で共有

教程:在 Microsoft Entra ID 中开发示例 SCIM 终结点

本教程介绍如何使用 Azure 应用服务部署 SCIM 引用代码。 然后,使用 cURL 之类的工具或与 Microsoft Entra 预配服务集成来测试代码。 本教程适用于想要开始使用 SCIM 的开发人员,或者任何有兴趣测试 SCIM 终结点的开发人员。

本教程中,您将学习如何:

  • 在 Azure 中部署 SCIM 终结点。
  • 测试 SCIM 端点。

在 Azure 中部署 SCIM 终结点

此处的步骤使用 Visual Studio 2019Visual Studio CodeAzure 应用服务将 SCIM 终结点部署到服务。 SCIM 引用代码可以在本地运行、由本地服务器托管或部署到另一个外部服务。 有关预配 SCIM 终结点的信息,请参阅 教程:开发和规划 SCIM 终结点的预配

获取和部署示例应用

转到 GitHub 中的 引用代码 ,然后选择 “克隆”或“下载”。 选择“ 在桌面中打开”,或复制链接,打开 Visual Studio,然后选择 “克隆”或“签出代码 ”以输入复制的链接并创建本地副本。 将文件保存到路径总长度为 260 或更少字符的文件夹。

  1. 在 Visual Studio 中,请确保登录到有权访问托管资源的帐户。

  2. 在解决方案资源管理器中,打开 Microsoft.SCIM.sln ,然后右键单击 Microsoft.SCIM.WebHostSample 文件。 选择发布

    显示示例文件的屏幕截图。

    注释

    若要在本地运行此解决方案,请双击该项目,然后选择 IIS Express 以使用本地主机 URL 启动项目作为网页。 有关详细信息,请参阅 IIS Express 概述

  3. 选择“ 创建配置文件 ”,并确保已选择 “应用服务 ”和 “新建 ”。

    显示“发布”窗口的屏幕截图。

  4. 单步执行对话框选项,并将应用重命名为所选名称。 此名称用于应用程序和 SCIM 终结点 URL。

    显示创建新应用服务的屏幕截图。

  5. 选择要使用的资源组,然后选择“ 发布”。

    显示发布新应用服务的屏幕截图。

配置应用服务

转到 Azure 应用服务>配置 中的应用程序,并选择 新建应用程序设置,以添加名为 Token__TokenIssuer 的设置并赋予适当的值https://sts.chinacloudapi.cn/<tenant_id>/。 将 <tenant_id> 替换为 Microsoft Entra 租户 ID。

显示“应用程序设置”窗口的屏幕截图。

Microsoft Entra 管理中心使用企业应用程序测试终结点时,有两个选项。 可以将环境保持在 Development 并从终结点 /scim/token 提供测试令牌,或者可以将环境更改为 Production 并将令牌字段留空。

就是这样! SCIM 终结点现已发布,可以使用 Azure 应用服务 URL 测试 SCIM 终结点。

测试 SCIM 终结点

向 SCIM 终结点发出的请求需要授权。 SCIM 标准有多个可用选项。 请求可以使用 Cookie、基本身份验证、TLS 客户端身份验证或 RFC 7644 中列出的任何方法。

请务必避免不安全的方法,例如用户名和密码,以支持更安全的方法,如 OAuth。 Microsoft Entra ID 支持长期有效的持有者令牌(适用于图库和非图库应用程序)和 OAuth 授权许可(对于图库应用程序)。

注释

存储库中提供的授权方法仅用于测试。 与 Microsoft Entra ID 集成后,可以查看授权指南。 请参阅 SCIM 终端节点的规划配置

开发环境启用生产环境中不安全的功能,例如使用参考代码来控制安全令牌验证的过程。 令牌验证代码使用自签名安全令牌,签名密钥存储在配置文件中。 请参阅 appsettings.Development.json 文件中的 Token:IssuerSigningKey 参数。

"Token": {
    "TokenAudience": "Microsoft.Security.Bearer",
    "TokenIssuer": "Microsoft.Security.Bearer",
    "IssuerSigningKey": "A1B2C3D4E5F6A1B2C3D4E5F6",
    "TokenLifetimeInMins": "120"
}

注释

/scim/token终结点发送GET请求时,将使用配置的密钥发放令牌。 该令牌可用作后续授权的持有者令牌。

默认令牌验证代码配置为使用 Microsoft Entra 令牌,并要求在 appsettings.json 文件中使用 Token:TokenIssuer 参数配置颁发租户。

"Token": {
    "TokenAudience": "8adf8e6e-67b2-4cf2-a259-e3dc5476c621",
    "TokenIssuer": "https://sts.chinacloudapi.cn/<tenant_id>/"
}

后续步骤