第5章 ユーザーモデル
メッセージングクライアントは MessagingUser を使用して接続します。MessagingUser は、使用できるアドレスとそれらのアドレスで実行できる操作を制御する許可ポリシーを指定します。
ユーザーは MessagingUser
リソースとして設定されます。ユーザーは、作成、削除、読み取り、更新、および一覧表示できます。
次の例は、user-example1.yaml
ファイルを示しています。
apiVersion: user.enmasse.io/v1beta1 kind: MessagingUser metadata: name: myspace.user1 spec: username: user1 authentication: type: password password: cGFzc3dvcmQ= # Base64 encoded authorization: - addresses: ["myqueue", "queue1", "queue2", "topic*"] operations: ["send", "recv"] - addresses: ["anycast1"] operations: ["send"]
次のフィールドは必須です。
-
metadata.name
-
metadata.namespace
-
spec.authentication
-
spec.authorization
spec.authentication
オブジェクトはユーザーの認証方法を定義し、spec.authorization
はそのユーザーの承認ポリシーを定義します。
5.1. 認証
認証タイプでサポートされている値は password
と serviceaccount
です。password
認証タイプを使用する場合は、接続時にメッセージングクライアントが使用するユーザー名とパスワードを指定します。serviceaccount
認証タイプでは、特別な文字列 @@serviceaccount@@
をユーザー名として使用し、OpenShift サービスアカウントトークンをパスワードとして使用します。
5.1.1. パスワード認証の種類
password
タイプの場合には、追加フィールドの パスワード
を、そのユーザーのパスワードの base64 エンコード値に設定する必要があります。リソースの読み取り時にパスワードは出力されません。
パスワードは、コマンドラインで base64 エンコードできます。たとえば、my-password
をエンコードするには以下を実行します。
$ echo -n my-password | base64 bXktcGFzc3dvcmQ=
5.1.2. サービスアカウント認証タイプ
serviceaccount
タイプの場合、username
フィールドには、認証に使用される OpenShift サービスアカウント名が含まれている必要があります。メッセージングクライアントに接続するときは、文字列 @@serviceaccount@@
をユーザー名として使用し、サービスアカウントトークンをパスワードとして使用します。アプリケーションで使用される AMQP クライアントは、SASL メカニズムタイプ PLAIN
を使用するように設定する必要があります。