Unlock with SSOは、IDプロバイダーでのサインインを入口にして1Passwordを開く仕組みです。ただし、IDプロバイダーが1Passwordのデータを復号するわけではありません。復号の鍵は各端末に残るデバイスキーで、IDプロバイダーはその鍵を使っていいかどうかを判定するだけです。この構造を押さえておくと、新しい端末で確認コードが要る理由や、紐づけた端末を全て失うと復旧が必要になる理由が説明できます。このページでは、サインインの流れ、デバイスキーの守られ方、紐づけたアプリとブラウザー、セッションの委任と再認証、オフラインでの挙動、設定上の制約を説明します。導入するかどうかの判断はUnlock with SSOを使うかどうかの判断で扱います。
サインインの流れ
1Passwordを開くと、アプリは既定のブラウザーにIDプロバイダーの認証が残っているかを確かめます。残っていなければ、IDプロバイダーのサインイン画面に移ります。
認証が通ると、1Passwordのサーバーがそれを確かめ、暗号化されたクレデンシャルの束をアプリに渡します。アプリは端末のデバイスキーでこの束を復号し、中から取り出したAccount Unlock Keyで手元のデータを開きます。サーバーとの認証は、アカウントパスワードの場合と同じSRPで行います。ここから先の動きは、アカウントパスワードで開いた場合と変わりません。
IDプロバイダーとのやり取りはOpenID Connect(OIDC)の認可コードフローで、PKCEを使います。1Password側は、IDプロバイダーから認証の可否を受け取るだけです。多要素認証や条件付きアクセスポリシーを満たしたかどうかの判断は、全てIDプロバイダーの設定で決まります。
デバイスキーと端末ごとの守られ方
デバイスキーは、端末ごとに作られる固有の鍵です。クレデンシャルの暗号化と復号、端末の識別、別の端末の紐づけに使います。端末から外に出ることはありません。
端末の種類によって、デバイスキーの保管のされ方が違います。
| 端末 | デバイスキーの保管 | オフラインでのロック解除 |
|---|---|---|
| iOS、macOS、Android | OSが守る鍵の保管領域に置く | 生体認証を許可していれば可能 |
| Windows、Linux | ディスク上に難読化して置く | 生体認証を許可していれば可能。ただしアプリを終了して起動し直すと、次はオンラインが必要 |
| ブラウザー | ディスク上に難読化して置く | できない |
Apple siliconとT2チップのどちらも積んでいないMacでは、生体認証を許可してもデバイスキーがハードウェアで守られません。ChromeOSで使う1Password.comとブラウザー拡張機能も、生体認証やハードウェアによる保護の対象外です。
紐づけたアプリとブラウザー
Unlock with SSOに切り替えたときに使ったアプリかブラウザーが、最初の紐づけたアプリになります。2台目以降は、既に紐づけてあるアプリで表示される確認コードを新しい端末に入力して追加します。
確認コードを入力すると、既存のアプリから新しいアプリへクレデンシャルの束が安全に渡されます。新しいアプリは、それを自分のデバイスキーで暗号化し直して保存します。サーバー側には、紐づけた端末ごとにAccount Unlock Keyの暗号化された写しが置かれます。紐づけはエンドツーエンドの暗号化を保つための手順で、多要素認証の代わりにも、端末管理の代わりにもなりません。
IDプロバイダーのクレデンシャルを盗んだ第三者が、確認コードをだまし取って自分の端末を紐づける手口が考えられます。社員には、確認コードを誰にも伝えないこと、自分の手元にある端末だけを紐づけることを周知してください。詳しい操作は端末の紐づけと新しい端末での利用で扱います。
セッションの委任と再認証トークン
認証を済ませた1Password.comとデスクトップアプリは、自分のセッションをブラウザー拡張機能や1Password CLIに委任できます。委任には短命のセッションキーを使い、委任先は改めてIDプロバイダーで認証する必要がありません。デスクトップアプリを入れておくと拡張機能のサインインが楽になるのは、この仕組みによります。
再認証トークンは、IDプロバイダーに戻らずに1Passwordへ再認証するための長命のトークンです。生体認証でのロック解除はこれを使います。トークンは使うたびに失効し、新しいものに置き換わります。IDプロバイダーでのサインインを改めて求めるまでの期間は管理者が決め、アカウント全体に一律で効きます。
つながらないときの挙動
Unlock with SSOでは、1Passwordのサーバー、IDプロバイダー、端末の通信のどれか1つが止まるとロックを解除できません。例外は生体認証です。
生体認証を許可しない場合
オフラインでは一切開けません。IDプロバイダーの障害中も同じです。これは1Passwordのアプリが課している制限です。
生体認証を許可した場合
以前にIDプロバイダーで認証した情報が残っていれば、管理者が決めた期間内は生体認証でオフラインでも開けます。期間を過ぎると、オンラインでのサインインが必要になります。
生体認証を使えない端末
組織として許可していても、端末が生体認証に対応していなければオフラインでは開けません。
設定上の制約
使えない人と機能はUnlock with SSOを使うかどうかの判断に一覧があります。ここでは、設定と運用で効いてくる制約を挙げます。
- 接続できるIDプロバイダーは1つだけです。プロトコルはOIDCだけで、SAMLでは接続できません
- 1Passwordのメールアドレスと、IDプロバイダーが返すメールアドレスが一致している必要があります
- 1PasswordはIDプロバイダーの
subクレームを保存し、次回以降の照合に使います。subは変わらない値である必要があります - SSOのグループから外れた人は、元のサインイン方法に自動では戻りません。復旧の手続きに入り、アカウントパスワードを作り直します
- IDプロバイダーのサインインで開けるのは、仕事用のアカウント1つだけです
【注意】 グループの付け替えで対象から外すと、その人は復旧の手続きを経ないと使えなくなります。異動や組織改編でSSOのグループを扱うときは、導入前の確認とロールアウト設計で扱う対象範囲の考え方に沿って、外す人が出ない形で設計してください。