カスタムOTPオーセンティケーターの構成
カスタムOTPオーセンティケーターは、多要素認証(MFA)が必要な環境にサインインするユーザーの追加の認証要素として、ハードウェアまたはソフトウェアのセキュリティトークンを介してワンタイムパスワード(OTP)を提供します。
Oktaでは、管理者は受け入れられるオーセンティケーターのリストにカスタムOTPオーセンティケーターを追加し、オプションでオーセンティケーターの名前をカスタマイズします。さらに、管理者は、各トークンに対してOkta Factors APIを通じてオーセンティケーターID要素とsharedSecret要素を渡す必要があります。
次に、エンドユーザーは、管理者から提供されたコードを入力してオーセンティケーターを設定するように求められます。エンドユーザーがオーセンティケーターを設定すると、サインインするたびに、IDを証明するためにOTPアプリまたはトークンに表示される時間ベースのコードを入力するように求められます。
カスタムOTPオーセンティケーターインスタンスは必要な数だけ追加できます。各インスタンスには独自の構成があります。これにより、エンドユーザーのグループをオーセンティケーターの異なるインスタンスに割り当てて、制御とセキュリティを強化できます。
このオーセンティケーターは標準のOTPトークンのみをサポートします。独自の実装や非標準のトークンはサポートされていません。
カスタムOTPオーセンティケーターに多要素ポリシーを適用する
エンドユーザーエクスペリエンス
開始する前に
- Okta Factors APIのドキュメントと、カスタムHOTP要素へのエンドユーザーの登録手順を確認します。
- orgでカスタムOTPオーセンティケーターがまだ有効になっていない場合は、Oktaサポートに連絡して有効にしてください。
- カスタムOTPオーセンティケーターに登録するユーザーごとに一意の共有シークレットを生成します。
- 一意の共有シークレットを使用してプログラムされたハードウェアまたはソフトウェアのセキュリティトークンをエンドユーザーに提供します。
- OTPの実装でHMACアルゴリズムまたは共有シークレットのエンコーディングを使用する場合は、手順を開始する前にこの情報を準備してください。
オーセンティケーターとしてカスタムOTPを追加する
- Okta Admin Consoleで、[Security(セキュリティ)]>[Authenticators(オーセンティケーター)]に移動します。
- [Setup(設定)]タブで、[Add Authenticator(オーセンティケーターを追加)]をクリックします。
- [Add for Custom OTP(カスタムOTPを追加)]をクリックします。
- 次の設定を構成します。
オーセンティケーター名
OTPの長さ
[HMAC Algorithm(HMACアルゴリズム)]。実装に適したアルゴリズムを選択してください。
[Time step(時間ステップ)]。[Clock drift interval(クロックドリフト間隔)]を参照してください。
[Clock drift interval(クロックドリフト間隔)]。この設定により、トークンの現在の時刻とサーバーの現在の時刻の差に対する許容度を組み込むことができます。ユーザーがコードを入力できる間隔(秒)を計算するには、[Time step(時間ステップ)]の値に[Clock drift interval(クロックドリフト間隔)]の値を掛けます。たとえば、[Time step(時間ステップ)]の値が60秒、[Clock drift interval(クロックドリフト期間)]の値が5の場合、60 X 5の結果は300になります。これは、エンドユーザーのコード入力の前後300秒以内にOktaがパスコードを受け入れることを意味します。
[Shared secret encoding(共有シークレットのエンコーディング)]。実装に適したアルゴリズムを選択してください。
作成後にOTP構成を編集することはできません。次の手順に進む前に、選択内容を確認してください。
- [Add(追加)]をクリックします。OktaがオーセンティケーターIDを生成します。これは、Okta Factors APIを使用してユーザーをカスタムOTPオーセンティケーターに登録するために使用されます。
- オーセンティケーターIDを取得します。
- [Actions(アクション)]をクリックします。
- [Authenticator ID & Info(オーセンティケーターIDと情報)]をクリックします。
- クリップボードのアイコンをクリックしてオーセンティケーターIDをコピーします。Okta Factors APIにユーザーを登録するときに、このIDをfactorProfileIdとして入力します。
エンドユーザーを登録する
Okta Factors APIのカスタムHOTP要素の登録機能を使用してユーザーを登録します。
ユーザーは1つのカスタムOTPオーセンティケーターインスタンスにのみ登録できます。複数のインスタンスにユーザーが表示されていないことを確認します。
ほかのすべてのユーザーを登録する前に、少数のユーザーでテストして構成が機能することを確認することをお勧めします。これにより、構成エラーの影響を少数のユーザーのみに制限し、残りのユーザーを登録する前に修正することができます。
作成後にカスタムOTPオーセンティケータープロファイルを編集することはできません。カスタムOTPオーセンティケータープロファイルに構成エラーを発見した場合は、影響を受けるすべてのユーザーを新しいカスタムOTPオーセンティケータープロファイルに再登録できます。すべてのユーザーを削除したら、カスタムOTPオーセンティケータープロファイルを削除できます。
API呼び出しを行うために、各ユーザーについて以下の情報があることを確認します。
- 要素タイプ:token:hotp
- プロバイダー:CUSTOM
- プロファイルID(設定手順で取得したオーセンティケーターID)
- 共有シークレット
正しいuserIdが各factorIDに割り当てられていること、および正しいセキュリティトークンに割り当てられていることを確認してください。これらの値が正しいエンドユーザーに対応していない場合、エンドユーザーが認証しようとしたときにエラーが発生します。
カスタムOTPオーセンティケーターに多要素ポリシーを適用する
- Okta Admin Consoleで、[Security(セキュリティ)]>[Authenticators(オーセンティケーター)]に移動します。
- [Enrollment(登録)]タブで、新しい多要素ポリシーを追加するか、既存の多要素ポリシーを編集します。
ポリシーを追加する
- [Add Multifactor Policy(多要素ポリシーを追加)]をクリックします。
- 名前を入力します。
- 多要素ポリシーをグループに割り当てます。
- カスタムOTPオーセンティケーターインスタンスの[Optional(任意)]または[Required(必須)]オプションを選択します。インスタンスの名前をカスタマイズした場合は、カスタムOTPの代わりにカスタマイズした名前を見つけます。
- [Create Policy(ポリシーを作成)]をクリックします。
- ポリシーにルールを追加する場合は、「認証登録ポリシールールの構成」を参照してください。
ポリシーを編集する
- 編集するポリシーを選択し、[Edit(編集)]をクリックします。
- [Effective factors(有効な要素)]で、カスタムOTPオーセンティケーターインスタンスの[Optional(任意)]または[Required(必須)]オプションを選択します。インスタンスの名前をカスタマイズした場合は、カスタムOTPの代わりにカスタマイズした名前を見つけます。
- [Update Policy(ポリシーを更新)]をクリックします。
- ポリシーにルールを追加する場合は、「認証登録ポリシールールの構成」を参照してください。
エンドユーザーエクスペリエンス
- グローバルセッションポリシーに従って、ユーザーはOktaにサインインするとき、またはOktaで保護されたアプリにアクセスするときに、オーセンティケーターを使用してIDを確認するように求められます。
- ユーザーがカスタムOTPオーセンティケーター(またはオーセンティケーターインスタンスのカスタマイズされた名前)を選択します。
- ユーザーがOkta Factors APIで正常に登録されると、セキュリティトークンに表示されるパスコードを入力するように求められます。
- エンドユーザーがAPIで正常に登録されなかった場合は、管理者に連絡するように指示するエラーが表示されます。
機密性の高い企業リソースを不正アクセスから保護するために、Oktaでは、Oktaに登録されたサードパーティーのOTPオーセンティケーターから試行された認証の失敗にレート制限を適用しています。試行された認証の失敗の累積回数が5分間で5回に達すると制限が適用されます。認証の失敗がレート制限を超えると、レート制限期間が経過するまで認証は許可されません。「リクエストが多すぎる」ことを示すHTTPステータス・コード429がOktaから返されます。メッセージがユーザーインターフェイスに表示され、エントリーがSystem Logに書き込まれます。