※本記事は、Paul Toal による “Add Multi-Factor Authentication to applications in 3 easy steps” を翻訳したものです。
May 4, 2021
ほとんどの人が在宅ワークをしている今、セキュリティに関する会話で真っ先に認証が話題にのぼらないことはありません。ゼロトラスト・セキュリティへの関心と、ユーザーを理解し、ユーザーが認証され認可される方法を理解するための要件への関心が高まっていることと相まって、多要素認証(MFA)について、そしてどうすればOracle Identity Cloud Service(IDCS)を使用してこれをきわめて迅速かつ簡単にアプリケーションに追加できるかについてお話しするのに、今が良いタイミングだと思いました。
これを行うことで、認証プロセスのセキュリティが強化されるだけでなく、エンタープライズクラスのIdentity-as-a-Service(IDaaS)プラットフォームに認証を一元化し、認証を1か所で管理し、一貫性のある単一のフローをエンドユーザーに提供できます。
素晴らしいことに、たった3つの簡単なステップでこれを実行できます。今からその方法をご紹介しましょう。さあ、始めましょう。
ステップ1 – IDCSを使用してアプリケーションを統合する
まず、アプリケーションの認証をIDCSに委任する必要があります。これを実行するには、アプリケーションと、アプリケーションが何をサポートしているかによって、多数の異なるアプローチがあります。これについては以前にお話ししましたが、要約するとおもに次の3つのオプションがあります。
- SAML、OpenID Connect、OAuthなどのオープン標準ベースの統合
- 外部化された認証を把握するアプリケーション向けのヘッダーベースの統合
- オプション1または2をサポートできないアプリケーションを対象にしたフォーム・フィル統合
多数の一般的なアプリケーション用にテンプレートが事前構築されている、IDCSのApp Catalogを使用して統合を加速させることができます。
このブログのために、上記のオプション1を使用し、App Catalogを用いてSalesforceをIDCSと統合しました。これは、SAMLベースの統合です。

私のテスト・ユーザー、Bobby Darrenを使用して、Salesforceへの標準のSSOをテストできるようになりました。

基本のSSOが機能してユーザーがIDCSに認証され、その後、ユーザーのIDがSalesforceに渡され、ユーザーがログインします。私のテスト・ユーザー、Bobby Darrenを使用して、Salesforceへの標準のSSOをテストできるようになりました。
ステップ2 – 使用したいさまざまな要素を有効にする
SSOが機能するようになり、MFAをフローに重ねることができます。MFAポリシーをSalesforceに適用する前に、IDCSテナンシー内で使用したいさまざまな要素をステップ2で有効にします。
IDCSでは、下記のように広範囲の要素をサポートしています。

ここで必要なのは、Security → MFAメニューから使用したい要素を有効にすることだけです。この段階では、これらの要素はSalesforceアプリケーションに固有のものではありません。そうではなく、これらはIDCSインスタンス内でグローバルに有効にしたい要素です。ステップ3で示すように、アプリケーションごとにこれらのサブセットを選択できます。
有効にしたい要素にチェックを入れます。必要な場合は、Configureリンクを使用して各要素の構成を変更できますが、ほとんどの場合はデフォルトの構成でまったく問題ありません。信頼できるデバイスをここから有効化できることにも注意してください。これについては後ほど説明します。
場合によっては、チェック・ボックスがグレーに表示され、1つまたは複数のオプションが選択できないことがあります。その場合は、その機能を有効にするようOracle Supportにサービス・リクエストを送信してください。上記のインスタンスの例では、Duo Securityが有効化されていません。
ステップ3 – Salesforceのサインオン・ポリシーを作成する
Salesforceアプリケーションを登録し、要素を有効化しました。最後のステップでは、SalesforceにMFAを適用するサインオン・ポリシーを構成します。
IDCS管理コンソールで、Security → Sign-on Policiesに進みます。デフォルトのポリシーが表示されます。当然のことながら、これは“Default Sign-On Policy”と呼ばれます。これは、IDCSで認証を受けたすべてのユーザーに適用される一般的なポリシーです。このポリシーを変更する場合、すべてのアプリケーションのすべてのユーザーに影響します(IDCS管理コンソールを含む)。
特定のアプリケーションにMFAを適用したいだけなので、デフォルトのポリシーはそのままにしておき、”Salesforce-MFA”という新しいポリシーを作成します。
この新しいポリシー内で、AppsタブからSalesforceアプリケーションにこれを割り当てます。

次に、MFAを実行するためのルールを定義します。これは、Sign-On Rulesタブから行います。このタブ内で、新しいルールを追加します。このルールがいつ実行されるかを決定するためのさまざまな条件を追加できます。この例では、すべてのSalesforceユーザーがSalesforceへのアクセス時にMFAを要求されるようにします。該当するユーザー全員を含むグループ(SFと呼ばれます)があるため、これをグループ・メンバーシップ条件に追加します。
ルールにAdaptive Security Conditionsを指定することもできることに注意してください。これにより、MFAの要求はリスクベースになり、静的条件ではなく動的条件に基づくものとなります。この詳細については、別の記事で取り上げます。
最後に、Actionsセクションに入力して、これらのユーザーが要求を受ける方法を決定します。この例では、要素のサブセットを1つだけ使用できるようにしています。具体的には、Mobile App Passcodeです。他のオプションはすべてチェックを外しています。また、FrequencyとEnrollmentの設定もデフォルトのままにしています。以下に、完成したルールを示します。

ここで、SFグループに属さないためにMFAによる認証を受けないユーザーへのアクセスを拒否するための2番目のルールを追加します。

完成したポリシーは以下のようになります。
ルールは順番に処理されることに注意する必要があります。ルールを組み直す必要がある場合は、下の3番目の列のグリッドを使用して、ルールを上下にドラッグできます。

ここで必要なことは以上です。これでポリシーをテストできます。
MFAポリシーを有効化した後に初めて認証を行う場合、必要とされる要素で登録されていないユーザーは、許可されている要素の登録を行うことになります。下記の例では、モバイル・アプリ要素のみが有効化されているため、Bobbyはモバイル・アプリに登録する必要があります。
ただし、Bobbyが最初の登録をすると、以降の認証で2番目の要素を求められます。この場合は、Bobbyはモバイル・アプリを使用しているため、下記のようにプッシュ通知がそのデフォルトになります

MFA設定の中で信頼できるデバイスが許可されたため、Bobbyには現在使用中のデバイスを15日間信頼させるというオプションもあります。これは、そのデバイスからSalesforceにアクセスする場合、次の15日間はMFAを求められないことを意味します。信頼できるデバイスを有効にするかしないかについてサインオン・ルールの中で構成できることがお分かりでしょう。
これで完了です。3つの簡単なステップで、ターゲット・アプリケーションの1つに多要素認証を有効化できました。もちろん、この記事に示した通りにステップアップ認証を行う必要はありません。こちらで説明したように、FIDO2サポートによってパスワード不要の認証を使用して、当初のユーザー名とパスワードを置き換えるすることもできます。
このブログが皆さまのお役に立てば幸いです。もっと詳しく知りたいIDCSの特定の機能(またはいずれかのOCIセキュリティ機能)はありますか。もしくは、特定のユースケースの構成手順をご覧になりたいですか。遠慮なくお問い合わせください。それについて記事を作成いたします。
IDCSについて詳しくは、Oracle Identity Cloud Serviceを参照してください。
