ADC
ご意見をお寄せいただきありがとうございました

この記事は機械翻訳されています.免責事項

Web 認証用の SMS OTP の設定

NetScalerをサードパーティのSMSプロバイダーと統合して、追加の認証レイヤーを提供できるようになりました。

NetScalerアプライアンスは、認証の第2要素としてユーザーのモバイルでOTPを送信するように構成できます。アプライアンスは、AD ログインの成功後に OTP に入るためのログオンフォームをユーザーに提示します。SMS OTP 認証が正常に検証されて初めて、要求されたリソースがユーザーに提示されます。

SMS OTP認証を実現するために、NetScalerアプライアンスはバックエンドの次の要素に依存しています。

  1. LDAP認証を使用してユーザーを認証し、ユーザーの携帯電話番号を抽出します。
  2. OTP を作成し、NS 変数に格納します。変数の設定と使用
  3. LDAP から抽出した携帯電話番号に WebAuth 認証方式で OTP を送信します。
  4. OTP を検証します。

前提条件

OTP ストアを構成する

管理者は、次のCLIコマンドを使用して、SMS認証に使用されるOTPを保存するデータベース/ストアを設定します。

add ns variable otp_store -type "map(text(65),text(6),100000)" -ifValueTooBig undef -ifNoValue undef -expires 5

ユーザーセッションごとにランダムOTPを生成

次のコマンドを使用して、ユーザーセッションごとに6桁のランダムOTPを生成し、OTPストアに保存します。

add ns assignment generate_otp -variable "$otp_store[AAA.USER.SESSIONID]" -set ("000000" + SYS.RANDOM.MUL(1000000).TYPECAST_UNSIGNED_LONG_AT.TYPECAST_TEXT_T).SUFFIX(6)

NetScalerでSMS OTP認証を構成する

  • SMS二要素認証機能を構成する前に、NetScalerアプライアンスで認証を有効にした第1要素としてLDAP認証を構成する必要があります。LDAP 認証を設定する手順については、「 構成ユーティリティを使用して LDAP 認証を構成するには」を参照してください。

  • LDAP を設定し、SMS OTP 認証に使用する携帯電話番号を抽出します。

第 1 要素構成のサンプル

add authentication ldapAction ldap_action -serverIP 1.1.1.1 -serverPort 3268 -authTimeout 30 -ldapBase "dc=nsi-test,dc=com" -ldapBindDn Administrator@nsi-test.com -ldapBindDnPassword freebsd -ldapLoginName samaccountname -groupAttrName memberOf -ssoNameAttribute samaccountname -Attribute1 mobile -email mail add authentication Policy ldap_policy -rule true -action ldap_action

携帯電話番号は AAA.USER.ATTRIBUTE (1) を使用して抽出でき、バックエンドサーバーに送信するときに含めることができます。

第 2 要素構成のサンプル

次のサンプル設定を使用して、エンドユーザーに送信される OTP が生成されます。

add authentication policylabel set_otp -loginSchema LSCHEMA_INT add authentication Policy set_otp -rule true -action test add authentication policy cascade_noauth -rule true -action NO_AUTHN add authentication Policy check_otp -rule "$test.valueExists(AAA.USER.SESSIONID)" -action NO_AUTHN add authentication policylabel check_otp -loginSchema LSCHEMA_INTbind authentication policylabel set_otp -policyName set_otp -priority 1 -gotoPriorityExpression NEXT bind authentication policylabel set_otp -policyName cascade_noauth -priority 2 -gotoPriorityExpression NEXT -nextFactor check_otpbind authentication policylabel check_otp -policyName wpp -priority 1 -gotoPriorityExpression NEXT bind authentication policylabel check_otp -policyName wpp_cascade_noauth -priority 2 -gotoPriorityExpression NEXT -nextFactor otp_verifyadd authentication Policy wpp -rule true -action webAuth_POST add authentication Policy wpp_cascade_noauth -rule true -action NO_AUTHNadd authentication Policy otp_verify -rule "AAA.LOGIN.PASSWORD.EQ($test[AAA.USER.SESSIONID])" -action NO_AUTHN add authentication policylabel otp_verify -loginSchema onlyPassword bind authentication policylabel otp_verify -policyName otp_verify -priority 1 -gotoPriorityExpression NEXTadd authentication vserver avs SSL 10.106.40.121 443 bind authentication vserver avs -policy ldap_policy -priority 1 -nextFactor set_otp -gotoPriorityExpression NEXT

第 3 要素構成の例

次のサンプル構成を使用して、第 2 要素構成で生成された OTP が Web 認証方法を使用してエンドユーザーに送信されます。Web 認証の詳細については、 Web 認証を参照してください

  • SMS サーバーが GET メソッドを介して API を公開する場合の Web 認証設定の例。

    add policy expression otp_exp_get ""method=sendMessage&send_to=" + AAA.USER.ATTRIBUTE(1) + "&msg=OTP is " + $otp_store[AAA.USER.SESSIONID] + "for login into secure access gateway. Valid till EXPIRE_TIME. Do not share the OTP with anyone for security reasons.&userid=#####&password=###=1.0"" add authentication webAuthAction webAuth_Get -serverIP 10.106.168.210 -serverPort 8080 -fullReqExpr q{"GET /GatewayAPI/rest?" + otp_exp_get + "HTTP/" + http.req.version.major + "." + http.req.version.minor.sub(1) + "\r\nAccept:\*/\*\r\nHost: <FQDN>\r\n"} -successRule "http.res.status.eq(200)" -scheme http
  • SMS サーバーが GET メソッドを介して API を公開する場合の Web 認証設定の例。

    add policy expression otp_exp_post ""Message: OTP is " + $otp_store[AAA.USER.SESSIONID] + "for login into secure access gateway. Valid till EXPIRE_TIME. Do not share the OTP with anyone for security reasons&Mobile:" + AAA.USER.ATTRIBUTE(1)" add authentication webAuthAction webAuth_POST -serverIP 10.106.168.210 -serverPort 8080 -fullReqExpr q{"POST /MyPHP/auth.php HTTP/" + http.req.version.major + "." + http.req.version.major + "\r\nAccept:\*/\*\r\nHost: 10.106.168.210 \r\nContent-Length: 10\r\n\r\n" + otp_exp_post} -scheme http -successRule true
    add authentication webAuthAction webAuth_Get -serverIP 10.106.168.210 -serverPort 8080 -fullReqExpr q{"GET /GatewayAPI/rest?" + otp_exp_get + "HTTP/" + http.req.version.major + "." + http.req.version.minor.sub(1) + "\r\nAccept:/\r\nHost: <FQDN>\r\n"} -successRule "http.res.status.eq(200)" -scheme http add policy expression otp_exp_post "$otp_store[AAA.USER.SESSIONID]"
  • 最後に、OTP を送信します。

    add authentication Policy wpp -rule true -action webAuth_POST add authentication policylabel send_otp -loginSchema LSCHEMA_INT bind authentication policylabel send_otp -policyName wpp -priority 1 -gotoPriorityExpression NEXT

第 4 の要素構成の例

次のサンプル設定を使用して、エンドユーザーに送信された OTP を検証します。

この構成では、ポリシールールを使用して、エンドユーザーに送信されるOTPに対してOTPを検証します。

add authentication Policy otp_verify -rule "AAA.LOGIN.PASSWORD.EQ($otp_store[AAA.USER.SESSIONID])" -action NO_AUTHN add authentication policylabel otp_verify -loginSchema onlyPassword bind authentication policylabel otp_verify -policyName otp_verify -priority 1 -gotoPriorityExpression NEXT

次のコマンドを使用して、OnlyPassword ログインスキーマを追加します。

add authentication loginSchema onlypassword -authenticationschema /nsconfig/loginschema/LoginSchema/OnlyPassword.xml"

SMS OTP認証を成功させるためのすべての要素をリンクする

次の CLI コマンドを使用して、すべての要素をリンクします。

bind authentication policylabel send_otp -policyName wpp -priority 1 -gotoPriorityExpression NEXT -nextFactor otp_verify

注:

カスケード認証のポリシーが追加され、エンドユーザーの信頼性が高く継続的な認証が可能になります。現在の要因が失敗した場合、ユーザーエクスペリエンスに影響がないように次の要素が評価されます。

このコンテンツの正式なバージョンは英語で提供されています。Cloud Software Groupドキュメントのコンテンツの一部は、お客様の利便性のみを目的として機械翻訳されています。Cloud Software Groupは機械翻訳されたコンテンツを管理していないため、誤り、不正確な情報、不適切な用語が含まれる場合があります。英語の原文から他言語への翻訳について、精度、信頼性、適合性、正確性、またはお使いのCloud Software Group製品またはサービスと機械翻訳されたコンテンツとの整合性に関する保証、該当するライセンス契約書またはサービス利用規約、あるいはCloud Software Groupとのその他すべての契約に基づき提供される保証、および製品またはサービスのドキュメントとの一致に関する保証は、明示的か黙示的かを問わず、かかるドキュメントの機械翻訳された範囲には適用されないものとします。機械翻訳されたコンテンツの使用に起因する損害または問題について、Cloud Software Groupは責任を負わないものとします。
Web 認証用の SMS OTP の設定