こんにちは、臼田です。
みなさん、SSOしていますか?(挨拶
今回はLastPassをOktaと連携してSSOしてみます。
LastPassとは
LastPassはパスワード管理ツールです。個人でフリーで利用することも出来ますが、エンタープライズではSSOできたりIdPとアカウント連携できたり複数人でログイン情報を共有したり、利用状況をレポーティングしたりと機能が充実しています。
レポーティングはこんな感じ。
エンタープライズでは管理画面があってユーザの管理とか、ユーザごとセキュアなパスワード利用が出来ているか確認できます。ガバナンスを利かせるのにも役に立つので企業全体でセキュリティの向上が見込めます。
本当は全部のサービスでSSOできればいいんですがね。まだパスワードが必要なところも多いので、そういったところを利用する場合にはパスワード管理ツールは必須でしょう。
パスワードの生成や入力はブラウザエクステンションから簡単にできます。慣れるとパスワードを手動で入力するとか考えられないですね。
前提条件
LastPassをOktaと連携させるための条件は下記のとおりです。
- アクティブなOktaプロビジョニングサブスクリプション
- 有効な試用版または有料のLastPass EnterpriseまたはLastPass Identityアカウント
- アクティブなLastPass Enterprise管理者(試用アカウントまたは有料アカウントを有効にするときに必要)
今回はEnterpriseで設定していきます。
連携してみた
LastPassとOktaを連携する手順はこちら(PDF)にあります。ただし、一部UIが古い(2020/01/21時点)ため実際の画面と異なる場所がありますので、この記事でそこも補完していきます。
連携と一言で書いていますが、内部的にはSCIMのプロビジョニング(ユーザ情報の同期)とSSOの2つの設定を同時に行います。
LastPassやOktaの初期設定などは省略します。
まずLastPassの管理画面から Settings -> Directory integrations
へ移動し、Okta
タブを開きます。 表示されているURLを控えます。Create Provisioning Token
を押してトークンを発行します。この際、画面遷移するとトークンが表示できなくなるため、必ずこの瞬間に控えておきます。(画像はReset…になっていますが一度発行したあとはこうなります)
続いてOktaの管理画面に移動して2つのAppとAuthorization Serverを作成します。
Applications
からAdd Application
を選択して検索欄でlastpass
と入力します。候補がいくつか出てきますがLastPass Sync
を選択します。何も書いていないLastPass
を選ばないように注意。
作成画面ではデフォルト値のままNext -> Done
で作成します。
作成したら、LastPass SyncのProvisioning
の設定をします。Provisioning
タブへ移動してConfigure API Integration
ボタンを押してEnable API integration
にチェックを入れ、先ほど控えたURLとトークンを入力してSave
します。
連携する内容として3つのEnableをチェックしてSave
します。
次にAuthorization Serverの作成を行います。OktaのSecurity -> API
のAuthorization Servers
タブからAdd Authorization Server
を押します。下記のように入力してSave
します。
- Name: LastPass
- Audience: all
- Description: lp – all
作成したあとSettings
タブで表示されているMetadata URI
を控えておきます。これは最後に利用します。
作成したAuthorization ServerにClaimを追加します。ここではLastPass側で発行したKeyが必要になります。この部分が参照しているドキュメントと違う部分があるので要注意です。
まず、利用するKeyの名前がK1 key
とドキュメントにかかれていますが、KeyはRANDOM COMPANY-WIDE KEY
というものに変わっています。そして、このKeyが書かれているページはSettings -> Directory integrations
からSettings -> Federated login
に変更されています。これを踏まえてやっていきます。
LastPassの管理画面に戻りSettings -> Federated login
を開きます。Okta
タブを選択してページ下部のRANDOM COMPANY-WIDE KEY
をコピーします。なお、このKeyはリロードするたびに変わるのですが、コピーしたものが表示されなくなっても使えるので気にしなくて大丈夫です。
Okta管理画面で先程作成したAuthorization Serverの設定でClaims
タブを開いてAdd Claim
を押します。NameにLastPassK1
(ここは古い名称のまま)、Valueに先程コピーしたRANDOM COMPANY-WIDE KEY
をシングルクォーテーションで囲んで入力してCreate
します。ちなみに、ここのシングルクォーテーションをドキュメントのPDFからコピーすると実際にはシングルクォーテーションじゃない引用符になるのでダメ、絶対(1敗)。キーボードから入力しましょう。
引き続きAuthorization Serverの設定でAccess Policies
タブからAdd Policy
します。NameにLastPassと入れてDescriptionは適当に作成します。
詳細画面でAdd Rule
を押してGrant type is
でClient Credentials, Authorization Code, Resource Owner Password
の3つの項目のチェックを外してCreate Rule
します。Impricit
だけが残ります。
Authorization Serverの全体ページに戻り、Trusted Options
タブでCORSの設定をします。Add Origin
ボタンを押してNameをLastPass
、URLにhttps://lastpass.com
を入力し、TypeはすべてチェックしてSave
します。
これでAuthorization Serverの設定は完了です。
続いてOktaを使ったログインのためにもう1つOktaのApplicationを作成します。
Oktaの管理画面でApplication
からAdd Application
します。検索せずにCreate New App
から作成します。PlatformでSingle Page App (SPA)
を選択してCreate
します。
作成画面では下記のよう入力してSave
します。
- Application name: LastPass Okta Login
- Login redirect URIs:
https://accounts.lastpass.com/federated/oidcredirect.html
https://lastpass.com/passwordreset.php
(Add URIを押して入力)
作成できたらページ下部にあるClient Credentials
のClient ID
を控えます。
最後にLastPass側でOktaの設定を入れます。
LastPassの管理画面でSettings -> Federated Login
へ行きOkta
タブを開きます。CONFIGURE OKTAにてOpenID URL
とClient ID
を入力します。OpenID URL
ではAuthorization Serverを作成した際に控えたMetadata URI
を編集して利用します。URI末尾がoauth-authorization-server
となっているところをopenid-configuration
に変更して使います。変更したURLをブラウザで開いて、きちんと表示されれば正しいことが確認できます。Client ID
はLastPass Okta Login
を作成した際に控えたものを入力します。チェックボックスではUse Okta Authorization Server to store company-wide key
とEnabled
にチェックを入れてSAVE SETTING
を押します。
設定は以上で完了です。
ユーザ追加
実際にユーザを追加してみます。手順は前述の設定手順の最後と、こちらのドキュメントを利用します。
管理者がOktaでLastPass Sync
とLastPass Okta Login
のApplicationそれぞれでユーザをアサインします。アサイン時のパラメータはすべてデフォルトのままで問題ありません。
アサインしたら、あとはユーザが作業を行います。
ユーザはまずLastPass account created
というメールが届いているのでこれを開きます。中に記述されているActivation code
を控えてActivate LastPass
のリンクを開きます。
開いたらActivation code
を入力してContinue
します。
完了すると、エクステンションを追加するように支持があるのでリンクをクリックして追加します。
追加できたら、ブラウザのエクステンションボタンをクリックしてログインします。パスワード欄がありますが、メールアドレスを入力してフォーカスを外すと、パスワード欄が消えます。ログインを押します。
しばらくするとエクステンションの色が灰色から赤に変わって利用できるようになります。Open My Vault
を押せばパスワードを管理するユーザ画面が開きます。
あとは自由に利用できます。
注意事項
デメリットではありませんが気をつける部分がいくつかあります。
- SSO連携している場合にはLastPassのWebUIを直接利用は出来ません
- 代わりにエクステンションからWebUIが開けます
- Adminユーザも同様にエクステンションから管理画面を開けます
- 既存ユーザをSSOにする場合には、Oktaでアサイン後のメールから開いたあとにユーザがパスワードを入力する画面が出てきます
- 1つはFederateではないAdminユーザが必要です
まとめ
LastPassをOktaと連携してSSOする方法をまとめました。少しでも不要なパスワードを減らすためにSSOして、安全に管理するためにパスワード管理ツールを利用することでセキュアになっていくと思います。
ぜひ使ってみてください。