やっと最終日だ...長かった...(´ρ`)
最終日の今日はわたしなりのマトメというか、今おもってることを記したいと思います。
OpenAMは誰でも、簡単に、すぐに触れる
具体的に言うと、20代半ばの情シスでも触れました。なんとかなりました。
なんで出来たのか?というところをまとめると以下のようになります。
- ドキュメントが手厚かった
- 設定のデフォルトがすぐ触れる状態となっている
- 試すだけならローカルのVMで動く(お金がかからない、上長の承認がいらない)
まず、「ドキュメントの手厚さ」です。すべて英語であるというところを除けば、非常に懇切丁寧に書かれていて、良いドキュメントだと思います。
ピンポイントで「〇〇がしたい~」というニーズにも応えられるようにもなっていますし、最初から順番に読んでいってもいいと思います。わたしは最初から順番に読んでいったタイプですが、実機を触りながらのハンズオン形式で取り組めたので、広く浅い知識習得ができたと思います。
続いて、「すぐ触れる状態となっている」です。これは、数回前のSecuring OpenAMでも少し触れましたが、初期セットアップが完了した時点で、ある程度のユースケースの実装ができるような状態となっています。また、OAuth 2.0やOpenID Connect、特定のSaaSとSAMLで接続するといったユースケースも、ウィザード形式でサクサクっと設定することができます。
最後が、「まずまず軽量である」です。今の時代、メモリーが4GB未満であるとか、VT対応していないCPUというのも少なくなってきた(のかなぁ?)と思います。そのぐらいのスペックのPCが手元にあれば、すぐに触ることができます。わたしの手元のPCもメモリーが4GBとなっていますが、OpenAMとRelying Party用のApacheのVMを稼働させるぐらいなら特に問題ありませんでした。ローカルでPoCをやって、環境を調達するということもやりやすいですね。
以上が、わたしが「OpenAMは誰でも、簡単に、すぐに触れる」と考えている理由となります。
関連技術の理解ができると前進する
じゃぁ、触るだけで十分な理解ができるのか?という疑問がでてくると思いますが、「理解はできないと思いますが、やりたいユースケースに依る」となります。
たとえば、Web Agentを使ったWeb Applicationの認証と認可、認証のモジュールとチェーンを使った多要素認証程度であれば、「機能を使う」という範疇で収まると思います。しかし、OAuth 2.0やOpenID Connect、SAMLなどの技術を使用する場合は、仕様の理解が少なからず必要だと思っています。理由としては、
- これらの技術はクロスドメイン環境下、インターネットフェイシング環境下で使用される前提なので、セキュリティを意識する必要がある
- 使うだけだと、なぜそれが安全なのかわからない
- それがわからないと実装できない、実装してもらえない、だれもついてこない
と考えています。ゆえに、Identity Federationをつかって、SSOやAPI認可、ソーシャルログインをやりたい場合は、みんなで勉強会しましょう。ひとりで学ぶのは辛いことです。(◞‸◟)
Advent Calendarの中でも、数回ほど取り上げましたが、勉強するのに役に立ったサイトを並べます。
あと、最近知ったのですが、OpenID Foundationが**「企業でOpenID Connectを使えるような支援をするドキュメント」**をリリースしています。ありがたや。
- https://www.openid.or.jp/news/eiwg_utilization_guideline_2.0.pdf
- https://www.openid.or.jp/news/eiwg_implementation_guideline_1.0.pdf
運用まで考えられると本番環境で使える
運用って一口でいうと、とても範囲が広いのですが、ここでお話ししておきたいわたしが一番実現したい運用は以下のものです。
- Identity Federation技術で連携できないアプリケーションはうちの会社では運用にのりませーん、残念でしたーm9(^Д^)プギャー
これってすごく大変なことだと思います。ただ、これができないことによって発生する運用やリスク、検討時の手間を考えると、わたしたちの会社のアプリケーションの選定基準に入れていいと思うのです。(わたしたちの会社はIdentity Federationできないアプリはゴミだと思ってます)
特に、IAMがありとあらゆるアプリケーションのアイデンティティ関連の実装を引き受けるというポリシーをもった基盤なのであれば、どうやってIAMにつなげよっか?なんて検討はすごく無駄な時間なんだと思います。そんなゴリ押しの技術に、お金を払うなんてもったいないと思いませんか?
だから、1日目でも述べた通り、**「なんでか知らないけど、フェデレーションできないすごく可哀想なレガシー(笑)なアプリ」**はさっさと無くなればいいと思うのです。絶対、既存のアプリケーションだろうがFederation対応した方が運用が簡単だし、お金もかかんないですよ。
〆
OpenAMはアイデンティティ技術を学ぶ良い教材であり、本日紹介した「試す -> 学ぶ -> 考える」のステップをおけば、大概の企業で採用できるものになると思います。わたしは、初秋ぐらいからOpenAMを触り始めたわけですが、自社の人間を騙す説得して、「うちで使ってみよう!」と思わせるぐらいのことはできました。ただし、本題の「むずかしいの?」という問いにたいする答えは、「ひとりでやると難しい」です。わたしはひとりで細々と勉強してたのですが、正直しんどかったです。
ただ、「OpenAM ≒ シングルサインオンするOSS」という印象が徐々に変わっていくのは楽しかったです。これから学ぶ人には、この意識が変わる瞬間を是非体験してほしいなと思いました。
なんだか語り足りないですが、クリスマスなので、このへんで失礼します。
「ひとり OpenAM Advent Calendar 2016」でございました。
ばい!