NIST SP 800-63 の Digital Identity Model について読んでみる, Federation 編
はじめに
みなさまお疲れ様です. nbifrye です.
過去の記事で, NIST SP 800-63 の中から, 単一サービスの中で完結する範囲においての Digital Identity Model について読みました.
今回はその続きとして, Federation が関与する範囲を読んでいこうと思います.
この記事では, NIST SP 800-63 からの引用を多用し, 和訳はできるだけニュアンスを損なわないよう直訳にしながら読み込んでいくことで, SP 800-63 に出てくる内容をそのまま読めるようになることを目標として情報を整理しています. 本記事中の引用は全て NIST SP 800-63, Revision 4 の Final 版 を元にしています. また, 引用に併記している和訳は, 全てこの記事の著者によるものです.
Federated Digital Identity Model With General-Purpose IdP
まずは 2.5.2. Federated Digital Identity Model With General-Purpose IdP を参照し, Federation を用いる場合の流れについて見ていきます. Fig. 4. Federated digital identity model example では Identity Proofing および Enrollment に関する部分 (Step 1 ~ 2) と Authentication に関する部分 (Step 3 ~ 6) がまとめて描かれていますが, 分けた方がわかりやすい気がするので, 分けて書いてみます.
まずは Identity Proofing および Enrollment に関する部分です.
次に, Authentication に関する部分です.
どちらも, 過去の記事で見た Fig. 1. Sample identity proofing and enrollment digital identity model などと比べると簡素に描かれています. 詳細な説明は本文中にあるようですが, まずはここまでで登場したキーワードをしっかり押さえておこうかと思います.
キーワードを正確に理解する
ここまでで登場した用語について, 2.1. Overview および B. Glossary を参照し, 正確な理解に努めます. 原文は全て英語なので, 可能な範囲で日本語への翻訳を試みます.
過去の記事で扱ったものについては省略します.
Federation
まずは "Federation" という言葉そのものについて確認します.
federation
A process that allows for the conveyance of identity and authentication information across a set of networked systems.
訳: Networked System 間で, Identity と Authentication に関する情報の伝達を可能にするプロセス.
また, 2.4. Federation and Assertions の本文中での説明も参照しておきます.
The term federation can be applied to several different approaches that involve the sharing of information between different trust domains, and may differ based on the kind of information that is being shared between the domains. These guidelines address the federation processes that allow for the conveyance of identity and authentication information based on trust agreements across a set of networked systems through federation assertions.
訳: Federation という用語は, 様々な Trust Domain 間で情報を共有することを含む, いくつかの異なるアプローチに適用でき, Domain 間で共有される情報の種類に基づいて異なる場合がある. これらのガイドライン (SP 800-63) では, Federation Assertion を介して, 一連の Networked System の間で Trust Agreement に基づいて Identity と Authentication に関する情報の伝達を可能にする Federation プロセスを指す.
加えて, Federation に関連するキーワードも確認しておきます.
federation protocol
A technical protocol that is used in a federation transaction between networked systems.
訳: Networked System の間での Federation Transaction に使用される技術的なプロトコル.
federation transaction
A specific instance of processing an authentication using a federation process for a specific subscriber by conveying an assertion from an IdP to an RP.
訳: IdP から RP に Assertion を伝達することにより, Federation プロセスを用いて, 特定の Subscriber に関する Authentication を処理する特定の Instance.
"Networked" という一般単語が強調表示されていて気になるので, 関連しそうな "Network" の説明を確認しておきます.
network
An open communications medium, typically the internet, used to transport messages between the claimant and other parties. Unless otherwise stated, networks are assumed to be open and subject to active (e.g., impersonation, session hijacking) and passive (e.g., eavesdropping) attacks at any point between the parties (e.g., claimant, verifier, CSP, RP).
訳: オープンな通信媒体 (通常はインターネット) であり, Claimant と他の Party の間でメッセージを転送するために使われる. 特に断りがない限り, ネットワークはオープンであると見なされ, Party (例: Claimant, Verifier, CSP, RP) 間のどの地点においても, 能動的 (なりすまし, セッションハイジャック) および受動的 (例: 盗聴) な攻撃を受ける可能性がある.
IdP
続いて IdP についてです.
Identity provider (IdP)
When using federation, the IdP manages the subscriber's primary authenticators and issues assertions derived from the subscriber account.
訳: Federation を利用する場合, IdP は Subscriber の Primary Authenticator を管理し, Subscriber Account から Derived Assertion を発行する.
identity provider (IdP)
The party in a federation transaction that creates an assertion for the subscriber and transmits the assertion to the RP.
訳: Federation Transaction において, Subscriber のために Assertion を作成し, その Assertion を RP に送信する Party.
general-purpose IdP
An IdP that is housed and executed separately from a subscriber's device (e.g., a remote service). Often, a general-purpose IdP will be capable of representing multiple subscribers.
訳: Subscriber のデバイスとは別に Housed (ホスト) または実行される IdP (例: リモートサービス). 多くの場合, general-purpose IdP は複数の Subscriber を Represent することができる.
また, こちらは過去の記事でも言及していますが, 2.1. Overview には以下のような注意書きがあります.
While presented as separate roles, the functions of the CSP, verifier, and IdP may be performed by a single entity or distributed across multiple entities, depending on the implementation (see Sec. 2.5).
訳: CSP, Verifier, IdP の機能は別々の役割として表されているが, 実装によって, これらの機能は単一の Entity によって Perform (実行) される場合も, 複数の Entity に分散される場合もある.
あらためて Federated Digital Identity Model With General-Purpose IdP を読む
ここまで見てきた, 各キーワードの正確な説明を踏まえた上で, 再度 Federated Digital Identity Model With General-Purpose IdP について見ていきます.
Identity Proofing および Enrollment に関する部分
まずは Identity Proofing および Enrollment に関する部分です.
Subject と CSP の間のやり取りは, 過去の記事で扱った, Federation が関与しない, 単一サービスの中で完結する範囲においての Digital Identity Model と同様に見えるので, 深掘りは省略します.
問題は, CSP と IdP (Subscriber Accounts) の間でのやり取りが発生する部分です. 2.5.2. Federated Digital Identity Model With General-Purpose IdP の本文では, この箇所について以下のように説明しています.
The IdP is provisioned either directly by the CSP or indirectly through access to attributes of the subscriber account.
訳: IdP は, CSP によって直接的に, または Subscriber Account の Attribute へのアクセスを通じて間接的にプロビジョニングされる.
ここでの直接的/間接的というのは, CSP と IdP が単一の Entity によって実行されるか, 複数の Entity に分散されるかによってプロビジョニングの方法が変わってくるよね, ということでしょうか.
Authentication に関する部分
次に, Authentication に関する部分です. こちらも図を再掲します.
本文の内容を踏まえつつ, 流れを確認します. 以下の箇条書きの番号は, 図中 ③ などの採番とは無関係です.
- RP が Claimant に Authentication を要求する
- 同時に, IdP に対し, アクセスおよび Authorization の決定に必要な Attribute を要求する
- これにより IdP への Federated Authentication のリクエストがトリガーされる
- Claimant が, Authentication プロセスを通じて, IdP の Verifier 機能に対して Authenticator の所有および管理を証明する
- つまり, IdP が Claimant を Authenticate する
- Claimant の Authenticator の紐付けは, Claim された Subscriber Account との紐付けにより Verify される
- オプションで, Subscriber の追加の Attribute が取得される
- RP と IdP が Federation Protocol を通じて通信する
- IdP は, Federation Protocol を通じて, RP に Assertion と必要な追加の Attribute を提供する
- RP は, RP のオンラインサービスへのアクセスのために, Assertion を Verify して Subscriber の Identity と Attribute の信頼性を確立する
- RP は Subscriber の Federated Identity (実名または仮名), IAL, AAL, FAL およびその他の要素を使用して Authorization を決定する
- Subscriber と RP の間で Authenticated Session が確立される
RP が Claimant の Authentication を必要とするとき, RP 自身が Authenticate するのではなく, IdP に Authenticate してもらった結果 (+ 追加の必要な Attribute) を利用する, ということですね. ここで, RP は Claimant を直接的には Authenticate しないわけですが, この一連のプロセスを "RP が Claimant を Authenticate する" と呼んでいいものなのでしょうか. 直接的には Authenticate しない (RP 自身が Authenticator の所有および管理を直接的に確認するわけではない) ですが, IdP を通じて間接的には確認しているはずで, "RP が Claimant を (IdP を通じて間接的に) Authenticate する" と呼んでもいいような気もしますし, 間接的に Authenticate するって何?正確には Authenticate してないんだよね?という気もします. わかりません.
なお, IAL, AAL, FAL に関しては, ここではまだ触れないことにします.
Federation のメリットやユースケースなど
最後に, 2.4. Federation and Assertions を読み, Federation のメリットやユースケースなどを確認します.
まず, Federation を使用することによる利点について, 以下のように記載されています.
- ユーザー体験の向上
- 例: Subject は一度 Identity Proofing をするだけで, 複数の RP で Subscriber Account を使用できる
- Subscriber と組織の両方のコストを削減する
- Subscriber 側の例: Authenticator の削減
- 組織側の例: IT インフラの削減, アーキテクチャの合理化
- 各アプリケーションに Account Value をコピーする代わりに, 仮名の Identifier と, Derived Attribute Value を使用することで, RP に公開されるデータを最小限にする
- 複雑なアイデンティティ管理プロセスにフォーカスするリソースが少なくなり, ミッションの成功をサポートする
ここで出てくる "Derived Attribute Value" については, 以下のように説明されています.
derived attribute value
A statement that asserts a limited identity attribute of a subscriber without containing the attribute value from which it is derived, independent of format. For example, instead of requesting the attribute "birthday," a derived value could be "older than 18." Instead of requesting the attribute for "physical address," a derived value could be "currently residing in this district." Previous versions of these guidelines referred to this construct as an "attribute reference."
訳: フォーマットを問わず, Subscriber の限定的な Identity Attribute を Assert する Statement であり, その元となる Attribute Value を含まないもの. 例えば, "生年月日" という Attribute を要求する代わりに "18 歳以上" という Derived Value が考えられます. また, "現住所" という Attribute を要求する代わりに "この区に居住している" という Derived Value が考えられます. これらのガイドライン (SP 800-63) の以前のバージョンでは "Attribute Reference" と呼ばれていました.
本文中にて "Federation プロセスは, RP と IdP が異なるセキュリティドメインにある場合に一般に推奨されるアプローチだが, 同一のセキュリティドメインにある場合においても, Account 管理一元化や技術統合などの利点のために Federation を適用できる" と記載されていますが, なるほど確かにそのように思えます. ここで挙げられている利点は, RP と IdP が同一のセキュリティドメインにある場合においても同じことが言えそうです. (3 つ目はちょっとよくわからないですが)
なお, ここで出てくる "セキュリティドメイン" については, 以下のように説明されています.
security domain
A set of systems under common administrative and access control.
訳: 共通の管理およびアクセス制御下にある一連のシステム.
2.4. Federation and Assertions では, Federation のメリットのほかに, Federation が効果的となるシナリオについても述べられています. 具体的には, 以下のとおりです.
- 潜在的なユーザーが, 必要な AAL 以上の Authenticator をすでに所持している
- ユーザーコミュニティ全てに対応するためには, 複数の種類の Authenticator が必要になる
- 組織が Subscriber Account の管理 (例: Account Recovery, Authenticator の発行, ヘルプデスク) をサポートするために必要なインフラを持たない
- RP の実装を変更することなく, Primary Authenticator を時間をかけて追加またはアップグレードできるようにする要望がある
- Federation Protocol はネットワークベースであり, 多様な言語やプラットフォームでの実装が可能なため, 様々な環境がサポートされる
- 潜在的なユーザーが複数のコミュニティから来ており, それぞれが独自の既存の Identity インフラを持っている
- 組織が, アカウントの Revocation や新しい Authenticator の紐付けを含む, アカウントライフサイクルを一元管理する能力を必要としている
加えて, 組織は以下のいずれかに該当する場合, Federated Identity Attribute を受け入れることを検討すべきだと言及されています.
- Pseudonymity (仮名が利用できること) がサービスを利用するステークホルダーにとって必要不可欠である, 実現可能である, 重要である
- サービスへのアクセスには, 定義済みの Attribute のリストが必要である
- サービスへのアクセスには, 少なくとも一つの Derived Attribute Value が必要である
- 組織が, 必要な Attribute の Authoritative Source または Issuing Source でない
- Attribute は, 使用する際に一時的に必要とされ (例: アクセスの決定を行うため), 組織はデータを保持する必要がない
ここで出てくる "Authoritative Source" と "Issuing Source" については, 以下のように説明されています.
authoritative source
An entity that has access to or verified copies of accurate information from an issuing source such that a CSP has high confidence that the source can confirm the validity of the identity attributes or evidence supplied by an applicant during identity proofing. An issuing source may also be an authoritative source. Often, authoritative sources are determined by a policy decision of the agency or CSP before they can be used in the identity proofing validation phase.
訳: Issuing Source からの Accurate (正確) な情報へのアクセス権, もしくはその Verified なコピーを有する Entity で, CSP が高い信頼を持つことができる, Identity Proofing の際に Applicant から提供された Identity Attribute または Evidence の Validity を確認できる情報源. Issuing Source は Authoritative Source である場合もある. 通常, Authoritative Source は, CSP または Agency の Policy Decision により, Identity Proofing の Validation フェーズで使用される前に決定される.
issuing source
An authority responsible for the generation of data, digital evidence (i.e., assertions), or physical documents that can be used as identity evidence.
訳: データ, Digital Evidence (つまり Assertion) または Identity Evidence として使用可能な物理的な文書を生成する責任を有する Authority.
総じて, Federation にはこんな良いところがあるよ, こういうときに使えるよ...という整理がなされていましたが, 逆に Federation を利用するデメリットや注意点についても気になるところです.
おわりに
NIST SP 800-63 の中から, Federation が関与する範囲においての Digital Identity Model について読んでみました. 関与する Entity が増えると, それに応じて複雑になっていきますね.
次は Digital Identity Risk Management (DIRM) あたりを読んでみたいです. SP 800-63 Revision 4 Final の信頼できる和訳が欲しい... 英語できない民には辛いです.
Discussion