Azure Red Hat OpenShift 4 クラスターの Microsoft Entra 認証を構成する (ポータル)

CLI をローカルにインストールして使用する場合、このチュートリアルでは、Azure CLI バージョン 2.6.0 以降を実行していることが要件です。 バージョンを確認するには、az --version を実行します。 インストールまたはアップグレードする必要がある場合は、Azure CLI のインストールに関するページを参照してください。

開始する前に

クラスターの OAuth コールバック URL を作成し、メモしておきます。 aro-rg を実際のリソース グループの名前に、aro-cluster を実際のクラスター名に置き換えてください。

Note

OAuth コールバック URL の AAD セクションは、後でセットアップする OAuth ID プロバイダー名と一致している必要があります。

domain=$(az aro show -g aro-rg -n aro-cluster --query clusterProfile.domain -o tsv)
location=$(az aro show -g aro-rg -n aro-cluster --query location -o tsv)
echo "OAuth callback URL: https://oauth-openshift.apps.$domain.$location.aroapp.io/oauth2callback/AAD"

認証のために Microsoft Entra アプリケーションを作成する

Azure portal にログインし、[アプリの登録] ブレードに移動します。次に、[新規登録] をクリックして新しいアプリケーションを作成します。

アプリケーションの名前 (aro-azuread-auth など) を指定し、上記の手順で取得した OAuth コールバック URL の値を使用して リダイレクト URI を入力します。

New application registration

[証明書とシークレット] に移動し、[新しいクライアント シークレット] をクリックして詳細を入力します。 後の段階で使用するので、キーの値をメモしておきます。 これは、再度取得することはできません。

Create a secret

[概要] に移動し、アプリケーション (クライアント) IDディレクトリ (テナント) ID をメモしておきます。 この値は後の段階で必要となります。

Retrieve Application (client) and Directory (tenant) IDs

省略可能な要求の構成

アプリケーション開発者は、Microsoft Entra アプリケーションで省略可能な要求を使用して、アプリケーションに送信されるトークンに含める要求を指定できます。

次の処理に省略可能な要求を使用できます。

  • アプリケーションのトークンに含める追加の要求を選択する。
  • Microsoft Entra ID からトークンで返される特定の要求の動作を変更する。
  • アプリケーションのカスタムの要求を追加してアクセスする。

Microsoft Entra ID によって返される ID トークンの一部として upn を追加することで、OpenShift で email 要求を使用し、upn にフォールバックして推薦ユーザー名を設定するよう構成します。

[トークン構成] に移動し、[Add optional claim]\(省略可能な要求を追加\) をクリックします。 [ID] を選択し、[電子メール]upn 要求を確認します。

Screenshot that shows the email and upn claims that were added.

ユーザーとグループをクラスターに割り当てる (省略可能)

Microsoft Entra テナントに登録されたアプリケーションは、既定ではテナントの正常に認証されたすべてのユーザーが利用できます。 Microsoft Entra ID により、テナントの管理者と開発者が、テナントのユーザーまたはセキュリティ グループの特定のセットにアプリを制限できるようになります。

Microsoft Entra のドキュメントに記載されている手順に従って、ユーザーとグループをアプリに割り当てます

OpenShift OpenID 認証の構成

kubeadmin の資格情報を取得します。 次のコマンドを実行して、kubeadmin ユーザーのパスワードを調べます。

az aro list-credentials \
  --name aro-cluster \
  --resource-group aro-rg

次の出力例は、パスワードが kubeadminPassword に含まれることを示しています。

{
  "kubeadminPassword": "<generated password>",
  "kubeadminUsername": "kubeadmin"
}

次のコマンドを実行すると、クラスター コンソールの URL を調べることができます。これは、https://console-openshift-console.apps.<random>.<region>.aroapp.io/ のようになります

 az aro show \
    --name aro-cluster \
    --resource-group aro-rg \
    --query "consoleProfile.url" -o tsv

ブラウザーでコンソールの URL にアクセスし、kubeadmin 資格情報を使用してログインします。

[管理] に移動し、[クラスター設定] をクリックして、[構成] タブを選択します。スクロールして [OAuth] を選択します。

下にスクロールして [ID プロバイダー] の下の [追加] を選択し [OpenID Connect] を選択します。 Select OpenID Connect from the Identity Providers dropdown

名前に [Microsoft Entra ID] と入力し、[クライアント ID][アプリケーション ID][クライアント シークレット] を入力します。 [発行者の URL] は、https://login.microsoftonline.com/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/v2.0 のように書式設定されます。 プレースホルダーを、上記の手順で取得したテナント ID に置き換えます。

Fill in OAuth details

下にスクロールして [要求] セクションに移動し、[推奨ユーザー名]upn の値で更新します。

Fill in claims details

Microsoft Entra ID によってログインを検証する

OpenShift Web コンソールからログアウトしてもう一度ログインしようとすると、Microsoft Entra ID でログインするための新しいオプションが表示されます。 数分待つ必要がある場合があります。

Login screen with Microsoft Entra option

Note

"AADSTS50011: 要求で指定されたリダイレクト URI が構成されているリダイレクト URI https://oauth-openshift.apps.xxxxxxxxxx.xxxxxxx.aroapp.io/oauth2callback/xxxx と一致しません" のようなエラーが発生した場合は、トラブルシューティング ガイド に従って、リダイレクト URI が正しく 設定されていないときに Azure AD (OIDC) ログインに失敗して問題を解決できます。