概要
Google Workspace(のCloudIdentity)アカウントでRaspberryPi(Raspbian)にログインできます。
背景
たくさんあるRaspberryPiのアカウント管理を一元化したかったのでGoogleが提供するSecure LDAPを利用しています。
やりかた
前提
Secure LDAPの利用にはGoogle Workspace EnterpriseまたはCloudIdentity Premiumの契約が必要です。
Google管理コンソール
Google管理コンソールにログインします。
左ツリーの[アプリ]-[LDAP]を開きます。

[クライアントを追加]をクリックします。

[LDAPクライアント名]に適当な名前を入力し[続行]をクリックします。

[ユーザー認証情報の確認]で[ドメイン全体]を選択します。
[ユーザー情報の読み取り]で[ドメイン全体]を選択します。

[グループ情報の読み取り]を[オン]にし、[LDAPクライアントの追加]をクリックします。

[証明書をダウンロード]をクリックします。
証明書はRaspberryPiに配置するので保存しておいてください。

作成したLDAPクライアントの[サービスのステータス]をクリックします。

[サービスのステータス]を[オン]に変更し、[保存]をクリックします。

RaspberryPi
対象のRaspberryPiにログインします。
必要なパッケージをインストールします。
sudo apt update -y
sudo apt install -y sssd sssd-tools/etc/sssd/sssd.conf を開き編集します。
[sssd]
services = nss, pam, sudo
domains = <ドメイン名>
[domain/<ドメイン名>]
cache_credentials = true
ldap_tls_cert = <crtファイルへの絶対パス>
ldap_tls_key = <keyファイルへの絶対パス>
ldap_tls_reqcert = never
ldap_uri = ldaps://ldap.google.com:636
ldap_search_base = dc=<ドメイン名をDNで>,dc=<ドメイン名をDNで>
id_provider = ldap
auth_provider = ldap
ldap_schema = rfc2307bis
ldap_user_uuid = entryUUID
ldap_groups_use_matching_rule_in_chain = true
ldap_initgroups_use_matching_rule_in_chain = true
enumerate = false
ldap_id_use_start_tls = trueGoogle管理コンソールからダウンロードした証明書ファイルをsssd.confで指定したパスへ配置します。
最後にsssd.confファイルの権限を設定してsssdサービスを再起動します。
sudo chown root:root /etc/sssd/sssd.conf
sudo chmod 600 /etc/sssd/sssd.conf
sudo systemctl restart sssd動作確認
sssd-toolsのgetentコマンドでCloudIdentityからユーザー情報を取得できているか確認します。
getent passwd <ユーザーのメールアドレス>ユーザーが取得できていれば次のようにユーザー情報が表示されます。

おまけ
参考
Configuring Google Cloud Identity LDAP on Ubuntu 16.04 for user logins


コメント