1.6.3. クライアント側での SASL 認証メカニズムの指定

クライアントで使用される sasl 認証メカニズムは sasl-mechanism-selector で指定されます。クライアントが接続しているサーバーによって公開される、対応の SASL 認証メカニズムをすべて指定できます。

sasl-mechanism-selector は、認証が設定されている Elytron 設定で定義されます。

  • elytron サブシステムでは、これは authentication-configuration の属性です。例を以下に示します。

    /subsystem=elytron/authentication-configuration=myAuthConfig:write-attribute(name=sasl-mechanism-selector,value="DIGEST-MD5")

    sasl-mechanism-selectorauthentication-configuration を使用する例は、「Configuring SSL/TLS Between Domain and Host Controllers Using Elytron」を参照してください。

  • Elytron Client の場合、通常 wildfly-config.xml という名前のクライアント設定ファイルの authentication-configurationsconfiguration 要素の下に指定されます。例を以下に示します。

    <configuration>
      <authentication-client xmlns="urn:elytron:client:1.2">
        <authentication-rules>
          <rule use-configuration="default" />
        </authentication-rules>
        <authentication-configurations>
          <configuration name="default">
            <sasl-mechanism-selector selector="#ALL" />
          ...
          </configuration>
        </authentication-configurations>
      </authentication-client>
    </configuration>

Elytron クライアントでのクライアント認証の設定の詳細は、「 How to Configure Identity Management 」を参照してください。

sasl-mechanism-selector Grammar

sasl-mechanism-selector のセレクター文字列には特定の文法があります。

単純な形式では、個別のメカニズムを指定する場合は、その名前をスペースで区切って指定します。たとえば、DIGEST-MD5、SCRAM-SHA-1、および SCRAM-SHA-256 を許可された認証として指定する場合は、文字列 DIGEST-MD5 SCRAM-SHA-1 SCRAM-SHA-256 を使用します。

文法の高度な使用方法は、以下の特別なトークンを使用できます。

  • #ALL: すべてのメカニズム。
  • #FAMILY(NAME): 指定したメカニズムファミリーに属するメカニズム。たとえば、ファミリーは DIGEST、EAP、GS2、SCRAM、または IEC-ISO-9798 のいずれかになります。
  • #PLUS: チャネルバインディングを使用するメカニズム。たとえば、SCRAM-SHA-XXX-PLUS または GS2- を-PLUS とします。
  • #MUTUAL: サーバーを認証するメカニズム。たとえば、サーバーがパスワードを認識していることを証明します。#MUTUAL には、#FAMILY(SCRAM)#FAMILY(GS2) といったファミリーが含まれます。
  • #HASH(ALGORITHM): 指定されたハッシュアルゴリズムを使用するメカニズム。たとえば、アルゴリズムは MD5、SHA-1、SHA-256、SHA-384、SHA-512 などにすることができます。

上記のトークンと名前は、以下の操作および述語でも使用できます。

  • -: 禁止
  • !: 反転
  • &&: および
  • ||: または
  • ==: 等号
  • ?: If
  • #TLS: は、TLS がアクティブであれば true となり、それ以外では false となります。

以下は、sasl-mechanism-selector 文字列およびその意味の例です。

  • #TLS && !#MUTUAL: TLS がアクティブは、相互認証なしのすべてのメカニズム。
  • #ALL -ANONYMOUS: ANONYMOUS を除くすべてのメカニズム
  • SCRAM-SHA-1 SCRAM-SHA-256: 2 つのメカニズムをその順序で追加。
  • (SCRAM-SHA-1 &verbar;&verbar; SCRAM-SHA-256): プロバイダーまたはサーバーが提示する順序でメカニズムを 2 つ追加します。
  • !#HASH(MD5): MD5 ハッシュアルゴリズムを使用しないメカニズム。
  • #FAMILY(DIGEST): 任意のダイジェストメカニズム。