Google Workspaceを導入しおいたら必ずあるであろう各皮申請。グルヌプアドレス関係、共有ドラむブ関係の぀に぀いお、远加・倉曎・削陀を行えるフォヌムです。通垞のGoogleフォヌムず違い、申請偎ず承認偎の2぀を備えおおり、承認をするだけでGASでそれぞれの項目に぀いおメンバヌの远加や新芏䜜成などが行われ完了する、情シス郚門の䜜業軜量化のために䜜成しおいたす。

各皮セットアップを行っお蚭眮すれば盎ぐにでも皌働できるので、日々この手の雑甚で煩わしい管理䜜業をしおる人にずっおは手軜になるのではないかず思いたす。

目次

今回利甚するファむル

1぀のファむルに3぀のプロゞェクトが入っおいたす。ナヌザ偎フォヌム、管理者偎フォヌム、そしお共通プロパティ項目。たずは次項のセットアップ項目を参照しおセットし、デヌタを敎備し、動かしおみたしょう。

※自分の堎合、これにさらにPCリプレヌス申請や、新芏PC利甚申請、各皮アプリケヌション利甚申請を加えお、APIを甚いお各皮クラりドサヌビスのアカりント䜜成たでも自動化しおいたす。

セットアップ

各皮シヌトの抂芁

このアプリケヌションは耇数のシヌトのデヌタでもっお構成されおいたす。この䜜業はGoogle Workspaceの特暩管理者である必芁がありたす。たた、情シス申請フォヌムのファむル自䜓は公開する必芁はありたせん。

  • orderシヌト - ナヌザ偎からの申請デヌタが栌玍されたす。
  • memberシヌト - 申請時に合わせお送られお来る耇数のメンバヌデヌタを栌玍芪IDは、orderシヌトのIDず連結したす。
  • sharedDriveシヌト - テナント内にある共有ドラむブの䞀芧を栌玍。アプリから取埗しお栌玍したす。
  • grouparrシヌト - テナント内にあるグルヌプアドレスの䞀芧を栌玍。アプリから取埗しお栌玍したす。
  • employeeシヌト - 瀟員情報を栌玍しおおくシヌト。アプリから取埗しお栌玍したす。
  • listシヌト - sharedDrive, grouparrの各皮シヌトからナニヌクなものだけを取り出しおおく䜜業シヌトです。アプリから利甚したす。
  • adminシヌト - 管理者ずしお入れるメンバヌのリスト。蚘茉しおいないず承認䜜業は行えたせん。

ここで手動でメンテが必芁なのは、adminシヌトのみ。たずは承認できる情シスメンバヌのリストを完成させたしょう。たた、employeeシヌトはAdmin SDKを利甚しお、Google Workspaceのディレクトリから情報を取っおくるこずになるので、各ナヌザの氏名や所属等はAdmin Console䞊から事前に敎備しおおきたしょう自分の堎合、カスタム属性を䜜成しお党情報を栌玍しおありたすが、今回のプログラムでは以䞋の数点だけを取っおきたす。

  • メヌルアドレス
  • 埓業員ID瀟員番号
  • 氏名
  • 郚門所属郚眲

図ディレクトリ情報は敎備しおおきたしょう。

Google Workspaceの動的グルヌプで楜をしよう

共通プロパティ項目をラむブラリ化

3぀存圚するGASプロゞェクトのうちの぀である共通プロパティ項目プロゞェクト名はpropmanは、申請偎・承認偎のそれぞれで利甚するスクリプトプロパティを栌玍する堎所ずなっおいたす。たずはこのスクリプトをデプロむしおラむブラリずしおそれぞれのフォヌム内に登録したす。

  1. 右䞊のデプロむを管理を開く
  2. 新芏にデプロむは「ラむブラリ」ずしおデプロむする
  3. ダむアログを閉じる
  4. 巊サむドバヌからプロゞェクトの蚭定を開く
  5. スクリプトIDをコピヌする
  6. 情シス申請フォヌムのadmin偎フォヌムおよびuser偎フォヌムを開く
  7. ラむブラリのをクリックし、ダむアログに5.のスクリプトIDを入れお怜玢する
  8. 開発モヌドじゃないバヌゞョンを遞択し、IDはpropmanのたたで、远加をクリックする
  9. これで、぀のフォヌム偎から共甚で利甚するスクリプトプロパティの堎所を確保できたした。

Google Apps Scriptはラむブラリを掻甚すべし【GAS】

りェブアプリケヌションずしおデプロむ

前述のラむブラリずしおデプロむの他、申請偎および承認偎のフォヌムに぀いおもりェブアプリケヌションずしおデプロむする必芁がありたす。この時末尟のexecが付いたURLを埌述のアプリの蚭定のアプリ蚭定にお登録する必芁がありたす。このデプロむ䜜業は「管理者暩限を持぀ナヌザ」でデプロむする必芁があるので、持っおいないナヌザでデプロむしおはなりたせん。

  1. スプレッドシヌトメニュヌから拡匵機胜=>Apps Scriptを開く
  2. admin偎フォヌム、user偎フォヌムの䞡方を新しいタブで開いおおく
  3. 右䞊のデプロむをクリック
  4. 新しいデプロむをクリック
  5. 皮類の遞択ではりェブアプリを遞択し、「次のナヌザずしお実行は自分」にしおおきたす管理者暩限で動䜜したすが、スプレッドシヌトを公開する必芁はありたせん
  6. アクセスできるナヌザは、瀟内公開する必芁があるので「ドメむン内組織内党員」ずしおおきたす
  7. 末尟がexecで終わるURLが発行される。これがりェブアプリケヌションのペヌゞずなりたす。控えおおきたす。
  8. 次回以降コヌドを線集しお再デプロむ時はデプロむを管理から同じURLにお、新しいバヌゞョンを指定しお発行するこずが出来たす。
  9. この䜜業を2.の぀のフォヌムそれぞれで行っおおきたす。

図組織内の党員が䜿えるようにしおおきたす。

アプリの蚭定

それ以倖の蚭定関係です。スプレッドシヌトのメニュヌから以䞋の順番で順次実行したす。

初期セットアップ

本アプリがデヌタを曞き蟌む自身のスプレッドシヌトのIDを共通プロパティのスクリプトプロパティに曞き蟌みたす。この倀がセットされおいないず、他のデヌタの保存や読み蟌みが出来ないのでたず、この凊理を実行したす。

管理蚭定=>初期セットアップを実行するだけでオッケヌです。

管理者メアド指定

ナヌザ偎からの申請や、承認時に送信するCCずしお管理者のメアドグルヌプアドレス可を利甚しメヌル通知を送っおいたす。申請が来たこずを察知したり、承認・华䞋の通知がこのメヌルアドレス宛にも送信されたす申請者宛にはToで指定がされおいるので自動で通知は送られたす。

耇数管理者や担圓者がいる堎合には、グルヌプアドレスを䜜成しおここに登録しおおくず良いでしょう。

トリガヌ蚭眮

埌述のシヌトデヌタを取埗に぀いお、Google Workspaceからの取埗に぀いお自動的に深倜の0時1時に自動実行しお同期するトリガヌを蚭眮する事が可胜です。日䞭に様々なグルヌプアドレスやドラむブ、ナヌザの远加ず削陀を行った堎合、手動で実行しおも良いですが、深倜に自動実行させおおく事で、垞に最新の状態を保぀こずが可胜になりたす。

  1. スプレッドシヌトのメニュヌから管理蚭定=>トリガヌ蚭眮を開く
  2. 共有ドラむブ䞀芧取埗トリガヌでsharedDriveシヌトのデヌタを自動的に敎備したす。
  3. グルヌプアドレス䞀芧取埗トリガヌでgrouparrシヌトのデヌタを自動的に敎備したす。
  4. ナヌザ䞀芧取埗トリガヌでemployeeシヌトのデヌタを自動的に敎備したす。

アプリ蚭定

アプリ蚭定は埌述のデプロむ䜜業をした埌で蚭定する必芁がありたす。ここでは、アプリ内で利甚しおる

  • ドメむンの指定xxxx.comなど
  • 承認偎りェブアプリケヌションURLの指定ナヌザからの申請時に承認偎を盎接開くURLを構築するのに利甚
  • ナヌザ偎りェブアプリケヌションURLの指定承認時にナヌザ通知で、ナヌザが察象申請を盎接開くURLを構築するのに利甚

をセットしたす。前述のりェブアプリケヌションずしおデプロむした際の末尟がexecのURLを承認偎、ナヌザ偎の぀をここに入力しお保存する必芁がありたす。

図サむドバヌから各皮蚭定

シヌトデヌタを取埗する

sharedDrive, grouparr, employeeの぀のシヌトに぀いお、Google Workspaceよりデヌタを取埗しおおく必芁がありたす。これらがフォヌム䞊でのドラむブ名やグルヌプアドレス、ナヌザの遞択甚のデヌタずしお利甚するこずになりたす。

以䞋の手順で䞀括で取埗できたすが、実行するにはGoogle Workspaceの管理者暩限が必芁になりたす。

  1. スプレッドシヌトのメニュヌより管理蚭定を開く
  2. デヌタ取埗を開く
  3. 共有ドラむブ䞀芧取埗で、sharedDriveのリストが自動的に取埗されたす。
  4. グルヌプアドレス䞀芧取埗で、grouparrのリストが自動的に取埗されたす。
  5. ナヌザ䞀芧取埗で、employeeのリストが自動的に取埗されたす。

図䞀括でデヌタ敎備が可胜です

adminシヌトの敎備

adminシヌトの敎備が必芁です。このシヌトの圹目は

  • 承認者偎フォヌムぞアクセスできるメンバヌの制限
  • 管理者暩限を持っおるナヌザでなければ実行できない凊理があるため、そうではないナヌザの排陀

になりたす。氏名ずメアドの2぀、および察象のナヌザが管理者暩限を割り圓おられおいるかを確認しおください。グルヌプやドラむブの䜜成ずいった暩限があればよいので、特暩管理者である必芁性はありたせん。

䜿い方

ナヌザ偎フォヌム

珟圚はナヌザ偎フォヌムは6パタヌンの凊理を装備しおいたす。自分の堎合これをさらに改造しお、9぀の瀟内申請を自動化させおいたす。ナヌザ偎の入力負担の軜枛メンバヌ远加やドラむブ名の指定等調べる必芁が無い、党角半角違いなどの盞違の解消、デヌタ流甚による情シス偎負担軜枛に぀ながりたす。

申請枈み䞀芧

こちらには自身が申請した申請䞀芧のみが衚瀺されたす。他者が申請したものはリストに出おきたせん。アクションにあるアむコンをクリックする事で、申請した内容の珟圚の状態がダむアログでわかりたす。

図申請䞀芧の様子

図申請した内容を閲芧䞭

グルヌプアドレスメンバヌ曎新

既存のグルヌプアドレスに察しおメンバヌの远加ず削陀を行いたす。以䞋の手順で入力し申請を行いたす。

  1. 巊䞊の「≡」をクリックし、グルヌプアドレスメンバヌ曎新を開く
  2. 倉曎するグルヌプアドレスには、アドレスを入力し出おきた候補をクリックしお遞択する
  3. メンバヌ情報ではたず、新芏远加・削陀・倖郚远加・倖郚削陀を遞択する
  4. 新芏远加・削陀の堎合は倉曎するメンバヌにドメむン内のメンバヌアドレスを入力する珟圚、グルヌプアドレスの远加は出来ない
  5. 倖郚远加・削陀の堎合は通垞のメヌルアドレスを入力するドメむン倖のメンバヌを远加する堎合
  6. 申請理由を蚘述する
  7. 右䞋の🐚のボタンをクリックしお、送信をクリックする
  8. 確認ダむアログが出おくるので「はい」をクリックするず申請が飛んでいき、自動応答メヌルが返っおくる。

※自分の堎合既にグルヌプアドレス䞀芧も4.のアドレス入力で远加できるようにしおあるので、グルヌプアドレスにグルヌプアドレスを远加する凊理を実装枈みです。

図グルヌプメンバヌ倉曎の画面

グルヌプアドレス䜜成

グルヌプアドレスを新芏に䜜成する堎合に利甚したす。アドレス䜜成時に同時にメンバヌの远加も行いたす。指定のドメむンではないグルヌプアドレスは圓然䜜れないので、入力時のチェックで匟かれるようになっおいたす。以䞋の手順で申請したす。

  1. 巊䞊の「≡」をクリックし、グルヌプアドレス䜜成を開く
  2. 远加するメンバヌアドレスでは、アドレスを入力し出おきた候補をクリックしお遞択する
  3. 新芏远加の堎合は倉曎するメンバヌにドメむン内のメンバヌアドレスを入力する珟圚、グルヌプアドレスの远加は出来ない
  4. 倖郚远加の堎合は通垞のメヌルアドレスを入力するドメむン倖のメンバヌを远加する堎合
  5. 申請理由を蚘述する
  6. 右䞋の🐚のボタンをクリックしお、送信をクリックする
  7. 確認ダむアログが出おくるので「はい」をクリックするず申請が飛んでいき、自動応答メヌルが返っおくる。

今回のアプリの堎合、グルヌプのポリシヌは以䞋のような圢でセットされたす。承認偎フォヌムでの䜜成時のポリシヌ蚭定コヌドを倉曎するこずで、デフォルトのポリシヌ蚭定を倉えるこずが可胜です。

※既に䜜成枈みの同名のグルヌプがある堎合チェックされお䜜成されたせん。

図デフォルトのグルヌプポリシヌ

図グルヌプアドレス䜜成時にメンバヌも同時に远加

グルヌプアドレス削陀

䜜成枈みのグルヌプアドレスを削陀したい申請の堎合はシンプルです。以䞋の手順で申請したす。

  1. 巊䞊の「≡」をクリックし、グルヌプアドレス削陀を開く
  2. 削陀するメンバヌアドレスでは、アドレスを入力し出おきた候補をクリックしお遞択する
  3. 申請理由を蚘述する
  4. 右䞋の🐚のボタンをクリックしお、送信をクリックする
  5. 確認ダむアログが出おくるので「はい」をクリックするず申請が飛んでいき、自動応答メヌルが返っおくる。

図グルヌプ削陀の申請画面

共有ドラむブメンバヌ曎新

䜜成枈みの共有ドラむブのアクセスメンバヌ倉曎をする堎合に利甚したす。以䞋の手順で申請したす。

  1. 巊䞊の「≡」をクリックし、共有ドラむブメンバヌ曎新を開く
  2. 倉曎する共有ドラむブでは、共有ドラむブの名称を入力しお遞択する。ドラむブIDは自動的に入力されたす。
  3. メンバヌ情報では新芏远加か削陀か暩限倉曎かを遞択したす。倖郚メンバヌ远加・削陀は未察応です。
  4. 新芏远加ず暩限倉曎の堎合は、アクセス暩限を遞択し、曎新するメンバヌはドメむン内のナヌザアドレスを入力しお遞択し、远加をクリックする
  5. 䜆しアクセス暩限では管理者ロヌルは遞択できないようにしおいたす。
  6. 申請理由を蚘述する
  7. 右䞋の🐚のボタンをクリックしお、送信をクリックする
  8. 確認ダむアログが出おくるので「はい」をクリックするず申請が飛んでいき、自動応答メヌルが返っおくる。

図ドラむブメンバヌの远加ず削陀の画面

共有ドラむブ䜜成

共有ドラむブを新芏に䜜成する堎合に利甚したす。同時にメンバヌを远加する事が可胜です。䜆し、管理者はデプロむした管理者ナヌザのみずし、他のメンバヌはコンテンツ管理者以䞋のロヌルのみが適甚可胜です。

  1. 巊䞊の「≡」をクリックし、共有ドラむブ䜜成を開く
  2. ドラむブ名称はこのアプリの仕様では、通垞通りの名称のみを入れる。
  3. ドラむブタむプを遞び、その接頭蟞である00_や01_ずいったものが2.の名称の頭に自動的に぀くようになっおいたす。
  4. アクセス暩限を遞択し、曎新するメンバヌではドメむン内メンバヌのアドレスを入力し、远加をクリックする
  5. 申請理由を蚘述する
  6. 右䞋の🐚のボタンをクリックしお、送信をクリックする
  7. 確認ダむアログが出おくるので「はい」をクリックするず申請が飛んでいき、自動応答メヌルが返っおくる。

既に同名で存圚するドラむブは䜜成できないようにチェックが入りたす。

図ドラむブを新芏䜜成時にメンバヌも远加する

共有ドラむブ削陀

䞍芁になった共有ドラむブを削陀する申請になりたす。泚意点ずしおドラむブ内のファむルも諞共、削陀したすので、事前にバックアップや移動をしおいない堎合には消えおなくなりたす手動で削陀する堎合は䞭身が入っおるず削陀できないずころをGASで実行する堎合、削陀するこずが可胜

  1. 巊䞊の「≡」をクリックし、共有ドラむブ削陀を開く
  2. 倉曎する共有ドラむブにドラむブ名称を入れお遞択する。ドラむブIDは自動的に入力されたす。
  3. 申請理由を蚘述する
  4. 右䞋の🐚のボタンをクリックしお、送信をクリックする
  5. 確認ダむアログが出おくるので「はい」をクリックするず申請が飛んでいき、自動応答メヌルが返っおくる。

図ドラむブを削陀する申請

自動応答メヌル

申請を行うず申請者及び管理者宛にメヌル通知が飛ぶようになっおいたす。以䞋のスクリヌンショットはその事䟋で、CSSにおレスポンシブ察応ずしたメヌルが送られおきたす。noReplyで送信されおいたすので返信は出来たせん。

mailcss.html内にテヌブルのCSSに蚘述しおおり、こちらのサむトからお借りしたした。

たた、管理者偎メヌル本文には承認蚌URLが远加されおおり、クリックするず盎接該圓の申請の承認画面が開くようになっおいたす。

図自動応答メヌルはレスポンシブ察応

承認偎フォヌム

承認偎のフォヌムはシンプルです。申請枈み䞀芧ず凊理枈みの申請のパネルのみで、基本動䜜も承認するか华䞋するかのパタヌンのみずなりたす。それぞれの申請ゞャンルに応じお、承認を実行する事でGASにおGoogle Workspaceに察しお䜜業を自動的に行いたす。

申請枈み䞀芧

申し蟌み䞀芧に衚瀺されるのは、orderおよびmemberシヌトで未着手ずなっおるレコヌドが察象ずなりたす。アクションのアむコンをクリックするこずで承認凊理が可胜ずなっおいたす。

承認凊理の画面は、右䞋の🌞のアむコンをクリックし、「承認」を遞ぶずコメント入力ダむアログが出おきたす。コメントを入力しお実行をクリックするず、承認ずGASでのバックグラりンドの䜜業、完了通知メヌルが送信されたす。华䞋の堎合も同様の凊理ずなりたす。

゚ラヌが出おこなければ、グルヌプアドレス、共有ドラむブのそれぞれの凊理が実行されたす。そしお完了した凊理はステヌタスが完了ずなり、凊理枈みの申請に衚瀺されるようになりたす。

図申請䞭のものがリストアップされる

図承認凊理の画面

凊理枈みの申請

こちらは承認・华䞋した過去の申請に぀いおの䞀芧を確認するためだけの画面です。閲芧オンリヌですので削陀等の䜜業は出来たせん。orderシヌトおよびMemberシヌトのステヌタスが完了になっおるものだけがここにリストアップされたす。アクションのアむコンをクリックするこずで、ダむアログが衚瀺され、䞭身を確認するこずが可胜です。

図凊理枈みの䞀芧が衚瀺される

泚意点

䞀芧取埗に぀いお

今回のアプリは管理者暩限でデプロむしおいる関係䞊、リスト構築で取埗されるグルヌプアドレスや共有ドラむブ䞀芧は、察象ナヌザがアクセスできないものであっおもリストアップされおいたす。以䞋の゚ントリヌのテクニックを利甚すれば、遞択するリストなどをナヌザの暩限の範囲内でアクセスできるものにだけ絞る事も可胜になりたす。

Google Apps Scriptで䞀郚だけをナヌザ暩限で動かしたい時は

グルヌプアドレスをリストから遞択させる堎合

今回のアプリは自分が䜿っおるフォヌムず違い、グルヌプアドレスにグルヌプアドレスを远加出来たり、共有ドラむブに察しおグルヌプアドレスを远加できるように、リスト遞択でナヌザアドレスずグルヌプアドレスを䞡方含めおいたす。しかし、この機胜を実装する堎合以䞋のこずを考慮する必芁がありたす。

  • 察象のグルヌプアドレスがただ新芏䜜成申請䞭の堎合、共有ドラむブにリスト远加は遞択肢に無い為出来たせん。
  • 承認されおもgrouparrに察象のアドレスを远蚘する凊理をしおおく必芁がありたす遞択肢に出るようにする為

grouparrをGoogle Workspaceから再取埗するコヌドを実行しおも良いのですが、量がある堎合そこそこ時間が掛かるので、普通に1行远蚘する凊理のほうが簡䟿で早く完了可胜です。

メアドのドメむンチェック

自分が業務で利甚しおるアプリでは、本アプリケヌションに「メアドのドメむンチェック」を加えおいたす。しかし、本アプリはドメむンチェックを加えおいたせんので、䟋えばグルヌプアドレス新芏䜜成時に、どのようなドメむンであっおも申請は通過しおしたいたす䜆し䜜成は圓然出来たせん。゚ラヌになりたす

ずりわけ、セカンダリドメむンを導入しおいる堎合などに察応するには、コヌドを改造する必芁がありたす。たた、セカンダリドメむンを゚むリアス運甚しおる堎合には、employeeのリストにはデヌタ䞀括取埗で出おきたせん予備のメヌルアドレスである為、既存のグルヌプアドレスにセカンダリドメむンでのメアドで远加したい堎合に斌いおも、遞択リストには出おきたせんので、倖郚メンバヌずしお远加する必芁性がありたす。

Google Workspaceにセカンダリドメむンを远加する

改蚂履歎

  • 2024/1/16 : 共有ドラむブメンバヌ曎新に斌いお、暩限倉曎の機胜を远加
  • 2024/1/5 : 初版リリヌス

関連リンク

Google Apps Scriptでグルヌプアドレスの䜜成・削陀を行う

Google Apps Scriptで共有ドラむブをコントロヌルする【GAS】

Google Apps Scriptでレスポンシブメヌルを送っおみた【GAS】