# (OpenID Connect Core 1.0) 1. Introduction
###### tags: `oauth2/oidc`
担当::@hijiki51:
[toc]
## 1. Introduction
OpenID Connect CoreはOAuth2.0 の上にシンプルな認証レイヤーを付与したものである。
これによって、以下のことが可能になる。
- Authorizaton Server での認証結果を利用してEnd-Userのアイデンティティの検証
- End-Userの必要最低限のプロフィールをRESTfulな形で公開
OpenID Connect はOAuth 2.0 の認可プロセスを拡張して、認証目的で利用できるようにする。本拡張を利用する場合、Client は scope に`openid`を指定してAuthorization Requestを送信する。
認証結果は、ID Token と呼ばれる JWT として返却される。
## 1.2 Terminology
重要なものだけかいつまんで紹介する。
今後の輪読会資料においては、必要に応じて、()内で定義された略称をいる。
- OpenID Connect(OIDC) 
    - この仕様によって定義されたプロトコルのこと
- OpenID Provider(OP)
    - OpenID Connect を実装した OAuth2.0 Authorization Server
    - End-Userの認証を行うことができる。
- Relying Party(RP)
    - OpenID Connect を利用する OAuth2.0 Client
    - 本仕様では、すでにRPはOPに必要な情報を登録しているものとする
    - また、OPの必要な情報も取得しているものとする
        - 通常 OpenID Discovery で取得可能
- Authentication Context
    - RPが認証を行う前に要求できる情報
    - 認証方式やLoAのようなものがそうとするが、これに限られない
- Authentication Contest Class
    - 特定のコンテキストで等価と考えることのできる認証方式の集合
- Authentication Context Class Reference
    - Authentication Context Class の識別子
    - `urn:oasis:names:tc:SAML:2.0:ac:classes:Password`など
        - SAMLがベースになってるっぽいけどよくわからん
- Entity
    - あるコンテキストの中で識別される、ほかと独立した存在。
    - End-Userが該当する
- Pairwise Pseudonymous Identifier (PPID)
    - 特定のコンテキストで一意になる識別子
    - OIDCの文脈では、 RP内でのみ一意になる識別子を指す
        - ほかのRPではこのIDをEntityと紐づけることができない
- Personally Identifiable Information (PII)
    - 特定の人物に直接・間接的に紐づき、実際の人物の識別に用いることができる情報
    - 個人情報
- Subject Identifier
    - 単純に Subject といわれることもある
    - Issuer にとって特定のコンテキスト、もしくは全体で一意な End-User 識別子
    - 詳細は 8.  Subject Identifier Types で
- Validation
    - あるものごとの正当性や健全性を確立するためのプロセス
    - ものごとが「正常な」形式・フォーマットであることが保証される
        - その値自身が「正しい」かどうかを検証するものではない
- Verification
    - その値自身が「正しい」かどうかを検証する
- AuthN
    - **Auth**e**N**tication
- AuthZ
    - **Auth**ori**Z**ation