REST API での HTTP 基本認証の使用
REST API のユーザーは、HTTP ヘッダー内にユーザー ID とパスワードを指定することによって認証できます。 POST、PATCH、DELETE などの HTTP メソッドでこの認証方式を使用するには、 ibm-mq-rest-csrf-token
HTTP ヘッダーと、ユーザー ID およびパスワードも指定する必要があります。
始める前に
- REST APIの使用を許可されるようにユーザー、グループ、および役割を構成します。 詳しくは、 ユーザーと役割の構成を参照してください。
- HTTP 基本認証を有効にしておきます。
mqwebuser.xml
ファイルに次の XML が存在し、コメント化されていないことを確認してください。 この XML は<featureManager>
タグ内になければなりません。<feature>basicAuthenticationMQ-1.0</feature>
mqwebuser.xml
ファイルを編集するには、 特権ユーザー でなければなりません。 - REST 要求を送信するときは、セキュア接続を使用していることを確認してください。 ユーザー名とパスワードの組み合わせはエンコードされますが、暗号化されないため、 REST APIで HTTP 基本認証を使用する場合は、セキュア接続 (HTTPS) を使用する必要があります。
login
リソースに対する HTTP GET メソッドを使用することにより、現行ユーザーの資格情報を照会できます。このメソッドを使用する際、その要求を認証するための基本認証情報を指定する必要があります。 この要求は、認証方式、ユーザー名、およびユーザーに割り当てられている役割に関する情報を返します。 詳しくは、 GET/login
を参照してください。
手順
例
以下の例は、 Windows システム上で、基本認証を使用して、キュー・マネージャー QM1上に新しいキュー
Q1
を作成する方法を示しています。 この例では cURL を使用しています。- IBM MQ 9.0.5以降では、単一の HTTP 要求のみを発行する必要があります。 キュー・リソースを指定して HTTP POST メソッドを実行し、基本認証で認証を行い、任意の値を指定した
ibm-mq-rest-csrf-token
HTTP ヘッダーを組み込みます。 どんな値でも使用できます。ブランクでも構いません。値は mqweb サーバーによって検査されません。curl -k https://localhost:9443/ibmmq/rest/v1/admin/qmgr/QM1/queue -X POST -u mqadmin:mqadmin -H "ibm-mq-rest-csrf-token: value" -H "Content-Type: application/json" --data "{\"name\":\"Q1\"}"
- IBM MQ 9.0.4 以前の場合、以下の 2 つの HTTP 要求が必要です。
- 最初の要求で CSRF トークン Cookie を生成します。login リソースに対する HTTP GET メソッドを使用し、基本認証を使用して認証します。 返された CSRF トークンは
cookiejar.txt
ファイル内に保管されます。-u
フラグはユーザー名とパスワードを指定するためのフラグです。-c
フラグはトークンを保管するファイルの場所を指定するためのフラグです。curl -k https://localhost:9443/ibmmq/rest/v1/login -u admin:admin -c c:\cookiejar.txt
- 2 番目の要求でキューを作成します。
キュー・リソースに対する HTTP POST メソッドを使用します。基本認証を使用して認証し、CSRF トークンの内容をヘッダーに組み込みます。
IBM MQ 9.0.3 またはその前 :curl -k https://localhost:9443/ibmmq/rest/v1/qmgr/QM1/queue -X POST -u admin:admin -H "ibm-mq-rest-csrf-token: 83F1817976A6E6F1E980F9F09D7E8A161DC9D9867A634497CE03667B2AF5532B5 E6F9314E40B4FB31E00A2885E07150C0FD06FFB07B46FD4A5D2DA4C239C2D82C3C87588C8850B975892E1AF96034F 05F41699A7A1D36DEC048CE18F49A195BB762020D420EB628568D30120F12538B53D3F91939EF8851863EC7B87B6E B0F95B57B6AB68B61D4324FAA3DFDE05AC956556736F8A9CA5BAF89BC2174B0EF5CE04E65646626F788F1CE2284EF 1562868C5A800B8BF4BFB8FB6C3FCD194EA6EB2FF43A3CFB57CCF9F5EF76F0E724FAB645B8E14CD3D9484BF799B3B 090CCD67B6CE8C8DAB552018A538903B0CD0B9FD747F2F4C18A80A65A2C3AE2A0D631B298AF" -H "Content-Type: application/json" --data "{\"name\":\"Q1\"}"
- 最初の要求で CSRF トークン Cookie を生成します。