Office 365での証明書ベースの認証

Secure Mailは、Office 365での証明書ベースの認証(クライアントベースの認証とも呼ばれます)をサポートしています。iOSおよびAndroidデバイスを使用しているSecure Mailユーザーは、Office 365に接続するときに、証明書ベースの認証を利用できます。Secure Mailにサインインするときに、ユーザーは、資格情報を入力する代わりにクライアント証明書を使用して認証します。この記事では、Office 365用に証明書ベースの認証を構成する方法について説明します。

Secure Mailでの証明書ベースの認証に対するサポートは、オンプレミスのExchangeの構成を対象としています。すでにEndpoint Managementで証明書ベースの認証を設定している場合は、WindowsサーバーでExchange Online、Azure Active Directory、およびActive Directoryフェデレーションサービス(ADFS)を構成します。その後、Secure Mail versions 10以降を使用しているユーザーは、証明書ベースの認証を使用して、自分のOffice 365アカウントに接続できます。

Endpoint Managementで証明書ベースの認証を構成していない場合は、まずEndpoint Managementコンソールでこの機能を有効化する必要があります。詳しくは、「クライアント証明書、または証明書とドメイン認証の組み合わせ」を参照してください。その後、WindowsサーバーでExchange online、Azure(AD)、およびADFSに対して証明書ベースの認証を有効化します。

この記事の手順は、Endpoint Managementで証明書ベースの認証が有効になっていることを前提としています。

以下の図は、コンポーネントがどのように証明書ベースの認証の統合に関連するかを示しています。

証明書ベースの認証コンポーネントのイメージ

前提条件

  • Endpoint ManagementコンソールでPKIエンティティを構成したときに証明機関(CA)によって生成された証明書のコピー(X.509)。
  • CAには、URLから参照できる証明書失効一覧(CRL)がある必要があります。
  • 証明書の [サブジェクトの別名] フィールドで、[RFC822 Name] または [Principal Name] の値にユーザーメールアドレスを含めます。例については、次の図を参照してください。

証明書サブジェクト代替名フィールドのイメージ

以下の手順は、WindowsサーバーでExchange online、Azure AD、およびADFSに対して証明書ベースの認証を構成する方法を示します。

この記事は、Microsoft社による構成ガイダンスを要約しています。Microsoftコンポーネントの構成手順で問題がある場合は、Microsoft社のドキュメントで詳細を確認することをお勧めします。

Exchange Onlineを有効化するには

Microsoft Exchange Onlineでは、Office 365テナントの先進認証機能を使用します。これらの機能によって、スマートカードを使用する多要素認証(MFA)、証明書ベースの認証、サードパーティ製SAML IDプロバイダーなどの認証機能が有効化されます。デフォルトでは、先進認証はExchange Onlineで有効化されていません。先進認証を有効にするには、次の手順を実行します。

  1. Exchange Online PowerShellに接続します。詳しくは、Microsoft社のドキュメントを参照してください。
  2. 次のコマンドを実行します。

    Set-OrganizationConfig -OAuth2ClientProfileEnabled $true

  3. 変更が正常に行われたことを確認するには、次のコマンドを実行します。

    `Get-OrganizationConfig | Format-Table -Auto Name,OAuth*`

Azure ADを設定するには

Exchange Onlineによって、要求で prompt=login コマンドがAzure ADに送信されます。デフォルトでは、Azure ADはこの要求内のコマンドをADFSに対して wauth=usernamepassworduri と変換します。

デフォルトで、Azure ADはADFSにU/P認証の実行を要求します。Azure ADは、Azure ADがシングルサインオン(SSO)の状態を無視して新しく認証を行うように要求するコマンド'wfresh=0'も送信します。

  1. デフォルトのAzure ADのSet PromptLoginBehaviorの動作を変更します。

    • Office 365 PowerShellに接続します。詳しくは、Microsoft社のドキュメントを参照してください。
    • Office 365 PowerShellで次のコマンドを実行します。

      注:

      このドメインはメールサーバーのドメインと同じです。

    Set-MSOLDomainFederationSettings -domainname <domain> -PromptLoginBehavior Disabled

  2. Azure ADで証明機関を設定します。上記の前提条件の一覧に記述されているとおり、ルート証明書のパブリックな部分をアップロードします。

    • Azure AD PowerShellに接続します。詳しくは、Microsoft社のドキュメントを参照してください。
    • Azure AD PowerShellで以下のコマンドセットを実行します。.cerファイルはマシンでローカルに利用できます。

    $cert=Get-Content -Encoding byte "[LOCATION OF THE CER FILE]" $new_ca=New-Object -TypeName Microsoft.Open.AzureAD.Model.CertificateAuthorityInformation $new_ca.AuthorityType=0 $new_ca.TrustedCertificate=$cert New-AzureADTrustedCertificateAuthority -CertificateAuthorityInformation $new_ca

  3. Azure ADでの失効を設定します。

    クライアント証明書を失効させるために、Azure ADではCA情報の一部としてアップロードされた証明書失効一覧(CRL)をURLから取得およびキャッシュします。CRLの最新の公開タイムスタンプ(Effective Dateproperty)は、CRLが依然として有効であることを確認するために使用されます。CRLは、この一覧の一部である証明書へのアクセスを失効させるため、定期的に参照されます。失効が持続するようにするため、CRLの発効日を、StsRefreshTokenValidFromによって設定された値よりも後の日付にする必要があります。

    また、該当の証明書がCRLにあることも確認してください。以下の手順で、StsRefreshTokenValidFromフィールドを設定することによって認証トークンを更新および無効化するプロセスについて説明します。

    • MSOLサービスに接続します。詳しくは、Microsoft社のドキュメントを参照してください。
    • 次のコマンドを実行して、有効なユーザーに対する最新のStsRefreshTokensValidFromの値を取得します。

      $user = Get-MsolUser -UserPrincipalName test@yourdomain.com $user.StsRefreshTokensValidFrom

    • 次のコマンドを実行して、このユーザーに対する、現在のタイムスタンプと等しい、新しいStsRefreshTokensValidFrom値を設定します。

      Set-MsolUser -UserPrincipalName test@yourdomain.com -StsRefreshTokensValidFrom ("03/15/2017")

未来の日付で設定する必要があります。未来の日付ではない場合、StsRefreshTokensValidFromプロパティが設定されません。未来の日付である場合、StsRefreshTokensValidFromは(Set-MsolUserコマンドで示される日付ではなく)現在の時刻に設定されます。

ADFSを構成するには

ADFSを構成するには、2つの主な手順を完了します。

  • 証明書を認証方法として有効化する。
  • ADFSトークンで要求を構成する。
  1. 証明書を認証方法として有効化する。

    • ADFS管理コンソールを開き、[サービス]>[認証方法]>[プライマリ認証方法の編集] に移動します。

      「認証方法」画面のイメージ

    • [エクストラネット] で、[証明書認証] チェックボックスをオンにします。

    • [イントラネット] で、[証明書認証] チェックボックスをオンにします(オプション)。

    証明書認証を使用するデバイスの大半は、エクストラネットのみからアクセスします。この理由により、[イントラネット]の選択はオプションです。

    エクストラネットオプションのイメージ

  2. ADFSトークンで要求を構成する。

    Azure ADはADFSに送信者とシリアル番号を送信し、ADFSがさまざまなアクセスシナリオにおいて認証を取り消しまたは拒否できるようにします。たとえば、デバイスが紛失したり盗難されたりした場合、管理者はCRLを更新できます。その後、Azure ADは証明書認証を使用してアクセスを失効させます。要求を構成するには、以下を実行します。

    • [サービス]>[要求記述]>[要求記述の追加] に移動します。

      クレーム説明の追加画面のイメージ

    • Active Directory要求プロバイダー信頼で、以下の2つの規則を追加します。これらの規則は、認証時にActive Directoryユーザーが通過できるようにADFSに指示するものです。

      Serial Number of the Client Certificate - http://schemas.microsoft.com/ws/2008/06/identity/claims/<serialnumber>

      Issuer of the client certificate - http://schemas.microsoft.com/2012/12/certificatecontext/field/<issuer>

以下の図は、入力されたフィールドの例です。

シリアル番号プロパティのイメージ

発行者プロパティのイメージ

Office 365での証明書ベースの認証