4.3. Red Hat Developer Hub の認証プロバイダーとして Microsoft Azure を使用する
Developer Hub の core-plugin-api
パッケージは Microsoft Azure 認証プロバイダーと統合しており、Azure OAuth を使用してサインインを認証します。
前提条件
- Developer Hub が AKS にデプロイされている。詳細は、「Azure Kubernetes Service (AKS) への Red Hat Developer Hub のデプロイ」 を参照してください。
- アプリケーションを作成して Azure ポータルに登録した。詳細は、Register an application with the Microsoft identity platform を参照してください。
4.3.1. Helm デプロイメントの認証プロバイダーとして Microsoft Azure を使用する
Helm Chart を使用してインストールすると、Microsoft Azure を Red Hat Developer Hub の 認証プロバイダーとして使用できます。詳細は、「Helm チャートを使用して Azure Kubernetes Service (AKS) に Red Hat Developer Hub をデプロイする」 を参照してください。
手順
アプリケーションが登録されたら、次の点を書き留めます。
-
clientId
: アプリケーション (クライアント) ID。App RegistrationOverview にあります。 -
clientSecret
: シークレット。*App RegistrationCertificates & secrets にあります (必要に応じて新規作成します)。 -
tenantId
: ディレクトリー (テナント) ID。App RegistrationOverview にあります。
-
次のフラグメントが Developer Hub ConfigMap に含まれていることを確認します。
auth: environment: production providers: microsoft: production: clientId: ${AZURE_CLIENT_ID} clientSecret: ${AZURE_CLIENT_SECRET} tenantId: ${AZURE_TENANT_ID} domainHint: ${AZURE_TENANT_ID} additionalScopes: - Mail.Send
新しいファイルを作成することも、既存のファイルに追加することもできます。
ConfigMap を Kubernetes クラスターに適用します。
kubectl -n <your_namespace> apply -f <app-config>.yaml
Azure 認証情報を含む既存の Secret を作成または再利用し、次のフラグメントを追加します。
stringData: AZURE_CLIENT_ID: <value-of-clientId> AZURE_CLIENT_SECRET: <value-of-clientSecret> AZURE_TENANT_ID: <value-of-tenantId>
シークレットを Kubernetes クラスターに適用します。
kubectl -n <your_namespace> apply -f <azure-secrets>.yaml
value.yaml
ファイルが、以前に作成した ConfigMap と Secret を参照していることを確認します。upstream: backstage: ... extraAppConfig: - filename: ... configMapRef: <app-config-containing-azure> extraEnvVarsSecrets: - <secret-containing-azure>
オプション: Helm Chart がすでにインストールされている場合は、アップグレードします。
helm -n <your_namespace> upgrade -f <your-values.yaml> <your_deploy_name> redhat-developer/backstage --version 1.1.4
オプション:
rhdh.yaml
ファイルが変更されていない場合 (たとえば、そこから参照される ConfigMap と Secret のみを更新した場合)、対応する Pod を削除して Developer Hub デプロイメントを更新します。kubectl -n <your_namespace> delete pods -l backstage.io/app=backstage-<your-rhdh-cr>
4.3.2. Operator がサポートするデプロイメントの認証プロバイダーとして Microsoft Azure を使用する
Operator を使用してインストールすると、Microsoft Azure を Red Hat Developer Hub の認証プロバイダーとして使用できます。詳細は、「Operator を使用した OpenShift Container Platform への Red Hat Developer Hub のデプロイ」 を参照してください。
手順
アプリケーションが登録されたら、次の点を書き留めます。
-
clientId
: アプリケーション (クライアント) ID。App RegistrationOverview にあります。 -
clientSecret
: シークレット。*App RegistrationCertificates & secrets にあります (必要に応じて新規作成します)。 -
tenantId
: ディレクトリー (テナント) ID。App RegistrationOverview にあります。
-
次のフラグメントが Developer Hub ConfigMap に含まれていることを確認します。
auth: environment: production providers: microsoft: production: clientId: ${AZURE_CLIENT_ID} clientSecret: ${AZURE_CLIENT_SECRET} tenantId: ${AZURE_TENANT_ID} domainHint: ${AZURE_TENANT_ID} additionalScopes: - Mail.Send
新しいファイルを作成することも、既存のファイルに追加することもできます。
ConfigMap を Kubernetes クラスターに適用します。
kubectl -n <your_namespace> apply -f <app-config>.yaml
Azure 認証情報を含む既存の Secret を作成または再利用し、次のフラグメントを追加します。
stringData: AZURE_CLIENT_ID: <value-of-clientId> AZURE_CLIENT_SECRET: <value-of-clientSecret> AZURE_TENANT_ID: <value-of-tenantId>
シークレットを Kubernetes クラスターに適用します。
kubectl -n <your_namespace> apply -f <azure-secrets>.yaml
カスタムリソースマニフェストが、以前に作成した ConfigMap と Secret への参照を含むことを確認します。
apiVersion: rhdh.redhat.com/v1alpha1 kind: Backstage metadata: name: <your-rhdh-cr> spec: application: imagePullSecrets: - rhdh-pull-secret route: enabled: false appConfig: configMaps: - name: <app-config-containing-azure> extraEnvs: secrets: - name: <secret-containing-azure>
カスタムリソースマニフェストを適用します。
kubectl -n <your_namespace> apply -f rhdh.yaml
オプション:
rhdh.yaml
ファイルが変更されていない場合 (たとえば、そこから参照される ConfigMap と Secret のみを更新した場合)、対応する Pod を削除して Developer Hub デプロイメントを更新します。kubectl -n <your_namespace> delete pods -l backstage.io/app=backstage-<your-rhdh-cr>