現在JavaScriptの設定が無効になっています。このページを利用するにはJavaScriptの設定を有効にしてください。雅(@kura_lab)です。この春に黒帯インターン、OSSデベロッパーインターンが実施されました。ID連携のシステムを設計、開発、運用する若手エンジニアと参加者とプログラムを通してヤフーの業務を体験してもらいました。今回は認証技術コースで実施したプログラムの開発内容や技術について、参加者の感想も交えたインタービュー形式でご紹介します。文末で今後のインターンシップや採用についてもご案内します。ヤフーのインターンシップについてはじめにヤフーのインターンシップについて簡単にご紹介します。ヤフーのインターンシップではヤフーがミッションとして掲げる「課題解決」を実際の業務を通じて体験できます。専門性に優れた黒帯と呼ばれるプロフェッショナルやOSSへ貢献しているヤフーのOSSデベロッパーが監修したプログラムでヤフーの開発フローや最新の技術を学ぶことができます。各コースで異なる部分もありますが、共通の特徴は以下になります。実施期間は5日間または10日間。ID連携のサーバーサイドやアプリの認証機能のSDKを担当する若手エンジニア2名に参加してもらいました。続いて黒帯とメンターがどのようなプログラムで業務を体験したのかみていきましょう。認証技術コースのプログラム認証技術コースは2週にわたって合計9日間のプログラム構成にしました。Blogの寄稿までこなしてもらいました。)今回は、以下の3名の方にインターンにご参加いただきました。)それでは、参加者の皆さんに伺ったインターンの内容や感想についてご紹介していきましょう。左上から倉林、赤星さん、メンター加賀谷、メンター都筑、左下から鈴ヶ嶺さん、吉田さん黒帯座学について倉林)現在ヤフーには倉林を含め2名の認証技術黒帯がいるため、認証技術コースでは開発案件の他に認証やID連携の基礎講座として座学を取り入れました。用いたものが一般的であったことからお話がはじまりました。それぞれの手段には課題が存在しています。「知識」については人の記憶に依存しているためIDやパスワードを忘れやすく、「所持」については無くした場合のケア、「生体」については漏洩などの非常時において変更が困難などの課題が残っているとのことでした。JAPANが取り組んでいるFIDOでは、ユーザーの利便性も高く、セキュリティも高い認証が期待されているというお話を聞きました。FIDOは指紋などの生体情報をサーバー側に渡さない仕組みのため、生体情報の情報漏えいのリスクが減るという面でもメリットがあるようです。パスワードを利用しないパスワードレスのログイン体験が普及するとユーザーにとってもより使いやすく安心したログイン体験を提供できるを思いました。倉林)認証の基礎や課題から最新の認証技術を教えてもらったのですね。ヤフーのID部門ではFIDOやパスワードレスに注力している最中で多くの人に安心して使ってもらえるように推進しているところです。その他にはどんなことを学べましたか?鈴ヶ嶺さん)ライフスタイル認証と呼ばれる行動に基づく認証についても研究していることをお聞きしました。良い認証体験が提供できればYahoo!ショッピングやYahoo!メール、ヤフオク!などいろいろな事業でその人にあった体験を与えられ、認証時間の節約も期待されるのではないかと思いました。ログイン画面へのアクセス数分の時間の節約が可能になるかもしれないというお話でした。Connectについて実装面や事例を織り交ぜて学ぶことができました。2.0にユーザーの認証機能を追加した認証・認可の仕組みです。多くのサービスはそれぞれのサービスごとにパスワードを登録しログインする必要がありますが、利用するサービスが増えるにつれて、ユーザーはパスワードを使い回してしまうケースが増えます。パスワードを使い回すと、セキュリティ対策が不十分なサービスでパスワード漏えいがおきた際に、他のサービスへも不正ログインされてしまうリスクが出てしまいます。Connectを用いることで1つのIDでそれぞれのサービスにログインできるため、各サービスにパスワードを登録する必要がなくなり、パスワードの使い回しのリスクが減るとのことでした。Connectにはユーザーの登録している情報を連携する機能もあり、他社のサービス登録時に氏名や生年月日、住所などのフォームへの入力の手間も省けてユーザー体験が向上すると伺いました。Connectの仕様にはCSRF対策やリプレイ攻撃の対策もあり不正の事例と解説も勉強になりました。最近、ID連携が普及してきていたことを何となく実感していたので、詳しく学ぶことができてよかったです。Introspectionを実装するという案件がありました。これは標準化団体であるIETFで提供されるRFCに定義されている標準技術です。2.0についてお話しします。2.0とは、RFC6749で定義されている認可のプロトコルです。ここでの認可とは、あるサービスが全ての情報にアクセスするのではなく、ユーザーの同意に基づき限定的にアクセスを許可することです。ユーザーのIDとパスワードを共有してしまうと全ての情報にアクセスできてしまいます。Partyアプリケーションがユーザーの情報に安全にアクセスするための仕組みです。Tokenが有効であるか、ユーザーの情報や認可に関するメタ情報を得るためのプロトコルが定義されていません。そのため属性情報を保持できるJWTを利用したり、独自の仕組みによって対応していました。Introspectionです。Introspectionのエンドポイントを追加しました。Introspectionの解説ありがとう。インターンシップに参加する以前からこれらの技術について知っていましたか?赤星さん)OAuthの技術については初めて知りました。登場する役割のサーバーが複数あるため時間はかかりましたが、みなさんにサポートをしてもらいながら概念を理解し、実装をやりきることができました。IntrospectionのRFCの輪読はとても難しく感じました。はじめは文章が長く要点がつかめない部分が多かったのですが、要求レベルを統一するための助動詞が定められていたり、RFC特有のルールで記述されていることを知り、読み方を学ぶことができました。倉林)学生のときはなかなかRFCなどのインターネットの標準仕様書を読む機会はないですよね。はじめてみたときは文章量が多いように思うかもしれないけれど、RFC7662はまだ文章量も少なく、関連しているRFCも少ない方なのですよ。このRFCよりも文章量が長い複雑な仕様もあるけれど、読み方を覚えるとそこまでストレスなく読めるようになるので、興味があれば他の仕様書も読んでもらえたらと思います。輪読後にこの仕様を実装してもらいましたが、設計から開発、テストまでやってみてどうでしたか?鈴ヶ嶺さん)取り組んだ内容をお話しすると、まずRFCの輪読を行い仕様の認識をチームで共有しました。ここでは、なぜこの機能が必要なのかやセキュリティ上の懸念点などをディスカッションすることで仕様の深掘りをしました。次に、共有した仕様を設計書に落としこむ作業をしました。ID連携に必要な機能を考慮して適切に取捨選択をしました。設計書ができた段階で各自で開発と単体テストのタスクを割り振り、最終的に結合テストをして全体の整合性を確認しました。チーム開発を経験する機会はあまりありませんでしたが、チームで1つの課題を解決することの重要性を理解できた気がします。JAPANの多くのサービスでは今回体験してもらったように数人でのチーム開発を実施しています。IDの部門でも、RFCなどの標準仕様を読み解きながら設計、実装しているので普段の開発も同じような流れで進めています。設計書やプログラムのレビューは考慮漏れをなくす以外にもお互いに気づきがあり、エンジニアとしての成長につながるため、短期間でしたがそれを体験して重要性を感じてもらえてよかったです。ヤフーという環境について倉林)ヤフーで働いてみてどうでしたか?赤星さん)ヤフーは聞いたことがある通りカラフルで、エンジニアとしてとても快適な環境で仕事ができると感じました。1on1では自身の悩みや業務について話を聞くことができました。便利なID体験、ログイン体験を提供することでユーザーの属性や情報など広告事業やeコマース事業に連携し費用対効果の高い戦略を打てるのではと思いました。そのためにFIDOのようなUXの高い認証が整った環境を提供したいと思いました。JAPANのサービスを使ってくれるユーザーを増やすことができるとよいと思いました。1on1はそういった自身の考えを具体化できるいいミーティングだと感じました。JAPANが好きになりました。倉林)黒帯活動で大学へ講義へ行ったり、内定者や選考中の学生さんとお話しする機会があるのですが、それ以外でもヤフーの社員は直面している課題の解決や自身の成長のための内省につながるように日常的に上長と1on1をする機会があるのです。JAPANの業務について興味を持ってもらえたようでうれしいです。鈴ヶ嶺さん)コーヒーやサーティワンアイスクリームがある社内カフェテリアのCAMPやオフィスグリコなど、どこでもPayPayを使うことができるので便利だと思いました。フリーアドレスなので気分を変えて働く事ができるのでストレスなく働ける環境だなと思いました。スーツを着なくても仕事ができるのでとても過ごしやすい環境だなと感じました。黒帯の制度を作りコミュニティー活動を支援しているところが素晴らしいと感じました。倉林)よく業務の合間にPayPayで買ったコーヒーやアイスクリームを片手に社員同士でコミュニケーションをとっていたりしますね。多くのエンジニアやデザイナーはラフな服装で、フリーアドレスでのびのびと仕事をしていますよ。黒帯制度はできてから8年目になっていて、社内外で各領域の最新技術の発信や教育をおこなっています。ヤフーに入社したらスキルを磨いて黒帯を目指してみてほしいですね。吉田さん)主に開発を行うフロアでも女性が多い印象でした。デザイナーの方も同じフロアで働いているからだそうです。そのような会社を見たことはなかったのでとても新鮮でした。働いている中で作業場所を変えられたことはとても魅力的でした。一日中座っているのはツライので高めのテーブルで立って作業することもできて楽になりました。社員のみなさんもとても優しくしてくださり、とても働きやすい環境でした。倉林)同じサービスを担当している営業や企画、デザイナーが同じフロアで密にコミュニケーションをとることでスピーディーによりよいサービスが提供できているのだと思っています。デザイナーだけでなく、女性エンジニアもたくさんいますよ。短い期間でしたが、働きやすさを実感してもらえて何よりです。認証技術のインターンシップについて倉林)最後に認証技術のインターンシップを通じてどんなことが学べたのか感想を聞かせてください。赤星さん)2週間という短い時間の間でしたが、FIDOやID連携、OAuthなど認証について細かく学べたことが良かったです。技術的に未熟な部分がありましたが、今回のインターンシップで残りの学生の期間で補うべき課題が多く見つかったと感じています。インターンシップ期間中、社員さんたちが忙しい中時間を作って教えてくださったり、ランチに連れて行ってくれたりして楽しい時間を過ごせました。社会人になる前にこのようなインターンシップに参加できたことは自身の成長につながり、大きな財産になったと思います。何より今回の機会をくださったことにとても感謝しています。ありがとうございました。Introspectionを実装できたので楽しかったです。あらゆるサービスのUXに認証は大きな影響を与えるので認証基盤サービスの重要性を再認識しました。加えて、次世代の認証技術として生体認証を利用したFIDOや歩き方などの行動を用いて認証をするライフスタイル認証を新たに学ぶことができたので充実したインターンシップでした。吉田さん)「認証」というジャンルでインターンシップがあること自体が珍しかったので、非常に貴重な経験となりました。OAuthやOpenIDのプロバイダーに機能追加を行ったり、認証についての標準仕様が決められている「RFC」を読み解く技術を得たりし、私にとって大きな財産となりました。今回の黒帯メンターである倉林さんとの1on1で自身の課題を見つけることができ、今後にいかしていきたいと考えています。最後になりましたが、このような最高の環境を用意してくださった社員の皆様、ありがとうございました。倉林)インターネットの技術に触れヤフーでの開発を実際に体験してもらいそれぞれ今後にいかせる経験ができてインターンシップを開催したこちらとしても嬉しい限りです。最後に現在、夏のインターンシップの参加者を絶賛募集中です。締め切り間近ですが、興味のある方はぜひチェックをしてみてください。ヤフー株式会社また、ヤフーでは通年採用を実施していますので、現時点で2021年4月入社の方のご応募を受け付けています。採用情報この記事をきっかけにインターネットサービスの開発やエンジニアに興味を持ってもらい、さらにヤフーのインターンシップや採用にチャレンジしてもらえれたら幸いです。最後までこの記事を読んでくださりありがとうございました。JAPANでは情報技術を駆使して人々や社会の課題を一緒に解決していける方を募集しています。詳しくは採用情報をご覧ください。JAPANのサービス開発を支える技術やデザイン、文化を発信しています。Reserved.このページの先頭へ。