こんにちは、認証技術黒帯 倉林 雅(@kura_lab)です。
みなさんが普段開発しているインターネットサービスには、物理層からアプリケーション層まで各レイヤーでいろいろな標準技術が使われています。
今回は私が携わっているID連携や認証領域の標準技術を例に、標準技術に携わる理由と標準化活動のやり方をお話します。
標準技術と普及・啓発活動について
標準仕様を活用する理由
標準技術と聞くと難しいと思われるかもしれませんが、ID連携や認証領域の技術はアプリケーション層の技術で構成されており、一般的なプログラミング言語で実装できるものが多くあります。OpenID ConnectやOAuth 2.0といった技術もそれにあたります。
Yahoo! JAPAN IDのログインやID連携のシステムを開発するにあたり、まずはじめに要件や関連した仕様が存在していないか、活用できる仕様はないか標準技術の仕様書を確認をしています。それは標準仕様を活用することで以下のメリットが得られるからです。
- 品質・安全性の担保
- 検討された機能要件やセキュリティ要件が盛り込まれている
- 相互接続性・互換性の確保
- 仕様が統一されるため相互接続が容易
- 生産コスト・導入コスト削減
- 0から設計する必要がなく工数が省ける
- 標準仕様に対応したOSSなどが利用できる
私がヤフーに入社して、ID連携や認証のシステムの開発に携わって9年がたとうとしています。いまではヤフーの黒帯として認証技術の普及・啓発活動を行っていますが、学生時代に一般的なプログラミングは学んでいたものの、セキュリティや認証・認可はほとんど学んでいませんでした。入社してはじめてID連携の設計や開発を担当しましたが、標準技術の仕様書があったため容易に機能拡張ができ、安全なシステムが提供できたと感じています。
また、認証やID連携はいろいろな端末や社外のサービスで利用されます。標準技術を用いることで相互接続性や互換性が確保できます。
さらに十分に検討された仕様のため0から設計する必要がなく、OSSも利用できるため工数の削減につながります。
一方で標準技術を用いることで、その仕様に依存してしまうデメリットもありますが、それ以上に得られるメリットは多くあると思います。
標準化活動に携わる理由
標準化活動に携わる理由はいくつかありますが、個人的には以下の理由があると考えています。
- インターネットの課題解決につながる
- 変化し続けるインターネットの課題を最新技術で解決できる
- 自らの学びになる
- 新たな機能要件を知ることができる
- セキュリティ要件や英語が勉強ができる
- サービスへの利活用の基点となる
- インターネットで起こっているトレンドを知ることができる
- 仕様のユースケースから自社サービスでの利活用を検討できる
ヤフーに入社してインターネットサービスに関わることになってから、常により大きな課題解決がしたいと考えてきました。時代とともに変化する課題に対して各標準化団体で最新の技術を用いて解決策が検討されています。その技術を用いることで、課題の解決につながり、またその標準技術を導入することで得た気づきを標準化団体にフィードバックすることで企業を越えた新たな課題の解決につながります。
策定されている標準仕様や策定済みの標準仕様から機能要件やセキュリティ要件 、技術に関する自身の学びにもなります。仕様書の多くは英語で書かれているため、英語も学びながら技術を知ることもできます。
インターネット業界の課題解決のために策定されているため、トレンドも知ることができ自社サービスでの利活用も検討ができます。
普及・啓発活動をする理由
標準化活動は仕様を策定する他に標準技術の普及・啓発活動があります。以下は個人的に普及・啓発活動をする理由です。
- 多くの課題解決とサービス改善
- 多くの企業やサービスの抱える課題をより多く解決できる
- よりよいサービスをユーザーに届け、ビジネスの成功につなげる
- 知見の共有とフィードバックの収集
- 情報共有することでフィードバックや気づきが得られる
- 恩返しとして次の世代につなげる
- 関係企業やエンジニアを増やしコミュニティーを活発にする
- 部署や会社を越えて標準化活動をする後継者をつくりたい
- 自身の成長や自社の改善につながったコミュニティーに恩返し
自社サービスの課題を解決するだけでなく、その標準技術が普及することで他の企業やサービスの課題も解決でき、よりよいインターネットサービスをユーザーに届け、ビジネスの成功につなげることができると考えています。
標準技術の知見をより多くのエンジニアと共有することでその技術に対しての気づきになりフィードバックもでき、よりよい標準技術になる、あるいは新たな標準技術を生む機会につながります。
その他にも標準技術に携わる企業やエンジニアを増やしコミュニティーを活発にするとともに、一緒に活動をする仲間や後継者を作りたいという思いもあります。
また、標準技術から学び自身の成長や自社サービスの改善につながったため、コミュニティーへの恩返しという理由もあります。
標準化活動への参加方法
RFC・I-Dを探して読む
標準技術を活用する理由や普及・啓発活動に携わる理由を知っていただけたでしょうか。続いて認証・認可領域における標準化活動への参加方法についてご紹介します。
標準技術を策定している標準化団体には国際標準や地域標準、国家標準、団体標準など階層ごとに分類されます。認証・認可の技術はIETF、OpenID Foundation、W3C、FIDOアライアンスなどで策定されています。まずはIETFの仕様書を読むことからはじめてみましょう。
- IETFとは
- The Internet Engineering Task Force
- 個人で会合やメーリングリストの議論に参加可能なインターネット技術の標準化を推進する任意団体
- RFCとは
- Request For Comment(コメント求む)
- IETFによって作成されるインターネット関連技術の仕様やポリシーを記述したもの
- I-Dとは
- Internet-Draft
- RFCになる前の下書き、草稿
- IETFのWorking Group内でレビューが繰り返されRFCになる
企業や担当者が会員になる標準化団体もありますが、IETFは個人で参加できるインターネット技術の標準化を行う団体です。策定中の仕様書をInternet-Draftと呼び、策定が完了するとRFCと呼ばれる仕様書です。仕様としては策定が完了しているが、仕様にバグなどがある場合にはいつでも「コメントを求む」という意味でRequest For Commentという名称が付けられています。
IETFのRFCは全てDatatrackerに集約、管理されています。
IETFは仕様の領域ごとにAreaが設けられ、さらにAREAの中でWorking Groupが分かれておりInternet-Draftの策定が行われます。認可の標準技術であるOAuth 2.0はSecurity Areaのoauth Working Groupで策定が行われました。以下はoauth Working Groupと策定されたOAuth 2.0のRFCです。
RFCは英語で書かれかつ専門用語が多く登場するため読みにくいと感じるかもしれませんが、定型文や助動詞など文章の構成や表現方法が決まっているため、読み方さえ覚えてしまえば他のRFCも要点を押さえることはできると思います。
詳しいRFCの読み方については以下の資料が参考になります。
国内コミュニティーに参加する
RFC、I-Dの読み方の次は国内コミュニティーに参加してみましょう。認証・認可関連の情報共有や議論がなされているコミュニティーにはISOC-JP、OpenID ファウンデーション・ジャパン、idcon、iddanceなどがあります。最新のI-Dの策定状況やRFCの活用情報を得るための国内コミュニティーの参加方法をご紹介します。
ISOC-JP(Internet Society Japan Chapter)はIETFの上部組織となるISOC(Internet Society)の日本支部であり日本国内におけるインターネットの普及、啓発などを行っています。
IETFで実施された国際会議の内容を国内メンバーに向けて報告するIETF報告会などを実施しています。IETF報告会では日本の参加者から策定中の標準仕様の要点をキャッチアップできるため、国際会議に参加する前にまずはISOC-JPの報告会から参加してみるとよいと思います。
OpenID ファウンデーション・ジャパンはOpenID Connectなどの標準技術を策定している米国OpenID Foundationの公認団体です。
会員企業向けのBizdayや一般参加も可能なTechNightを開催しています。これらのイベントではOpenID Foundationで策定している標準技術だけでなく、IETF、W3Cなど関連の標準化団体で策定されている技術についても情報共有がされます。
idconではOpenIDやOAuthなどの認証・認可技術に加え、Identity技術やそれを取り巻くセキュリティ、プライバシーについて議論している勉強会です。今年はブロックチェーン技術を応用したID管理の仕組みであるDID(Decentralized Identifier)やSign in with Appleなど最新の標準仕様や実装について議論がされていました。
iddanceはidconの初心者向けの勉強会です。OpenIDやOAuthといった技術を入門者向けに行われているため、これから認証・認可技術を学ぶひとにはお薦めの勉強会です。
海外・国内カンファレンスに参加する
国内コミュニティーへの参加の次は海外や国内のカンファレンスに参加してみましょう。誰でも参加できる(一部応募・抽選あり)直近開催予定のカンファレンスをご紹介します。
IETFは年3回ほど国際会議を開催しています。次回の会議は2020年3月にバンクーバーで開催されます。参加費は必要ですが、会員費用は不要で個人参加が可能なカンファレンスです。Working Groupで策定中のInternet-Draftの策定状況を傍聴するだけでなく、策定中の技術に対して質問を投げかけたり、意見を述べることができます。
OpenID Summit Tokyo 2020はOpenID ファウンデーション・ジャパンが主催するカンファレンスで4年ぶりに開催されます。2020年1月に渋谷で開催され、抽選にはなりますが参加費は無料です。IDに精通した海外のゲストをはじめ最新のIDに関連する標準技術の話を聞くことができます。Yahoo! JAPANの取り組みについて発表するプログラムもあるためぜひご参加ください。
まとめ
標準技術を活用することで得られるメリットや、RFCの読み方、国内コミュニティーや国内外のカンファレンスへの参加方法などの標準化活動のやり方についてご紹介しました。
- 標準技術と普及・啓発活動について
- 品質・セキュリティの担保やコスト削減が期待できる
- 最新技術の学びやサービス改善につながる
- 標準化活動への参加方法(OpenID・OAuth領域)
- DatatrackerでRFCを探して読める
- ISOC-JPやOpenIDなどの国内コミュニティーがある
- IETFやOpenID Summitが近日開催される
今回ご紹介した内容は「ヤフー名古屋 Tech Meetup #4 - OSSコミッターNight」でも発表しています。OpenID ConnectやFIDOの概要とYahoo! JAPANの活用事例もご紹介しているためご参照ください。
最後に
最後まで記事を読んでいただきありがとうございました。標準技術や標準化活動に少しでも興味を持っていただけたら幸いです。
引き続き、黒帯活動の一環としてID連携や認証領域の標準化活動に貢献していきます。
こちらの記事のご感想を聞かせください。
- 学びがある
- わかりやすい
- 新しい視点
ご感想ありがとうございました