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 を入力します。
[証明書とシークレット] に移動し、[新しいクライアント シークレット] をクリックして詳細を入力します。 後の段階で使用するので、キーの値をメモしておきます。 これは、再度取得することはできません。
[概要] に移動し、アプリケーション (クライアント) ID とディレクトリ (テナント) ID をメモしておきます。 この値は後の段階で必要となります。
省略可能な要求の構成
アプリケーション開発者は、Microsoft Entra アプリケーションで省略可能な要求を使用して、アプリケーションに送信されるトークンに含める要求を指定できます。
次の処理に省略可能な要求を使用できます。
- アプリケーションのトークンに含める追加の要求を選択する。
- Microsoft Entra ID からトークンで返される特定の要求の動作を変更する。
- アプリケーションのカスタムの要求を追加してアクセスする。
Microsoft Entra ID によって返される ID トークンの一部として upn
を追加することで、OpenShift で email
要求を使用し、upn
にフォールバックして推薦ユーザー名を設定するよう構成します。
[トークン構成] に移動し、[Add optional claim]\(省略可能な要求を追加\) をクリックします。 [ID] を選択し、[電子メール] と upn 要求を確認します。
ユーザーとグループをクラスターに割り当てる (省略可能)
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] を選択します。
名前に [Microsoft Entra ID] と入力し、[クライアント ID] に [アプリケーション ID] と [クライアント シークレット] を入力します。 [発行者の URL] は、https://login.microsoftonline.com/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/v2.0
のように書式設定されます。 プレースホルダーを、上記の手順で取得したテナント ID に置き換えます。
下にスクロールして [要求] セクションに移動し、[推奨ユーザー名] を upn の値で更新します。
Microsoft Entra ID によってログインを検証する
OpenShift Web コンソールからログアウトしてもう一度ログインしようとすると、Microsoft Entra ID でログインするための新しいオプションが表示されます。 数分待つ必要がある場合があります。
Note
"AADSTS50011: 要求で指定されたリダイレクト URI が構成されているリダイレクト URI https://oauth-openshift.apps.xxxxxxxxxx.xxxxxxx.aroapp.io/oauth2callback/xxxx と一致しません" のようなエラーが発生した場合は、トラブルシューティング ガイド に従って、リダイレクト URI が正しく 設定されていないときに Azure AD (OIDC) ログインに失敗して問題を解決できます。