第1章 Microsoft Azure 認証プロバイダーの有効化
Red Hat Developer Hub には、OAuth を使用してユーザーを認証できる Microsoft Azure 認証プロバイダーが組み込まれています。
手順
Developer Hub が Microsoft Azure で認証できるようにするために、Microsoft Azure で OAuth アプリケーションを作成します。
- Azure Portal > App registrations に移動し、Developer Hub 用の App Registration を作成します。
App registration の概要ページで、次の設定を含む新しい Web platform configuration を追加します。
- Redirect URI
-
Developer Hub で設定されているバックエンド認証 URI (
https://<APP_FQDN>/api/auth/microsoft/handler/frame
) を入力します。 - Front-channel logout URL
- 空白のままにします。
- Implicit grant and hybrid flows
- すべてのチェックボックスをオフのままにします。
API permissions タブで Add Permission をクリックし、Microsoft Graph API に対して次の Delegated permission を追加します。
-
email
-
offline_access
-
openid
-
profile
-
User.Read
Microsoft Graph API のオプションのカスタムスコープ。この場所と、Developer Hub 設定 (
app-config-rhdh.yaml
) の両方で定義します。注記企業によっては、これらの権限に対して管理者の同意を与えることが必要な場合があります。管理者の同意が必要ない場合でも、管理者の同意を与える場合があります。そうすることで、ユーザーが初めて Backstage にアクセスするときに、個別に同意する必要がなくなるためです。管理者の同意を与えるには、ディレクトリー管理者が admin consent ページに移動し、Grant admin consent for COMPANY NAME をクリックする必要があります。
-
- Certificates & Secrets ページに移動し、Client secrets タブで新しいクライアントシークレットを作成します。次のステップのために Client secret を保存します。
Developer Hub のシークレットに Microsoft Azure 認証情報を追加します。
-
secrets-rhdh
などの Developer Hub シークレットを編集します。 以下のキーと値のペアを追加します。
-
AUTH_AZURE_CLIENT_ID
: Microsoft Azure で生成した Application ID を入力します。 -
AUTH_AZURE_CLIENT_SECRET
: Microsoft Azure で生成した Client secret を入力します。 -
AUTH_AZURE_TENANT_ID
: Microsoft Azure の Tenant ID を入力します。
-
-
Developer Hub のカスタム設定で Microsoft Azure 認証プロバイダーを設定します。
app-config-rhdh
などのカスタム Developer Hub config map を編集します。app-config-rhdh.yaml
コンテンツで、ルートのauth
設定の下にMicrosoft
プロバイダー設定を追加し、サインイン用にMicrosoft
プロバイダーを有効にします。app-config-rhdh.yaml
の一部auth: 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, failed to fetch user profile というエラーが表示されることがあります。