Ansible方式でOpenShiftをインストールすると、デフォルトでidentity providerはDeny allに設定され、すべてのユーザーのアクセスが拒否されます。ユーザーのアクセスを許可するには、別のidentity providerを選択し、master設定ファイルを編集する必要があります。デフォルトのmaster設定ファイルは*/etc/origin/master/master-config.yaml*にあります。 OpenShiftには複数のidentity providerがあり、ユーザー認証の管理が可能です。今回はHTPasswdを使います。 詳細はConfiguring Authentication and User Agentを参照してください。

パッケージのインストール

htpasswdユーティリティはhttpd-toolsパッケージに含まれています。

1
yum install httpd-tools

master設定ファイルの編集

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
oauthConfig:
  ...
  identityProviders:
  - name: my_htpasswd_provider 
    challenge: true 
    login: true 
    mappingMethod: claim 
    provider:
      apiVersion: v1
      kind: HTPasswdPasswordIdentityProvider
      file: /path/to/users.htpasswd 

atomic-openshift-masterを再起動して設定を反映させます。

1
systemctl restart atomic-openshift-master

ユーザー名とパスワードの設定

HTPasswdはフラットファイルでユーザー名とパスワード(ハッシュ化)を管理します。以下のコマンドでファイルを作成し、usernameのパスワードを入力します。

1
2
3
4
$ htpasswd -c </path/to/users.htpasswd> user1
New password:
Re-type new password:
Adding password for user user1

-bオプションを付けるとパスワードをコマンドラインで指定できます。

1
htpasswd -c -b user1 <password>

ユーザーを追加したら、そのユーザーでOpenShift Container Platformにアクセスできます。

ユーザーの追加・更新

ユーザー名を追加・更新するには以下のコマンドを実行します。

1
htpasswd </path/to/users.htpasswd> <user_name>

ユーザーの削除

ユーザー名を削除するには以下のコマンドを実行します。

1
htpasswd -D </path/to/users.htpasswd> <user_name>