こんにちは、サイオステクノロジー 荒俣です。
先日、とあるアプリケーションの編集権限の整理及び、共有アカウントを整理していました。
編集権限の整理を終えた後に、共有アカウントのパスワード変更して、編集メンバーから抜けた方などを除いてパスワード通知をしたりと、かなり時間をとられてしまいました。
共有アカウントの利点とその問題点
本来、このブログのような複数人が編集するアプリケーションの管理アカウント運用で一番正しいと思われるのは、メンバーが変動する度にアプリケーション側でもその個人に対するアカウントの変更・追加を行うことです。
しかし、数人規模ならば対応しやすいですが、大人数かつ、大規模の組織ですと管理も難しく、そもそもアカウントを大量に作成できないアプリケーションだと対応できません。
この課題を解決するために代表アカウントを一つ作成し、アカウント情報をメンバーで共有するという方法があります。いわゆる、共有アカウントです。
これならば、メンバーが増えた場合はアカウント情報を共有するだけでアプリケーション側での変更は必要なく、手間が省けます。
しかし、セキュリティの観点から、こちらでもメンバーが抜ける度に今回、私が行ったようにアカウント情報(主にパスワード)の変更、通知が必要になってしまいます。
また、パスワードがメンバーの一人から流出した際には、個人アカウントならば影響は当人だけですが、共有アカウントの場合はパスワードを変更して、メンバー全員に再通知、、、と影響が大きくなります。(共有アカウントの権限は強くなりがちなので、不正に使われた際の影響も大きくなりやすいです。)
以前から、セキュリティを保ちながらアプリケーション側でのメンテナンスが少なくなる(と思っている)「共有アカウントを個人ごとに別々のパスワードで認証させる」方法を探していたところ、AzureADにおいて役立つ機能をみつけたのでご紹介したいと思います。
Azure AD グループでのアプリケーションアカウント共有
こちらの機能を使うと、AzureAD上のグループごとにアプリケーション上で使用するアカウントを設定できます。
アプリケーション側の認証をAzureADが代行してくれる際の認証成功時にユーザーが属しているグループに基づいた共有アカウント情報をアプリケーション側に渡すことで、共有アカウントの認証を個人アカウントの情報で行うことができます。(以下イメージになります。)
これによって
・メンバーが実際の管理アカウントのパスワードを知らずに済む
・メンバーの入れ替えがあってもアプリケーション側での変更がいらない
・アプリケーション側のアカウント数を抑えられる
・オンプレミスのADとAzureADが連携していれば、ローカルでの管理が可能
などのメリットがあります。
設定方法
今回の設定方法はすでにAzureADにアプリケーションのSSOが設定されていることが前提になります。
まず、Azure AD管理センターに管理者としてログインします。
グループの項目にて、ログインを許可するメンバーを入れたグループを作成します。
作成できましたら、エンタープライズアプリケーション内のSSOが設定されているアプリケーションを選択します。
そこから、「ユーザーとグループ」を選択し、「ユーザーの追加」を選択します。
ここで、グループの追加を行う、、、はずでした。見ていただいた通り、AzureADのプランによってはグループの割り当てはできません。
本来なら、以下のように、グループにアプリケーション側に渡す共有アカウント情報を割り当てて設定完了です。
最後に
今回は、Azure AD グループでのアプリケーションアカウント共有についてご紹介しました。
この機能を用いれば、アプリケーションへのアクセス管理が容易になります。
また、アカウントが一つしかない企業代表SNSアカウントなどに対してもSSOが設定できるようになります。
現在、この機能には追加で登録したアプリケーションアカウントのパスワードをAzureADが管理し、定期的にセキュリティを維持してくれる「Azure Active Directory パスワードのロールオーバー」がプレビュー機能として実装されています。こちらも併用すれば、セキュリティが高くなるので、活用してみてください。