2.6.3 Keycloak認証
Keycloakの認証機能を使用して,外部ユーザのユーザ名とパスワードでユーザ認証を行うことができます。このユーザ認証方式をKeycloak認証といいます。
なお,ここでいう外部ユーザとは,Keycloakサーバに登録されているユーザや,Keycloakサーバと連携している外部の認証サーバ(LDAPサーバ,ADドメインサーバなど)に登録されているユーザを意味しています。
Keycloak認証の概要を次の図に示します。
|
|
- [説明]
-
HADBサーバへの接続要求時,外部ユーザ名とそのパスワードでユーザ認証を行います。例えば,Keycloakサーバに登録されているユーザ名とパスワードや,Keycloakサーバと連携しているLDAPサーバなどの外部の認証サーバに登録されているユーザ名とパスワードでユーザ認証を行えます。
以下の番号は,図中の丸付き数字の番号と対応しています。
-
HADBクライアントは,接続情報中に指定されている認可識別子を使用してHADBサーバへ接続を要求します。
-
HADBサーバは,Keycloakサーバへの接続情報をHADBクライアントに送ります。
-
HADBクライアントは,接続情報中に指定されている認可識別子とパスワードを,トークンリクエストに含めてKeycloakサーバに送ります。
-
Keycloakサーバに登録しているユーザ情報を使ってユーザ認証を実施する場合は,Keycloakサーバが管理しているDBに登録されているユーザ情報を参照してユーザ認証を実施します。
-
外部の認証サーバに登録しているユーザ情報を使ってユーザ認証を実施する場合は,Keycloakサーバはユーザーフェデレーション機能を使用して外部の認証サーバに認証要求を送ります。
-
外部の認証サーバは,Keycloakサーバに認証結果を返します。
-
Keycloakサーバは,HADBクライアントにアクセストークンを含む認証結果を返します。
-
HADBクライアントは,HADBサーバに対して認証結果の解析を要求します。
-
HADBサーバは,アクセストークンの検証に必要な情報(メタ情報および公開署名鍵)を取得するために,Keycloakサーバに対してリクエストを送ります。
-
Keycloakサーバは,メタ情報および公開署名鍵をHADBサーバに送ります。
-
HADBサーバは,認証結果の解析によって抽出したアクセストークンの検証を行い,HADBサーバへの接続可否の結果をHADBクライアントに送ります。
-
このようにKeycloak認証では,Keycloakサーバまたは外部の認証サーバを使用してユーザ認証を行います。外部ユーザのユーザ名とパスワードでHADBサーバに接続できるため,ユーザ管理の手間が軽減されます。
Keycloak認証の導入方法については,「11.9 Keycloak認証の導入」を参照してください。
- ■外部ユーザ名に関する留意事項
-
Keycloak認証を使用する場合,外部ユーザ名と同じ名称の認可識別子のHADBユーザを作成する必要があります。例えば,Keycloakサーバに登録したユーザ名がKEYUSER01の場合,認可識別子をKEYUSER01とするHADBユーザを作成する必要があります。そのため,Keycloakサーバに登録したユーザ名が,認可識別子の名称規則に従っている必要があります。例えば,認可識別子で使用できない文字がKeycloakサーバに登録したユーザ名に含まれている場合,HADBユーザを作成することができないため,Keycloak認証を行うことができません。
認可識別子の名称規則については,マニュアルHADB SQLリファレンスの名前の指定の名前に使用できる文字の規則を参照してください。
- ■外部ユーザのパスワードに関する留意事項
-
Keycloak認証を使用する場合,外部ユーザ名に対応するパスワードを使用してユーザ認証を行います。例えば,Keycloak認証でKeycloakサーバに登録したユーザ名を使用する場合,パスワードはKeycloakサーバに登録しているパスワードを使用します。ただし,HADBで扱うことができるパスワードの長さは1~255文字(1~255バイト)のため,Keycloakサーバに登録するパスワードも1~255文字(1~255バイト)にする必要があります。
- ■権限に関する留意事項
-
Keycloak認証を使用しているHADBユーザには次の権限を付与できません。また,次の権限を持っているHADBユーザのユーザ認証方式をKeycloak認証にすることはできません。
-
監査管理権限
-
監査参照権限
-
暗号管理権限
-
- ■署名アルゴリズムに関する留意事項
-
トークン認証で次の署名アルゴリズムは使用できません。
-
EdDSA
-
HS256~HS512
-