- 初稿: 2018/11/20
- 更新: 2018/11/21
認証基盤技術の導入向け調査・検証のメモ。
- 調査対象: 現在主流の認証基盤の OpenID Connect と、これまでに認証基盤に対応してきた OpenAM, KeyCloak, Amazon Cognito などのソリューション。
- 調査手段: インターネットで収集
- 検証手段: 各技術の情報源サイトのチュートリアル類
目的は、外部へのオープンAPI提供に向けての要素技術の現状把握とする。
-
OAuth2.0 を現実的に利用するために組みあげられたソリューション。
-
RFC では元の OAuth2(RFC6749, RFC6750)に追加で、RFC 7521, RFC 7523 などに対応する
-
OpenID Connect の用途でもっとも厳格なものの一つに金融API向けがある。Financial APIs Working Group が標準規格を策定中。
-
FAPIソリューション例としてはオージス総研の ThemiStruct Identity Platform。
(参照)
-
認証基盤として長期間利用されてきたものの一つ。
-
OpenAMは 元々 Sun の Access Manager。これが OpenSSO になり、その後 Oracle 社が商用提供のみに変更した。そのときにコミュニティ開発を始めたのlが OpenAM。
-
OpenAM 開発者が集まって ForgeRock 社となる
-
OpenAM はオープンソースで長年提供していたが、昨年 ForgeRock 社が最新版を商用ライセンス提供に切り替えた。製品名はForge Rock AM。
-
これまでの OpenAM は OpenAM Community が継続中
-
KeyCloak は、OpenAM 以外の認証基盤として RedHat により既存のオープンソースを統合して開発が始まった。
-
KeyCloak は OpenAM(Forge Rock AM)に比べてまだ機能は少ないが、必須連携(LDAPなど)を減らした構成できるため、利用が広まっている
-
商用提供として、RedHat が RedHat SingleSignOn という製品名でサポート提供。
(参考)
-
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 サービスに認証を追加する構成も可能になった。
(参考)
- https://aws.typepad.com/aws_japan/2014/07/aws-mobile-services.html
- https://aws.amazon.com/blogs/aws/new-user-pools-for-amazon-cognito/
- https://aws.amazon.com/about-aws/whats-new/2018/07/elastic-load-balancing-announces-support-for-redirects-and-fixed-responses-for-application-load-balancer/
- OpenAM, KeyCloak ともに野村総合研究所のオープンソース部隊 NRI OpenStandia が翻訳と情報提供を積極的に行なっている
- 認証基盤の構成については、プロキシ型とエージェント型がある。本体に手を加えないならプロキシ型が楽
- 実装 KeyCloak の実行環境:
- プロキシ型の構成を作成
- 実装 OpenID Connect による認証:
- SpringBoot によるサイトのページアクセス認証を作成
(参考)
- https://www.keycloak.org/docs/latest/getting_started/index.html
- https://github.com/keycloak/keycloak-demo
[EOF]