見出し画像

認証基盤の理想と現実

少し前より会社が変わっているのですが認証周りが汚ねぇな、と思ってなんとかしたいと思い。あるべき(ToBe)から現状(AsIs)の課題を洗い出そうとこんなものを描いてみました。

相変わらずQiitaでやるべきかnoteでやるべきか迷ってますが、技術的なことの解説はしていないので、ぎりぎり自分判定でnoteにしました。
(そのうち移すかも)

想定対象読者

情シスの人。認証周りの人。

認証基盤の理想

理想図

この手の図はいくらでもネットに転がっていますが、痒い所に手が届くよう具体的かつ汎用的な図になるよう心掛けました。また図は私が書いていますが、素材はアレですので、断りなく変更される可能性がございますこと予めご承知おきください。

認証基盤の理想図(みそ作成)

基本的な考え方

認証基盤でやることは「認証認可」なのですが、これを書くにあたり認証部分をさらに2つに分け、以下の要素で考えることにします。

・エンティティ認証:FIDO2.0
 利用者を認証すること(広義には人、モノ=エンティティを認証する)
・アイデンティティ連携:OpenID Connect1.0、SAML2.0
 認証する
 (実態としてはFIDO2.0などで認証した結果を、サービスに渡す)
・アクセス認可:Oauth2.0
 認可する(=正当な利用者であることを確認する)

ポイントとしては認証部分をエンティティ認証とアイデンティティ連携としている部分です。WebアプリケーションをSAMLなどでシングルサインオンすることをよく認証といいますが、これは厳密にはエンティティ認証で認証した結果をサービスに渡していることになります。

なお・部分については崎村夏彦さんの「デジタルアイデンティティ 経営者が知らないサイバービジネスの核心」より引用したものになります。

理想図について解説

大きくは社内ネットワークからアクセスする人とインターネットからアクセスする人に分けています。①②がそれぞれの人が端末ログオンし、Webアプリケーションを利用するときの認証になります。また認証するための大前提として必要となる認証情報のデータの流れについては③となります。

①イントラネットからのアクセスを想定した認証
【エンティティ認証】
図のsigninというところです。ドメイン参加端末にID/PWでログオンします。端末にログオンするところです。
【アイデンティティ連携】
図のSSO(RP)というところです。社内の統合認証基盤でシングルサインオンします。社内なのでRP(リバースプロキシ)としました。アプリケーション認証認可部分です。認証認可は統合認証基盤で行います。複雑な認可はキャパシティへの影響が懸念されるため、アプリケーション側に委ねます。

②インターネットからのアクセスを想定した認証 
【エンティティ認証】
今度はExtranetの図のsigninというところです。端末ログオンはセキュリティと利便性を兼ねてWindows Hello(FIDO2.0)します。
【アイデンティティ連携】
図のSSO(SAML)というところです。アプリケーション認証認可部分です。AzureActiveDirectoryでSAMLでシングルサインオンします。ここはOpenID Connectという選択肢がありますが、エンタープライズ利用のため、対応SaaS数などの理由からSAMLが現実的な選択になるものと考えます。

③認証情報のデータの流れ
認証情報というのはIDをキーとしてユーザ情報です。IDMを中心とします。データの源泉は人事システム(HRDataSource)などになりIDMに連携します。認可情報の管理(組織改編や人事異動に伴う改廃など)はIDMで行われます。

組織によって様々ではあるかと思いますが、ここでは
IDMがOn-premises ActiveDirectoryへの反映を行うこととします。
On-premises ActiveDirectoryはAzureAD connectによりAzureActiveDirectoryとの同期を行います。

On-premises and legacy appsにはIDMからFile連携します。イントラネットでlegacyなappsへの連携になりますので、ftpかhulftで。このあたりはもうこうなってるよね、という感じです。

SaaS AppsにはAzureActiveDirectoryのプロビジョニングサービスを利用して連携します。さらっと書きましたが、ここが一番理想と現実の乖離が激しいところの気もします。

現実と向き合う(どう使うか)

理想図、と書いたもののこれがベストプラクティスかといわれると企業によって構成や成り立ちも違いますので、違うということもあるかと思います。

一方多くの企業で抱える実態としてこれまでの認証基盤とゼロトラストなどと言われて作られた基盤との役割や機能分担が曖昧だったり、活用しきれていないものと想定しています。

そういった現状からまずこれを基として、あるべき姿を描き、そこからの改善につなげることの一端として活用していただければ幸いです。

ありがとうナス!