Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Authlete for Digital Construction at Earthbrain

Bach
September 05, 2023

Authlete for Digital Construction at Earthbrain

Earthbrain utilize Authlete to create authorization server which follow OpenId/Oauth 2.0 standard

Reference: https://www.authlete.com/ja/resources/videos/20221207/02/

Bach

September 05, 2023
Tweet

Other Decks in Programming

Transcript

  1. 1 Authlete Customer and Partner Meetup 2022 本⽇のアジェンダ 1 EARTHBRAINとSmartConstruction

    2 プラットフォーム開発 プロジェクト概要 3 IDaaSとBaaS 4 Authlete を採⽤して
  2. 4 Authlete Customer and Partner Meetup 2022 EARTHBRAINとは 社名 株式会社EARTHBRAIN(英名:EARTHBRAIN

    Ltd.) 所在地 〒106-6029 東京都港区六本⽊⼀丁⽬6番1号 泉ガーデンタワー 29階 ⼤阪⽀店 ⽶国フィラデルフィア(EARTHBRAIN NA) 資本⾦ 368.7億円(資本準備⾦含む) 創業 2021年 7⽉(創業1年⽬) 株主 株式会社⼩松製作所(54.5%) エヌ・ティ・ティ・コミュニケーションズ株式会社(35.5%) ソニーセミコンダクタソリューションズ株式会社(5%) 株式会社野村総合研究所(5%) 役員 代表取締役会⻑ 四家 千佳史 代表取締役社⻑ ⼩野寺 昭則 取締役副社⻑ 河内⼭ 晃 社員数 約140名
  3. 5 Authlete Customer and Partner Meetup 2022 建設業界を取り巻く課題 建設技能労働者数の推移と推計 216

    350 150 200 250 300 350 400 450 500 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 単位:万人 2025年には 約130万⼈の需給ギャップ 必要労働者数 (推計) 労働者数 労働者数 (推計) <参照> 総務省 「労働⼒調査」 ⼀般社団法⼈⽇本建設業連合会「再⽣と進化に向けて〜建設業の⻑期ビジョン〜」 約130万⼈ 年商規模 企業数 平均 年商合計 構成比 年商 (百万円) 社員数 (兆円) 61億円以上 2,204 30,560 502 67.3 0.5% 31~60億円 2,317 4,156 92 9.6 0.5% 13~30億円 8,029 1,818 45 14.6 1.8% 7~12億円 14,980 832 24 12.5 3.3% 1.3~6億円 104,761 255 10 26.8 23.3% 1.2億円以下 318,292 43 3 13.8 70.6% 合計 450,583 37,664 676 145 100% 建設会社の売上⾼規規模別の状況 労働⼒不⾜が深刻な問題となる (2025年には技能労働者の4割が離職) 課題解決⽅法は、労働⽣産性向上 建設会社の90%以上が中⼩事業者であり、地域 (地⽅/都市部)、規模に関わらず、 労働⽣産性を向上する必要がある ① ①における地域分布(社数)⼤都市圏※ 44%/地⽅ 56% ※⾸都圏(1都3県)、近畿圏、愛知、福岡 (当社調べ)
  4. 6 Authlete Customer and Partner Meetup 2022 建設業界を取り巻く課題 ⼩売 教育・医療

    政府機関 娯楽 運輸 他サービス 卸売 建設 鉱業 農林⽔産 公務 ⼩売・卸 ⾦融・保険 建設 情報通信 運輸 教育 鉱業 宿泊・飲⾷ 農林⽔産 1. 2019年⽇本(⽇本⽣産性本部) 2. 2019年⽶国 「NATIONAL CENSUS OF FATAL OCCUPATIONAL INJURIES IN 2019」 3. 2019年世界「Reinventing tech finance(Deloitte)」 ⽣産性 安全性 デジタル活⽤ 医療 ⾦融・証券 IT・テック 法⼈サービス 教育・公益 娯楽 エネルギー 製造 ⼩売 建設 デジタル化による建設業界の課題解決を通じて新たな価値創造を⽬指す ⾼ 低
  5. 7 Authlete Customer and Partner Meetup 2022 テクノロジーを駆使して建設施⼯を変⾰ Smart Construction

    2013年 ICT建機を投⼊ 2015年 各プロセスを個別デジタル化 Smart Construction(SC)開始 – 建機の3D化実施 – 施⼯アシスト、施⼯⼯数削減 – 建機周辺⼯程もデジタル化 – ドローン/施⼯管理アプリ/3Dデー タ設計などを展開 2020年 プロセス全体をデジタル化 DX SCとして進化 – プロセス全体の地形/コストデータ を繋いで変⾰ 施⼯プロセス (気付き) – 建機のみのデジタル化→施⼯以 外のプロセスは⽣産性改善せず (気付き) – 個別プロセスのデジタル化→プロ セスを繋げないと効果限定的 (SC事業加速化) 2021年7⽉ コマツからのスピンオフ化 対象 プロセス 活動 内容 プロセス⾃体の変⾰による ⼯数削減・縮⼩ 調査・ 計画 公告・ ⼊札 施⼯ 計画 施⼯ 検査 維持 調査・ 計画 公告・ ⼊札 施⼯ 計画 施⼯ 検査 維持 調査・ 計画 公告・ ⼊札 施⼯ 計画 施⼯ 検査 維持 建設プロセス全体のデジタル化を追求するのが、EARTHBRAIN
  6. 8 Authlete Customer and Partner Meetup 2022 テクノロジーを駆使して⼟⽊施⼯を変⾰ Smart Construction

    ドローンによる 3D測量 3D施工計画・ シミュレ-ション ICT建機とアプリで 3D施工・施工管理 No. 0 ( BP) No. - 1 No. 1 BC ( No. 3+7. 00) No. 3 No. 2 No. 4 No. 6 No. 7 No. 8 No. 9 EC ( No. 9+9. 5) No. 10 No. 10+9. 5 ( EP) No. 11 R=Åá No. 5 No. 12 I P 3. 000Çç 0. 300Çç 0. 300Çç 3. 000Çç 12. 000Çç 1 5 0 1 50 6. 000Çç 0. 0% FH ドロ-ンによる 3D出来形検査 施工計画 調査・測量 施工・施工管理 検査 従来施⼯ プロセスごとの縦のデジタル化 (Digitization) スマート コンストラクション 建設生産プロセスの最初から最後までを繋いだ横のデジタル化(Digitalization) 複 数 現 場 を 繋 ぐ
  7. 15 Authlete Customer and Partner Meetup 2022 最初はIDaaSを優先して検討していた 既存プラットフォームのAPIは、OAuth 2.0によって保護されています。

    また、本サービスを使ったログインを⾏ うアプリケーションを作成する場合は、 OpenID Connectを利⽤します。 →開発中のプラットフォームでもこれら 仕様は踏襲する計画です。
  8. 16 Authlete Customer and Partner Meetup 2022 最初はIDaaSを優先して検討していた OAuth2.0/OpenID Connectをゼロから実装するのは開発⼯数がかかる事が予想されました

    →外部サービスを使⽤する⽅針としました。 2つの選択肢: ー IDaaS ー BaaS (Authlete) 最初はIDaaSを優先して検討していました。 IDaaS Identity as a Service BaaS Backend as a Service IDaaS: 「アイダース」と発⾳します BaaS: 「バース」と発⾳します
  9. 17 Authlete Customer and Partner Meetup 2022 BaaSよりIDaaS 項⽬ IDaaS

    BaaS (Authlete) 現状プラットフォームの認証機 能をカバーできるか ◦ ◦ 実装の平易さ ◦ △ 柔軟性 △ ◦ 独⾃実装する必要がある 開発時のリファレンスの充実度 ◦ SDKも参考となるリファレンス も多い △ レイテンシが⾼くなる要因がな いか ◦ ◦ 認証基盤を扱える⼈材は多いか ◦ △ 品質保証レベル 99.99 99. 99
  10. 18 Authlete Customer and Partner Meetup 2022 IDaaSの機能性を活かしきれないことがわかった。 ① IDaaSが提供する各種エンドポイントが、現⾏

    PFのIF仕様と⼀致していない。 OAuthの規格とも⼀致していない。 ② 現⾏プラットフォームのパスワードハッシュ⽅法はサポートしていない。 ③ サインアップ機能そのものはあるが、現⾏プラットフォームの要件であるプロファイ ル情報(画像含む)の管理 や、メール確認機能などは、独⾃実装する必要がある。 ④ アクセストークンのclaimの完全⼀致が不可能。 ⑤ アクセストークンの選択的失効機能が無い。 IDaaSの課題
  11. 19 Authlete Customer and Partner Meetup 2022 IDaaSとBaaSは開発コストに⼤差は無い。 IDaaSの課題 課題

    IDaaS BaaS (Authlete) IDaaSが提供する各種エンドポ イントが、現⾏PFのIF 仕様と ⼀致していない。 IDaaSのAPIをラップしたエン ドポイントを開発する必要があ る 元々APIをラップして使うこと が前提のサービス。 Authlete提供のAPIをラップし たAPIの開発が必要 現⾏プラットフォームが使⽤し ていたパースワードハッシュ⽅ 法がサポートされていない。 提供されたログイン・サインア ップなどを使わなず、 独⾃実装する必要がある ログイン機能は提供していない ため、 独⾃実装が必要 サインアップ機能そのものは あ るが、現⾏PFの要件であるプロ ファイル情報(画像含 む)の管理 や、メール確認機能などは、独 ⾃実装する必要がある。 ・画像のアップロード機能は無 いので、独⾃実装が必要 ・メールの多⾔語対応がされて いないので、ビルトイン機能で は無く、メールの外部サービス を活⽤して独⾃実装が必要 サインアップ機能は提供してい ないため、独⾃実装が必要
  12. 20 Authlete Customer and Partner Meetup 2022 IDaaSとBaaSは開発コストに⼤差は無い。 IDaaSの課題 課題

    IDaaS BaaS (Authlete) アクセストークンのclaimの完 全⼀致が不可能 (現⾏PFが、OAuthの規格に準拠し ていない) 任意のclaimはURL形式となる 利⽤者がトークンをデコードし てトークン内payload情報を利 ⽤している場合、アプリケー ション側の改修が必要 任意のclaimの追加が可能 (配列型はAuthlete v2.3から) アクセストークンの選択的失効 機能が無い 独⾃実装が必要 機能性として有する → Wrapしなければいけないため、IDaaSの提供する機能がほとんど使え ず、BaaSと同じ機能しか使えないのに、BaaSよりコストが⼤幅に⾼い。
  13. 22 Authlete Customer and Partner Meetup 2022 Authlete v2.2の機能は現⾏プラットフォームの要件を満た さないため、v2.3で機能が追加されました。

    JWT認可グラント (RFC 7523 2.1) JSONオブジェクトのプロパティがJWT形式のアクセストークンのペイ ロードに埋め込まれる RFC 8693 OAuth 2.0 Token Exchange PKCEの要求は管理コンソールで設定できる Authleteからのサポート JWT: JSON Web Token 「ジョット」と発⾳します PKCE: Proof Key for Code Exchange 「ピクシー」と発⾳します
  14. 23 Authlete Customer and Partner Meetup 2022 JWT 認可グラント (RFC

    7523 2.1) Ref: https://www.authlete.com/ja/developers/jwt_authorization_grant/ JWT 認可グラント (RFC 7523 2.1): - 現⾏プラットフォームにある⼀つ の認可フロー。 - Authlete側で対応しないと、認可 サーバでは実装できないです。 - 要望に応えて、Authlete様は5⽇ 間で実装しました。
  15. 24 Authlete Customer and Partner Meetup 2022 JSON オブジェクトのプロパティが JWT形式のアクセストークンのペイロードに埋め込まれる

    { "iss":"https://auth.landlog.info", "sub":"df6c5705-9046-4472-ac10-cc5a4ac7c581", "aud":[ "https://api.landlog.info", "https://marketplace.landlog.info" ], "azp":"70c4ce1c-e55f-4050-90cf-d93063fd61d2", "cid":"70c4ce1c-e55f-4050-90cf-d93063fd61d2", "scp":[ "user.profile", "group.read" ], "iat":1649830213, "exp":1649830513, "jti":"dfd78c46-23de-440d-b46c-91a8d8ce7d84", "application_types":[ "web", "client" ] } v2.2 - トークンに任意のプロパティ(Extra Properties)を追加できる - でもExtra Propertiesでは⽂字列の値し か追加することが出来ない v2.3 - jwtAtClaims パラメーター で指定した JSON オブジェクトのプロパティが JWT 形式のア クセストークンのペイロードに埋め込まれ ます。 例: POST http://{{host}}/api/auth/authorization/issue Authorization: {{API Key/Secret}} Content-Type: application/json { "ticket": "{{ticket}}", "subject": "john", "jwtAtClaims": "{\"appication_types\":[\"web\”, \”client\"], \”scp\":[\”user.profile\”, \”group.read\"]}" }
  16. 25 Authlete Customer and Partner Meetup 2022 RFC 8693 OAuth

    2.0 Token Exchange Ref: https://www.authlete.com/ja/developers/token_exchange/ トークン交換が標準規格の対応のた めに必要でした。 サブジェクトトークン: リクエスト の当事者のアイデンティティを表す ものである。 アクタートークン: 代⾏者のアイデ ンティティを表すものである。 ある API に対するアクセストークン を、別の API に渡すためのセキュリ ティトークンを OAuth 2.0 認可サーバ とやりとりして取得する⽅法を定義 しています。
  17. 26 Authlete Customer and Partner Meetup 2022 PKCEの要求は管理コンソールで設定できる Authleteのv2.2においてPKCEの強制化は、 サービス設定の認可タブにある「コード交換

    ⽤証明キー (RFC 7636)」と「コードチャレン ジメソッド S256」によって⾏われます。 現⾏プラットフォームとして同⼀サービス内 に、PKCEが必須であるクライアントと必須で ないクライアントを⽤意する必要がございま す。 →「コード交換⽤証明キー (RFC 7636)」と 「コードチャレンジメソッド S256」任意で設 定できます
  18. 27 Authlete Customer and Partner Meetup 2022 Authleteが提供されたリポジトリは活躍できま す。 Go系のライブラリを参考・使⽤して、速やか

    に認可サーバーの主要APIができました。 - authlete-go: DTO/types/const/… - authlete-go-gin: 認可サーバーを簡単に実 装するためのコンポーネントを提供するラ イブラリ - gin-oauth-server: 実装の例 Development story
  19. 28 Authlete Customer and Partner Meetup 2022 gin-oauth-server authlete-go-gin authlete-go

    API開発の作業でgin-oauth-serverとauthlete- go-ginを両⽅変更が必要 authlete-go-ginをForkして、EARTHBRAINの Githubで使⽤しています。 (Apache License, Version 2.0) EARTHBRAINでは再利⽤はまだ無いため、 authlete-go-ginの維持は必要ではないと想定 します。 -> authlete-goのみを使⽤して、認可サーバー を開発しています。 Development story