Red Hatのソリューションアーキテクトの井上たかひろです。
Red Hat Single Sign-on OperatorがRed Hat Single Sign-On 7.5.1 からとうとうサポートになりました。
これにより、Red Hat SSOのインストール、特に運用が楽になります。(インストールは元から簡単でしたが。。)
この記事では、サポート記念にRed Hat Single Sign-on Operatorのkeycloakカスタムリソース作成までを紹介します。
Red Hat Single Sign-on Operatorでは、カスタムリソースで、レルム、クライアント(アプリケーション)、ユーザなどを作成できます。
注意点としては、レルム、クライアント(アプリケーション)、ユーザの作成・編集は、カスタムリソースと管理コンソールのどちらかに統一する必要があります。
具体的には、カスタムリソースで、レルムを作成して管理コンソールで編集すると、カスタムリソースに反映されません。
参照の方は、カスタムリソースで作成・編集した内容は、管理コンソール側で確認できます。
個人的には、REST APIで自動化するよりかは、カスタムリソースの方がシンプルで管理が容易と考えています。
なお、Red Hat Single Sign-on Operatorがサポートになった旨の記載は下記にあります。 access.redhat.com
Red Hat Single Sign-on Operatorを触ってみる
OpenShift 4.9で、Red Hat Single Sign-on Operatorを日本語表示設定で、管理コンソールのログインまで触っていきます。
まず、雑な名前のプロジェクトを作成しておきます。
oc new-project sso
OperatorHubでRed Hat Single Sign-on Operatorを探します。
Red Hat Single Sign-on Operatorのバージョンが7.5.1になっています。(7.5.0以下のOperatorはサポート対象になりません)
Operatorのインストール画面で、更新チャネルにstableがあります。GAした感が出てます。
さきほど作成したプロジェクトのssoを選択して、インストールします。
次に、Keycloakカスタムリソースを作成して、管理コンソールを触りにいきます。
以下のyamlをKeycloak.yamlにします。
apiVersion: keycloak.org/v1alpha1 kind: Keycloak metadata: name: example-sso labels: app: sso spec: instances: 1 externalAccess: enabled: True
Keycloak.yamlを使ってkeycloakのカスタムリソースを作成します。
oc create -f Keycloak.yaml -n sso keycloak.keycloak.org/example-sso created
管理者アカウントのSecretは、credential-<Keycloakカスタムリソースの名前>になります。
oc describeでも確認しておきます。
oc describe Keycloak 〜〜 Status: Credential Secret: credential-example-sso External URL: https://keycloak-sso.apps.xxx.com Internal URL: https://keycloak.sso.svc:8443 Message: Phase: reconciling Ready: true 〜〜
Secretを見にいって、管理者アカウントのユーザ名とパスワードをメモしておきます。
管理コンソールを見に行きます。
URLはルートから辿るか、KeycloakのカスタムリソースのExternal URLを直接ブラウザに入力してください。
https://keycloak-sso.apps.xxx.comにアクセスすると、https://keycloak-sso.apps.xxx.com/authにリダイレクトされます。
いつもの画面が表示されますので、Administration Consoleをクリックして、Secretで確認した管理者アカウントのユーザ名とパスワードを入力します。
ログインするとこれまたいつもの画面が表示されます。
今回は、管理コンソールのログインまでの記載ですが、プロダクトドキュメントには、他のカスタムリソースの作成方法、外部DB設定、カスタムエクステンション(SPI)のインストールなどの説明がありますので、ぜひ、ご参照ください。 access.redhat.com
最後に
今後、OpenShiftのマネージド・サービス上などで、Red Hat Single Sign-on Operatorで認証・認可基盤を構築するシステムが増えてくるのではないかなと思います。
その際には、Red Hat Single Sign-onのセッションを外だしできるRed Hat Data Gridもあわせて利用することで、可用性やメンテナンス性がさらに向上します。 Red Hat Data Gridの利用は、Red Hat Runtimesのサブスクリプションが必要となります。
Red Hat Single Sign-onについては、OpenShiftのサブスクリプションにエンタイトルメントされていますので、ワーカノードで気兼ねなく動かして頂ければ幸いです。
(注: サブスクリプションについては執筆時の情報となります)