はじめに
Project Opal による自動運転では、
Cloud PC 上でブラウザ操作を含めた処理を実行できます。
Project Opal をご存じない方は・・・
まず 以下の記事を参照ください**
AI が Windows を自律操作するって本当? Project Opal (Frontier) を試して分かった「実用的な使いどころ」
https://qiita.com/carol0226/items/a78a888ce0c4d2364232
本記事のテクニックを使うと、
例えば以下のようなユースケースで利用することができます。
- JTB のサイトで宿泊予約を行う
- ANA のサイトで航空券を購入する
- 各種 Web サービスにログインして操作を行う
- 社内の基幹システムにログインして業務を行う
さらに、これらの操作をスマートフォンからプロンプトで指示し、あとは自動で実行できるようにすれば、非常に利便性の高い運用が実現できます。
一方で、対象サービスへのログインにおいては、
認証情報をどのように安全に扱うか が設計上の課題となります。
本記事では、この課題に対する現実的な解として、
Microsoft Entra ID の「パスワードベース SSO」を活用し、
セキュアかつシームレスなログインを実現する方法を解説します。
本記事では、この構成を一つの設計パターンとして定義し、
「Opal Password SSO Magic(OPSM)パターン」 と命名します。
👉 Project Opal は強力ですが、ログイン時に処理が停止してしまうという制約があります。
■ 従来パターンとの違い
従来の構成では、ログイン画面に到達した時点で
認証情報の入力が求められ、自動処理が停止してしまいます。
従来パターン(ログインで停止する構成)
① 指示 → ② 表示 → ③ 認証入力要求 → ❌ 停止(手動での認証が必要)
OPSMパターン
① 指示 → ② 表示 → ③ 自動入力 → ④ 継続処理 → ✅ 完了(完全自動化/ユーザー介入なし)
👉 この「③で止まるか/進めるか」が本質的な違いです
1. 背景
1-1. なぜこの仕組みが必要なのか
Project Opal を利用すると、Windows 365 Cloud PC 上でブラウザ操作を含めた一連の作業を自動化できるようになります。
しかし、ここでひとつ課題が発生します。
- Opal の Cloud PC は ジョブごとに新規に払い出される(都度プロビジョニング)
- 認証情報(ID / パスワード)を プロンプトに直接書くのは避けたい
Opal は必要に応じて認証情報の入力を求めて処理を一時停止する仕様になっています。
その結果、自動運転が停止してしまいます。
さらに認証を行う場合でも、コピー&ペーストが行えないため、複雑なパスワードを手入力する必要が生じます。
この時点で、スマートフォンからジョブを自動実行するような運用は、現実的ではなくなってしまいます。
そこで本記事では、この課題を解決するための手段として、
Microsoft Entra ID の「パスワードベース SSO」を採用します。
この方式により、認証情報を安全に管理しながら、完全自動でのログイン処理を実現します。
次の章では、なぜこの方式を選択したのかを、他のアプローチとの比較を踏まえて整理します。
1-2. なぜ Entra パスワードベース SSO を選択したのか?
この課題を解決するにあたり、複数のアプローチを「完全自動化」「セキュリティ」「利便性」の観点で検討および検証しました。
その結果、Entra パスワードベース SSO が、完全自動処理を前提とした要件に最も適していると判断しました。
※「完全自動」とは、ユーザーの手動入力や介入なしに、Opal のジョブが最後まで実行される状態を指します。
| # | 手法 | 完全自動 | セキュリティ | 利便性 | 導入しやすさ | 対応サイト |
|---|---|---|---|---|---|---|
| 1 | パスワード手打ち | ✕ | △ | ✕ | - | 〇 |
| 2 | パスワード プロンプト渡し |
✕ | ✕ | △ | - | 〇 |
| 3 | Entra パスワード SSO |
〇 | 〇 | 〇 | 〇 | △ (※) |
| 4 | Edge パスワード マネージャー |
✕ | 〇 | 〇 | ✕ | 〇 |
| 5 | Google パスワード マネージャー |
△ | △ | 〇 | △ | 〇 |
| 6 | Roboform | △ | △ | 〇 | △ | 〇 |
※「対応サイト △」は、ログインフォームの構造(HTML)によっては、自動入力が機能しない場合があるためです。
そのため、実運用では事前の動作確認が必要になります。
評価
-
No.4 の Edge パスワードマネージャーは、Opal Cloud PC 上では動作しません。
OS レベルで制御されているため、MDM ポリシーを変更しても利用できませんでした。
-
No.1 / No.2 / No.4 は、完全自動化が実現できないため、候補から除外しました。
-
No.5 / No.6 は、別途アプリのインストールが必要であり、
自動化も可能ですが待ち時間が発生します。
さらに、そのパスワードマネージャー自体の認証情報を
安全に受け渡す方法が存在しません。
(No.1 / No.2 のような方法に帰着してしまうため、根本的な解決になりません)この点がボトルネックとなるため、今回は採用を見送りました。
-
No.3(Entra パスワードベース SSO)のみが、実用上すべての要件を満たしました。
ただし、対応サイトが限定される点が唯一の制約です。
Entra パスワード SSO で対応していないサイトへの対応(参考)
No.5 / No.6 の方式を組み合わせることで、対応していないサイトへの適用も理論上は可能です。
具体的には、パスワードマネージャー自体の認証を、
No.3(Entra パスワードベース SSO)で自動化する構成です。
これにより、全体として完全自動化を実現できる可能性があります。
※本構成は机上検討であり、実環境での動作検証は行っていません。
実運用では要検証となりますが、設計上の拡張パターンとして参考になると考えています。
1-3. Entra パスワードベース SSO によって、実現できること
本記事の構成を利用することで、以下が実現できます。
✅ 実現できること
- Opal の Cloud PC から 対象の Web サイトにログイン可能
- ID / パスワードを プロンプトに書かずに済む
- 認証情報を Entra ID 側に安全に保管
- 自動運転(Computer Use Agent)でログイン処理も実行可能
※本仕組みは ID / パスワードによる認証を前提としています。
パスキー認証には対応していません。
💡 ポイント
Microsoft Entra ID のパスワードベース SSO は、
- ユーザー資格情報を暗号化して Entra 内に保管
- サインイン時に自動で入力
される仕組みです。
そのため、
👉「Opalはブラウザ操作を実行する」
👉「Entraは資格情報を自動入力する」
という形で役割分担が可能になります。
この仕組みにより、Cloud PC が使い捨てであっても、認証状態を持ち越す必要がない点が大きなメリットです。
1-4. OPSM パターンが成立する仕組み
本章では、まずパスワードベース SSO の仕組みを説明し、
その動作原理を踏まえて Project Opal と組み合わせる発想を整理します。
1-4-1. Entra パスワードベース SSO の仕組み
Entra パスワードベース SSO は、以前から提供されている機能であり、
ID / パスワード認証しかサポートしていない Web サービスを
Entra の「マイアプリ」に統合するための仕組みです。
従来は、SAML や OIDC に対応していないアプリケーションを、
Entra 経由でシングルサインオン可能にする用途で利用されてきました。
公開情報:パスワードベースのシングル サインオンをアプリケーションに追加する
https://learn.microsoft.com/ja-jp/entra/identity/enterprise-apps/configure-password-single-sign-on-non-gallery-applications?wt.mc_id=MVP_407731
以下の記事でも パスワードベース SSO が紹介されていますので、参考にしてみてください。
(参考)[Entra ID] パスワードベースのSSOを検証する
https://qiita.com/akihiro_suto/items/2f7825bfc0cb8a506e4d
(参考)パスワードベースのシングルサインオン(SSO)
https://blog.jbs.co.jp/entry/2023/05/01/112155
1-4-2. Opal との組み合わせの発想
本記事で重要なのは、この機能の「動作原理」を理解した上で、
Project Opal の特性(ブラウザ操作の自動化)と組み合わせている点です。
💡オリジナルなアイデア
本記事で紹介している組み合わせは、既存機能を組み合わせた活用例ですが、
Project Opal の特性を踏まえると非常に相性が良く、
今後の標準的なアプローチの一つになる可能性があります。
■ パスワードベース SSO の動作
Entra パスワードベース SSO は、以下の流れで動作します。
- ユーザーがログインページにアクセス
- Entra(ブラウザ拡張)がページの HTML を解析
- ID / パスワードの入力欄を特定
- 登録済みの資格情報を自動で入力
つまり、「認証を代理で行う」のではなく、
ブラウザ操作として入力を自動化する仕組みになっています。
■ Opal との相性
この特性により、
- Opal:ブラウザ操作を実行する
- Entra:資格情報を自動入力する
という役割分担が可能になります。
その結果、Cloud PC が使い捨てであっても、
認証情報を持ち回る必要なくログイン処理を継続できるようになります。
この点が、Project Opal の自動運転と非常に相性が良い理由です。
2. 実装
では、動く環境を作っていきましょう。
2-1. 前提
💡以下の2つの記事の内容をすべて実装すれば、前提は満たされます。
AI が Windows を自律操作するって本当? Project Opal (Frontier) を試して分かった「実用的な使いどころ」
→ Opal の有効化をしています。
https://qiita.com/carol0226/items/a78a888ce0c4d2364232
AI による Windows 自動運転 (Project Opal) の認証停止を回避する方法|OpalOnboard.ps1 の中身と実行ポイントを徹底解説
→ Cloud PC へ接続時の SSO を構成しています。
https://qiita.com/carol0226/items/e6f4a0f73999e74c4f66
2-2. 手順
ここからは実際の設定手順です。
2-2-1. Edge 拡張 (My Apps Secure Sign-in Extension) の導入
1.Edge のブラウザを開き、以下の URL を貼り付けます。
My Apps Secure Sign-in Extension
https://microsoftedge.microsoft.com/addons/detail/my-apps-secure-signin-ex/gaaceiggkkiffbfdpmfapegoiohkiipl
2.Get を押して、My Apps Secure Sign-in Extension をインストールします。
※Remove と書かれていたら、既に導入済みなので、SKIP してください。

2-2-2. エンタープライズアプリの作成
- Edge を使って、Microsoft Entra 管理センターにアクセスします。
https://entra.microsoft.com
2.エンタープライズアプリ → すべてのアプリケーション → +新しいアプリケーション を押す。

3.+独自のアプリケーションの作成 を押します。
利用するサービス (Webサイト) の名称を入力して ギャラリーに見つからないその他のアプリケーションを統合します を選択して 作成 ボタンを押します。

2-2-3. SSO の方式を「パスワードベース」に設定
1.エンタープライズアプリの一覧から、作成したアプリを開きます。
2-2-4. ログイン URL の設定
1.Web サービスのログイン URL を指定して 保存ボタンを押します。

解析が成功した場合
Entra ID がページの HTML が解析され、自動的に ID / パスワードの入力欄が特定されます。
2.認証画面が開いたら Entra 管理センターにサインインしているアカウントで認証します。
3.Web サイトを開きます。ログオン画面を開いて ID と パスワード を入力します。
すると、以下のように 赤枠 が表示されます(これによって Entra パスワード SSO が入力欄を認識します)

このタイミングでは、ID と パスワード は、Entra 側には取り込まれていません。
あくまで入力枠の項目名だけが取得されています。
4.パスワード入力欄がキャプチャされると、以下の表示になります。

6.その後、以下のチェックボックス を ON にすると、キャプチャされた入力欄が確認できます。

2-2-5. 認証情報の登録
2.赤枠の箇所を押して Opal を利用予定の ユーザー を選択します。

3.選択肢 はい を選び、対象ユーザーが利用する Web サイトの ID / パスワードを登録します。

👉 ここが重要ポイント
この情報は Entra ID によって
- 暗号化され
- 安全に保管されます
2-2-6. 単体テスト
まずは、作業用 PC 上の Edge から、単体動作の試験を行います。
先ほど、My Apps Secure Sign-in Extension を有効化 したブラウザを使います。
この拡張機能が
👉 ログイン時に自動で資格情報を入力します
1.以下の URL (My Apps) サイトにアクセスし 先ほど アプリに紐づけた Entra ユーザーのアカウントでサインインします。
https://myapplications.microsoft.com/
2.一覧の中から、先ほど登録したサイトを見つけて クリックします。

3.再び Entra ユーザーの認証を行います。
5.ログインボタンを押し、サイトにログインできれば Entra パスワード SSO の構成は成功です。
次章へすすみ、Opal 側のポリシー設定に進んでください。

ログインできない場合
もし、パスワードの相違が発生したら、Entra 側の資格情報の割り当ての設定を見直してください。
入力欄が空欄になっている場合は、入力項目のキャプチャがうまくいっていない可能性があります。
再度、やり直してください。
注意
私が検証した結果、ANA のサイトは問題なく動作しました。
しかし、楽天トラベルは パスワード欄 が空欄になってしまい、うまく SSO させることができませんでした。
※サイトによっては、拡張機能が うまく 入力欄を制御できない場合があるようです。
2-2-7. Opal 側の設定
Opal 上のブラウザは、Intune ポリシー によって、ブラウザ に制限が掛かっています。
そのため、現時点で OPSM の動作試験を実施すると 以下のように My Apps の拡張が導入できず Entra パスワード SSO が機能しません。

本章では、拡張機能 を導入できるように Intune ポリシー の設定変更を行います。
1.Intune 管理センターにアクセスします。
https://intune.microsoft.com
2.デバイス から 構成 を開き、Opal App Device Policy を選択します。

5.設定の一覧をスクロールして、Extensions を探します。
Control which extensions cannot be installed の設定を Disabled にします。
※拡張機能 (Extensions) のインストール禁止設定を 無効 (Disable) にしています。

6.Download restrictions (Device) を探し Block dangerous downloads を選択します。
ダウンロード 設定を変更します。(禁止だったところから、「危険なサイトのみブロック」し それ以外を許可)
確認して保存 を押します。

3. OPSM パターンの 動作検証
3-1. プロンプト
1.スマホ または PC の Edge ブラウザを起動し、Opal ポータルを開きます。
https://opal.frontier.microsoft365.com/
2.Opal にサインインし、以下の青枠にプロンプトを入力して 赤枠 (Start) ボタンを押します。

※Opal の設定で スターターを構成しておくと、緑枠 のようなボタンを配置できるため、1発実行が可能になります。
適切なプロンプトを投入すると、Opal が 目的達成まで自律的に処理を実行していきます。
ノンストップで動作することが確認できると思います。
4.プロンプト例は、以下のような内容です。
1. https://myapps.microsoft.com/ にサインインしてください。
2. アイコンの一覧から ANA にアクセスしてください。
3. My Apps Secure Sign-in Extension が必要な場合は入れてください。
4. ログインボタンを押してください。
8月1日の東京から関西空港行きの空き状況を教えてください。
カレンダーでは、目的の日付を往路として選んだあとに、再度 復路の日付を選ぶ必要があります。
この中で、10時~11時頃に近い便を予約し、座席は 窓際の最前列を確保してください。
決済を行う手前で STOP し、決済して良いかどうか 指示を仰いでください。
プロンプトの内容解説([赤字]の部分を自由にカスタマイズして利用できます)
1.https://myapps.microsoft.com/ にサインインしてください。
OPSM パターンの定型プロンプトです。Entra パスワード SSO を機能させるために My Apps から開始します。
2.アイコンの一覧から [任意のサイト] にアクセスしてください。
Entra に登録した 任意のサイトを指定してください。
3.My Apps Secure Sign-in Extension が必要な場合は入れてください。
OPSM パターンの定型プロンプトです。これで My Apps 拡張が入ります。
4.[ログインボタンを押してください。
8月1日の東京から関西空港行きの空き状況を教えてください。
カレンダーでは、目的の日付を往路として選んだあとに、再度 復路の日付を選ぶ必要があります。
この中で、10時~11時頃に近い便を予約し、座席は 窓際の最前列を確保してください。]
→ ここは、任意の内容にカスタマイズしてください。この指示にしたがって Opal が自動運転します。
ポイント
JTB のように横に長いサイトは、検索効率が落ちます。
プロンプトで、「横スクロールがある場合は、ブラウザを縮小してください・・」と書いておくと効率よく処理できるようになります。
3-2. 自律運転のイメージ
プロンプト投入すると Cloud PC に自動接続されて、以下の動きを見せてくれるはずです(すべて自律的に)
- Edge が起動し、My Apps のサイトが開かれる
- ANA のエンタープライズアプリをみつけて、起動します
- My Apps Secure Sign-in Extension が入っていないから、導入を求められます
- 上記の Extension を導入します
- ANA のエンタープライズが起動していないことに気づいて、再度起動します
- ANA ログイン画面に遷移(ここで OPSM パターンが発動)
- 国内線の入力欄に、出発地、到着地を入力します
- カレンダーで日程を指定します(この場面は必見です)
※これ AI には難しいので、プロンプトで「カレンダーでは、目的の日付を往路として選んだあとに、再度 復路の日付を選ぶ必要があります」というヒントを与えてます。 - 検索された一覧を上下スクロールしてチェックする場面も愛嬌があります
- 便を仮決めしますが、提携便で 座席指定できない場合は、相談にきます
- 座席指定できる便に振り替えてもらったら、座席表から希望の席を確保してくれます(これも必見)
- 最後に、確定の直前に 結果レポートが表示されるので、そこで GO を指示すれば、予約できます
もっと 扱いやすくて効果的な自律プロンプトを考案しているので、別の記事で紹介していきます。
こうご期待!
3-3. 対象サイト一覧
HTMLベースのログイン画面を持つ Web サービス
- 検証済み
- ANA
- JTB
- 利用できないことを確認済み
- 楽天トラベル
- Expedia
4. まとめ
本記事では、Project Opal による自動運転における課題である
「認証情報の取り扱い」を、Entra パスワードベース SSO によって解決する方法を解説しました。
従来の構成では、
- ログイン画面で処理が停止する
- 認証情報の入力に人手が必要
という制約があり、完全自動化の実現が困難でした。
これに対して、OPSM パターンでは、
👉 Opal による「ブラウザ操作」
👉 Entra による「資格情報の自動入力」
を組み合わせることで、
- 認証フェーズで処理を止めない
- Cloud PC が使い捨てでも問題ない
- プロンプトに認証情報を含めない
という設計を実現しています。
✅ OPSMパターンのポイント
- 認証情報は Entra ID に集約し、安全に管理
- 認証処理を「入力の自動化」として扱う
- 操作と認証を明確に分離することで完全自動化を実現
💡 設計の観点
パスワードベース SSO は、従来「代替手段」や「最終手段」として扱われることが多い機能ですが、
👉 「ブラウザ操作を前提とした自動化」と組み合わせることで
👉 新しい価値を持つ設計要素として活用できます
本記事で紹介した OPSM パターンは、
👉 「③で止まる処理を止めずに進める」ための設計パターン
として、今後の Opal 活用シナリオにおける有効な設計パターンの一つになります。
※実運用では、対象サイトや認証方式に応じた事前検証を推奨します。
✅ 結論
👉 Opal の認証課題は、Entra パスワードベース SSO によって現実的に解決できる
👉 OPSM パターンにより、認証で停止しない完全自動化が実現できる
その結果、スマートフォンからの実行でも完全自動化の恩恵が受けられます。
👉 OPSM パターンは、「認証で止まる自動化」を「最後まで動く自動化」に変えるための設計である











