Validate Username Token (validate-usernametoken)
Validate
Username Token ポリシーは、保護リソースへのアクセスを許可する前に、SOAP ペイロード内の Web サービス・セキュリティー (WS-Security) UsernameToken を検証するために使用します。
制約事項: Validate
Username Token ポリシーは、DataPower® Gateway にのみ使用できます。
概要
WS-Security UsernameToken により、ユーザー ID をマルチポイント・メッセージ・パスに安全に渡すことができます。Validate Username Token ポリシーは UsernameToken エレメントを要求ペイロードから抽出して、抽出したユーザー名およびパスワードを認証し、認証結果に基づいて保護リソースへのアクセスを提供します。このポリシーには、2 つの認証方式 (Lightweight Directory Access Protocol (LDAP) ユーザー・レジストリーと、認証 URL) があります。
Validate
Username Token ポリシーは、passwordText タイプおよび passwordDigest タイプの両方のパスワードをサポートします。認証方式が passwordDigest タイプの認証 URL である場合、Base64 エンコードされたユーザー名と passwordDigest を含む基本認証ヘッダーが URL に送信されます。さらに、X-IBM-PasswordType という名前のカスタム・ヘッダーが digest の値を使用して設定されます。以下の表に、パスワード・タイプに基づく認証プロセスを示します。
passwordText | passwordDigest |
---|---|
Authentication: Basic base64(username:password) | Authentication: Basic
base64(username:passwordDigest) X-IBM-PasswordType: 'digest' |
このポリシーを以下の API フローに付加できます。
- REST
- SOAP
このポリシーは、以下のようにアセンブリー・フロー内の必要な場所に配置します。
- 元の入力を検証するには、Validate Username Token ポリシーをフローの最初に配置します。
- 他の呼び出しアクションまたはタスクから返される中間応答を検証するには、Validate Username Token ポリシーをそれらのアクションまたはタスクの後に配置します。
- クライアント・アプリケーションに返される応答を検証するには、Validate Username Token ポリシーをその応答を照合するタスクの後に配置します。
重要: IBM® API Connect for IBM Cloud™ (SaaS オファリング)を使用している場合、使用する LDAP レジストリーは、インターネット上で見ることができる必要があり、社内イントラネット内からのみアクセス可能にすることはできません。
プロパティー
以下の表に、このポリシーのプロパティーをリストします。表には、プロパティーが必須かどうか、入力用の有効な値とデフォルト値、および値のデータ型が示されています。
プロパティー・ラベル | プロパティー名 | 必須 | 説明 | データ型 |
---|---|---|---|---|
タイトル | title | はい | ポリシーのタイトル。 デフォルト値は、validate-usernametoken です。 |
ストリング |
説明 | description | いいえ | ポリシーの説明。 | ストリング |
認証タイプ | auth-type | はい | UsernameToken の検証に使用する認証タイプ。 有効は値は以下のとおりです。
|
ストリング |
認証 URL | auth-url | はい | UsernameToken ユーザー資格情報の検証の対照として使用する認証 URL。 注: このプロパティーが必要となるのは、「認証タイプ」が Authentication URL に設定されている場合のみです。
|
ストリング |
TLS プロファイル (TLS profile) | tls-profile | いいえ | 認証 URL へのデータ伝送をセキュアにするために使用する TLS プロファイル。 注: このプロパティーが使用できるのは、「認証タイプ」が Authentication URL と設定されている場合のみです。
|
ストリング |
LDAP レジストリー名 | ldap-registry | はい | UsernameToken ユーザー資格情報の検証の対照である LDAP ユーザー・レジストリーの名前。ドロップダウン・リストから名前を選択することも、手動で名前を入力することもできます。 注: このプロパティーが必要となるのは、「認証タイプ」が LDAP registry に設定されている場合のみです。
|
ストリング |
LDAP 検索属性1 | ldap-search-attribute | はい | LDAP ユーザー・パスワード属性の名前。 注: このプロパティーが必要となるのは、「認証タイプ」が LDAP registry に設定されている場合のみです。
|
ストリング |
例
以下の例は、LDAP ユーザー・レジストリー認証を示しています。
- validate-usernametoken:
title: "validate-usernametoken"
auth-type: "LDAP Registry"
ldap-registry: "wstest"
ldap-search-attribute: "userPassword"
以下の例は、認証 URL 定義を示しています。
- validate-usernametoken:
title: "validate-usernametoken"
auth-type: "Authentication URL"
auth-url: "https://www.google.com"
tls-profile: "default-ssl-profile"
エラー
ポリシーは、成功すると、HTTP 200 状況コードを返し、入力ペイロードが出力フローにコピーされます。どの失敗タイプの場合も、ポリシーは HTTP 500 状況コードを返し、出力には SOAP 障害が含まれます。
ヒント: 認証が失敗した場合は、以下のような LDAP ユーザー・レジストリー構成の検証を試行してください。
- 「検索 (DN)」 が通信方式として設定されていることを確認します。
- 特定の許可がレジストリーの検索に必要とされるように、「認証済みバインド」が設定されていることを確認します。
- LDAP ディレクトリー内で検索を実行する権限を持つユーザーの識別名 (DN) 用に「管理 DN」フィールドおよび「パスワード」フィールドが正しく入力されていることを確認します。
- 「基本 DN」、「接頭部」、および「接尾部」の組み合わせが設定され、ユーザー DN を完全に記述していることを確認します。以下に例を示します。
- cn=alice, dc=ibm, dc=com という名前のユーザーの場合
ここで、ユーザー DNは Prefix + BaseDN + Suffix のように計算されます。BaseDN: dc=ibm Prefix: cn=alice Suffix: dc=com
- cn=alice, dc=ibm, dc=com という名前のユーザーの場合
1 LDAP と passwordText で認証する際、ポリシーはユーザー名およびパスワードを LDAP バインド資格情報として使用します。しかし、LDAP と passwordDigest で認証する際、そのダイジェスト自体は認証に使用できません。
代わりに、ユーザー名の LDAP 検索は管理者の識別名 (DN) およびパスワードを使用することで実行され、ldap-search-attribute のコンテンツに対応する属性が取得されます。そして、(WS-Security UsernameToken プロファイル仕様内のように Nonce 属性および Created 属性と共に) この属性のコンテンツのハッシュは、passwordDigest と比較されます。