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 側の設定
-
-
- 管理者ユーザーで Google Admin Console にログイン
- Chrome デバイスを選ぶ、「設定」メニューに移動
- 「登録の管理」の「デバイス管理モード」に「Google Cloud」を選ぶ
アプリを自動インストールための設定です。
※ ポリシーによって自動インストールされた拡張機能でのみ chrome.enterprise.platformKeys API を利用できます。
- 管理者ユーザーで Google Admin Console にログイン
-
-
-
- 「Kerberos」の「Kerberos チケット」に「Kerberos を有効にする」を選ぶ
- 「Kerberos アカウントを自動追加する」に「${LOGIN_ID}」を設定
- 「Kerberos アカウント」に「ユーザーが Kerberos アカウントを追加できるようにする」を設定
※ CEP/CES への認証は Kerberos 認証を想定しています - 「ネットワーク」の「統合認証サーバー」に「Windows Server のホスト名」を登録
- 今回 Kerberos 認証を利用するため「Kerberos 委任サーバー」も同じホスト名を登録
- 「Kerberos のチケットの委任」に「KDCポリシーを適用」を選択
※ 全ユーザーに設定を適用する場合は、最上位の組織部門を選択したままにします。それ以外の場合は、子組織部門を選択します。 - そして、「デバイス」の「Chrome」の「アプリと拡張機能」へ移動
- 画面の右下にある「+」ボタンをクリック、「Chromeウェブストアから追加」を選ぶ
- 「ストアを検索」に拡張機能ID「fhndealchbngfhdoncgcokameljahhog 」を入力
- 「証明書登録(Chrome OS 用)」を選択、そしたらアプリ一覧画面に表示されます
- 真ん中の「インストールポリシー」に「自動インストールする」を選ぶ
- 右側の設定メニューを移動
- 「証明書の管理」に「下記へのアクセスを許可する」を有効
- 「拡張機能のポリシー」は 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
以上になります。