サンプルユースケース:パスワードレス認証を使用したルール

ルールを使用すると、パスワードレス接続だけを使うよりも複雑な状況が扱えるようになります。たとえば、メールアドレスやデバイスの所有を確実にするために、さらに対策を追加することができます。

企業ネットワーク外部のユーザーに多要素認証を要求する

企業ネットワークの外部からパスワードレス接続を使ってアプリケーションにアクセスしているユーザーに、多要素認証(MFA)を必須にしたいとします。

ルールを使用すると、ユーザーがパスワードレス方式(smsemail)を使って認証しているかどうかを確認し、セッションIPが指定の企業ネットワーク外だった場合に、第二認証要素を求めることができます。

これを行うには、以下のルールを作成します。

function(user, context, callback) {
  const ipaddr = require('ipaddr.js');
  const corp_network = "192.168.1.134/26";
  const current_ip = ipaddr.parse(context.request.ip);
  // is auth method passwordless and IP outside corp network?
  const passwordlessOutside = context.authentication.methods.find(
    (method) => (
      ((method.name === 'sms') || (method.name === 'email')) && 
      (!current_ip.match(ipaddr.parseCIDR(corp_network)))
    )
  );

  // if yes, then require MFA
  if (passwordlessOutside) {
    context.multifactor = {
      provider: 'any',
      allowRememberBrowser: false
    };
  }
  callback(null, user, context);
}

Was this helpful?

/