突然「シングルサインオン(SSO)を検討して」と言われたら-第2回
2021-03-09 - 星野 康
1. はじめに
=== この記事は、以前Qiitaに挙げていたものの再掲です ===
1.1 前回までのあらすじ
本記事シリーズでは、SE様のようにシングルサインオン(SSO)を導入なさる側の皆様を意識し、 SSOのベース知識を得るための情報源となるべく執筆していきたいと思います。 もし記事をお読みくださったら、ベンダ候補として弊社も加えていただけますと嬉しいです。
- 第1回
- 本シングルサインオン解説シリーズの位置づけ
- なぜシングルサインオン化すべきか
1.2 今回のお題
今回は、大まかな要件定義について書いていきたいと思います。
2. シングルサインオン化のための大まかな要件定義
詳細な要件定義については、SSOサーバのベンダ(弊社のような!)を呼んでからの実施でも良いと思います。 しかしその前に、大まかな要件について予め確認できていると、以後の専門ベンダとの会話もスムーズになります。 (要件に合わないベンダを呼んでしまってお互い不幸な時間を過ごしてしまう、、なんていうリスクも減らせます。)
SSOの要件を検討するにあたっては、複数の要素が絡み合って、纏めることが難しい場合もあるかもしれません。 が、ここではひとまず大まかに要件を把握すると割り切り、「ユーザ」「認証方法」「アプリとの認証連携方法」という3つの視点に大別してざっくり検討する、という想定で書いてみます。
[1] ユーザ
「ユーザ」という視点の要件定義項目として、以下のようなものが考えられます。
# | 項目 | 説明 | 備考 |
---|---|---|---|
1-1 | ユーザの種類 | 「社内ユーザ/社外ユーザ」「ユーザの所属グループ」というようなユーザの種類のことです。 例えば、既存アプリ群でID体系が異なっている場合は、名寄せ後の制御などを検討する必要があります。また、ユーザの種類に応じて利用できるアプリが異なる場合は、認可制御を検討する必要があります。 | どのような制御が可能かはSSOサーバ製品毎に異なってきますので、まずは存在するユーザ種類を把握した上でSSOサーバのベンダと会話するのが良いです。 |
1-2 | アクティブユーザの人数 | 最大でどの程度の人数のユーザがログインする可能性があるのか、という点です。 | SSOサーバのメモリ容量といったサイジングに影響します。 |
1-3 | スループット | 最大でどの程度のスループットを処理できる必要があるのか、という点です。 | サーバのCPUやメモリ容量といったサイジングに影響します。 |
[2] 認証方法
「認証方法」という視点の要件定義項目として、以下のようなものが考えられます。
# | 項目 | 説明 |
---|---|---|
2-1 | 認証要素 | どのような要素を用いて認証を行うのか、という点です。 例えば、ID/PW認証、Windows認証(Desktop SSO)、二段階認証(ワンタイムパスワード、免許証やマイナンバーカード、FIDO2/WebAuthn、etc…)、独自の認証要素の開発…etc…、というようなものがあります。 |
2-2 | 他のSSOサーバとの連携 | 他のSSOサーバとの連携が必要であるか否か、という点です。 例えば、他の特定SSOサーバで認証済みであったら今回用意するSSO系でも認証済みとみなす、というようなことです。 |
2-3 | 認証要素の使い分け | ユーザやアプリケーションの種類によって認証方法を使い分けるか、という点です。 |
SSOサーバ製品によってどのような認証方法を採れるかは異なってきます。 このため、ある程度要件をまとめた上で、SSOサーバの選定やSSOサーバベンダと相談する必要があります。
[3] アプリとの認証連携方法
「アプリとの認証連携方法」という視点の要件定義項目として、以下のようなものが考えられます。
# | 項目 | 説明 |
---|---|---|
3-1 | 利用する標準仕様 | アプリとSSOサーバとの認証連携方法については、SAMLやOpenID Connectといった標準仕様があります。このため、各アプリが標準仕様に対応済みであるか調査しておきます。 |
3-2 | 標準仕様未対応のアプリへの対応 | アプリが標準仕様に対応していない場合、現状の認証の姿やコード改修の可否など確認した上で、どのような方法で認証連携するかを検討します。 |
SSOサーバ製品によってどのような認証方法を採れるかは異なってきます。 このため、ある程度要件をまとめた上で、SSOサーバの選定やSSOサーバベンダと相談する必要があります。
[Others] その他
その他の項目として、セッション維持時間、サーバ多重化の有無…etc…などありますが、 詳細はSSOサーバのベンダと会話する段階で良いかと思います。
3. おわりに
今回は、以下のことを記しました。
- シングルサインオン化のための大まかな要件定義
「SSOサーバのベンダと会話してみたものの、大枠の要件から合致せずに無為な時間を過ごしてしまった」というような不幸を起こさないよう、まずは大枠の要件定義をしておくことをお勧めします。
次回は、SSOの仕組みの大枠について書いていこうと思います。 (変更の可能性もあります。)