基本情報技術者 2019年 春期 午後 問01
クラウドサービスの利用者認証に関する次の記述を読んで、設問1,2に答えよ。
A社では現在、Webベースの業務システムが複数稼働しており、それぞれが稼働するサーバ(以下、業務システムサーバという)を社内LANに設置している。A社のネットワーク構成を、図1に示す。

利用者は、業務システムを、社内LANに設置されたクライアントPCのWebブラウザから利用する。社外から社内LANへのリモートアクセスは禁止されている。業務システムの利用者認証は、A社認証サーバでの利用者IDとパスワード(以下、この二つを併せて利用者認証情報という)の検証によって行っており、シングルサインオンを実現している。
社内LANからインターネットを介した社外への通信は、クライアントPCからプロキシサーバを経由した、HTTP over TLS(以下、HTTPSという)による通信だけが、ファイアウォールによって許可されている。社外からインターネットを介した社内LANへの通信は、全てファイアウォールによって禁止されている。ファイアウォールの設定は、A社のセキュリティポリシに基づき変更しないものとする。
〔クラウドサービスの利用者認証〕
このたびA社は、業務システムの一つである販売管理システムを、B社がインターネットを介して提供する販売管理サービス(以下、B社クラウドサービスという)に移行することにした。利用者認証に関しては、A社認証サーバとB社クラウドサービスを連携し、次の(1)〜(3)を実現することにした。
(1) B社クラウドサービスをシングルサインオンの対象とする。
(2) A社の利用者認証は、B社クラウドサービスについても、A社認証サーバで行う。
(3) 利用者が本人であることを確認するためにA社認証サーバで用いるaは、B社クラウドサービスには送信しない。
(1)〜(3)を実現するために、A社は、利用者認証を仲介するIDプロバイダ(以下、IdPという)を社内LANに設置することにした。IdPは、認証結果、認証有効期限及び利用者ID(以下、これら三つを併せて認証済情報という)にディジタル署名を付加してから、Webブラウザを介して、B社クラウドサービスに送信する。B社クラウドサービスは、付加されているディジタル署名を使って、受信した認証済情報にbがないことを検証する。このために、IdPのcをB社クラウドサービスに登録しておく。
WebブラウザとB社クラウドサービスとの間、及びWebブラウザとIdPとの間の通信には、HTTPSを用いる。IdPとA社認証サーバとの間の通信にはLDAPを用いる。
〔B社クラウドサービスが利用可能になるまでの処理の手順〕
A社の利用者が、利用者認証されていない状態で、B社クラウドサービスを利用しようとした場合に、利用可能になるまでの処理の手順を次の①〜⑩に示す。
① 利用者は、WebブラウザからB社クラウドサービスにアクセスの要求を送信する。
② B社クラウドサービスは、アクセスの要求をIdPに転送する指示(以下、転送指示という)を、Webブラウザに返信する。
③ Webブラウザは、②の転送指示に従い、IdPにアクセスの要求を送信する。
④ IdPは、利用者認証情報の入力画面をWebブラウザに返信する。
⑤ 利用者は、Webブラウザで利用者認証情報を入力する。Webブラウザは、入力された利用者認証情報をIdPに送信する。
⑥ IdPは、利用者認証情報をA社認証サーバに送信する。
⑦ A社認証サーバは、利用者認証情報を検証し、認証結果をIdPに返信する。
⑧ IdPは、認証結果が成功の場合に、認証済情報を発行し、当該情報のB社クラウドサービスへの転送指示とともに、Webブラウザに返信する。
⑨ Webブラウザは、⑧の転送指示に従い、認証済情報をB社クラウドサービスに送信する。
⑩ B社クラウドサービスは、認証済情報に基づいて、B社クラウドサービスの利用を許可し、操作画面をWebブラウザに返信する。
B社クラウドサービスが利用可能になるまでの処理の流れを、図2に示す。図2中の①〜⑩は、処理の手順の①〜⑩と対応している。
設問1:
問題文を見る 本文中のに入れる適切な答えを、解答群の中から選べ。
a〜cに関する解答群
ア:PKI
イ:改ざん
ウ:公開鍵
エ:サービス妨害
オ:生体情報
カ:パスワード
キ:秘密鍵
ク:利用者ID
ケ:漏えい
模範解答
a:カ、b:イ、c:ウ
解説
解答の導き方
この設問では、利用者のパスワードをB社クラウドサービスに渡さずに、A社認証サーバで本人確認を行い、その結果をB社クラウドサービスに伝える方法を考えます。
-
aは、本人確認に使う情報です。
本文では、利用者が入力した利用者認証情報をIdP(Identity Provider:利用者認証を仲介し、認証結果をサービスに伝える役割)がA社認証サーバに送り、A社認証サーバが検証するとあります。利用者IDは「誰のアカウントか」を識別する情報で、パスワードは「本人かどうか」を確認する情報です。したがって、B社クラウドサービスに送信しない本人確認用の情報はパスワードです。手順⑧でIdPが発行する認証済情報には「認証結果、認証有効期限及び利用者ID」が含まれます。利用者IDはB社クラウドサービスに届くため、aを利用者IDと考えるのは適切ではありません。 -
bは、認証済情報に加えられていないことを確認する対象です。
IdPは認証済情報にディジタル署名を付け、B社クラウドサービスはその署名を使って情報を検証します。署名によって確かめるのは、受け取った情報が送信後に書き換えられていないかどうかです。情報が書き換えられることを改ざんといいます。したがって、bには「改ざん」が入ります。 -
cは、B社クラウドサービスが署名を検証するために登録する鍵です。
ディジタル署名は、署名を作る秘密鍵と、署名を検証する公開鍵を使う仕組みです。IdPが秘密鍵で署名を作り、B社クラウドサービスは登録された公開鍵で検証します。よって、B社クラウドサービスに登録するIdPの鍵は公開鍵です。
誤りやすいポイント
-
利用者IDとパスワードを混同しないようにします。
利用者IDは利用者を識別する情報です。本文では利用者IDが認証済情報に含まれるので、送信しない情報はパスワードだと判断できます。 -
改ざんと漏えいは別の問題です。
改ざんは情報の内容を書き換えることです。漏えいは、情報が許可されていない相手に知られることです。ディジタル署名で確認するのは、主に情報が改ざんされていないことです。 -
秘密鍵と公開鍵の役割を逆にしないようにします。
IdPが署名を作るときに使うのが秘密鍵で、B社クラウドサービスが署名を検証するときに使うのが公開鍵です。検証する側に登録する鍵は公開鍵です。
FAQ
Q: B社クラウドサービスは、利用者のパスワードを使って本人確認するのですか?
A: いいえ。パスワードはA社認証サーバで検証します。B社クラウドサービスは、IdPが送った認証結果などを署名とともに受け取り、署名を検証します。
A: いいえ。パスワードはA社認証サーバで検証します。B社クラウドサービスは、IdPが送った認証結果などを署名とともに受け取り、署名を検証します。
Q: 公開鍵で認証済情報を暗号化しているのですか?
A: この問題での公開鍵の役割は、暗号化ではなくディジタル署名の検証です。署名の検証によって、認証済情報が改ざんされていないことなどを確認します。
A: この問題での公開鍵の役割は、暗号化ではなくディジタル署名の検証です。署名の検証によって、認証済情報が改ざんされていないことなどを確認します。
Q: シングルサインオンとは何ですか?
A: Single Sign-Onのことで、一度利用者認証を行うと、複数のシステムを利用できる仕組みです。この問題では、A社認証サーバでの認証をB社クラウドサービスでも利用します。
A: Single Sign-Onのことで、一度利用者認証を行うと、複数のシステムを利用できる仕組みです。この問題では、A社認証サーバでの認証をB社クラウドサービスでも利用します。
関連キーワード: ディジタル署名、公開鍵、秘密鍵、利用者認証、シングルサインオン
設問2:
問題文を見る 次の記述中のに入れる適切な答えを、解答群の中から選べ。
B社クラウドサービスでは、接続元のIPアドレスをA社のものに限定する機能は提供されていない。しかし、他の業務システムと同様に、B社クラウドサービスを、社内LANからの利用に限定できる。
この理由は、dことが必要であるが、IdPを社内LANに設置するので、社外からB社クラウドサービスを利用しようとしても、図2中のeの送信で失敗し、利用者認証されないからである。
dに関する解答群
ア:B社クラウドサービスが、IdPと直接通信する
イ:B社クラウドサービスが、利用者認証情報を検証し、Webブラウザに返信する
ウ:IdPが、利用者に代わって、利用者認証情報をB社クラウドサービスに送信する
エ:Webブラウザが、IdPと通信する
eに関する解答群
ア:①
イ:③
ウ:⑤
エ:⑥
オ:⑨
模範解答
d:エ、e:イ
解説
解答の導き方
まず、B社クラウドサービスはインターネット上にあります。接続元のIPアドレスをA社のものに限定する機能もありません。そのため、社外の利用者でも、最初にB社クラウドサービスへアクセスすること自体はできます。
ただし、アクセスできることと、利用者認証を終えてサービスを使えることは別です。問題文では、認証を仲介するIdP(Identity Provider:利用者認証を仲介し、認証結果を提供する役割)が社内LANに設置されています。
処理の手順を見ると、利用者のWebブラウザは、まず①でB社クラウドサービスにアクセスします。次に、B社クラウドサービスからの転送指示を受け、③でIdPにアクセスの要求を送信します。つまり、利用者認証を進めるには、WebブラウザがIdPと通信する必要があります。これがdに入る内容なので、選択肢はエです。
次に、社外から利用しようとした場合に失敗する処理を確認します。IdPは社内LANにあります。また、問題文には「社外からインターネットを介した社内LANへの通信は、全てファイアウォールによって禁止」とあります。ファイアウォールは、社内外の通信を許可したり禁止したりする装置です。
社外のWebブラウザからB社クラウドサービスへの①の送信はできます。しかし、認証のために社内LANのIdPへアクセスする③の送信は、ファイアウォールに遮られます。③の後に行われる認証情報の入力や、A社認証サーバでの確認にも進めません。したがって、社外からは利用者認証されず、B社クラウドサービスを利用できません。eに入るのは③なので、選択肢はイです。
誤りやすいポイント
- B社クラウドサービスに接続できることと、サービスを利用できることを混同しないようにします。社外から①でアクセスできても、認証が完了しなければ利用できません。
- ⑤は利用者認証情報をIdPに送る処理ですが、その前にIdPへアクセスする③が必要です。社外からの通信は③で止まるため、最初に失敗するのは⑤ではありません。
- B社クラウドサービスがIdPと直接通信するのではありません。図2の流れでは、WebブラウザがIdPと通信し、認証済情報をB社クラウドサービスへ送っています。
FAQ
Q: 社外から①でB社クラウドサービスにアクセスできるのに、なぜ利用できないのですか?
A: ①はサービスへのアクセス要求にすぎません。その後、社内LANにあるIdPで利用者認証を行う必要があります。社外からIdPへ通信できないため、認証を完了できません。
A: ①はサービスへのアクセス要求にすぎません。その後、社内LANにあるIdPで利用者認証を行う必要があります。社外からIdPへ通信できないため、認証を完了できません。
Q: ⑤ではなく③が失敗箇所になるのはなぜですか?
A: ⑤で利用者認証情報を送るには、先に③でIdPへアクセスし、④で入力画面を受け取る必要があるためです。③に失敗すると、⑤には進めません。
A: ⑤で利用者認証情報を送るには、先に③でIdPへアクセスし、④で入力画面を受け取る必要があるためです。③に失敗すると、⑤には進めません。
Q: B社クラウドサービスには、何が送られるのですか?
A: IdPが発行した認証結果などの認証済情報が、Webブラウザを介して送られます。利用者認証情報をB社クラウドサービスへ直接送る流れではありません。
A: IdPが発行した認証結果などの認証済情報が、Webブラウザを介して送られます。利用者認証情報をB社クラウドサービスへ直接送る流れではありません。
関連キーワード: シングルサインオン、IDプロバイダ、利用者認証、ファイアウォール、ディジタル署名




