Office 365サインオンポリシーでカスタムクライアントを許可または拒否する

userAgent属性の使用

Office 365アプリのサインオンルールで特定のクライアントをフィルタリングして、Office 365リソースへのアクセスを許可または拒否することができます。このフィルターは、対応または信頼していない特定のクライアントへのアクセスを拒否する必要がある場合に、特に便利です。また、このフィルターを使用して、信頼できるクライアントのみを許可することもできます。これにより、Office 365アプリへのアクセス権を持つクライアントをより詳細に制御できます。

注

カスタムクライアントをフィルタリングするためのサインオンルールは、Okta ClassicからOkta Identity Engineに移行されません。Office 365アプリインスタンスをOkta Identity Engineに移行する場合は、これらのルールを再作成する必要があります。

ベストプラクティス

Oktaのサインオンポリシーでは、ユーザーのブラウザーから送信されるUser-Agentリクエストヘッダーに含まれる情報が評価されます。ただし、User-Agentは悪意のあるアクターによるなりすましが可能です。これを回避するために、Oktaでは以下の実践をお勧めします。

  • サインオンポリシーの作成時に、信頼できるクライアントのみを許可する。
  • アプリへのアクセスを許可するクライアントタイプ、デバイスプラットフォーム、および信頼の組み合わせを指定する、1つまたは複数のルールを作成する。
  • アプリにアクセスするために、デバイスの信頼またはMFAを要求する。「デバイス」および「多要素認証」を参照してください。

この手順を開始する

Office 365アプリで、

  1. [Sign On(サインオン)]タブに移動します。[User authentication(ユーザー認証)][Authentication policy(認証ポリシー)]で、[View policy details(ポリシーの詳細を表示)]をクリックします(または、[Security(セキュリティ)][Authentication Policies(認証ポリシー)][Microsoft Office 365][Add Rule(ルールを追加)]に移動して、これにアクセスできます)。
  2. [App Rule(アプリルール)]ウィンドウで[And The following custom expression is true(次のカスタム式をtrueとする)][If]セクションに移動します。
  3. Okta Expression Languageを使用してカスタム式を入力し、クライアントを許可または拒否します。次にいくつかのを示します。

  4. 必要に応じて他のセクションを完了し、[Save(保存)]をクリックします。「Office 365サインオンルールのオプション」を参照してください。
  5. [Sign On Policy(サインオンポリシー)]セクションに戻り、このルールを適切な優先度レベルに位置付けします。Oktaで各ルールを優先度に従って評価し、最初に一致したルールを適用します。
  6. アクセスを許可または拒否するそれぞれのカスタムクライアントに対して、手順1〜5を繰り返します。

このルールにより、指定されたクライアントをフィルタリングして、ルールで定義された他の条件とアクションを適用し、Office 365へのアクセスを許可または拒否できるようになります。

カスタム式の良い例と悪い例をいくつか紹介します。

注

Okta Expression Languageの文字列操作では、大文字と小文字が区別されます。大文字と小文字を区別しない条件を書き込むには、比較の前にユーザーエージェントの値を大文字または小文字に変換します。

良い例

機能
request.userAgent.contains("WinWord") WinWordが含まれるユーザーエージェントのリクエストをフィルタリングします。
request.userAgent.toLowerCase().contains("winword") リクエストを小文字に変換してから、winwordが含まれるユーザーエージェントをフィルタリングします。
request.userAgent.toUpperCase().contains("WINWORD") リクエストを大文字に変換してから、WINWORDが含まれるユーザーエージェントをフィルタリングします。
request.userAgent.contains("WinWord") OR request.userAgent.contains("Windows-AzureAD-Authentication-Provider") WinWordまたはWindows-AzureAD-Authentication-Providerが含まれるユーザーエージェントのリクエストをフィルタリングします。
request.userAgent.contains("compatible;") AND request.userAgent.contains("MSIE 7") compatibleおよびMSIE 7が含まれるユーザーエージェントのリクエストをフィルタリングします。

悪い例

機能
request.userAgent.contains("") すべてのリクエストに一致しています。
request.userAgent.contains() 式が無効です。

関連項目