Google Cloud で管理する Chrome デバイス 証明書登録拡張機能利用して証明書を登録する

schedule 2021/04/09  refresh 2023/11/09

 

Google Cloud で管理する Chrome デバイス 証明書登録拡張機能利用して証明書を登録する

参考URL:https://support.google.com/chrome/a/answer/6324985

 

メリット
拡張機能を使用すると、クライアント証明書を柔軟にプロビジョニングできます。また、秘密鍵がデバイスの外部に送信されることはなく、Chrome の Trusted Platform Module(TPM)で保護されます。

 

事前準備

Google 管理コンソールへ特権管理者としてログインする必要があります
Chrome Enterprise ライセンスが必要です

 

Windows Server 2008 R2 移行 (今回検証した環境は Windows Server 2019 Standard)
Microsoft Internet Information Services(IIS)7.0 以降
Active Directory 証明書サービス(ADCS)(以下を含む)
証明書登録サービス(CES)
証明書登録ポリシー(CEP)
IIS の ADCS ウェブサイトに関連付けられた有効な証明書
CEP と CES で表示されるエンドポイント

 

Chromebook Chrome OS 79 以降

 

Google Admin Console 側の設定

      1. 管理者ユーザーで Google Admin Console にログイン

      2. Chrome デバイスを選ぶ、「設定」メニューに移動

      3. 「登録の管理」の「デバイス管理モード」に「Google Cloud」を選ぶ
        アプリを自動インストールための設定です。
        ※ ポリシーによって自動インストールされた拡張機能でのみ chrome.enterprise.platformKeys API を利用できます。

      1. 「Kerberos」の「Kerberos チケット」に「Kerberos を有効にする」を選ぶ
      2. 「Kerberos アカウントを自動追加する」に「${LOGIN_ID}」を設定
      3. 「Kerberos アカウント」に「ユーザーが Kerberos アカウントを追加できるようにする」を設定
        ※ CEP/CES への認証は Kerberos 認証を想定しています

      4. 「ネットワーク」の「統合認証サーバー」に「Windows Server のホスト名」を登録
      5. 今回 Kerberos 認証を利用するため「Kerberos 委任サーバー」も同じホスト名を登録
      6. 「Kerberos のチケットの委任」に「KDCポリシーを適用」を選択
        ※ 全ユーザーに設定を適用する場合は、最上位の組織部門を選択したままにします。それ以外の場合は、子組織部門を選択します。

      7. そして、「デバイス」の「Chrome」の「アプリと拡張機能」へ移動
      8. 画面の右下にある「+」ボタンをクリック、「Chromeウェブストアから追加」を選ぶ
      9. 「ストアを検索」に拡張機能ID「fhndealchbngfhdoncgcokameljahhog 」を入力
      10. 「証明書登録(Chrome OS 用)」を選択、そしたらアプリ一覧画面に表示されます

      11. 真ん中の「インストールポリシー」に「自動インストールする」を選ぶ

      12. 右側の設定メニューを移動
      13. 「証明書の管理」に「下記へのアクセスを許可する」を有効

      14. 「拡張機能のポリシー」は JSON 形式テキストを張り付け
        Google がサンプルありますが
        https://storage.googleapis.com/support-kms-prod/KZfZYljh0tqTHb8BaVVEMstKMkSjXIXqKsZu
        今回は自前のJSONを用意します
{
  "cep_proxy_url": {
    "Value": "https://your.windows.server/ADPolicyProvider_CEP_Kerberos/service.svc/CEP"
  },
  "enable_auto_enrollment": {
    "Value": true
  },
  "allow_machine_cert_enrollment": {
    "Value": false
  },
  "user_enrollment_templates": {
    "Value": ["AutoCert"]
  },
  "user_cert_request_values": {
    "Value": {
      "Subject": {
        "CommonName": "${USER_ID}@${USER_DOMAIN}",
        "Organization": "${USER_DOMAIN}",
        "Country": "JP",
        "State": "TOKYO",
        "OrganizationUnit": "${DEVICE_ASSET_ID}"
      }
    }
  },
  "company_info": {
    "Value": {
      "name": "Secioss, Inc.",
      "logo": "data:image/png;base64,iVBORw0KGgL8n/IQ0Eimua/vFzEdNmlxDUAAAAASUVORK5CYII=",
      "help_url": "https://www.secioss.co.jp",
      "help_text": "Contact your local IT specialist for more help."
    }
  },
  "log_level": {
    "Value": "DEBUG"
  },
  "signature_algo": {
    "Value": "SHA256"
  },
  "pending_ui_enabled": {
    "Value": false
  },
  "renew_hours_before_expiry": {
    "Value": 1200
  },
  "renew_reminder_interval": {
    "Value": 24
  },
  "request_timeout_seconds": {
    "Value": 15
  },
  "client_authentication": {
    "Value": "kerberos"
  }
}

 


JSON の注意点を説明します
CEP の URL が必須です。CEP のレスポンスに CES の URL がふくまれるので、CES の URL 設定必要ありません
ユーザー対象に発行する場合、user_enrollment_templates や user_cert_request_values だけでよい
company_info 会社情報を設定すると、アドオンの画面に自動的に表示されます
user_enrollment_templates テンプレート名は Windows Server 設定必要です(Windows側設定の際に説明します)
client_authentication は「kerberos」に設定必要です。
※ CEP/CES への認証は Kerberos 認証を想定しています

 

右上の変更を保存

 

ここまで Google 管理コンソール側の設定が完了しました。

 

Windows Server 側の設定
この部分は Google のドキュメントにないので、ご参考いただければと思います。

※ 証明書登録(Chrome OS 用)では、英語のCEPレスポンスしか対応できていないので、OSを英語に変更してください

 

「Server Manager / サーバーマネージャー」を起動、「管理」メニューから「Add Roles and Features / 役割と機能の追加」を選ぶ
「Server Roles / サーバーの役割」に「Active Directory Certificate Service 」の
「Certificate Authority / 証明機関」
「Certificate Enrollment Policy Web Service / 証明書の登録ポリシー Web サービス」
「Certificate Enrollment Web Servcie / 証明書の登録 Web サービス」
をチェックして構成

 

「資格情報」は管理者で結構です
「役割サービス」は「証明書の登録 Web サービス」と「証明書の登録ポリシー Web サービス」をチェック
「CESの認証の種類」に「Windows 統合認証」を設定
※ CEP/CES への認証は Kerberos 認証を想定しています
「サービスアカウント」の指定は管理者で結構です
「CEPの認証の種類」にも「Windows 統合認証」を設定
※ CEP/CES への認証は Kerberos 認証を想定しています

 

構成を完了した後は IIS 設定を行います
ISS サーバーのサーバー証明書を配置する
※ 拡張機能はhttps で始まる値のみ有効です。

 

Default Web Site 配下の「ADPolicyProvider_CEP_Kerberos」を選ぶ
「アプリケーションの設定」を開く
「URI」の値は 拡張機能の設定にJSONの「cep_proxy_url」の値になります
「認証」を開く「Winodws認証」のみに有効にする

 

右側の「操作」パネルに「アクセス許可の編集」を開く
「セキュリティ」タブを選ぶ、Chromebookで証明書を申請しようとするユーザーを追加する
※ 「Authenticated User」グループを追加すればOK
アクセス許可の部分に「読み取り」と「実行」権限を与える

 

そして、同じ「xxxx_CES_Kerberos」を選ぶ

CEPと同じ設定を行う

 

次は「管理ツール」から「証明機関」を開く
「証明書テンプレート」から右クリック、そしてメニューから「管理」を選ぶ「証明書テンプレートコンソール」が開けます
IPSec(オフライン要求)をコピー、新しいテンプレートを作成
「拡張機能」タブを選ぶ、「アプリケーションポリシー」の「編集」をクリック、「クライアント認証」を追加
「セキュリティ」タブに移動、「Authenticated User」グループを追加
「アクセス許可」に「読み取り」「登録」「自動登録」権限を与える
テンプレート「名前を変更」を選ぶ、適当な名前を設定する
※ この名前では 拡張機能の設定にJSONの「user_enrollment_templates」の値になります

 

IIS サーバーを再起動する

 

ここまで Winodws Server の配置は完了しました。

 

最後は Chromebook 側の設定

Chrome デバイスの登録を行う
一般ユーザーとしてログインしたことない端末が必要です。事前にWipeしてから利用を開始する

 

ここはGoogle のドキュメントが参照できます
https://support.google.com/chrome/a/answer/1360534?hl=ja

 

初めに以下のいずれの方法で組織へログインする
Ctrl+Alt+E キーを押します。
[その他のオプション] 次に [企業の登録](Chromebook タブレットではご利用いただけません)をクリックします。
登録権限のある Google アカウントのユーザー名とパスワードを入力します
アセット ID (適当で大丈夫)と場所を入力し、[次へ] をクリックします
デバイスが正常に登録されたことを示す確認メッセージが表示されたら、[完了] をクリックします

 

Chromebook 画面の右下をクリック、設定画面を開きます
「ユーザー(People)」のメニューを開き
「Kerberos チケット」を開きます
※ CEP/CES への認証は Kerberos 認証を想定しています
ここで Kerberos チケットを登録します
Windows サーバーの AD に 証明書自動登録権限のあるユーザーIDで登録必要です

 

ブラウザを開く、拡張機能メニューに「Certificate Enrollment / 証明書登録(Chrome OS 用)」既にインストールされています
拡張機能を開くと、JSONファイルに定義された「company_info」ここで表示されています
※ 「client_authentication」の定義に「kerberos」が設定されるので、拡張機能の画面では「ENROLL / 登録」ボタンしか表示されません
ポリシー管理してない端末からインストールされる場合、ユーザー名やパスワードの入力が表示されます

 

「ENROLL」を押すと証明書申請をだしました。相手のWindows Server が正しく配置するならば、証明書が発行されます。

確認につて

 

拡張機能が正しくインストールされること
chrome://extensions

 

証明書が正しくインストールされることを確認する
chrome://settings/certificates

 

ポリシーが正しく適用されることを確認する
chrome://policy

 

以上になります。