LoginSignup
1
0

More than 1 year has passed since last update.

初めての OpenAM

Last updated at Posted at 2022-01-28

背景

  • 業務で OpenID Connect や SAML を触る機会がありました
  • その文脈で OpenAM を触る必要があったため、忘れないようにメモります

OpenAM とは

Wiki を読むと、Sun Microsystems 社が OpenSSO として開発し、2016年まで ForgeRock 社にサポートされ、現在は OSS(Open Identity Platform Community サポート)に至る。(※ wiki)

OpenAM は複数機能を有しています。

  1. Authentication
  2. Authorization
  3. Adaptive risk authentication
  4. Federation
  5. Single sign-on(SSO)
  6. High availability

ざっと読んでイメージを掴みたいと思います。

Authentication

  • 複数の認証方式をサポート。JAVA でカスタム認証モジュールを作れる。

Authorization

  • XACML (eXtensible Access Control Mark-Up Language)に基づいてポリシーを作れる。XACML って...聞いた事ないです...

Adaptive risk authentication

  • 認証対象のユーザをスコア算出(ex:IPアドレス範囲、アイドル時間、新規デバイス)し、スコアに基づいて追加認証を要求する。

Federation

  • Federation はセキュアに identity 情報を共有する。要は SMAL2.0 や OpenID Connect をサポートし、認証ゲートウェイ(multi protcol-hub)になります。

Single sign-on(SSO)

  • Federatin とほぼ同義ですね。OpenAM は agent(アプリ側にインスト)があるようで、agent インスト不可環境でも色々できます。

High availability

  • session failover 機能を有します。いわゆる NW 機器の Active-Standby 構成でしょうか。

Developer access

  • client application programming interfaces を Java,C APIs,a RESTful API 提供しているようです。

とりあえず触ってみたい

gitに諸々上がっていますので、docker run する方式が一番簡単そうです。git の README にも、既存環境に変更を加えることなく、SAML2.0, OICD, Cross Domain Single sign on(CDSSO)を提供すると言っています。OSS の認証ゲートウェイですね。

Quick Start Guide

Quick Start Guideを読みながら環境を用意します。

検証環境
  • CnetOS: CentOS Linux release 7.8.2003 (Core)
  • Docker: Docker version 20.10.12, build e91ed57
手順

1.Docker 環境を用意します。

2.Docker を動作させている host 側の /etc/hosts ファイルを修正します。

127.0.0.1   localhost openam.example.com www.example.com

3.docker run をコマンド実行します。

#docker run -h openam.example.com -p 8080:8080 --name openam                   openidentityplatform/openam

// -h : ホスト名を指定
// -p : ポートを指定(ホスト側:コンテナ側)
// -name : コンテナ名を指定

Unable to find image 'openidentityplatform/openam:latest' locally
latest: Pulling from openidentityplatform/openam
627b765e08d1: Pull complete
c040670e5e55: Pull complete
073a180f4992: Pull complete
bf76209566d0: Pull complete
f10db7ba7580: Pull complete
5e5dee180760: Pull complete
c26c02f721c2: Pull complete
d24d42fda432: Pull complete
20abf5c2533f: Pull complete
d16e82e0b4a0: Pull complete
4f4fb700ef54: Pull complete
8ce75fc249df: Pull complete
Digest: sha256:7fda33515006c61fdf71011cf65d40abee462686515f96461a7fbedd41bafd9b
Status: Downloaded newer image for openidentityplatform/openam:latest

image をダウンロードしてコンテナを起動します。結構 info が出力されますね。

4.docker ps コマンドを実行します。

# docker ps
CONTAINER ID   IMAGE                             COMMAND                  CREATED         STATUS         PORTS                                       NAMES
59383bab0fd2   openidentityplatform/openam       "/usr/local/tomcat/b…"   4 minutes ago   Up 4 minutes   0.0.0.0:8080->8080/tcp, :::8080->8080/tcp   openam

5.正常に起動したようなのでホスト側から http://openam.example.com:8080/openam にアクセスします。
image.png

6."Create Default Configuration" を選択して進めます。規約に agree して、先に進むとパスワード設定が必要になります。スーパーユーザーと agent 側で必要になるようです。忘れずどこかにメモっておきます。
image.png

7.設定が完了すると、ログイン画面が表示されます。amAdmin と先ほどのパスワードを入力してログインします。
image.png

ここまでで環境準備は終わりました。まずは簡単そうな SSO あたりから初めて、最終的に OCID を動かしたいと思います。

8.デフォルトの Top Level Realm を選択し、Authorization -> Policy Sets -> New Policy Set の順番でクリックします。
image.png

マニュアルを読むと、Policy Sets はポリシーのテンプレートとして使われるようです。

image.png
・Id は必須項目
・Nmae は option です
・Resoure Types は URL を指定

9.オブジェクト作成完了後、実際の Policy を追加する必要があるので、Add a Policy していきます。
image.png

10.マニュアルに沿って進めます。
image.png
image.png

11.新規作成 Policy に許可するメソッドを指定するようです。GET と POST を追加します。
image.png

12.Subject Condition(要はアクセス許可対象?)を設定します。先ほど作成した Authenticated Users を指定します。
image.png

13.Applications -> Web Agents を選択し、画面中段の Agent を新規作成する New...ボタンを選択します。
image.png

image.png

14.Cookie 設定を追加するべき Global Services は何も表示されない。とりあえずスキップします。
image.png

15.任意の作業フォルダに apache 用の Dockerfile を作成します。パスワードのみ OpenAM セットアップ時に指定した agent のパスワードを指定します。
/home/user/openam-quickstart/apache/

16.Dockerfile 保存パスは適宜変更して docker build コマンドを実行します。
docker build --network=host -t apache_agent -f /home/user/openam-quickstart/apache/Dockerfile /home/user/openam-quickstart/apache/

ちょろちょろエラー出ます...時間無いので続きは今度!!

17.リダイレクトを確認して終了ですね。

あとがき

OpenAM 勉強本はほぼ洋書のみなんですね...Qiita 記事と Google さんでどうにもならなかったら手を出すしかないんですね...

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0