お久しぶりです。tkです。
前回Accessの設定を実施したので、アプリへのシングルサインオンをやっていきたいと思います。
Workspace ONE AccessにはIDP(IDプロバイダー)の機能があり、シングルサインオンを提供することができます。
ユーザーにとってはスマホから各アプリへのログイン入力が不要になるので、ID・パスワード管理が容易になることがメリットですね!
今回は「Slack」を例にシングルサインオンの設定をしてみます!
【Slack : 検証用テナント申し込み】
Slackでシングルサインオンを利用するためには、ビジネスプラスかEnterprise Gridプランを選択する必要があります。
料金プラン | Slack
今回はビジネスプラスで検証しました。有料プランのトライアルは30日間で、利用開始日の指定が可能です。私の場合、半日ほどで有料プランへの切り替えをしてもらえました。
【Slack : ユーザー招待】
Slackのユーザーはメールアドレスに対して招待を送る形になります。
Workspace ONE Accessのユーザーと同じメールアドレスのユーザーを招待し、パスワードもAccessと同じものを設定します。
【Access : IdPメタデータと証明書の取得】
①Workspace ONE Accessテナントにログインする。
②「カタログ」-「Webアプリケーション」を開いた後、「設定」をクリックする。
③「設定」画面が表示される。「SAMLメタデータ」をクリックする。
④「SAMLメタデータのダウンロード」タブで、「IDプロバイダ(IdP)メタデータ」の右にある「URLをコピー」をクリックする。テキストファイルを開き、コピーしたURLを張り付けておく。
⑤「署名証明書」の「ダウンロード」をクリックし、IdPの証明書(cerファイル)を取得する。
【Slack : SSO設定】
①Slackにログインする。
②画面左上にあるワークスペース名をクリックする。
③メニューから「設定と管理」を選択し、その後「ワークスペースの設定」をクリックする。
④「認証」タブを選択する。⑤「SAML 認証」の横にある「設定する」をクリックする。パスワード入力を求められるのでパスワードを入力する。⑥「SAML SSO URL」の横に、SAML 2.0 Endpoint URL (HTTP) を入力する。 https://<Accessテナント名>/SAAS/API/1.0/POST/sso
⑦ID プロバイダ発行者の横に IDP のエンティティ ID を入力する。事前に取得したIdPメタデータのURLを入力する。
⑧IdP から取得した証明書全体をコピーして「公開証明書」フィールドにペーストする。
⑨「詳細設定」オプションの横にある「開く」をクリックする。サービスプロバイダ発行者 Slackワークスペース名(https://xxxx.slack.com)を入力する。
⑩SSO を有効にしたら、プロフィール情報 (メールや表示名など) の編集をメンバーに許可するかどうかを、「設定」で決める。本検証ではSSOじゃなくてもログインできるようにしておく。⑪「設定を保存する」をクリックする。保存後に再度設定ページを開くと以下の通り画面が変わっている。【Access:Slack Webアプリケーション用アクセスポリシー作成】
①Workspace ONE Accessテナントにログインする。
②「IDとアクセス管理」-「ポリシー」を開く。
③「ポリシーを追加」をクリックする。
⑤「構成」にて「ポリシールールを追加」をクリックし、ルールを新規で作成する。
⑥「ポリシー ルールを追加」画面が表示される。下記の設定を投入後、「保存」をクリックする。
ユーザーのネットワーク範囲が次の場合:ALL RANGES
ユーザーは次からコンテンツにアクセスしています:iOS
このアクションを実行します:以下を認証に使用
ユーザーは次を使用して認証することができます:モバイルSSO(iOS)
※今回の検証は、iPhoneからSSOアクセスを想定しているため、上記の設定を行う。AndroidやPCからアクセスする場合に回避できる設定も別途用意する。
⑦「構成」画面に戻るので、「次へ」をクリックする。
⑧「サマリ」が表示される。設定に問題がなければ、「保存」をクリックする。
⑨ポリシーリストに、ポリシーが追加されたことを確認する。
【Access:Slack Webアプリケーション登録】
①続いてWebアプリケーション設定を行う。Accessの「カタログ」-「Webアプリケーション」を開いた後、「新規」をクリックする。
②「新規SaaSアプリケーション」画面が表示される。「検索」欄にて「slack」を入力したら、下に表示されるSlackのアイコンを選択する。
③「名前」欄に任意の名前を入力後、「次へ」をクリックする。
④「構成」画面が表示される。下記の設定を投入後、「次へ」をクリックする。
アプリケーションパラメータ
値:Slackのワークスペース名
高度なプロパティ
アサーションに署名:はい
⑤「アクセスポリシー」画面が表示される。表示されたメニューより、作成されたポリシーを選択する。その後、「次へ」をクリックする。
⑥「サマリ」画面が表示される。「保存」をクリックして設定を反映させる。
⑦アプリケーションに、アプリが追加されたことを確認する。
⑧「IDとアクセス管理」-「ポリシー」を開く。
ポリシーリストが表示されたら、作成されたSlack用ポリシーを選択してから、「編集」をクリックする。
⑧「編集」をクリックする。
⑨「ポリシーの編集」-「定義」にて、「適用先」としてSlackを選択してから、「次へ」をクリックする。「サマリ」にて「保存」をクリックし設定を反映させる。
【UEM:iOS向けモバイルSSO用プロファイル配信】
①デバイス > プロファイルとリソース > プロファイル の順にクリックする。
②追加 > プロファイルを追加 の順にクリックする。
③プラットフォームを選択にて「iOS」をクリックする。
④コンテキストを選択にて「デバイス プロファイル」をクリックする。
⑤配布画面にて以下の設定を入力/選択する。
・名前:任意の名前(例:Mobile SSO iOS)
・削除を許可:なし
・スマート グループ:シングルサインオンに使用するユーザーが含まれるグループ
⑥「資格情報」タブをクリックする。
⑦「構成」をクリックする。
⑧「アップロード」をクリックする。
⑨「ファイルを選択」をクリックするとエクスプローラーが開くので、Accessにてダウンロードした「KDC-root-cert.cer」ファイルを選択し、「開く」をクリックする。
⑩「保存」をクリックする。
⑪「SCEP」タブをクリックする。
⑫「構成」をクリックする。
⑬資格情報ソースにて「AirWatch認証局」を選択する。
⑭「シングル サインオン」タブをクリックする。
⑮「構成」をクリックする。
⑯配布画面にて以下の設定を入力/選択し、「保存して公開」をクリックする。
・アカウント名:Kerberos
・Kerberos プリンシパル名:{EnrollmentUser}
・レルム:Accessのドメイン名 ※すべて大文字
・更新証明書:SCEP #1
・URL:AccessのURL
⑰「公開」をクリックする。
【UEM:アプリ配信】
① Workspace ONE UEMにログインする
② 「Slack」アプリを配信する。
アプリケーションの構成で以下の通り設定する。
構成キー:OrgDomain
値タイプ:文字列
構成値:Slackワークスペース名
※構成を設定することで、アプリログインの際のワークスペース名入力を省略することができるようになる
【動作確認】
■Hubアプリから起動(idp initiated) ①iPhoneからHubアプリを起動する ②アプリから作成したWEBアプリをタップする ③Workspace ONE Accessでの認証後、Slackワークスペースへのサイン新画面が表示される。「Slackを開く」をタップする ④サインインされた状態でSlackアプリが起動する。 ■Slackアプリから起動(sp initiated) ①iPhoneからHubアプリを起動する ②「SAMLでサインインする」をタップする ③Workspace ONE Access画面が表示されるためアカウント名を入力する(パスワードは入力不要) ④SSOされSlackアプリが起動する。 一回ログインすれば基本的にアプリ起動時の認証はありません。
【まとめ】
今回はWorkspace ONEを使うことで、スマホからアプリにシングルサインオンする手順を紹介しました。
またほかのアプリへのシングルサインオンについても紹介していきたいと思います。








