タグ: Google

  • Oauth2-proxyとGoogle CloudのOauthを連携させるときの注意点

    Oauth2-Proxyで、Google CloudのOauth2.0を連携させたときの注意点として、Oauthでの認証時にGoogle Cloudで設定したOauth2.0クライアント名が表示されてしまう。

    これは、Google Cloud側の設定には、「OAuth 2.0 クライアントの名前。この名前はコンソールでクライアントを識別するためにのみ使用され、エンドユーザーには表示されません。」とあったところだ。

    そのため、気軽に「何とか-test」で名前をつけて、設定したり、テストしていたのだが、Oauth2-Proxyからアクセスしたときの画面に、この「クライアントの名前」が表示されていた。

    これを修正するには、

    1. Google Cloudでプロジェクトを開く。
    2. APIとサービスを開く。
    3. 認証情報を開き、修正するOAuth2.0クライアントIDを探す。
    4. その行の右側にあるペンマークをクリックして、編集する。
    5. 「名前」の部分を変更して、保存する。
  • TimeRexを試してみた

    企業ユーザ向けの「調整さん」のTimeRexを試してみた。Freeプランで試しているので、検証していないものもあり。

    https://timerex.net/

    使い始める前に簡単に権限まわりや運営を調べてみた。

    • Googleアカウントでログインし、Googleカレンダーの連携が必要。または、Microsoftアカウントでログイン。カレンダー連携のため。
    • カレンダーに対する権限が強く、アプリ上からは連携していないカレンダーの予定も参照できる権限になっている。
    • 運営会社は、リクルートからのスピンオフして作られたベンチャー。ISMS認証は取得している(https://isms.jp/lst/ind/CR_IS_x0020_733830.html)

    Googleカレンダーへのアクセス権限が強力なのが気になるが、実際に使ってみると・・・

    • スケジュール調整用のカレンダーを別に作成して、連携させると、そのカレンダーに入っていない予定の場所は、すべて空きとして、表示される。
    • スケジュール調整用のURLには、アクセス制限なし。ずっと公開される。1回だけの予定調整用のURLも作れるが、ベースのURLは公開されたまま。ここはちょっと怖い。
    • Freeプランだと、1対多の調整はできない。1対1のみ。
    • 視覚的には、スケジュール表示のため、わかりやすい。「調整さん」に比べれば。
    • 予定がウェブ上から入力されると、通知あり。
    • 予定が入ると、設定画面で指定したカレンダーに予定が自動的に入れられる。このときの予定を入力したユーザは自分になる(これもあり、権限強めなのかも)。
    • 予定がキャンセルされても通知あり。カレンダー上の予定も消える。
    • TimeRex上で、日程調整カレンダーのカレンダーは、用途毎か月毎のように小さい単位にして、使い終わったものは消すのがよい。そうしないと日程調整カレンダーが同じURLで表示され続けるため。

    気が付いたところは、こんな感じだ。3人以上の調整には有料プランが必要。ビジネス用途として、ちゃんと調整するには有料プランにする必要あり。1対1の調整が多ければ、フリープランでも困らないのかもしれないが。

    「調整さん」との比較だと、TimeRexの方がインターフェースもイマドキでよい。同じ使い方をしようと思うと、有料プランが必要なので、簡単な予定調整ならば、「調整さん」だろう。

  • GASからCloud SQL(MySQL)にSSL接続するコード

    Google Apps Scripsから、Google Cloud SQLのMySQLにSSL(TLS)で通信を暗号化して接続するコードのサンプル。このとき、Cloud SQLのMySQLは、MySQL 5.7よりも古くないと接続できない。

    DBへの接続は、JDBCを使用する。このとき、JDBCの読み込みは必要なく、GASのエディタ上で直接記述してよい。このサンプルでは、SSL(TLS)を使用するバージョン。接続にPEMファイルを使うため、あらかじめGoogle Cloud SQL側で発行しておく必要がある。

    記載するPEMファイルの中身は、末尾に改行コードを表す”\n”をいれて、さらにコード上の改行を明示的にするために”\”を入れる必要があった。なので、PEMファイルの中身の末尾が”\n\”になっている。

    接続のチェックのため、コンソールログに、いろいろと書き出すようにしている。Logの部分はなくても、問題なし。

    サンプルコード。

    function myFunction() {
      dbConnection();
    }
    
    // --------------------------------
    // SSLで接続する
    // --------------------------------
    function dbConnectionSSL(){
    
      Logger.log('start dbConnection function.');
    
      // 接続先設定
      var connectionIp = 'xxx.xxx.xxx.xxx'; // 接続のMysqlのIPアドレス(ホスト名も可)
      var userName = 'user'; // 接続で使うユーザ名
      var passwd = 'pass'; // 接続で使うパスワード
      var databaseName = 'dbname'; // データベース名
    
      var addr = 'jdbc:mysql://' + connectionIp + '/' + databaseName + '?useSSL=true';
    
      // SSL用の証明書を変数に入れる
      var clientKey = '\
    -----BEGIN RSA PRIVATE KEY-----\n\
    MIIEowIBAAKCAQEAyDuIOE1t/ABFSMIz/2Ni4vIoaNvBkDLaeJdl6KmeK9iexl2D2d\n\
    ~~~中略~~~
    P8B5s7xmSbH4Yv/OeKrw8F6xAmoQmWVlnw686I0QqNHexlwIe3lss2LDEI3d\n\
    -----END RSA PRIVATE KEY-----';
    
      var clientCert = '\
    -----BEGIN CERTIFICATE-----\n\
    MIIDVzCCAj+gAwIBAgIEJD9I+TANBgkqhkiG9w0BAQsFADB7MS0wKwYDVQQuEyRl\n\
    ~~~中略~~~
    QNwLDry8Tk3DwnD07+dkQf+FFFu943GFUlY9d4Rv75S+Vwm2Ci2azIRR2Q==\n\
    -----END CERTIFICATE-----';
    
      var serverCa = '\
    -----BEGIN CERTIFICATE-----\n\
    MIIDfzCCAmegAwIBAgIBADANBgkqhkiG9w0BAB3MS0wKwDELW39xwSDyQ3ZjVm\n\
    ~~~中略~~~
    bfgDM8ARAAqMqECaXYC8+xHviva4ON6weeD/wsdessDP9K3ws3mGKbbjlLmc=\n\
    -----END CERTIFICATE-----';
    
      Logger.log('start mysql con');
      Logger.log(addr);
    
      var connectionInfo = {
        user: userName,
        password: passwd,
        _serverSslCertificate: serverCa,
        _clientSslCertificate: clientCert,
        _clientSslKey: clientKey
      }
      Logger.log(connectionInfo);
    
      var connection = Jdbc.getConnection(addr, connectionInfo);
      Logger.log(connection.getCatalog());
    
      // コネクションを閉じる
      connection.close();
      Logger.log('end');
    }

  • Google WorkspaceのGoogle Driveの不適切コンテンツの検査が開始された

    Googleが企業向けGoogle WorkspaceのGoogle Drive上(共有ドライブも)にあるコンテンツのポリシー監査を行い、不適切コンテンツが制限される

    https://workspaceupdates-ja.googleblog.com/2021/12/google_21.html

    これにより、制限が適用されたファイルの名前の横にはフラグが表示され、共有ができなくなるほか、一般公開(共有)も停止されるようなった。一般公開(共有)が停止されると、リンクを知っているユーザーもそのファイルにアクセスできなくなる。この状態になったファイルのオーナーには、違反の詳細と、審査をリクエストする方法が記載されたメールが届く。不適切コンテンツではない場合は、審査のリクエストを行って、ファイルの回復処理が必要とのこと。

    Googleのポリシーを見ると、Google Drive上にあるファイルで、下記のようなものが対象になる。(https://support.google.com/docs/answer/148505)

    • 児童の性的虐待と搾取
    • 危険行為、違法行為
    • ハラスメント、いじめ、脅迫
    • 悪意のある表現
    • なりすましと不実表示
    • マルウェアおよび同様の悪質なコンテンツ

    などなど。

    Googleなので、機械的に検査されていくはずなので、日本語の場合、ヘイト的な内容の解釈によっては検査にかかる可能性は否定できない。

    この手の規制は、コンテンツプロバイダの仕事なのでやることはわかるのだが、公開されているウェブの書き込み内容でもなく、企業向けのストレージも対象なのは恐ろしい。クラウドサービス(クラウドストレージ)を利用する以上は、諦めて従うしかないのだが。そのうち、オンプレミス回帰や重要なデータは、オフラインで手渡しのような形に戻るのではないかと考えてしまう。

  • GASからCloud SQL(MySQL)に接続するコード

    Google Apps Scripsから、Google Cloud SQLのMySQLに接続するコードのサンプル。このとき、Cloud SQLのMySQLは、MySQL 5.7よりも古くないと接続できない。

    DBへの接続は、JDBCを使用する。このとき、JDBCの読み込みは必要なく、GASのエディタ上で直接記述してよい。このサンプルでは、SSL(TLS)を使わないバージョン。通信経路が暗号化されないので、注意が必要。

    接続のチェックのため、コンソールログに、いろいろと書き出すようにしている。Logの部分はなくても、問題なし。

    function myFunction() {
      dbConnection();
    }
    // --------------------------------
    // SSL 接続なしで接続する
    // --------------------------------
    function dbConnection(){
      Logger.log('start dbConnection function.');
      // 接続先設定
      var connectionIp = 'xxx.xxx.xxx.xxx'; // 接続のMysqlのIPアドレス(ホスト名があれば、ホスト名も可)
      var userName = 'user'; // 接続で使うユーザ名
      var passwd = 'password'; // 接続で使うパスワード 変数名をpasswdにしているのは、コネクションInfoの作成時にキーワードと変数が同じになるのを避けるため。
      var databaseName = 'dbname'; // データベース名
      var addr = 'jdbc:mysql://' + connectionIp + '/' + databaseName;
      Logger.log('start mysql con');
      Logger.log(addr);
      var connectionInfo = {
        user: userName,
        password: passwd
      }
      var connection = Jdbc.getConnection(addr, connectionInfo);
      // 接続できたことを確かめるために、ログにDB名を出力。
      Logger.log(connection.getCatalog());
      // コネクションを閉じる
      connection.close();
      Logger.log('end');
    }
  • Google Meetの映像の露出の自動調整の話

    Google Meetの標準機能として、映像の露出(明るさ)を自動調整する機能が加わった。いろいろと試してみたので、その話。

    • 背景のぼかしやバーチャル背景を使っているときであれば、少しのCPU負荷とGPU負荷で使用できるので、そんなに負担なし。
    • 背景のぼかしやバーチャル背景を使っていないときに、露出(明るさ)の自動調整を行うと、背景ぼかしと同じくらいのCPUとGPUの負荷がかかる。処理的には同じことをやっている。
    • 暗いところでカメラを使っても、ちゃんと顔を明るくしてくれる。その場合はノイズが映像にのる。
    • 普通の部屋で使う分には、補正されてきれいに顔が映るので便利だと思う。

    バーチャル背景を常に使っているのであれば、便利な機能なので使わないという選択はないと思う。これをブラウザ上でやるのだから、すごい。

  • Google Meet拡張の「こえもじ」を使ってみた

    Google Meetのサードパーティー製拡張ツールの「こえもじ」を使ってみた。(正確にはブラウザのChromeへの拡張機能)

    • 「こえもじ」を入れているPC(Chrome)でしゃべった声が文字起こしされて、Google Meetのチャットに送信される。
    • プラグインを入れていないPC(Chrome)でしゃった声は文字起こしされない。
    • つまりどれか1台に入れておくのではなく、Google Meetに参加するすべてのPCのChromeにプラグインを入れておかないと、文字起こしされないものがある。
    • 「こえもじ」で文字起こしなどをオフにするときは、Chromeのプラグインマークをクリックして、「こえもじ」を選択する。「流れるチャット」「字幕送信」のチェックを外すことで、文字起こしや画面へのチャット文字の表示がなくなる。
    • 「チャット履歴ダウンロード」については、オフにできない。これもオフにするときはプラグイン自体を無効にする。
    • 文字起こしの精度は、結構高いように感じる。変な用語は変換できないかったりするが、まぁ、それは他の文字起こしソフトでもあること。
    • ローカルPCのリソースを使っているので、長く発言すると文字起こしの時間がかかる。

    議事録ツールかわりに使おうとすると、Google Meetに参加するユーザのChromeに「こえもじ」を入れて、「字幕送信」をオンにしておく必要がある。ちょっと敷居が高い。しかし、発言を文字起こしでチャットに送信すると発言者の名前が付くので、発言者も明確になるので、うまく使えれば便利だ。

    ■こえもじ

    https://www.densan-s.co.jp/wp/wp-content/uploads/2021/09/koemoji20210903-1.pdf

  • Googleカレンダーで有効になった勤務場所のメインオフィスの設定

    Googleカレンダーで有効になった勤務場所のメインオフィスの設定は、Google Workspaceの管理者が設定する必要がある。その設定方法。

    1. Google Workspaceの管理画面を開く

    2. 「ディレクトリ」→「ビルディングとリソース」→「リソースの管理」を開く

    3. 「ビルディングを管理」をクリックする

    4. 「新しいビルディングの追加」もしくは、既存のビルディングを編集する

    5. ビルディングの追加や編集が終わったら、「ディレクトリ」の「ユーザー」を開く。

    6. メインオフィスを設定するユーザを開く。

    7. 「ユーザー情報」のパネルを展開する。

    8. 「従業員情報」を編集する。

    9. 「ビルディングID」に上で追加したID(ビル名)を入力する(選択はできないので、コピペなどで間違えないように入れる)。ここのビルディングIDがビルディングの管理のIDと一致しないとユーザに表示されない。

    10. 入力が終わったら、保存する。

    11. ユーザサイドで確認してもらう。ただし、反映されるまでに時間がかかる。

  • Ideapad DuetでGoogle Meetのバーチャル背景が使えない

    ChromebookのLenovo Ideapad Duetで、Google Meetをすると、背景のぼかしやバーチャル背景を使えない。たぶん、CPUの性能のためなんだろうけれど、不便。設定にも出てこない。映りなどに問題はないので、ここは残念だ。

    それから、Chromeでも、Google Meetアプリでも同じくできない。PWAアプリだから、差があっても困るけれど。

  • Google MeetでのIE11サポートが終了した

    Google Workspaceだと、だいぶ前にIE11(Internet Explorer 11)のサポートが終了していたが、Google MeetだけはIE11のサポートが続いていた。そんなGoogle MeetもついにIE11のサポートが昨日終了した。アメリカ時間だと、日本の今日になるわけだが、IE11でGoogle Meetはやらないので、どうなったかはわからない。

    https://workspaceupdates.googleblog.com/2021/08/support-for-google-meet-on-ie11-ending-august-17.html

    長かったIE11も終わりが近づいているな。