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


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

先决条件

流程

  • 要启用 Microsoft Azure 成员发现,请编辑自定义 Developer Hub ConfigMap,如 app-config-rhdh,并将以下行添加到 app-config-rhdh.yaml 内容中:

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

    dangerouslyAllowSignInWithoutUserInCatalog: false
    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}

    dangerouslyAllowSignInWithoutUserInCatalog: false
    仅允许 Developer Hub 软件目录中的用户进行身份验证。
    target: https://graph.microsoft.com/v1.0
    定义提供程序所连接的 MSGraph API 端点。您可以更改此参数,以使用不同的版本,如 beta 端点
    tenandId,clientIdclientSecret
    使用您在 Microsoft Azure 中创建的 Developer Hub 应用程序信息,并在 OpenShift 中配置为 secret。

    可选: 考虑添加以下 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/

    queryMode: basic | advanced

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

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

    catalog:
      providers:
        microsoftGraphOrg:
          providerId:
            queryMode: advanced

    user.expand

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

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

    catalog:
      providers:
        microsoftGraphOrg:
          providerId:
            user:
              expand: manager

    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'

    user.loadPhotos: true | false

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

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

    catalog:
      providers:
        microsoftGraphOrg:
          providerId:
            user:
              loadPhotos: true

    user.select

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

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

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

    userGroupMember.filter

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

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

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

    userGroupMember.search

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

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

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

    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

    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')

    group.search

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

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

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

    group.select

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

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

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

    schedule.frequency

    指定自定义调度频率。支持代码中使用的 cron、ISO 持续时间和"human 持续时间"。

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

    catalog:
      providers:
        microsoftGraphOrg:
          providerId:
            schedule:
              frequency: { hours: 1 }

    schedule.timeout

    指定自定义超时。支持代码中使用的 ISO 持续时间和"human duration"。

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

    catalog:
      providers:
        microsoftGraphOrg:
          providerId:
            schedule:
              timeout: { minutes: 50 }

    schedule.initialDelay

    指定自定义初始延迟。支持代码中使用的 ISO 持续时间和"human duration"。

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

    catalog:
      providers:
        microsoftGraphOrg:
          providerId:
            schedule:
              initialDelay: { seconds: 15}

验证

  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"}

  2. 使用 Microsoft Azure 帐户登录。
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.