初めてのOkta Workforce Identity Cloud (WIC) [第2回] 多要素認証を紐解く

本記事では、Okta Workforce Identity Cloud (以降、WIC) での多要素認証 (MFA) の設定について解説します。

多要素認証には欠かせない認証器 (Authenticator) であるOkta Verifyは多くの認証機能を持っているので、WICを触り始めた方にとっては、設定を理解するのが難しいと感じると思います。

そこで本記事では、主にOkta Verifyを使った多要素認証について言及していきます。

以降の解説は、以下のブログ記事の内容を実施済みの前提で進めていきます。

初めてのOkta Workforce Identity Cloud (WIC) トライアル環境の構築

初めてのOkta Workforce Identity Cloud (WIC) [第1回] ユーザーと認証器の関係を紐解く

そもそも、多要素認証ってなんだ?

多要素認証は文字のごとく「2つ以上の要素で認証」することです。

「2要素認証って、“パスワード” と ”子供の頃なりたかった職業は?” みたいな質問の、2つの値で認証することでしょ?」と思われてる方も多いと思いますが、実はこれは、2要素認証ではないのです。

なぜなら、どちらも「知識」という要素だからです。

「多要素」とは、「知識」「所持」「生体」の3つの要素のうち、異なる2つ以上の組み合わせで認証することを言います。

jp blog okta what is mfa

[参考資料]NIST Update: Multi-Factor Authentication and SP 800-63 Digital Identity Guidelines

これを踏まえて、以降、Oktaの多要素認証設定を解説していきます。

MFAとは?

Authentication Policiesの2要素認証の設定を紐解く

WICトライアル環境を作った際に、RSA SAML Test Service Provider とSAML連携するように設定しました。

第1回目のブログ記事でも少し解説しましたが、そのアプリへアクセスする際は、すでに2要素認証になっています。

「スマートフォン上のOkta Verifyのワンタイムパスワード(手入力) or プッシュ」=「所持」と、「パスワード」=「知識」の2要素ですね。

jp blog device push knowledge password

===== << 注 >> =====

もし、既にスマートフォンのOkta Verifyで「Face ID=顔認証」を有効にしている場合は、「スマートフォン上のOkta Verifyのワンタイムパスワード(手入力) or プッシュ」=「所持」と、「パスワード」=「知識」の2要素認証になっていないと思います。

Face IDが有効だと、1回のアクションで2要素認証が実現できる状況になっているからです。

この機能は便利なので、通常は使って頂いても全く問題ありませんが、ここでは一旦、以下の方法でFace IDをOFFにしてください(あくまで、以降の解説のご理解を深めるため、という理由だけです)。

そして、もう一度RSA SAML Test Service Provider にログインして、「スマートフォン上のOkta Verifyのワンタイムパスワード(手入力) or プッシュ」=「所持」と、「パスワード」=「知識」の2要素認証になったことを確認しておいてください。

jp blog RSA SAML Test Service Provider

================

では実際の設定を見てみましょう。

WIC管理画面の「Security」→「Authentication Policies」で表示された画面を見ると、「Any two factors」というポリシーにRSA SAML Test Service Provider アプリが割り当てられていることがわかります。

「Default」との記載がある通り、新しく追加したアプリは基本的にはこの「Any two factors」に紐付けられます。もちろん変更もできます。

上記画面の「Any two factors」をクリックして設定を確認してみましょう。

jp blog Any two factors2

① 「Catch-all Rule」というルールが設定されています。

このルールは必ず存在し、必ず最後に適用されるルールです。

一部の設定変更はできますが、削除はできません。

「Add Rule」ボタンをクリックして、これ以外の新しいルールを追加することもできます。
(今は追加はしないで、このCatch-all Ruleを使います。)

②「IF」は、この認証ルールの条件です。「Any request」となっているので、「全ての認証要求に適用されるルール」ということです。

③「THEN」は、②の「IF」条件に一致したら、ここに指定した認証を行う、という意味です。

「Access: Allowed with any 2 factor types」とありますので、「2要素の認証を行う」という設定になっていることが分かります。

WICを触り始めた初期段階では、この「THEN」に記載されている内容の理解に苦しむと思いますので、解説しておきます。

理解に苦しむ原因は「Okta Verifyアプリが多機能だから」というのが根本にあります。

まずは比較的分かりやすい、「Password」と「Okta Verify」の組み合わせの方から解説していきます。

jp blog okta verify diagram

①には「Knowledge / Biometric factor types」との記載があります。これが1要素目であり、まずは「知識」か「生体」のどちらかの要素で認証しましょう、ということです。

「Password」は「知識」ですので、1要素目として「知識」を使うことになります。

②には「Additional factor types」とあります。1要素目で「知識」は使いましたから、2要素目に「知識」は使えませんので、「所持」か「生体」で認証する必要があります。

「Okta Verify」か「Phone」が選択肢として存在していますが、WICトライアル環境では「Phone」は残念ながら使えないので、自ずと「Okta Verify」が2要素目となります。

この2要素目のOkta Verifyは、現時点での設定だけですと「スマートフォン上のOkta Verifyのワンタイムパスワード(手入力) or プッシュ」を「所持」要素として使って認証することになります。

実際に、WICトライアル環境で設定したRSA SAML Test Service Provider へログインする際には、「スマートフォン上のOkta Verifyのワンタイムパスワード(手入力) or プッシュ」と「パスワード」の2要素で認証しましたね。

ここまではまだ理解しやすいとは思いますが、WICを触り始めたばかりの方々の理解を苦しめるのは、以下の1要素目も2要素目も「Okta Verify」の場合です。

jp blog okta verify diagram2

「ん? どっちもOkta Verifyなら、所持だけ (1要素だけ) じゃないの?」と思ってしまいますよね。

実は、Okta Verifyアプリは「スマートフォン上のOkta Verifyのワンタイムパスワード(手入力) or プッシュ」の「所持」要素に加え、「生体」要素も持つことができるので、このようになっているのです。

jp blog okta push notification

( 注意書きに「Authenticator that may satisfy multiple factor requirements」 と書いてあるのは、このことを意味しています。)

「Okta Verifyプッシュ」と「生体(Face ID)」で2要素認証してみる

では、「スマートフォン上のOkta Verifyプッシュ」=「所持」と、「スマートフォンのFace ID」=「生体」の組合せでの2要素認証ができることを確認しましょう。

スマートフォンのOkta Verifyで、生体認証である「Face ID」を有効にします。
(生体認証を有効にする際に本人確認が行われるので、ちょっとステップが多いです。)

(1) スマートフォンのOkta Verifyで、ご自身のTrialの「>」をクリックします。

(2) 「有効にする Face ID」の横のボタンをクリックします。

(3) 「次へ」をクリックします。

(4) 「コードをコピー」をクリックし、(5) 「本人確認に進む」をクリックします。

jp blog copy code

(6) パスワードを入力して、(7) 「サインイン」をクリックします。

(8) 「コードを入力する」の横の「選択」をクリックします。

(9) (4)でコピーしておいたコードをペーストして、(10) 「確認」をクリックします。

(11) 「完了」をクリックして、完了です。

jp blog copy code done

(12) (確認のみ)「有効にする Face ID」が「ON」になります。

(13) (確認のみ) ワンタイムパスワードの6桁数字がマスキングされます。

jp blog masked

それでは、この生体認証を使って、RSA SAML Test Service Provider へログインしてみましょう。

SP-Initiated (最初にRSA SAML Test Service ProviderへアクセスしてからWICで認証するパターン) でログインしてください。(現時点では、2要素認証になっているのはこのアプリだけなので。)

SP-Initiatedは、WICトライアル環境構築時に、RSA SAML Test Service Providerアプリ側に表示された、以下のようなURLに最初にアクセスするパターンです。

jp blog unique login

Webブラウザで上記のURLにアクセスしてください。

以下の画面が出力されますので、ユーザー名を入力して「次へ」をクリックします。

jp blog rsa

「プッシュ通知を取得する」の「選択」をクリックします。

jp blog rsa2

スマートフォンに通知が来ますので、「はい私です」をクリックします。これが「1要素目」です。

その直後にFace IDが動作します。これが「2要素目」です。

jp blog faceid

スマートフォンのOkta Verifyだけで2要素認証が完了したので、パスワードを入力することなく、RSA SAML Test Service Providerにログインできました。

jp blog RSA SAML Test Service Provider2

Okta Verifyには「FastPass」という「所持」要素もある

実はOkta Verifyアプリは、さらにもう一つの「所持」要素として、「FastPass」という機能も持っています。

Okta Verifyが多機能すぎて話がややこしくなってきたので、この辺でOkta Verifyの機能について整理しておきましょう。

jp blog okta verify feature

FastPassは、パスワードレス認証を実現する、デバイス紐付き型の認証器です。
(短い言葉では説明するのが難しいので、後ほど少し詳しく解説します。)

「スマートフォン上のOkta Verifyのワンタイムパスワード(手入力) or プッシュ」の場合、Windows/MacOSでWebアプリにアクセスする場合でも、iOS/AndroidでWebアプリにアクセスする場合でも、どちらでも認証器として使えます。

一方、FastPassは「デバイスに紐づく認証器」なので、iOS/Androidでデバイス登録したらiOS/Androidだけ、Windows/MacOSでデバイス登録したらWindows/MacOSだけで使える認証器となります。
(この意味も、後ほどの解説で理解できると思います。)

上記の表のように、iOS/Androidのスマートフォン上のOkta Verifyは、「所持」要素として3つも持っています。

そして、まだ過去のブログ記事でも登場していませんが、WindowsやMacOSなどパソコン用のOkta Verifyもありまして、こちらは「所持」要素は1つ (=FastPass) だけです。

このような状況から、FastPassはパソコン上のOkta Verifyの動作で説明した方が分かりやすいです。

ということで、以降はMacbookにOkta Verifyアプリをインストールして、MacbookだけでFastPassを実現する流れで進めていきます。

jp blog Macbook FastPass

さらに「生体」認証を追加して、2要素にすることができます。

jp blog Macbook FastPass bio

「FastPass」と「生体」認証の話

FastPassのより詳細は別ブログ記事に譲りまして、ここでは動作イメージを解説しておきます。

FastPassのためのデバイス登録

Bsaku BkawaさんはATKO社の社員で、ユーザー名は「[email protected]」と仮定しましょう。

Bsaku Bkawaさんは、自分のMacbookにOkta Verifyアプリをインストールしました。

Bsaku Bkawaさんは、最初だけ、ユーザー名とパスワードやSMSなどを使って「自分のMacbookをWICにデバイス登録する」という作業が必要です。

デバイス登録の際には、Macbook上のOkta Verifyアプリが、[email protected]と紐づいた秘密鍵と公開鍵の対を生成して、公開鍵だけをWICへ送信してWICに保持してもらいます。

jp blog secretkey

FastPassによる認証

デバイス登録が完了すれば、それだけで認証ができるようになります。

ちょっと複雑ですが、認証は以下のような流れで行われます。

(1) WICからチャレンジ (何らかの文字列) をMacbookのOkta Verifyアプリに送ります。

(2) Okta Verifyアプリは、チャレンジに秘密鍵で署名して、それをWICに送り返します。

(3) WICでは、それを復号化してチャレンジを取り出し、送ったチャレンジと照合して、一致したら認証OKとします。

jp blog secretkey2

もし、「Okta Verifyの1要素認証だけOK」と設定したWebアプリがあれば、そのWebアプリのログインは、ユーザー名もパスワードも入力することなく、この機能だけで認証が完了します。

設定としては、「THEN」で以下のようにOkta Verifyの1要素だけになっている場合です。

jp blog one factor

ユーザー名は署名に紐づいた形でOkta VerifyアプリからWICに渡されますから、ユーザー名の入力も必要ありません。

以上が「FastPass」という機能です。

生体認証の追加

FastPassの「所持」要素に加え、2要素目として「生体」認証を追加することができます。

と言っても、MacOSであればMacOS標準機能の「Touch ID」、Windowsであれば、Windows標準機能の「Windows Hello」とOkta Verifyアプリが連携する形態であり、Okta Verifyアプリが生体認証を実装している、というわけではありません。

( また、勘違いしやすいポイントですが「生体認証」=「FastPass」ではありませんので注意が必要です。FastPassはあくまで上記で解説した「所持」を証明する機能のことで、「生体」認証はFastPassのオプション的な扱いです。)

jp blog challenge

「OSがもつ指紋認証機能で認証がOKになったら、Okta Verifyに次のアクションの実行 (=署名を送ること) を許可する」というような動作イメージです。

(WICに対して、指紋情報そのものを送信しているわけではありません。指紋情報はあくまで端末OSの中だけで完結します。)

この「OS上での指紋認証はOKでした」という「生体」認証の結果と「FastPassでの署名」という「所持」情報をWIC側へ送信することで、2要素認証として成立します。

ユーザーであるBsaku Bkawaさんのアクションは指紋認証の1アクションだけなので、利便性も上げつつセキュリティも向上する、という一石二鳥な機能です。

=====(参考)=====

実は、「スマートフォン上のOkta Verifyプッシュ」と「生体(Face ID)」の2要素認証でも、この説明と同じことが行われています。

「スマートフォンOS上での顔認証はOKでした」という「生体」認証の結果を、Okta Verifyプッシュの際に同時にWICに伝えているので、1つのアクションで2要素が実現できているのです。

一方、「スマートフォン上のOkta Verifyのワンタイムパスワード(手入力)」は、残念ながら「生体(Face ID)」との組み合わせでの2要素認証はできません。

スマートフォン上のOkta Verifyに表示された6桁の数字をWebブラウザに手入力するだけなので、「スマートフォンOS上での顔認証はOKでした」という「生体」認証の結果をWICに伝えることができないためです。

ただこの場合でも、Face IDを有効にしておけば、顔認証しないと6桁の数字が表示されないので、セキュリティ強化になります。

================

FastPassのデバイス登録から認証まで

では、ここからはMacbookを使って、FastPass認証を行うためのデバイス登録から生体(指紋)認証ができるまでの設定をしていきたいと思います。

デバイスの登録

MacbookにインストールしたOkta Verifyアプリを使ってデバイス登録するには、第1回目のブログ記事でも登場した「Security」→「Authenticators」を設定します。

まず「Enrollment」タブを見てください。これは第1回目のブログの設定のまま使います。

jp blog enrollment

特に設定変更していなければ、「Okta Verify 」は「 Optional (任意)」となっていると思いますので、このままでOKです。

もし、設定が異なっていれば、Okta Verifyは「Required」か「Optional」を選択してください。

この「Enrollment」タブでは、「ユーザーにOkta Verifyの使用を強制するか、任意にするか、使用させないか」を宣言しているだけです。

「Okta Verifyが持つたくさんの機能のうち、ユーザーにどの機能の使用を許可するか」は「Setup」タブで設定します。

「Setup」タブで、「Okta Verify」の行の「Actions」から「Edit」を選択します。

jp blog actions

すると、以下の画面が現れます。

jp blog user verification

①「Verification Options」で、「ユーザーにどの”所持”要素を使うことを許可するか」を決めます。

今はFastPassを使えるようにしたいので、「Okta FastPass (All platforms)」が有効であることを確認してください。(もし無効になっていたら、有効にしてください。)

上記スクリーンショットでは、全部にチェックが入ってるので「ユーザーは、Okta Verifyの”所持”要素はどれでも使える」という状態です。

②「Okta FastPass」の「Sign-in page option」で「Show the “Sign in with Okt FastPass” button」を有効にします。

この設定によって、ユーザーがWICにアクセスした際に「Okta FastPassでサインインする」というボタンが表示されるようになります。

この設定は必須ではないのですが、WICにデバイス登録したい端末 (本ブログではMacbook) には、まだOkta Verifyアプリがインストールされていない想定なので、端末がWICにアクセスした際に、Okta Verifyのダウンロード用Linkが表示されるようにしたいので、有効にしました。

③「User Verification」で、「ユーザーに生体認証を強制するか、任意にするか」を指定します。

「Required」にすると生体認証を強制できるようになりますが、ここではデフォルトの「Preferred (任意)」のまま進めます。

「Save」します。

Bsaku Bkawaさんをパスワードだけで登録しておく

第1回目のブログ記事のAsaku Akawaさんをパスワードだけで登録したのと同じ方法で、以下2点を行ってください。

(1) Bsaku Bkawaさん ([email protected]) を新規にパスワードだけで登録してください。

(2) RSA SAML Test Service Providerアプリケーションを、Bsaku Bkawaさんに割り当ててください。

デバイス登録のための端末からのアクセス

まずは、Bsaku Bkawaさんの端末 (本ブログではMacbook) をWICへデバイス登録してみましょう。

Webブラウザで、WICのURL (trial-XXXXXX.okta.com) にアクセスしてください。

「Okta FastPassでサインインする」というボタンが表示されるので、それをクリックします。

jp blog sign in with okta fastpass

以下の画面が表示されたら、「ここにダウンロード」をクリックします。

jp blog okta verify download here

MacbookであればApp Storeへ誘導されるので、インストールして「開く」をクリックします。

jp blog okta verify appstore

Okta Verifyアプリが起動します。「はじめに」をクリックします。

jp blog okta verify getstarted

「次へ」をクリックします。

jp blog okta verify next

WICトライアル環境のURLを入力して、「次へ」をクリックします。

jp blog okta verify wictrial

ブラウザの新しいタブが起動するので、ユーザ名を入力して、「次へ」をクリックします。

jp blog okta verify browser next

パスワードを入力して、「確認」をクリックします。

jp blog okta verify password confirm

この後、Macbook上のOkta Verifyアプリは以下のような画面に遷移します。

指紋認証=Touch IDを有効にしたいので、「次へ」をクリックします。

jp blog okta verify touchid

「Touch IDを有効化」をクリックします。

jp blog okta verify touchid activate

この後、アカウントが追加できたことを示すメッセージが出ます。

数秒後に、以下の画面になります。

jp blog okta verify accounts

WICにデバイスが登録された状態を確認してみましょう。

Okta Admin Consoleの「Directory」→「Devices」で表示された画面を見てください。

以下のように、Macbook (TakuyaのMacbook Air) が登録されていることが分かります。

jp blog okta verify device

デバイス登録した端末で認証

では、指紋だけで2要素認証が実現できるようになったか、確認してみましょう。

現在、2要素認証の設定になっているのは、RSA SAML Test Service Providerアプリだけなので、SP-Initiatedでアクセスしてください。

WICトライアル環境構築時に、RSA SAML Test Service Providerアプリ側に表示された、以下のようなURLに最初にアクセスするパターンです。

jp blog okta verify logon

「Okta FastPassでサインインする」をクリックします。

ユーザー名を入力していないことを確認ください。(入力されていても問題はありませんが、FastPassの場合は、ユーザー名なしでログインが可能なことを確認するためです。)

jp blog okta fastpass

「Okta FastPassを使用する」の「選択」をクリックしてください。

(この確認が行われるのは最初の認証時だけです。Cookie保存が有効なブラウザであれば、2回目以降はこの選択画面は表示されなくなります。)

jp blog okta rsa

Touch IDでの認証を要求されますので、指紋認証を行ってください。

jp blog okta verify touchid RSA

指紋認証だけで、RSA SAML Test Service Providerの画面が表示されました。

jp blog okta RSA SAML Test Service Provider

ユーザーは指紋認証だけの1アクションですが、実際には、FastPassと指紋の2要素認証になっています。

まとめ

本ブログでは、多要素認証の設定についてご紹介しました。

一般的に「セキュリティと利便性はトレードオフ」と言われて久しいですが、今回ご紹介したFastPassをご利用頂くことで、セキュリティ向上と利便性を両立する認証を実現することができます。

Okta WICでは、認証の強化だけでなく、管理者が行うユーザーの登録/変更/削除に関わる業務の自動化や、人事管理システムや既設ディレクトリなどとの柔軟な連携も可能です。

Oktaでは、これらの機能を体感頂くことができる「Okta Essentials」トレーニングをご用意しております。(日本語でのトレーニングもご用意しております。)

このトレーニングは全体像を体系的にご理解頂ける内容となっておりますので、是非ともご活用ください。