第 1 章 启用 Microsoft Azure 身份验证供应商
Red Hat Developer Hub 包括一个 Microsoft Azure 身份验证供应商,可以使用 OAuth 验证用户。
流程
要允许 Developer Hub 与 Microsoft Azure 进行身份验证,请在 Microsoft Azure 中创建 OAuth 应用程序。
- 进入 Azure Portal > App registrations,并为 Developer Hub 创建 App Registration。
在 App registration overview 页面中,使用 配置添加新的 Web 平台 配置:
- 重定向 URI
-
输入 Developer Hub 中设置的后端身份验证 URI:
https:// <APP_FQDN> /api/auth/microsoft/handler/frame
- front-channel logout URL
- 留空。
- 隐式授权和混合流
- 保留所有复选框都未清除。
在 API 权限 选项卡中,单击 Add Permission,然后为 Microsoft Graph API 添加以下 委派权限 :
-
email
-
offline_access
-
openid
-
配置集
-
user.Read
您可以在此处和 Developer Hub 配置中定义 Microsoft Graph API 的可选自定义范围(
app-config-rhdh.yaml
)。注意您的公司可能需要您授予 admin 同意这些权限。即使您的公司不需要管理员同意,您可能也要这样做,因为这意味着用户在第一次访问阶段时不需要单独同意。要授予 admin 同意,目录 admin 必须前往 admin consent 页面,然后单击 COMPANY NAME 的 Grant admin consent。
-
- 进入 Certificates & Secrets 页面,然后进入 Client secret 选项卡,并创建新的客户端 secret。为下一步保存 Client secret。
在 Developer Hub secret 中添加 Microsoft Azure 凭证。
-
编辑 Developer Hub secret,如
secrets-rhdh
。 添加以下键/值对:
-
AUTH_AZURE_CLIENT_ID
:输入您在 Microsoft Azure 上生成的 应用程序 ID。 -
AUTH_AZURE_CLIENT_SECRET
:输入您在 Microsoft Azure 上生成的 客户端 secret。 -
AUTH_AZURE_TENANT_ID
: 在 Microsoft Azure 上输入您的 租户 ID。
-
-
编辑 Developer Hub secret,如
在 Developer Hub 自定义配置中设置 Microsoft Azure 身份验证供应商。
编辑自定义 Developer Hub 配置映射,如
app-config-rhdh
。在
app-config-rhdh.yaml
内容中,在 rootauth
配置下添加microsoft
供应商配置,并启用microsoft
供应商 for sign-in :app-config-rhdh.yaml
fragmentauth: environment: production providers: microsoft: production: clientId: ${AUTH_AZURE_CLIENT_ID} clientSecret: ${AUTH_AZURE_CLIENT_SECRET} tenantId: ${AUTH_AZURE_TENANT_ID} # domainHint: ${AUTH_AZURE_TENANT_ID} 1 # additionalScopes: 2 # - Mail.Send signInPage: microsoft 3
- 1
- 可选的用于单租户应用程序。您可以通过从其他租户过滤出帐户,减少具有多个租户中帐户的登录侵权。如果要将此参数用于单租户应用,请取消注释并输入租户 ID。如果您的应用程序注册是多租户的,请将此参数留空。如需更多信息,请参阅 Home Realm Discovery。
- 2
- 可选用于其他范围。要为应用程序注册添加范围,取消注释并输入您要添加的范围列表。默认值为
['user.read']
。 - 3
- 要启用 Microsoft Azure 供应商作为默认登录供应商。
对于对外向访问有限制的环境,可选,如防火墙规则。如果您的环境有传出的访问限制,请确保您的 Backstage 后端可以访问以下主机:
-
login.microsoftonline.com
:要获取并交换授权代码和访问令牌。 -
graph.microsoft.com
:要获取用户配置文件信息(如此源代码中所示)。如果这个主机无法访问,用户可能会看到 Authentication failed,在尝试登录时无法获取用户配置集 错误。