4.2. 将用户从 Microsoft Azure 置备到软件目录


要使用 Microsoft Azure 验证用户身份,请在使用 Microsoft Azure 启用身份验证 后,将用户从 Microsoft Azure 置备到 Developer Hub 软件目录。

先决条件

流程

  1. 启用 backstage-plugin-catalog-backend-module-msgraph-dynamic 插件

    dynamic-plugins.yaml 文件片段

    plugins:
      - package: './dynamic-plugins/dist/backstage-plugin-catalog-backend-module-msgraph-dynamic'
        disabled: false
    Copy to Clipboard

  2. 要启用 Microsoft Azure 成员发现,请编辑 app-config.yaml,自定义 Developer Hub 配置文件:

    带有强制 microsoftGraphOrg 字段的 app-config.yaml 片段

    catalog:
      providers:
        microsoftGraphOrg:
          providerId:
            target: https://graph.microsoft.com/v1.0
            tenantId: ${AUTH_AZURE_TENANT_ID}
            clientId: ${AUTH_AZURE_CLIENT_ID}
            clientSecret: ${AUTH_AZURE_CLIENT_SECRET}
            schedule:
              frequency: { hours: 1 }
              timeout: { minutes: 50 }
              initialDelay: { minutes: 50 }
    Copy to Clipboard

    target: https://graph.microsoft.com/v1.0
    定义提供程序所连接的 MSGraph API 端点。您可以更改此参数,以使用不同的版本,如 beta 端点
    tenandId,clientIdclientSecret
    使用您在 Microsoft Azure 中创建的 Developer Hub 应用程序信息,并在 OpenShift 中配置为 secret。
    调度
    频率
    输入调度频率为 cron、ISO 持续时间或代码中使用的人工持续时间。
    timeout
    输入调度超时作为 ISO 持续时间或代码中使用的人为持续时间。
    initialDelay

    输入调度初始延迟作为 ISO 持续时间或代码中使用的 human 持续时间。

    提示

    在大型组织中,此插件可能需要很长时间。因此,在第一次导入大量用户和组时,避免设置低频率或超时。

可选: 考虑添加以下 microsoftGraphOrg.providerId 字段:

authority: https://login.microsoftonline.com

定义所用的授权。更改该值以使用其他授权机构 如 Azure US government。默认值 :https://login.microsoftonline.com。

带有可选 queryMode 字段的 app-config.yaml 片段

catalog:
  providers:
    microsoftGraphOrg:
      providerId:
        authority: https://login.microsoftonline.com/
Copy to Clipboard

queryMode: basic | advanced

默认情况下,Microsoft Graph API 只提供 用于查询的基本 功能集。某些功能需要 高级查询 功能。请参阅 Microsoft Azure 高级查询

带有可选 queryMode 字段的 app-config.yaml 片段

catalog:
  providers:
    microsoftGraphOrg:
      providerId:
        queryMode: advanced
Copy to Clipboard

user.expand

要在结果中包含单一关系(navigation 属性)引用的扩展资源或集合。在一个请求中只能扩展一个关系。请参阅 Microsoft Graph query expand parameter。这个参数可以与 ] 或 xref:userFilter[ 结合使用。

带有可选 user.expand 字段的 app-config.yaml 片段

catalog:
  providers:
    microsoftGraphOrg:
      providerId:
        user:
          expand: manager
Copy to Clipboard

user.filter

过滤用户。请参阅 Microsoft Graph APIMicrosoft Graph API 查询过滤器参数语法。这个参数和 ???TITLE??? 是相互排斥的,只能指定一个。

带有可选 user.filter 字段的 app-config.yaml 片段

catalog:
  providers:
    microsoftGraphOrg:
      providerId:
        user:
          filter: accountEnabled eq true and userType eq 'member'
Copy to Clipboard

user.loadPhotos: true | false

默认加载照片。设置为 false 以不加载用户 photos。

带有可选 user.loadPhotos 字段的 app-config.yaml 片段

catalog:
  providers:
    microsoftGraphOrg:
      providerId:
        user:
          loadPhotos: true
Copy to Clipboard

user.select

定义要检索的 Microsoft Graph 资源类型

带有可选 user.select 字段的 app-config.yaml 片段

catalog:
  providers:
    microsoftGraphOrg:
      providerId:
        user:
          select: ['id', 'displayName', 'description']
Copy to Clipboard

userGroupMember.filter

使用组成员资格来获取用户。过滤组并获取其成员。这个参数和 ???TITLE??? 是相互排斥的,只能指定一个。

带有可选 userGroupMember.filter 字段的 app-config.yaml 片段

catalog:
  providers:
    microsoftGraphOrg:
      providerId:
        userGroupMember:
          filter: "displayName eq 'Backstage Users'"
Copy to Clipboard

userGroupMember.search

使用组成员资格来获取用户。搜索组并获取其成员。这个参数和 ???TITLE??? 是相互排斥的,只能指定一个。

带有可选 userGroupMember.search 字段的 app-config.yaml 片段

catalog:
  providers:
    microsoftGraphOrg:
      providerId:
        userGroupMember:
          search: '"description:One" AND ("displayName:Video" OR "displayName:Drive")'
Copy to Clipboard

group.expand

可选参数,在结果中包含单一关系(navigation 属性)引用的扩展资源或集合。在一个请求中只能扩展一个关系。请参阅 https://docs.microsoft.com/en-us/graph/query-parameters#expand-parameter 这个参数与 ] 而不是 xref:userFilter[ 结合使用。

带有可选 group.expand 字段的 app-config.yaml 片段

catalog:
  providers:
    microsoftGraphOrg:
      providerId:
        group:
          expand: member
Copy to Clipboard

group.filter

过滤组。请参阅 Microsoft Graph API 查询组语法

带有可选 group.filter 字段的 app-config.yaml 片段

catalog:
  providers:
    microsoftGraphOrg:
      providerId:
        group:
          filter: securityEnabled eq false and mailEnabled eq true and groupTypes/any(c:c+eq+'Unified')
Copy to Clipboard

group.search

搜索组。请参阅 Microsoft Graph API 查询搜索参数

带有可选 group.search 字段的 app-config.yaml 片段

catalog:
  providers:
    microsoftGraphOrg:
      providerId:
        group:
          search: '"description:One" AND ("displayName:Video" OR "displayName:Drive")'
Copy to Clipboard

group.select

要定义要检索的 Microsoft Graph 资源类型

带有可选 group.select 字段的 app-config.yaml 片段

catalog:
  providers:
    microsoftGraphOrg:
      providerId:
        group:
          select: ['id', 'displayName', 'description']
Copy to Clipboard

验证

  1. 检查控制台日志,以验证同步是否已完成。

    成功同步示例:

    backend:start: {"class":"MicrosoftGraphOrgEntityProvider$1","level":"info","message":"Read 1 msgraph users and 1 msgraph groups in 2.2 seconds. Committing...","plugin":"catalog","service":"backstage","taskId":"MicrosoftGraphOrgEntityProvider:default:refresh","taskInstanceId":"88a67ce1-c466-41a4-9760-825e16b946be","timestamp":"2024-06-26 12:23:42"}
    backend:start: {"class":"MicrosoftGraphOrgEntityProvider$1","level":"info","message":"Committed 1 msgraph users and 1 msgraph groups in 0.0 seconds.","plugin":"catalog","service":"backstage","taskId":"MicrosoftGraphOrgEntityProvider:default:refresh","taskInstanceId":"88a67ce1-c466-41a4-9760-825e16b946be","timestamp":"2024-06-26 12:23:42"}
    Copy to Clipboard

  2. 使用 Microsoft Azure 帐户登录。
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat