この記事は Chromium Blog の記事 "Chrome 100 Beta: Reduced User-Agent Strings, Multi-Screen Window Placement, and More" を元に翻訳・加筆したものです。詳しくは元記事をご覧ください。


特に記載のない限り、下記の変更は Android、Chrome OS、Linux、macOS、Windows 向けの最新の Chrome ベータ版チャンネル リリースに適用されます。ここに記載されている機能の詳細については、リンクまたは ChromeStatus.com の一覧でご確認ください。2022 年 3 月 3 日時点で、Chrome 100 はベータ版です。PC 向けの最新版は Google.com で、Android では Google Play ストアでダウンロードできます。

この記事は Chromium Blog の記事 "Chrome 100 Beta: Reduced User-Agent Strings, Multi-Screen Window Placement, and More" を元に翻訳・加筆したものです。詳しくは元記事をご覧ください。


特に記載のない限り、下記の変更は Android、Chrome OS、Linux、macOS、Windows 向けの最新の Chrome ベータ版チャンネル リリースに適用されます。ここに記載されている機能の詳細については、リンクまたは ChromeStatus.com の一覧でご確認ください。2022 年 3 月 3 日時点で、Chrome 100 はベータ版です。PC 向けの最新版は Google.com で、Android では Google Play ストアでダウンロードできます。

長い User-Agent 文字列が使われる最後のバージョン

Chromium 100 は、デフォルトで長い User-Agent 文字列をサポートする最後のバージョンとなる予定です(これに関連する navigator.userAgentnavigator.appVersionnavigator.platform DOM API も同様です)。サイトで完全削減版の User-Agent をテストできるようにするオリジン トライアルは、2022 年 4 月 19 日に終了します。この日以降、User-Agent 文字列は徐々に削減されます。全体スケジュールを確認したい方は、Chromium ブログ : User-Agent 削減のオリジン トライアルと日付についてをご覧ください。サイトでのテストや User-Agent Client Hints への移行にさらに時間が必要な場合は、Chrome 100 から 113(100 と 113 を含めて)で予定されている逆オリジン トライアルに登録できます。完全削減版の User-Agent 文字列を試す最初のオリジン トライアルとは異なり、逆トライアルでは以前の User-Agent が保持されます。逆トライアルは、2023 年 5 月後半に終了する予定です。

これは、User-Agent 文字列を
新しい User-Agent Client Hints API に置き換える戦略の一環として行われます。User-Agent Client Hints の詳細については、User-Agent Client Hints に移行すると User-Agent Client Hints でユーザーのプライバシーとデベロッパーのエクスペリエンスを改善するをご覧ください。

マルチスクリーン ウィンドウ配置

PC で利用できるようになるマルチスクリーン ウィンドウ配置 API を使うと、マシンに接続されているディスプレイを列挙し、ウィンドウを特定の画面に配置できます。これにより、特定のウィンドウを厳密に配置する必要があるマルチウィンドウ アプリケーションなどのユースケースを実現できます。さらに、Element.requestFullscreen() メソッドに新しい screen オプションが追加され、どの画面で全画面表示を始めるかを指定できるようになります。

マルチスクリーン設定。

 

新しいユースケースには、次のようなものがあります。

  • スライドをプロジェクターに表示しつつ、ノートパソコンの画面には発表者向けのノートを表示するスライドショー アプリケーション。
  • 複数のウィンドウからなるダッシュボードを複数のモニターにまたがって開く金融アプリケーション。
  • 高解像度グレイスケール ディスプレイでイメージ(X 線イメージなど)を開く医療アプリケーション。
  • 別画面にセカンダリ ウィンドウ(パレットなど)を表示する制作アプリケーション。
  • ゲーム、サイネージ、アートなどのアプリケーションでのマルチスクリーン レイアウト。

詳細については、マルチスクリーン ウィンドウ配置 API で複数のディスプレイを管理するをご覧ください。

オリジン トライアル

このバージョンの Chrome には、以下のオリジン トライアルが導入されています。オリジン トライアルとして新機能を試せるようにすることで、ウェブ標準コミュニティにユーザビリティ、実用性、有効性についてのフィードバックを提供することができます。以下の項目を含め、現在 Chrome でサポートされているオリジン トライアルに登録するには、Chrome オリジン トライアル ダッシュボードをご覧ください。Chrome のオリジン トライアルの詳細については、ウェブ デベロッパーのためのオリジン トライアル ガイドをご覧ください。Microsoft Edge は、Chrome とは別に独自のオリジン トライアルを行っています。詳細については、Microsoft Edge オリジン トライアル デベロッパー コンソールをご覧ください。

継続するオリジン トライアル

次のオリジン トライアルは、記載されているバージョンまで延長されます。

ワーカーの Media Source Extensions

専用のワーカーから Media Source Extensions(MSE)API を利用できるようにするためのオリジン トライアルが継続されます。この機能により、メイン ウィンドウの HTMLMediaElement で再生中のメディアをバッファリングする際のパフォーマンスが向上します。アプリケーションは、専用ワーカーで MediaSource オブジェクトを作成した後、そのオブジェクト用の ObjectURL を作成できます。次に、postMessage() を呼び出してその URL をメインスレッドに渡し、HTMLMediaElement にアタッチします。すると、MediaSource オブジェクトを作成したコンテキストからメディアをバッファリングできます。ウェブ制作者からは、ワーカーのコンテキストから MSE を利用したいというリクエストが継続的に寄せられています。このオリジン トライアルの延長は、2022 年 7 月後半の Chrome 103 までとなる予定です。

完了したオリジン トライアル

Chrome で以前にオリジン トライアルが行われていた以下の機能は、現在デフォルトで有効化されています。

Digital Goods API

ウェブ アプリケーションからのアプリ内購入を促進するため、Chrome でデジタル商品の照会や管理をする API が提供されます。この新しい API は、実際の購入処理に使われる Payment Request API と連携して動作します。この API は、ユーザー エージェントを通して接続するデジタル配信サービスにリンクできます。Chromium の場合、これは Android Play 請求サービス API のウェブ API ラッパーを指します。

この API を使うと、Play ストアのウェブアプリで、デジタル商品の購入をすることができます(Play ポリシーでは、他の方法で支払いを受けることは禁止されています)。これがないと、デジタル商品を販売するウェブサイトを Play ストアからインストールすることはできません。

詳細については、Digital Goods API と Payment Request API で Google Play 請求サービスから支払いを受ける - Chrome Developers をご覧ください。

今回のリリースに追加されたその他の機能

AbortSignal.prototype.throwIfAborted()

シグナルが異常終了した場合に、Chrome が AbortSignal オブジェクトの理由をスローするようになります。この便利なメソッドを使うと、シグナル処理関数でシグナルの中断ステータスを確認し、中断の理由を伝播できます。たとえば、シグナルのステータスが変わる可能性がある非同期操作の後に呼び出すことができます。

多くの場合、中断シグナル処理関数では、シグナルのステータスをチェックし、中断している場合はエラーを伝播する必要があります。この機能により、一貫した便利な方法を使ってそれを実現できるようになります。例は、すでに MDN に掲載されています。

Capability Delegation

Capability Delegation とは、あるフレームが制限された API を呼び出す機能を放棄し、その機能を信頼する(サブ)フレームに移管できるようにすることを指します。制限された JavaScript(ポップアップ、全画面表示など)を呼び出す機能を既知の信頼するサードパーティ フレームに委譲する必要があるアプリは、この API を使って、指定した期間、その機能を対象のフレームに移管できます。この機能は、iframe の allow 属性のような静的なメカニズムとは対照的です。

多くの販売者のウェブサイトに独自ドメインのオンライン ストアがホストされていますが、カード決済に関するセキュリティや規制に準拠する複雑さに対応するために、支払いの回収や処理インフラストラクチャは決済サービス プロバイダ(PSP)にアウトソースされています。このワークフローは、販売者のウェブサイトのトップ(販売者)フレームに他の部分とうまく調和する「支払い」ボタンを配置し、支払いリクエストのコードは PSP によるクロスオリジン iframe に配置するという形で実装されます。PSP のコードで使われる Payment Request API は、一時的にユーザーがアクティブ化することによって制御されます(悪意のある試みによって、支払いリクエストが自動で実行されたり繰り返されたりすることを防ぐため)。トップ(販売者)フレームのユーザー インタラクションは iframe から見ることができないので、決済処理を始める前に、トップフレームのクリックに応答して PSP コードに委譲する必要があります。

HIDDevice forget()

ウェブ デベロッパーは、HIDDevice forget() メソッドを使うことで、ユーザーが許可した HIDDevice へのパーミッションを自発的に取り消すことができます。HID デバイスにアクセスする長期パーミッションを保持する必要がないサイトもあります。たとえば、多くのデバイスがある共用コンピュータで使われる教育用ウェブ アプリケーションでは、ユーザー生成パーミッションが大量に蓄積されると、ユーザー エクスペリエンスの悪化につながります。

この問題を避けるには、最初のリクエストのパーミッションをデフォルトでセッション スコープにしたり、あまり使われないパーミッションに有効期限を設けたりといったユーザー エージェント側の対策と合わせて、サイト自体が不要になったユーザー生成パーミッションをクリーンアップできるようにする必要があります。

mix-blend-mode: "plus-lighter"

mix-blend-mode プロパティで "plus-lighter" 値がサポートされます。これにより、ソースカラーとデスティネーション カラーにそれぞれのアルファを掛けたものが加算されます。この操作は、共通のピクセルを含む 2 つの要素をクロスフェードする場合に便利です。この場合に "plus-lighter" を使うと、ある要素の不透明度が 0 から 1 に変わる間に別の要素の不透明度は 1 から 0 に変わるので、共通ピクセルの外観は変化しないことが保証されます。

Sec-CH-UA-WoW64 クライアント ヒント

このヒントには、"WoW64-ness"(64 ビット Windows で実行される 32 ビットアプリ)を使うサイトが User-Agent 文字列を UA-CH に移行する際の下位互換性シムとしての用途しかありません。ブール値を返します。

WritableStream コントローラの中断シグナルと SerialPort の統合

WritableStream を使う際、すべての書き込み操作が終わるまで待機せずにシリアルポートをクローズできるようになります。ポートがピアデバイスからのフロー制御シグナルを待機している場合、無限にブロックされる可能性があります。WritableStream を中断する目的は、背後にあるシンクへのデータの書き込みを即座に停止することにあります。

wss スキームの WebSocket 接続の TLS ALPN 拡張

wss スキームの WebSocket で、単にデフォルトの "http/1.1" プロトコルをオファーする新しい接続を開始する際に、TLS ALPN 拡張が含まれるようになります。現在のところ、HTTPS 接続とは異なり、この接続は ALPN をオファーしません。この変更により、Firefox と Safari と挙動が一致し、クロスプロトコル攻撃(ALPACA など)に対して強固になり、wss で False Start 最適化を利用できるようになります。また、HTTPS DNS レコードの処理もシンプルになります。

Web NFC: NDEFReader makeReadOnly()

ウェブ デベロッパーが NDEFReader makeReadOnly() メソッドを使うと、Web NFC で NFC タグを永久的に読み取り専用にすることができます。

WebTransport serverCertificateHashes オプション

WebTransportserverCertificateHashes オプションを使うと、ウェブ公開鍵基盤(PKI)は使わずに、期待される証明書ハッシュに対して証明書を認証することによって、WebTransport サーバーに接続します。

ウェブ デベロッパーは、この機能を使うことで、通常は公式に信頼された証明書を取得するのが難しい WebTransport サーバーに接続できます。たとえば、パブリックにルーティングできないホストや、暫定的な用途の仮想マシンなどです。

サポートの終了と機能の削除

このバージョンの Chrome でサポートが終了するのは、この記事の最初に記載されている一件のみです。
現在サポートの終了作業が行われている機能以前に削除された機能のリストは、ChromeStatus.com をご覧ください。


Reviewed by Eiji Kitamura - Developer Relations Team


このたび、オープンソース ライブラリ Maps Compose の提供を開始することになりました。Maps Compose を使用すると、Maps SDK for Android を Jetpack Compose と一緒に使用できます。Compose を使ってアプリに地図を追加する場合、これまでは Compose とビューベースの MapView の間を橋渡しするために多くのビュー相互運用性コードを記述する必要がありましたが、今後はそういった手間を省くことができます。

Compose は、Android の最新の宣言型ネイティブ UI ツールキットです。UI の記述についての考え方を変えることで、前述の Compose は UI 開発を簡素化と高速化します。つまり、ユーザーはアプリの外観を指定するだけで済み、それ以外は Compose によって処理されます。これは Maps Compose についても同様です。従来よりはるかに少ないコードで Android アプリに地図を追加できるようになりました。

この記事は Google Maps Platform Developer Relations Engineer の Chris Arriola による Google Cloud Blog の記事 "Compose for the Maps SDK for Android Now Available" を元に翻訳・加筆したものです。詳しくは元記事をご覧ください。


このたび、オープンソース ライブラリ Maps Compose の提供を開始することになりました。Maps Compose を使用すると、Maps SDK for Android を Jetpack Compose と一緒に使用できます。Compose を使ってアプリに地図を追加する場合、これまでは Compose とビューベースの MapView の間を橋渡しするために多くのビュー相互運用性コードを記述する必要がありましたが、今後はそういった手間を省くことができます。

Compose は、Android の最新の宣言型ネイティブ UI ツールキットです。UI の記述についての考え方を変えることで、前述の Compose は UI 開発を簡素化と高速化します。つまり、ユーザーはアプリの外観を指定するだけで済み、それ以外は Compose によって処理されます。これは Maps Compose についても同様です。従来よりはるかに少ないコードで Android アプリに地図を追加できるようになりました。

このブログでは、Maps Compose ライブラリをインストールする方法と、その機能の一部について説明します。

さっそく始めましょう。


Maps Compose ライブラリをインストールする

Maps Compose ライブラリをインストールするには、アプリレベルの build.gradle ファイルに次の依存関係を追加します。

dependencies {

    implementation "com.google.maps.android:maps-compose:1.0.0"

    implementation "com.google.android.gms:play-services-maps:18.0.2"

}

上記の新しい依存関係をアプリに追加したら、Android Studio でプロジェクトを再構築して、変更を同期します。また、Cloud のコンソール経由で、API キーを作成してアプリに追加する必要があります。詳しくは、「API キーを使用する」をご覧ください。


アプリに地図を追加する

Maps Compose を依存関係としてアプリに追加し、API キーを追加したら、アプリでコンポーズ可能な関数 GoogleMap を使用できるようになります。Compose を初めて使用する場合、コンポーズ可能な関数は基本的に、Compose で構築されたアプリケーションの UI ビルディング ブロックとなります。

アプリに地図を追加する最も簡単な例を次に示します。

val singapore = LatLng(1.35, 103.87)

val cameraPositionState = rememberCameraPositionState {

    position = CameraPosition.fromLatLngZoom(singapore, 10f)

}

GoogleMap(

    modifier = Modifier.fillMaxSize(),

    cameraPositionState = cameraPositionState

) {

    Marker(

        position = singapore,

        title = "Singapore",

        snippet = "Marker in Singapore"

    )

}

上記のスニペットでは、地図が画面内で最大化され、ビューは camera パラーメータでシンガポールの中心に配置されます。googleMapOptionsFactory で提供されるラムダ式は、地図の初期化に使用される GoogleMapOptions オブジェクトを構築します。最後に、地図のコンテンツでコンポーズ可能な関数 Marker を呼び出すと、地図にマーカーが追加されます。

この例を、ビューを使って地図を追加する例と比較するには、Maps SDK for Android のドキュメント ページにある既存のクイックスタートをご覧ください。Compose の場合は必要なコードがはるかに少なく、地図のライフサイクルを考慮する必要がないことがわかります。


地図上でのプロパティの設定

地図上でプロパティを設定するには、MapProperties オブジェクト、または UI 関連のプロパティ用の MapUiSettings オブジェクトを使用します。これらの状態を管理することで、地図上で再構成をトリガーする際にに利用できます。

次のスニペットでは、地図上のズーム コントロールを切り替えるために、Compose の Material コンポーネントであるスイッチがビューに追加されています。

var uiSettings by remember { mutableStateOf(MapUiSettings()) }

var properties by remember {

   mutableStateOf(MapProperties(mapType = MapType.SATELLITE))

}



Box(Modifier.fillMaxSize()) {

    GoogleMap(

        modifier = Modifier.matchParentSize(),

        properties = properties,

        uiSettings = uiSettings

     )

     Switch(

         checked = uiSettings.zoomControlsEnabled,

         onCheckedChange = { 

             uiSettings = uiSettings.copy(zoomControlsEnabled = it)

         }

     )

}



地図上に図形を表示する

マーカーやポリゴンなどのオブジェクトを地図上に描画するには、コンテンツ ラムダをコンポーズ可能な関数  GoogleMap に提供します。

たとえば次のスニペットでは、コンポーズ可能な Marker を使用して、シンガポールを中心とする地図にマーカーを追加しています。

val singapore = LatLng(1.35, 103.87)


GoogleMap(

    modifier = Modifier.fillMaxSize()

) {

    Marker(

        position = singapore,

        title = "Singapore",

        snippet = "Marker in Singapore"

    )

}



カメラを制御する

地図のビュー内での位置を制御するには、CameraPositionState を使用します。このオブジェクトは、地図のカメラ位置の変更を管理するために使用できます。また、カメラ更新コマンドを地図に送信するために使用することもできます。

たとえば次のスニペットでは、ボタンがクリックされると、地図のカメラをシドニーに移動する方法を表しています。

val singapore = LatLng(1.35, 103.87)

val sydney = LatLng(-33.852, 151.211)


val cameraPositionState = rememberCameraPositionState {

    position = CameraPosition.fromLatLngZoom(singapore, 10f)

}


Box(Modifier.fillMaxSize()) {

    GoogleMap(

        modifier = Modifier.matchParentSize(),

        cameraPositionState = cameraPositionState

     )

     Button(

         onClick = { 

             cameraPositionState.move(CameraUpdateFactory.newLatLng(sydney))

         }

     ) {

        Text(text = "Animate camera to Sydney")

     }

}



使用を開始するには

Google マップにおける Jetpack Compose のサポートを改善することで、より迅速かつ簡単にアプリに地図を追加できるようになりました。すぐに使用したい場合は、GitHub リポジトリにある付属のサンプルアプリを利用してご確認ください。Jetpack Compose をこれまで利用したことがない場合は、Jetpack Compose の公式ドキュメントに詳細の記載がありますのでご覧ください。

今後ともどうぞよろしくお願いいたします。

Google Maps Platform に関する詳しい情報はこちらをご覧ください。ご質問やフィードバックはページ右上の「お問い合わせ」より承っております。


Posted by 丸山 智康 (Tomoyasu Maruyama) - Developer Relations Engineer 

皆さん、こんにちは。Search Central チャンネルの 『初心者向け検索コース』のビデオシリーズが日本語でもご視聴いただけるようになりました。本ビデオシリーズの日本語版では、 英語版の初心者向け検索コースを日本語のナレーションとキャプションを使用してローカライズしています。


このコースの対象者は主に、検索について知りたい方々、または検索の仕組みや、Google 検索で サイトのパフォーマンスを向上させ、見つけやすくする方法を学ぶきっかけを探している方々です。最初は圧倒されることもあると思います! このシリーズが良い機会となり、学習の過程で Search Central の YouTube チャンネルドキュメントなどの他の既存のリソースを活用するのに役立つことを願っています。

同時に、自分がより経験豊富なユーザー、デジタルマーケター、または SEO 担当者である場合は、これらの動画コンテンツを活用して、売り込みやプレゼンテーションをしたり、クライアントや利害関係者にオンライン プレゼンスを管理する際の重要な概念を説明するのに役立ちます。ショートリンク https://goo.gle/jp-sfb をご活用ください。アイデアや学んだことを共有したい場合は、あなたの知識や経験が他の視聴者の学びとなるように、各ビデオのコメント欄に投稿してみてください。

初心者向け検索コースでは、『 ウェブサイトが必要な理由』、『 ウェブサイトの目標設定(とそれが重要な理由) ...
皆さん、こんにちは。Search Central チャンネルの『初心者向け検索コース』のビデオシリーズが日本語でもご視聴いただけるようになりました。本ビデオシリーズの日本語版では、英語版の初心者向け検索コースを日本語のナレーションとキャプションを使用してローカライズしています。



このコースの対象者は主に、検索について知りたい方々、または検索の仕組みや、Google 検索で サイトのパフォーマンスを向上させ、見つけやすくする方法を学ぶきっかけを探している方々です。最初は圧倒されることもあると思います! このシリーズが良い機会となり、学習の過程で Search Central の YouTube チャンネルドキュメントなどの他の既存のリソースを活用するのに役立つことを願っています。

同時に、自分がより経験豊富なユーザー、デジタルマーケター、または SEO 担当者である場合は、これらの動画コンテンツを活用して、売り込みやプレゼンテーションをしたり、クライアントや利害関係者にオンライン プレゼンスを管理する際の重要な概念を説明するのに役立ちます。ショートリンク https://goo.gle/jp-sfb をご活用ください。アイデアや学んだことを共有したい場合は、あなたの知識や経験が他の視聴者の学びとなるように、各ビデオのコメント欄に投稿してみてください。

初心者向け検索コースでは、『ウェブサイトが必要な理由』、『ウェブサイトの目標設定(とそれが重要な理由)』などの基礎的な内容から『Google 検索の詳細』、『SEO の詳細』、『Google 検索結果のスニペットを変更する方法』などのより自然検索に関連する内容まで提供しています。実際に、私たちはこれらの内容に関して、フォーラムソーシャル チャネル、そして世界中のイベントで質問を受けてきました。

また、このコースのローカライズ版の最初の言語として、日本語を選びました。これは、日本からの視聴回数や字幕の使用が多く、日本のコミュニティが常に重要であったためです。この日本語コースは、私たちのチャンネルで英語以外の言語で利用できる最初のビデオシリーズであり、気に入っていただければ幸いです。将来的には、より多くの言語でコンテンツを作成したいと考えています。

日本語のプレイリストで初心者向け検索コースをご視聴ください。そして、感想をお聞かせください。もしくは、フォーラム毎月開催しているオフィスアワーに質問や意見をお寄せください。またお会いできる日を楽しみにしております!


Posted by Anna Ogawa, Sr. Search Ecosystem Consultant and Cherry Prommawin, Search Relations

この記事は Google、プロダクト マネージャー、Vikrant Rana、グループ プロダクト マネージャー、Badi Azad による Google Developers Blog の記事 "Making Google OAuth interactions safer by using more secure OAuth flows" を元に翻訳・加筆したものです。詳しくは元記事をご覧ください。

この記事は Google、プロダクト マネージャー、Vikrant Rana、グループ プロダクト マネージャー、Badi Azad による Google Developers Blog の記事 "Making Google OAuth interactions safer by using more secure OAuth flows" を元に翻訳・加筆したものです。詳しくは元記事をご覧ください。

Google は、ユーザーがログインして、Google アカウント データをサードパーティ アプリケーションと共有できる安全な方法を提供するため、常に努力しています。その理念に基づき、OAuth インタラクション中のフィッシングやアプリのなりすましによる攻撃に対する一連の保護機能をロールアウトします。

Google のログインと認可のフローは、Google OAuth プラットフォームを利用しています。アプリ デベロッパーがサポート対象の OAuth フローを組み込めるように、ここ数年の間にたくさんの方法を開発し、サポートしています。今回は、オンラインのユーザーの安全を維持するという目的のもと、2 つのレガシーフローのサポートを終了します。デベロッパーの皆さんは、保護が強化されている別の実装方式に移行する必要があります。

スムーズな移行を実現し、サービスの中断が起きないようにするため、十分な実装の時間を提供します。以下の期日に間に合うように移行をお願いいたします。このロールアウトについては、メールでさらに最新情報をお知らせする予定です。Google API コンソールのプロジェクト設定で、サポート メールアドレスが最新になっていることをご確認ください。

ネイティブの iOS、Android、Chrome OAuth クライアント タイプでループバック IP アドレスフローを禁止

ループバック IP アドレスフローは、中間者攻撃に脆弱です。この攻撃が行われると、悪意のあるアプリが一部のオペレーティング システムで同じループバック インターフェースにアクセスし、OAuth レスポンスを傍受して認可コードを入手できる可能性があります。そこで、iOS、Android、Chrome アプリの OAuth クライアント タイプでこのフローを禁止することにより、この脅威ベクターを取り除きます。既存のクライアントは、安全性が高い実装方式に移行できます。2022 年 3 月 14 日以降、新規クライアントはこのフローを使えなくなります。

必要な対応

アプリでループバック IP アドレスフローを使っているかどうかを確認する

アプリのコードか、外向きのネットワーク呼び出し(アプリで OAuth ライブラリを使っている場合)を調べ、アプリで行っている Google OAuth 認可リクエストの “redirect_uri” パラメータに次の値が含まれているかどうかを確認してください。

redirect_uri=http://127.0.0.1:port または http://[::1]:port">http://[::1]:port または

http://localhost:port

別のフローへの移行

アプリでループバック IP アドレス方式を使っている場合は、デフォルトで安全性が高い別の方式に移行する必要があります。移行する別の方式として、以下を検討してください。

重要な期日

  • 2022 年 3 月 14 日 - 新規の OAuth 利用で、ループバック IP アドレスフローがブロックされます。
  • 2022 年 8 月 1 日 - 期日の 1 か月前より、非準拠 OAuth リクエストを使うと、ユーザーに警告メッセージが表示される場合があります。
  • 2022 年 8 月 31 日 - 既存クライアントに対して、ループバック IP アドレスフローがブロックされます。

OAuth アウトオブバンド(OOB)フローが非推奨に

OAuth のアウトオブバンド(OOB)は、レガシーフローです。ウェブアプリの場合、ユーザーが OAuth 同意リクエストを承認した後、リダイレクト URI で資格情報を受け取ることができます。このフローは、リダイレクト URI を持たないネイティブ クライアントをサポートするために開発されました。OOB フローにはリモート フィッシングのリスクがあるので、クライアントはこの脆弱性に対する保護策として、別の方式に移行する必要があります。2022 年 2 月 28 日以降、新規クライアントはこのフローを使えなくなります。

必要な対応

アプリで OOB フローを使っているかどうかを確認する

アプリのコードか、外向きのネットワーク呼び出し(アプリで OAuth ライブラリを使っている場合)を調べ、アプリで行っている Google OAuth 認可リクエストの “redirect_uri” パラメータに次の値が含まれているかどうかを確認してください。

redirect_uri=urn:ietf:wg:oauth:2.0:oob または urn:ietf:wg:oauth:2.0:oob:auto または oob

別のフローへの移行

アプリで OOB 方式を使っている場合は、デフォルトで安全性が高い別の方式に移行する必要があります。移行する別の方式として、以下を検討してください。

重要な期日

  • 2022 年 2 月 28 日 - 新規の OAuth 利用で、OOB フローがブロックされます。
  • 2022 年 9 月 5 日 - 非準拠 OAuth リクエストを使うと、ユーザーに警告メッセージが表示される場合があります。
  • 2022 年 10 月 3 日 - 既存クライアントで OOB フローが非推奨となります。

ユーザーに表示される警告メッセージ

前述の OAuth 方式がブロックされる 1 か月前から、非準拠リクエストを使うユーザーに対して警告メッセージが表示される場合があります。このメッセージは、近日中にアプリがブロックされる可能性があることをユーザーに伝えるものになります。Google API Console の OAuth 同意画面で登録されたサポートメールも表示されます。

【ユーザーに表示される警告の例】

デベロッパーは、ユーザーに表示される警告メッセージを確認したうえで、認可呼び出しの際に次のようにしてクエリ パラメータを渡すことで、メッセージを抑制することができます。

  • Google の OAuth 2.0 認可エンドポイントにリクエストを送るアプリのコードを開きます。
  • 期日を値としたパラメータを追加します。
    • OOB の場合 : ack_oob_shutdown パラメータを追加し、値として期日 2022-10-03 を指定します。例 : ack_oob_shutdown=2022-10-03
    • ループバック IP アドレスの場合 : ack_loopback_shutdown パラメータを追加し、値として期日 2022-08-31 を指定します。例 : ack_loopback_shutdown=2022-08-31

ユーザーに表示されるエラー メッセージ

期日までに基準を満たすようにアップデートされないアプリでは、認可リクエストがブロックされ、無効なリクエストを示すエラー画面がユーザーに表示される場合があります(次に例を示します)。

【ユーザーに表示されるエラーの例】


Reviewed by Eiji Kitamura - Developer Relations Team


デジタル カンファレンス Google Cloud Day: Digital '22 開催まで、あと 1 月半となりました

コンテンツの詳細と、ライブ視聴者への特典企画が公開されましたので、ぜひこちらからチェックしてみてください。

その中でも、昨年に引き続き注目いただきたい、基調講演とハンズオン祭についてご紹介します。


デジタル カンファレンス Google Cloud Day: Digital '22 開催まで、あと 1 月半となりました

コンテンツの詳細と、ライブ視聴者への特典企画が公開されましたので、ぜひこちらからチェックしてみてください。

その中でも、昨年に引き続き注目いただきたい、基調講演とハンズオン祭についてご紹介します。

基調講演

すでに多くの日本企業が、Google Cloud によってデジタル トランスフォーメーション(DX)を実現しています。基調講演では、皆さまのビジネス推進をサポートする最新のソリューションやサステナビリティへの取り組みを発表します。また、デジタル大臣 牧島かれん氏、 株式会社 LIXIL からジン モンテサーノ 氏をお招きし、具体的な DX への取り組みをお聞きします。

ハンズオン祭

セッションで学んだ知識を使って、実際に Google Cloud に触れることができるプログラムです。はじめて Google Cloud を利用される方は「実践 Google Cloud ハンズオン」で、製品の概要や各種機能を、実際に手を動かして体験いただけます。「Cloud Study Jam」では、Google Cloud Skills Boost(30 日間無料特典つき) を使って、Google Cloud の体験だけでなく Google エンジニアへの質問も可能です。

尚、ハンズオン祭への参加は、Google Cloud Day: Digital '22 とは別にお申し込みが必要となります。以下のリンクからご興味のあるセッションへ、それぞれお申し込みください。


☁ 4 月 26 日(火)

10:00 - 13:00 Cloud Study Jam - AppDev 編 https://goo.gle/3hcYVmD

14:00 - 17:00 実践 Google Cloud ハンズオンセミナー Cloud Run 編 https://goo.gle/gcho_d1bl1



☁ 4 月 27 日(水)

10:00 - 13:00 Cloud Study Jam - BQML 編 https://goo.gle/3LYpaLI

14:00 - 17:00 実践 Google Cloud ハンズオンセミナー データエンジニア向け BigQuery + Dataplex 編 https://goo.gle/gcho_d2bl1



☁ 4 月 28 日(木)

10:00 - 13:00 Cloud Study Jam - DevOps 編 https://goo.gle/3vdzmdi

14:00 - 17:00 実践 Google Cloud ハンズオンセミナー Kaggle 編 https://goo.gle/gcho_d3bl1


ライブ視聴者への特典企画

Google Cloud を試せる 300 ドルのクレジットを、イベント期間中(4 月 19 日~21 日)に視聴していただいた方から、抽選で 100 名に進呈いたします。

※上限は $300 です。上限を超えると課金されますのでご留意ください。
※今年、すでに他のハンズオンなどでクーポンコードを使用された方は、今回のクーポン適用外になる可能性があります。


開催概要

日程 :

4 ⽉ 19 ⽇(火)~ 21 ⽇(木)
基調講演、特別講演、ブレイクアウト セッション

4 ⽉ 22 ⽇(金)
Innovators Hive

4 ⽉ 26 ⽇(火) ~ 28 ⽇(木)
ハンズオン祭

対象 : 開発者、ビジネスの意思決定者やリーダー

対象プロダクト : Google Cloud, Google Workspace

ハッシュタグ : #GoogleCloudDay(右記のハッシュタグと組み合わせてお使いください #appdev #da #db #ML #infra #GWS #security)


お問い合わせ先 : 
Google Cloud Day: Digital '22 事務局(gcd22-office@event-info.com






Google は Women Techmakers (WTM) を通じて、技術系のイベントの登壇者・参加者の多様性を促進していきます。2022 年は、さらに世界中で女性エンジニアが増えるよう、応援していきたいと考えています。WTM プログラムについて詳しくはこちらをご覧ください。

毎年 3 月 8 日に訪れる国際女性デーを祝うため、WTM は 3 月〜 4 月の時期にかけて、IT 業界で活躍する女性が学び合える一連のイベント、International Women's Day (IWD) キャンペーンを開催しています。今年のテーマは、「#ProgressNotPerfection」です。

日本では、Google Developer Groups(GDG)をはじめとした女性コミュニティの皆さんが、全国各地でオンライン イベントを開催予定です。もちろん、イベントは性別を問わず、どなたでもご参加いただけます。

Flutter に注目したイベントから、IT 業界でのキャリアや登壇経験の積み方など、幅広いセッションが予定されております。オンラインでの開催となりますので、ぜひお気軽にご参加ください。

1. 「集え Flutter レディース」

GDG Kyoto, WTM Kyoto, Flutter User Group Japan (Flutter Tokyo, Flutter Osaka) 共催

開催日 : 2022 年 4 月 23 日(土)13 : 30 〜

場所 : YouTube LIVE

参加費 : 無料

詳細・お申し込み : こちら

※現在女性エンジニアの登壇枠も募集中です。登壇のご登録はこちら


2. 「WTM Tokyo - International Women's Day 2022」

GDG Tokyo, WTM Tokyo 共催

開催日 : 2022 年 4 月 24 日(日)10 : 30 〜

場所 : YouTube LIVE

参加費 : 無料

詳細・お申し込み : こちら

登壇者紹介 : 【豪華ゲストをお招きして、幅広いセッションを準備中。情報公開までお楽しみに!】

3. 「IWD 2022 - GDSC Japan」

GDSC Japan 共催

開催日 : 2022 年 3 月下旬予定

場所 : オンライン

参加費 : 無料

詳細・お申し込み : 【準備中】


この記事はプロダクト マネージャー、Rohey Livne による Google Developers Blog の記事 "Announcing authorization support for Google Identity Services APIs" を元に翻訳・加筆したものです。詳しくは元記事をご覧ください。


Google Identity Services(GIS)

Google が最優先しているのは、オンラインのユーザーの安全を守ることです。そのため、私たちは個人情報を安全に保つための新しいツールや機能の開発に継続的に取り組んでいます。

2021 年 8 月に、新しい Identity API ファミリーとして、Google Identity Services(GIS)をリリースしました。これは、複数の ID サービスを 1 つのウェブ ソフトウェア開発キット(SDK)にまとめたものです。この SDK には、Google でログインするためのボタンや、簡単に利用できる認証プロンプトである One Tap が含まれています。Google でログインと One Tap では、パスワードではなく、セキュア トークンを利用してサイトやアプリにログインします。

この記事はプロダクト マネージャー、Rohey Livne による Google Developers Blog の記事 "Announcing authorization support for Google Identity Services APIs" を元に翻訳・加筆したものです。詳しくは元記事をご覧ください。


Google Identity Services(GIS)

Google が最優先しているのは、オンラインのユーザーの安全を守ることです。そのため、私たちは個人情報を安全に保つための新しいツールや機能の開発に継続的に取り組んでいます。

2021 年 8 月に、新しい Identity API ファミリーとして、Google Identity Services(GIS)をリリースしました。これは、複数の ID サービスを 1 つのウェブ ソフトウェア開発キット(SDK)にまとめたものです。この SDK には、Google でログインするためのボタンや、簡単に利用できる認証プロンプトである One Tap が含まれています。Google でログインと One Tap では、パスワードではなく、セキュア トークンを利用してサイトやアプリにログインします。

今回は、このひとつに統合された Google Identity Services SDK に認可機能が追加されたことをお知らせします。これにより、この ID ソリューション スイートの価値はさらに高まり、デベロッパーもこれまで以上にシンプルに実装できるようになります。

キャプション : 個々の同意オプションが表示された認可画面

新機能

アップデート版のライブラリでは、認証と認可の両方が「ワンストップ ショップ」としてデベロッパーに提供されます。認証では、新規ユーザーが登録をしたり、登録済みのユーザーがログインしたりできます。もう一方の認可では、ユーザーの同意のもと、デベロッパーが Google API を呼び出すアクセス トークンを受け取ることができます。

デベロッパーによる細かな制御を実現するため、新しい SDK では、認証と認可のタイミングを明確に分けることがサポートされています。そのため、サイトやアプリのニーズに応じて、認証と認可の呼び出しを 2 つの独立した別々のフローとして行うことができます。

メリット

新しい SDK には、ブラウザベースのポップアップ ダイアログが使われています。そのため、サイトやアプリを利用するユーザーの手間が減り、認証や認可のフローが効率化されて、ユーザー エンゲージメントが向上します。

加えて、期限切れアクセス トークンの自動更新を削除することにより、エンドユーザーが明示的にセッションを更新しなければならなくなるため、長時間持続するトークンが意図しない目的に使われることを防ぐことができ、フロー全般のセキュリティが向上します。

さらに、新しいライブラリを使うことで、複雑な組み込み作業が軽減され、開発にかかる時間や労力を最小限にとどめることができます。組み込み作業を一層シンプルにするため、簡単に使える記述済みのスクリプトも提供します。このコード スニペットは、コピーしてパートナー サイトに直接貼り付けて使うことができます。

Google の認証や認可のフローを利用するユーザーは、2 要素認証、パスワード回復フローなどの Google が誇る最先端のセキュリティ インフラストラクチャによるメリットを活用できます。また、認可機能が有効になっているすべてのサイトやアプリで、Google が検証済みであるという安心を得ることができます。

Google Identity Services(GIS)への移行の一環として、今後もソリューションの改善を続ける予定です。今年追加される新機能にご注目ください。

新しい Google Identity Services(GIS)ライブラリを活用するには、Google のデベロッパー サイトにアクセスし、[ 始めましょう ] ボタンをクリックして技術ドキュメントをご覧ください。


Reviewed by Eiji Kitamura - Developer Relations Team