Microsoft Cloud App Security + クライアント証明書によるアクセス制御

こんちには!テクバン サポート チームの山本です。

今回は、Microsoft のクラウド アプリ監視サービスであるCloud App Securityを利用して、クラウド アプリへのアクセスをクライアント証明書によって制御する方法についてのご紹介です。

Cloud App Securityとアクセス制御

■ 概要

現在、様々なクラウド サービスを利用しながら仕事をしている方も多くなってきていますが、その際に必ず課題として挙がるのがセキュリティの問題です。

Cloud App Security は、ユーザーによって利用されているクラウド上のSaaS アプリケーションの情報を収集し可視化したり、それらに対するアクセスを制限したりすることが可能です。これにより、ユーザーのアクティビティの監視や組織のデータ保護に役立ちます。

■ Cloud App Security のアクセス制御

今回は、Cloud App Security の機能のうち、特にアクセス制御について注目します。

Cloud App Security では、様々なクラウド上のSaaS アプリケーションに対してアクセス制御を行うことが可能です。またアプリケーションにより、例えば「ダウンロードを禁止する」等の細かな制限(セッション制御)が可能な場合もあります。

様々なアクセス制御の条件を選択可能ですが、この記事では、クライアント証明書によるアクセス制御について設定したいと思います。

今までクライアント証明書によるアクセス制御を実装しようとすると、AD FSによるフェデレーション環境を構築するか、サードパーティ製の製品を導入する必要があったりと手間がかかりました。Cloud App Security で、より簡単にクライアント証明書によるアクセス制御を実装してみましょう。

今回は例として、Azure AD と Salesforce でSAML連携 + シングル サインオン(SSO)構成を行い、Salesforce へのアクセスをCloud App Security で監視、そしてアクセス制御を実施したいと思います。

事前準備

■ 必要なもの

Cloud App Security のアクセス制御を利用するには、Cloud App Security のライセンスの他に、Azure AD Premium P1のライセンスが必要となります。
また、クライアント証明書でのアクセス制御を行う場合は証明書一式も必要となります(今回はルート証明書とクライアント証明書を用意しています)。

■ クラウド アプリケーションのSAML連携 + シングル サインオン構成

Cloud App Security のアクセス制御は、シングル サインオンで構成されたSAML アプリやAzure AD アプリケーション プロキシで構成されたオンプレミス Web アプリなどがサポートされています。

そのため、まずはAzure AD と Salesforce でSAML連携 + シングル サインオン(SSO)構成を行います。これにより、Salesforce にサインインする際にはAzure ADと同一のユーザー アカウントを利用し、認証はAzure AD にて行われるようになります。連携後は一度Azure ADで認証を行うだけで、Salesforce にもID/パスワード無しでログインすることが可能となります。セキュリティも強化しながら、アカウントの一元管理もできますね!

MyApps (http://myapps.microsoft.com) にアクセスし、Azure ADの認証でサインインします。アプリケーションをユーザーへ割り当てると、アプリケーション一覧に Salesforce が表示されます。

SAML連携、およびシングル サインオンを構成してあれば、一覧の Salesforce をクリックするだけで、追加の認証無しでそのまま Salesforce の画面に遷移できます。 

Azure ADと Salesforce のSAML連携、およびシングル サインオンを構成する手順については、以下のMicrosoft 社公開情報を参照してください。

  ・ チュートリアル:Azure Active Directory と Salesforce の統合 

基本的な設定

ここから、Cloud App Security で Salesforce へのアクセスを検知および制御できるよう設定していきます。

大まかな手順としては以下となります。 

  手順 1 : Salesforce のセッションを Cloud App Security にルーティング 

  手順 2 : ポリシーのスコープに含まれるユーザーでアプリにサインイン 

  手順 3 : Cloud App Security にアプリを追加 

■ 手順 1 : Salesforce のアクセス セッションを Cloud App Security にルーティング 

まずは、Azure Active Directory の条件付きアクセスを利用して、Salesforce のアクセス セッションをCloud App Security にルーティングします。これにより、Salesforce に関するアクセスをCloud App Security で検知できるようになります。 

Azure Active Directory 管理センター (https://aad.portal.azure.com/) にアクセスし、[Azure Active Directory] > [条件付きアクセス]の順にクリックします。 

条件付きアクセス ポリシーを新規作成してください。 

  ・ 名前 : <任意> 

  ・ 割り当て : <任意> ※ここでは「すべてのユーザー」を選択 

  ・ クラウド アプリ : <対象のアプリケーション> ※事前準備にてSAML連携設定した「Salesforce」を選択 

  ・ セッション : 「アプリの条件付きアクセス制御を使う」にチェックを入れる 

※ ポリシーの有効化を忘れずに行ってください。 

■ 手順 2 : ポリシーのスコープに含まれるユーザーでアプリにサインイン 

条件付きアクセス ポリシーを作成した後は、ポリシーが適用されたAzure ADのユーザー アカウントで、Salesforce に一度アクセスします。 

■ 手順 3 : Cloud App Securityにアプリを追加 

ポリシーが適用されたユーザーでSalesforce にサインインを行うと、Cloud App Security にて新しいクラウド アプリケーションとして検知されます。 

Cloud App Security ポータル (https://portal.cloudappsecurity.com) にアクセスし、画面左上の歯車アイコン > [アプリの条件付きアクセス制御]をクリックします。 

[アプリの条件付きアクセス制御 アプリ]一覧に、新たに検出されたクラウド アプリケーション(今回はSalesforce)が表示されます。[セットアップの続行]をクリックします。 

以下画面が表示されますので、[追加]をクリックします。 

ここまでの手順によって、Azure ADのユーザー アカウントにてSalesforce へアクセスした際、Cloud App Security にてアクセスを検知および制御する準備が完了しました。 

[利用可能な制御]列を確認すると、そのアプリケーションで利用可能なアクセス制御の種類が表示されます。例えば[セッション制御]が表示されていない場合、そのアプリケーションはセッション制御を使用できない(≒未対応)ことを示しています。 

Salesforce の場合、[利用可能な制御]列に[Azure AD 条件付きアクセス]と[セッション制御]の2種が表示されることから、Salesforce へのサインインの制御、および細かなアクティビティの制御、どちらも利用可能なことがわかります。 

クライアント証明書認証の設定

ここまでの設定にて、Cloud App Security で Salesforce へのアクセスを検知できるようになったので、次は実際にクライアント証明書による認証ができるように設定していきます。 

大まかな手順は以下になります。 

  手順 4 : Cloud App Security にルート証明書をアップロード 

  手順 5 : クライアント証明書認証が必要になるようにポリシーを作成 

■ 手順 4 : Cloud App Security にルート証明書をアップロード 

ここでは、認証に使用するクライアント証明書のルート証明書をCloud App Security にアップロードします。 

Cloud App Security ポータル (https://portal.cloudappsecurity.com) にアクセスし、画面左上の歯車アイコン > [設定]をクリックします。 

メニューから[デバイスの識別]をクリックし、[クライアント証明書ベースの識別]の[+]アイコンをクリックします。 

クライアント証明書認証で使用する証明書の、ルート証明書をアップロードします。 

■ 手順 5 : クライアント証明書認証が必要になるようにポリシーを作成 

次に、Salesforce へのアクセス時にクライアント証明書による認証が必要となるようにポリシーを作成します。 

Salesforce では、サインインを制御するアクセス ポリシーと、それ以上に細かい制御を行うセッション ポリシーが作成できますが、ここではわかりやすい例として、サインイン時にクライアント証明書による認証が必要なようにアクセス ポリシーを作成します。 

画面左のメニューから[制御]アイコン > [ポリシー]をクリックします。 

[ポリシー]画面が表示されるので、[ポリシーの作成] > [アクセス ポリシー]をクリックします。 

アクセス ポリシーの作成画面となりますので、ポリシーを作成します。 

  >> 次のすべてに一致する アクティビティ 

    ・ [デバイス タグ] – [が次の値に等しくない] – [有効なクライアント証明書] 

    ・ [アプリ] – [が次の値に等しい] – [Salesforce] 

  >> アクション 

    ・ ブロック 

ここまでの設定にて、ユーザーがAzure AD のユーザー アカウントでSalesforceにアクセスする際、クライアント証明書による認証が行われるようになりました。次は実際にアクセス確認を行いましょう。 

動作確認

Salesforce にアクセスしてみましょう。 

MyApps (http://myapps.microsoft.com) にアクセスし、SAML連携にてSalesforce が割り当たっているユーザーでサインインします。アプリケーション一覧にはSalesforce が表示されますので、こちらをクリックし、シングル サインオンを試みます。 

すると下記のような画面が表示され、クライアント証明書の確認が行われます。 

クライアント証明書による認証が行われると、Salesforce にログインすることができました。 

Cloud App Security のアクティビティ ログには、Salesforce へのログインが正常に行われた旨のアクティビティが記録されます。(IPアドレスなど、一部加工しています。)

なおクライアント証明書がインストールされていない端末でSalesforceへのサインインを試みると、以下のようなメッセージでブロックされます。 

Cloud App Securityのアクティビティ ログには、Salesforceへのサインインに失敗した旨のアクティビティが記録されます。 

最後に

いかがでしたでしょうか。 

Cloud App Security の証明書認証はAD FS 等他のシステムに比べて簡単に導入でき、また認証の設定も確認しやすくなっています。自社のセキュリティ対策にぜひご活用ください。