Skip to content

Instantly share code, notes, and snippets.

@nicdk
Last active November 21, 2018 10:15
Show Gist options
  • Save nicdk/2553e8e6240ecc4af2363add1f7c1ac8 to your computer and use it in GitHub Desktop.
Save nicdk/2553e8e6240ecc4af2363add1f7c1ac8 to your computer and use it in GitHub Desktop.

OpenID Connect 調査メモ

  • 初稿: 2018/11/20
  • 更新: 2018/11/21

概略

認証基盤技術の導入向け調査・検証のメモ。

  • 調査対象: 現在主流の認証基盤の OpenID Connect と、これまでに認証基盤に対応してきた OpenAM, KeyCloak, Amazon Cognito などのソリューション。
  • 調査手段: インターネットで収集
  • 検証手段: 各技術の情報源サイトのチュートリアル類

目的は、外部へのオープンAPI提供に向けての要素技術の現状把握とする。

調査

OpenID Connect

  • 本家: https://openid.net/developers/specs/

  • OAuth2.0 を現実的に利用するために組みあげられたソリューション。

  • RFC では元の OAuth2(RFC6749, RFC6750)に追加で、RFC 7521, RFC 7523 などに対応する

  • OpenID Connect の用途でもっとも厳格なものの一つに金融API向けがある。Financial APIs Working Group が標準規格を策定中。

  • FAPIソリューション例としてはオージス総研の ThemiStruct Identity Platform。

(参照)

OpenAM

  • 本家: https://github.com/OpenIdentityPlatform/OpenAM

  • 認証基盤として長期間利用されてきたものの一つ。

  • OpenAMは 元々 Sun の Access Manager。これが OpenSSO になり、その後 Oracle 社が商用提供のみに変更した。そのときにコミュニティ開発を始めたのlが OpenAM。

  • OpenAM 開発者が集まって ForgeRock 社となる

  • OpenAM はオープンソースで長年提供していたが、昨年 ForgeRock 社が最新版を商用ライセンス提供に切り替えた。製品名はForge Rock AM。

  • これまでの OpenAM は OpenAM Community が継続中

KeyCloak

  • 本家: https://www.keycloak.org/index.html

  • KeyCloak は、OpenAM 以外の認証基盤として RedHat により既存のオープンソースを統合して開発が始まった。

  • KeyCloak は OpenAM(Forge Rock AM)に比べてまだ機能は少ないが、必須連携(LDAPなど)を減らした構成できるため、利用が広まっている

  • 商用提供として、RedHat が RedHat SingleSignOn という製品名でサポート提供。

(参考)

Amazon Cognito

  • 本家: https://aws.amazon.com/cognito/

  • Amazon Web Service の各機能をモバイルユーザ向けに提供するため、外部のID認証(amazon, facebook, google)とAWSの認証サービスを組み合わせる形から始まった

  • cognito はユニークユーザの特定、AWSクレデンシャルの取得、データの同期サービスを提供する。

  • 独自のインフラでOpenAM / KeyCloak 運用と比べると、始めからAWS Cloud上で提供しているのでスケール可能が特徴

  • モバイル以外(PC など)で作成したユーザと登録済みモバイルユーザを結びつける、独自のディレクトリサービス(User Pool)が追加されている。

  • 現在は、ALB(Application Load Balancer)に cognito と OpenID Connect を連携させて Web サービスに認証を追加する構成も可能になった。

(参考)

日本での情報

  • OpenAM, KeyCloak ともに野村総合研究所のオープンソース部隊 NRI OpenStandia が翻訳と情報提供を積極的に行なっている

アーキテクト

  • 認証基盤の構成については、プロキシ型とエージェント型がある。本体に手を加えないならプロキシ型が楽

検証

KeyCloak

  • 実装 KeyCloak の実行環境:
    • プロキシ型の構成を作成
  • 実装 OpenID Connect による認証:
    • SpringBoot によるサイトのページアクセス認証を作成

(参考)

[EOF]

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment