8.5. ブローカー認証
ブローカーは認証をサポートします。つまり、ブローカーに接続する際に、呼び出し側は各要求に対して Basic Auth または Bearer Auth 認証情報を指定する必要があります。 curl
を使用し、以下のように簡単に実行できます。
-u <user_name>:<password>
-u <user_name>:<password>
または
-h "Authorization: bearer <token>
-h "Authorization: bearer <token>
上記をコマンドに指定します。サービスカタログをユーザー名とパスワードの組み合わせ、またはベアラートークンが含まれるシークレットで設定する必要があります。
8.5.1. Basic 認証 リンクのコピーリンクがクリップボードにコピーされました!
Basic 認証の使用を有効にするには、ブローカー設定で以下を設定します。
broker: ... auth: - type: basic enabled: true
broker:
...
auth:
- type: basic
enabled: true
8.5.1.1. デプロイメントテンプレートおよびシークレット リンクのコピーリンクがクリップボードにコピーされました!
通常、ブローカーはデプロイメントテンプレートで ConfigMap を使用して設定されます。ファイル設定と同様の方法で認証設定を指定できます。
以下は、デプロイメントテンプレート のサンプルになります。
auth: - type: basic enabled: ${ENABLE_BASIC_AUTH}
auth:
- type: basic
enabled: ${ENABLE_BASIC_AUTH}
Basic 認証の別の部分には、ブローカーに対して認証するために使用されるユーザー名とパスワードが含まれます。Basic 認証の実装は別のバックエンドサービスでサポートされる可能性があるものの、現時点でサポートされている実装は シークレット に対応します。シークレットは /var/run/asb_auth の場所にあるボリュームマウントで Pod に挿入される必要があります。これは、ブローカーがユーザー名とパスワードを読み取る場所です。
デプロイメントテンプレート では、シークレットが指定される必要があります。以下に例を示します。
シークレットにはユーザー名とパスワードが含まれる必要があります。値は base64 エンコードである必要があります。それらのエントリーの値を生成する最も簡単な方法として、echo
および base64
コマンドを使用できます。
echo -n admin | base64
$ echo -n admin | base64
YWRtaW4=
- 1
-n
オプションは非常に重要になります。
このシークレットはボリュームマウントで Pod に挿入される必要があります。これはデプロイメントテンプレートでも設定されます。
次に volumes
セクションで、シークレットをマウントします。
volumes: ... - name: asb-auth-volume secret: secretName: asb-auth-secret
volumes:
...
- name: asb-auth-volume
secret:
secretName: asb-auth-secret
上記により、/var/run/asb-auth にボリュームマウントが作成されます。このボリュームには、asb-auth-secret シークレットで作成されるユーザー名およびパスワードの 2 つのファイルがあります。
8.5.1.2. サービスカタログおよびブローカー通信の設定 リンクのコピーリンクがクリップボードにコピーされました!
ブローカーが Basic 認証を使用するように設定されているため、サービスカタログに対してブローカーとの通信方法について指示する必要があります。これは、ブローカーリソースの authInfo
セクションで実行できます。
以下は、サービスカタログで broker
リソースを作成する例になります。spec
はサービスカタログに対し、ブローカーがリッスンしている URL を示唆します。authInfo
は認証情報を取得するために読み取る必要のあるシークレットを示唆します。
サービスカタログの v0.0.17 以降、ブローカーのリソース設定は変更されています。