2019年6月27日木曜日

Identiverse 2019参加メモ(Day2)

こんにちは、富士榮です。

昨日に引き続きワシントンDCで開かれているIdentiverse 2019への参加メモです。
※Identiverseとはなんぞや?という方は昨日のポストをご覧下さい。

2日目となる本日はKeynoteから始まるある意味本格的にイベントがスタートする日でした。しかしイベントをホストしているPing IdentityのCEOのAndre Durandさんのパワーはすごいですね。10年間この規模になるまでイベントを続けている気力もそうですし、毎回どこからともなく物凄いゲストを連れて来ているのが驚きです。以前はレオナルド・ディカプリオ主演の映画「キャッチ・ミー・イフ・ユー・キャン」の主人公のモデルとなったフランク・アバグネイル氏が出て来て金融詐欺(まさにID盗難)についてKeynoteで語ってくれたりしましたし、今回の目玉はもちろんSteve Wozniak氏ですが、さらにKeynoteスピーカーとしてイリノイ州議員のBill Foster氏が登場してデジタル・アイデンティティについて語る、という豪華なKeynoteから始まりました。

と言うことで2日目のおさらい+αをお届けしたいと思います。

◆キーノート

  • Weathering the Storm: Future Proofing with Identity by Andre Durand
    • Internetとmobilityの発達により、いたるところにアプリケーションが組み込まれる時代となった結果、脅威もいたるところに存在する、と言う状態となっている
    • このようなDisruptionに対して効果的に適応して生き延びていくには重大かつ予測可能な領域を見据えて効率的に投資をしていく必要がある
    • 例えば、自然現象を整理すると以下のように分類可能である
      • メキシコに落下した隕石による破壊は重大だが予測不可能だった
      • 竜巻による破壊の重大性はそれほど大きくなく、かつ予測も難しい
      • 嵐の重大性はそれほど大きくないが、予測はある程度可能である
      • 大型台風による破壊の重大性は大きく、予測も可能である
    • 我々はこの中の重大性が高く、予測可能な領域(大型台風)へ投資を集中しなければならない
    • 例えばこの領域としてあげられるのが、以下の項目である
      • イノベーションの速度
      • カスタマー体験
      • プライバシーとコンプライアンス
      • スマートなアイデンティティ(AI)
      • 境界の消滅
    • それぞれに対する対応は以下の通りである
      • イノベーションの速度
        • 基本方針はAgilityを持つこと
        • 標準に対応する
          • 使うもの;SAML、OAuth、OpenID Connect
          • 投資するもの:SCIM、PSD2、OpenBanking
          • 新しく出て来たもの:WebAuthn、Secevent
        • APIを有効活用する
        • クラウドを活用する
      • カスタマー体験
        • UXの質により顧客が支払う額は変わってくる
          • 86%の顧客がより良いカスタマー体験に対して支払う
          • 82%の顧客が貧弱なカスタマー体験により去る
        • アイデンティティに関する良いカスタマー体験とは、フリクションレスでパーソナライズされた世界のことである
        • より良い体験とは体験していることに気が付かないことである
          • パスワードレス:QR、NFC、BLE
          • 標準:WebAuthn、OpenID Connect
          • ウェアラブル:AppleWatch
      • プライバシーとコンプライアンス
        • FacebookやMicrosoftなど事故もあったけどコンプライアンスが重要って言っている
        • 同意の管理が主なキーワードとなる
      • スマートなアイデンティティ(AI)
        • 過去4年間で270%の成長を見せた
        • センサーとシグナルをスマートなアイデンティティ(Intelligent Identity)により機会と脅威に分類、パーソナライズした世界を実現することができる
      • 境界の消滅
        • クラウドの台頭、デバイスの普及によりネットワーク境界は消滅、アイデンティティが境界となっている
        • アイデンティティによりゼロトラストセキュリティを実現することができる
    • 結局のところ、勝者となるには以下のことが必要
      • ディスラプションを予測・理解する
      • 何が起きるかを予測する
      • プロアクティブにディスラプションを乗りこなす
    • 波を乗りこなしましょう!

  • Aspiring the Future by Bill Foster
    • 元々は科学者で議員
    • 議員の出身を科学者、法律家、政治家の3つに分けると、
      • US議会には科学者がほとんどいない
      • 中国の議会には科学者出身者が多い
      • EUはバランスが良い
    • 科学者の頃は陽子の減衰の研究をやったり、加速器を開発して衝突の観測をしたりしていた
    • 両親がキャピトルヒルで出会った、という過去もあり政治の道へ(科学と政治がUNIONIZED)
    • 2006年に秘書としてキャリアをスタートし、2008年に初当選した
    • セキュアなデジタルアイデンティティは重要である
      • オンラインセキュリティの要であると考えている
      • Fintechなどのテクノロジーに必要である
      • USはエストニアや韓国に対して後塵を拝している
    • 先般、大きな勝利を収めた
      • 電子健康レコードからユニーク識別子を消す、ことを廃止できた
      • 過去21年間にわたり、連邦はユニーク識別子を消して来た
      • このことにより毎年数千人が亡くなっていた
      • また、医者が麻薬を購入することが可能となっていた
    • 米国政府はデジタルアイデンティティの重要性を理解して来ている
      • 誰もJUNKやSPAMを望まず
      • 政府は個人の識別子を付与する役割を持つ
    • これからはAIが搭載されたスマートフォンが普及してくる
      • 多要素認証デバイスとしても利用できる
      • PIIを持ち運ぶこともできる
      • 選択的開示がもっと浸透してくる



  • Next Generation IDM: managing identities for people by Andrew Nash
    • おなじみAndrew Nashのセッション
    • アイデンティティ管理の歴史を振り返りつつ未来を語る
      • LDAP、X.400・・・
      • Identrus、Federal CA・・・
      • MS Passport、SAML、Liberty、Hailstorm・・・
      • OpenID、Infocard、7 Laws of Identity、PayPal・・・
      • OIX、OpenID Connect、NSTIC・・・
    • アイデンティティ情報は新しいユーザ体験の時代へ
      • CapitalOneのアカウントで他のサービスへサインアップ
      • 免許証で他のサービスへサインアップ
    • 新しいアイデンティティの姿とは
      • 自分の情報を
      • 自分のデバイスで
      • 同意に基づき、最低限の共有を行うことにより
      • KYCコストを削減したり、Identity Verificationの最適化を行う
    • Identity Providerが中心の世界からユーザが中心となる世界へ


  • Building Identity Professionals by Sarah Squire
    • IDPro枠ですね
    • 基本的な考え方として希少価値の高いものは高価である
    • アイデンティティオタクも同様である
    • みんなアイデンティティオタクになろう!そして市場価値を高めよう
    • IDProのメンバにサーベイしたところ、41%がIdentityのプロになるには5年から10年はかかると回答した
    • 学校では教えてくれない領域なのでどうすれば良いのか??
    • プロジェクトマネージャーも同じような状況なので、調べてみると、1996年にPMBOKが出てからPM人口が一気に増加したことがわかった
    • そこで、IDPro Body of Knowledgeの作成に取り掛かった
      • 基本的な考え方は、対象の領域について自分よりも知っている人間は誰か?というアプローチ
      • 40のセクションと88のサブセクションで構成
    • 今ではたくさんの企業会員、個人会員に支えられている。Come an Join us!

◆ブレークアウトセッション

ここからはブレークアウトセッションです。
  • A Modern Architecture for Customer Identity Services by GM
    • GMのIdentityアーキテクトによるGMの顧客ID管理のアーキテクチャの解説
    • サービスと顧客を接続するためにアイデンティティを整備する必要性があった
    • しかし、アイデンティティは見えないくらいがちょうどよく、シームレスな顧客体験が重要であると考えている(Invisible Identity)
    • その考えのもと、CIAMを以下の4つのコンポーネントに分離してデザインした
      • Identity
      • Profile
      • Preference
      • Intelligence
    • IDaaSにするかOnpremにするか悩んだけどアタックへの対応などはIDaaSに一日の長があるのでIDaaS(Azure AD?)を選んだ
    • OIDCなどの標準に対応するのはもうすでにオプションではなく必須である
    • 結局大事なのは、
      • 標準を乗りこなす
      • 統制の効いたアーキテクチャをデザイン・実行する
      • 戦略と同期する


  • Bring Your Own Identity: A Skeptical look at Social Login and Single SignOn by Gerry Gebel
    • 元Burtonグループの人でBYOI(今でいうBYOID)のコンセプトを2008年に発表した人
    • モチベーションとしては、
      • 多くのクレデンシャルがサービス提供者によって管理されている状況がいやだ
      • 登録プロセスが面倒だ
      • UXの改善が必要だ
    • プライバシーに関する再考も必要
      • モダンなテクノロジー(スマホなど)
      • Techジャイアント(MSやUberなど)
    • Identity/Credentialの集中化により容易になってしまうこと
      • トラッキング
      • 紐付け
      • データコントロールの弱さ
      • 透明性の欠如
      • 監視
    • 実際、US連邦政府による電話のモニタリングとかあったよね
    • 最近は進歩したのか?
      • VerizonやAT&Tは顧客データを売るのをやめた
      • Apple login?
      • UMA、SSI
    • 今、できることは?
      • アイデンティティとCredentialを分離する
      • Techジャイアントからログオフする


ここから午後のセッションはお休みしてスミソニアン博物館へ出かけました!

◆(おまけ)スミソニアン博物館(航空宇宙博物館)

スミソニアン博物館ってライト兄弟のイメージしかなかったんですが、一つの博物館を指しているのではなく、博物館群を指しているそうです。知りませんでした。今回は時間もなかったので航空宇宙博物館へ行ってきました。

入り口

入り口を入った瞬間にスタートレックがあるのはご愛嬌

月面着陸艇のレプリカ

ライト兄弟のフライヤー号!

他にも色々ありましたが、この辺りで。
しかし日差しが強く、外はものすごく暑かったです。。

◆夕方からのブレークアウトセッション

夕方になり、セッションへ復帰しました。
  • Microsoft Presents: Designing for Decentralized identity and claim-based identity management by Ankur Patel
    • IONの話です。デモもあり面白かったです。
    • 感じている課題感としては、アプリケーション毎にUsernameとパスワードを保持していることによる不便さや結果発生する漏洩、監査が困難になることによる余計なコストの発生など
    • カスタマーのニーズを追っていくとそれぞれ以下のテーマがある
      • 個人
        • プライバシー
        • 個人でデータをコントロールしたい
        • 情報漏洩から保護してほしい
      • 組織
        • 信頼できVerifyできるアイデンティティ
        • コラボレーション(B2BのID管理は大変)
        • GDPR、KYC、AMLのコストを削減したい
      • 政府
        • クロスボーダー、クロスエージェンシーのID
        • 難民向けのID付与
        • 社会的、経済的なインクルージョン
    • IONを使ったデモ
      • シナリオは、
        • 学位の付与(学生証)
        • 学割で本が購入できる
    • IONの設計思想
      • ユーザは一つ以上のDIDを持つことができる
      • DIDはDLTの系をまたいで解決できる必要がある
      • DIDのパーミションはユーザだけがアクセスできる鍵により管理される
      • 属性情報はオフチェインに保存される
      • ユーザは複数のIdentityHubを持つ
    • 次のステップ
      • 簡単に使えるようにする:エコシステムの構築
      • 性能とスケーラビリティ:IONがまさに目指すところ
      • DIFへの参加とコラボレーション・コントリビューション




ここまでです。

この後、OpenID Foundation x Financial Data Exchangeの会食があり参加させてもらいましたが、みなさんAPI保護、KYCなどについて熱く議論をしていて非常に面白かったです。この辺は書けませんが。

後、会食からの帰り道にホワイトハウスも眺めてきました。
G20でトランプ大統領は大阪にいるはずなので、入れ替わりだな・・・とか思ったりしつつw
夜なので、あんまり綺麗に写りませんでしたが。


ということでまた明日。



[LINE Login]どうやってユーザが認証されたのかを判別する

こんにちは、富士榮です。

LINE Loginの最新の更新によりid_tokenにamr(Authentication Method References)が含まれるようになりました。このパラメータはユーザがどのような方式で認証されて来たのか?を判別するためのパラメータで、例えば多要素認証をしたのかどうかをアプリケーション側が把握して追加のセキュリティ対策をするかどうか判断したい、という場合に使われます。

LINEのニュース
https://developers.line.biz/ja/news/2019/06/

詳しくはこちらを、とあるので早速見てみると確かにid_tokenの構成の中にamrの記述が追加されています。

確かに最近LINEは様々なログイン方法をサポートしているのでアプリケーション側でどんな方式でログインして来たのかを把握したいケースも増えてくると思います。
※現状LINEは多要素認証などはサポートしていないので、例えばシングルサインオンでログインして来たら強制的に追加認証を要求する、などのシナリオくらいの使いみちだとは思いますが。今後FIDOのサポートなどが実現してくればもう少し使えると思います。

と、いうことでログインしてみました。
以下はQRを使った場合ですが、確かにamrにログイン方法が出て来ます。便利です!


先に書いた通り、まだまだ使いみちは限定的ですが、今後の多要素認証やFIDOのサポートに期待ですね。

2019年6月26日水曜日

Identiverse 2019参加メモ(Day1)

こんにちは、富士榮です。

 今週ワシントンDCで開催されているIdentiverse 2019にきています。私はまだIdentiverseがCloud Identity Summitと呼ばれていた2016年から合わせて通算で3回目の参加となります。(昨年度はスピーカーとしての参加でしたが、今回は純粋にオーディエンスとしての参加なので、大いに楽しみたいと思います)

尚、今年は10周年ということで会場のあちらこちらに10周年を祝うモニュメントがあったり、毎年恒例のTシャツも10周年記念モデル?となっていたりしてお祭りムード全開です。(残念ながら例年おもしろTシャツのデザインをしていたPing Identityの方が退職されたとのことで、今年は1種類だけでした)

10周年記念オブジェ

10周年記念Tシャツ

しかし、何と言っても今回の目玉は最終日に予定されているスペシャルゲスト、Steve Wozniakのスペシャル・キーノートです。
こちらは最終日に改めてレポートします(体力が持てば・・・)


と、言うことで初日の参加メモ(と言うか旅行日記)です。

◆Identiverseとは

まず、Identiverse(旧Cloud Identity Summit)をご存知ない方のために簡単にイベント自体の説明をしておきます。詳細はこちらに書かれている通りですが、ざっくり言うと「デジタルアイデンティティやセキュリティ分野のリーダーやユーザーが集まって来るべきデジタル世界のVisionやテクノロジーについて語らう場」で、元々はPing Identityが主催するCloud Identity Summitとしてスタートして今年で10年、200以上のセッションがあり、2000名以上の方が参加するEuropean Identity & Cloud Conferenceに並ぶグローバルで最大規模のアイデンティティ・イベントです。

日本人も10名程度ではありますが、毎年参加されています。(ここでしかお会いしない方々もいたりして・・・)

また、グローバルなアイデンティティ界隈のリーダーの方々にも直接あって近況の交換をすることのできるIDマニアにとって非常に重要なイベントでもあります。
今年も初日のレジストレーションに並んでいる時にSalesforceのVPのIan Glazerに声をかけてもらったり、廊下でUnikenのNishantと話をしたり、MicrosoftからAuth0に移籍して早1年、我らがVittorio Bertocciと写真を撮ったり、と日本ではなかなかできない体験ができます。

◆Day1で参加したセッション

今回は奇跡的に時差ボケ解消に成功したので、初日から力つきることなく朝から晩まで通してセッション参加しました。

簡単な感想などを添えてそれぞれのセッションを紹介します。
ちなみにアジェンダはこちらから見ることができます。

  • Introduction to Identity Part 1 / 2 by Ian Glazer, Pamela Dingle, Steve Hutchinson
    • 言わずと知れた大御所によるデジタルアイデンティティとはなんぞや、と言う解説セッション。
    • 標準技術から利用シーンまで網羅的かつわかりやすく解説してくれたので初学者に取っては非常に貴重な機会だったと思います。
    • それなりに広めの部屋でしたが立ち見が出るほどの大盛況でした。
    • かい摘んで解説すると、こんな感じでした。
      • B2Eの世界における従業員IDの管理のようなトラディショナルなID管理から、B2Cの世界における顧客IDの管理のようなモダンなID管理への潮流があり、これからは「個人にフォーカスしたID管理」が主流になってくる
      • B2E、B2B、B2Cのそれぞれの世界におけるID管理を「Admin-Time(管理時の目線)」と「Run-Time(実行時の目線)」で深掘り、関連するID管理の実施事項を解説してくと言うスタイル
      • 管理と言う目線では以下のキーワードについて概要及び技術標準(SCIMなど)を解説(Ian Glazerが担当)
        • Source of Truth(アイデンティティ情報の源泉)からディレクトリやアプリケーションなどの各種レポジトリへのプロビジョニングの流れ
        • その前段にあるIdentity ProofingについてB2E、B2B、B2Cでの違い
        • 権限管理、ロール管理、アイデンティティ・アナリティクス、特権ID管理
      • 利用時の目線では同じく概要から標準を解説(Pamela Dingleが担当)
        • 認証・認証要素(Active Factor/Passive Factor)とAdaptive Authenticationについて
        • シングルサインオンとは
        • APIセキュリティと委任(WS-Trust vs OAuth2.0)
        • UXについて(Discovery時のNASCAR問題、同意取得、プロファイル管理、登録やリカバリのセルフサービス化など)
      • 最後にSteve HutchinsonがAdmin-TimeとRun-Timeを合わせて全体像を語る、と言う締め

  • Modern Identity for Developers 101 by Vittorio Bertocci
    • 言わずと知れたVittorioのセッション
    • 旧来のIdentityシステムからモダンなアーキテクチャへの移り変わってきた理由をわかりやすく解説
      • 旧来はネットワーク境界の中にシステムがあり、各システムがアイデンティティ関連の機能(ユーザーストア、認証機能など)を持っていた
      • その後、複数のシステムを横断的に使いたい、と言う要望に答えてディレクトリシステムやKerberosなどネットワークレイヤに近い層でシングルサインオンを実現
      • しかしクラウドやB2Bなどネットワークの境界を超える必要が出てきたので、Federationテクノロジーが必要になってきた(モダン・アイデンティティの世界)
    • Developer向けのセッションなので、モダン・アイデンティティの世界を支える各種要素(Identity ProviderやRelying Party、id_token、access_tokenとセッション管理など)の基本的な考え方を実際のデモ(Auth0とASP.NET Coreアプリ)をFiddlerでトレースしながら解説

  • Google master class: Enabling BeyondCorp in your organization today by Google
    • ベンダーセッションなので製品・サービスに特化した解説
    • Vittorioのセッションでもあった通り、もはやネットワーク境界がセキュリティの境界となり得ない世界(Identity is the new perimeter)となってきているので、VPNやFirewallではなくアイデンティティ・アクセス管理とデバイス管理を統合的に行うことでセキュアな世界を作りましょう、と言うのがBeyondCorpの基本的な考え方
    • Identity、Context、Rules Engine、Enforcement pointを経てアプリケーションやデータへ到達できる、と言う流れ(以下、概要)
      • Identity : 利用者のアイデンティティ。Cloud Identityが該当
      • Context : 利用者がどのような状態なのか(デバイス状態やネットワーク)。Device Trustの設定など
      • Rules Engine : IdentityとContextに応じて必要な認証や認可ポリシーを判断するためのエンジン。Access Control Managerで設定
      • Enforcement point : 判断結果の応じたポリシーを実行する。Cloud IAP、Cloud IAM、VPC Service Controlなどで対象システムやAPIに応じて制御を行う
    • 最後にデモとして特定のバージョン以上のMacOSからでないとGmailが開けなくなる、と言うようなシナリオを紹介

  • US Army: The secrets of a Successful ABAC Deployment by Accenture Federal Service, NextLabs
    • 事例セッション
    • US ArmyのSAPシステムの権限管理をNextLabsのソリューションを使ってABACで最適化したよ、と言う話
    • ABACの基本的な考え方はNIST SP800-162の通り。XACMLベースです。
    • やりたいことはRealtime SoD、Realtime continues authentication/Risk-aware authorization
    • ベストプラクティスは以下の通り
      • 属性のクオリティは大事
      • ポリシーは100個以下におさめて再利用可能な設計をすること
      • RBACとABACは共存できる
    • US ArmyではNextLabsのソリューションを使い、SAPの標準の権限管理のさらに上位のレイヤーで権限管理を行った
    • 最終的にはこんな感じ
      • 権限管理に使った属性は5つ未満
      • ポリシーは10〜20個の間
      • 属性はGRCで管理

  • Decentralized Identity: Intersection of Identity and Distributed Ledger by Microsoft
    • マイクロソフトによるDIDのオーバービュー
    • 今日のアイデンティティに関する3つの課題
      • Too many passwords
      • Data ownership, privacy
      • Data oversharing
    • DLTはこれらの課題を解決できるのか?と言う問いに答えるのが、Identityと分散台帳をとり持つDecentralized Identity
    • DID AuthやVerifiable Credentialsを使うことである程度上記の課題が解決できそう。MSも最近IONを出したよ
    • しかし残課題として、UXやRP側から見たExperienceの改善や、アカウントリカバリーや鍵のローテーションの問題があるので、頑張って対応していく
    • そして、DIDはPIIなのか?という話も今後議論されていく問題。。。

  • Delivering a Trusted Digital Identity System by Mastercard
    • この辺りになると疲労度マックスなのであまり頭に入ってこなかったです。。。
    • 金融機関と言うよりテック企業になってきていて、デジタル空間での信頼を従来の社会と同様に作っていく、と言う話。
    • マスターカードのロゴのオレンジの丸は信頼を表している?と言うような話をしていた気がします
  • Throwing away the Clipboard : Digital Identity & Blockchain for Healthcare by Aetna, TrustedKey
    • 医療に関連する情報のポータビリティをTrustedKeyを使って実現しよう、と言う話(ただし、電子カルテの代わりになったり、ブロックチェーン上に医療履歴を載せようと言う話ではない)
    • 解決したい課題はユーザの利便性。
      • 保険証や本人確認書類を何度も提示しないといけない状態を解消したい。実際の医療行為を受けている時間より手続きを待っている時間の方が長いのは勘弁してほしい。
        • 医者に行く前のオンライン予約
        • 病院の受付
        • 薬局の受付
        • 医療履歴を管理するWebサイトへの登録
    • 医療機関、薬局などがIdentity Issuerとなり、TrustedKeyの提供するウォレットに情報をストア(ブロックチェーンベース)
    • 各種機関やオンラインサービスへQRコードを使って情報を提示することでUXを改善できる

  • Fastfed - A new standard to make SSO easy by AWS
    • OpenID FoundationのFastFed WGの発表
    • 現状、SSOを有効化しようとすると、IdP側に設定をした値をコピーしてRP側に設定、RP側の設定結果をIdP側にまたコピーして、、と言う流れになり非常に煩雑
    • FastFed WGでは設定や属性マッピングの自動化を行うための標準を検討している
    • AWSへのSSOをGoogle IdPで実施するデモを披露
      • AWSコンソールからGoogleアカウントを入れるだけで自動ディスカバリ〜自動設定が行われる
    • 個人的に非常に期待しているWGだったりするので、本格的に実装されてくるのが楽しみです
  • Self Sovereign OpenID Connect - a ToDo List by Nat Sakimura
    • 米国OpenID Foundationの理事長である崎村さんのセッション。
    • Self Sovereignってみんな騒いでるけど、ブロックチェーン=Self Sovereignじゃないよ、OpenID Connectでもいいよ、と言う話
    • モデルとしては、こんな感じ
      • SIOPを中心とした世界観
      • CP(Claims Provider)とIdP(SIOP)を明確に分離して、間をAggregated ClaimとかDistributed Claimで繋ぐ
    • ただ、まだまだやることもあって、以下がToDo List
      • SIOPを簡単にCPへレジストレーションできる仕組み(Dynamic Client Registration)
      • SIOPが発行するSelf IssuedなIdentifier(公開鍵のハッシュ)とCPの属性のバインディングの方法
      • 過去に遡った署名の管理(ブロックチェーンの出番かも)
      • 鍵のリカバリの仕組み
      • SIOPがオフラインでもRPが属性を取得できる仕組み
        • 基本的な考え方はDistributed Claimの利用。RPが直接CPへ問い合わせできる
      • SIOPのアドレスの解決
        • ブラウザ設定とリクエストヘッダーで解決できるような仕組みが良いのではないか?



とりあえず初日はこんなところです。


ちなみにワシントンDCの街中は結構坂もあるので、電動スクーターや電動自転車のシェアリングサービスがそこら中にあります。以前はカーシェアだけしかやっていなかったLyftがスクーターに手を出したりしていてまさにMaaS元年って感じなのかも知れません。(写真はBird)

2019年6月18日火曜日

Sign In with Apple連携その後。続々とIDaaSと連携~Auth0編

こんにちは、富士榮です。

前回のポストでAzure AD B2CとのApple ID連携を紹介しましたが、その後も各社が情報を出してきているのでUpdateしておきます。
やっぱりApple ID強いですね。

各社公式記事


特にAuth0はカスタムコネクションではなく、ベータ版ながらもビルトインでの接続を早くも出してきています。

話は変わりますが、先日のAuth0のCEOのEuginioさんが来日された時に発表されたLINE Loginとの連携についても早くビルトインで繋げられるようになればいいですね。

現状LINE Login連携はカスタムコネクションで実装する必要があるので、今すぐつなぎたい人はこちらで。


と、話を元に戻します。
今回はAuth0のビルトインコネクションでのApple Id連携を試してみます。

◆コネクションの有効化~設定

ダッシュボードを開き、ConnectionsよりSocialを選ぶとApple[BETA]が出てきますので、このスイッチをONにします。

続いて、前回Azure AD B2Cに設定したのと同様にclient idなどのApple側の値を設定していきます。
設定するのは、
  • Client ID
  • Client Secret Signing Key
  • Apple Team ID
  • Key ID
  • 取得する属性(名前、メールアドレス)※要するにscopeにnameとemailがつきます(なんだかうまく動いていない気がします)
ポイントはAppleからダウンロードした秘密鍵を張り付けるだけでclient secretを自前で生成しなくて済むのが非常に便利です。




設定が終わってSAVEをするとTRYボタンが現れるので、クリックすると設定が上手く行っているか実際にログインして確認が出来ます。



「It Works!」が出ればOKです。

◆実際のアプリケーションに組み込む

Auth0のダッシュボードからアプリケーションを作成し、Connectionsタブを開くと先ほど設定したAppleが出てきますのでスイッチをONにします。※今回は昔作ったアプリケーションを流用していますので、アプリケーション名が変ですw


これで設定は終わりです。
実際のアプリケーションへアクセスするとAuth0のログイン画面が表示され、その中にAppleが出てくれば成功です。
※ちなみに上2つはカスタムコネクションで設定したLINE LoginとApple Id連携で、今回設定したApple Id連携は一番下のボタンです。


まだ属性の取得周りなど上手く動いていなさそうなところもありますが、今後ブラッシュアップされてくると思うので、期待しておきたいと思います。

2019年6月10日月曜日

Sign In with AppleとのID連携現状のまとめ&Azure AD B2C連携

こんにちは、富士榮です。

WWDC'19でSign In with Appleが発表されてから皆Apple IDに夢中※1ですね。まぁ、アプリのレビューガイドライン問題※2とか色々とありますが、日本人は不思議とiPhoneが大好きなので下手したらGoogleアカウントより普及してるのかもしれません。(パスワードを覚えているかどうかは別でしょうけど)

※1.今日(6/9)時点で私が把握しているSign In with Apple関係の記事


※2.問題の概要
「サードパーティログイン採用のアプリはSign In with Appleを使うことを義務付ける」というレビューガイドラインが出たこと。Apple曰く、Relyingパーティに一切の個人情報を提供せずに認証だけを行うことができるためプライバシーに考慮している、という言いっぷりですが、逆にAppleが誰がどのアプリにログインしているかを把握するってこと?という気持ち悪い感じになっています。また、アプリ開発者はSign In with Appleを実装しなきゃダメ、という変な強権発動も流石Apple、という感じです。(個人の感想)


とは言え、Sign In with Appleが世の中に出てきたのでとりあえず色々とつないでみたくなります。私もAzure AD B2CとAuth0にはとりあえず繋いでみました。

というわけで、今回はAzure AD B2Cとのつなぎ方を解説します。
(先に書いた英語版のblogの日本語訳です)

********************
WWDC'19でアップルが「Sign In with Apple」という機能を公表しました。このポストではこの新しい機能をどうやってAzure AD B2Cで使うかを説明したいと思います。もちろん、この機能をIdentity Experience Framework(カスタムポリシー)を使って構成することもできますが、今回はビルトインポリシーのOpenID Connect IdP連携の機能(Preview)を使って構成します。


最初にどのような動きになるのかビデオに撮ってみました。



前提事項

  • アップル開発者アカウント(最低1年のサブスクリプション契約が必要)
  • Azure Active Directory B2Cのテナント
  • Azure WebApps等のWebホスティングサービス(Metadataのアップロード用)

アップル開発者コンソールでクライアントを構成する

「Sign In with Apple」はOAuth/OpenID Connect的な仕組みを採用しています(完全にプロトコルに準拠している訳ではなさそうですが)。そのため、それらのプロトコルに慣れ親しんでいる方であれば、実装するのはそれほど難しい話ではありません。

アップル管理者コンソールでOAuth/OIDCのクライアントを作成することが出来ます。手順については先に紹介したOktaのブログを参考にしました。とても良いブログだと思います。
https://developer.okta.com/blog/2019/06/04/what-the-heck-is-sign-in-with-apple

構成するための手順は以下の通りです。
  1. Sign In with Appleを有効にしてApp Idを登録する
  2. Service Idを登録する(これがclient_idとして使われます)
    • ドメインの所有権を確認する
    • redirect_uriを構成する
  3. Sign In with Appleで利用する鍵を登録する
  4. 登録した鍵をダウンロードして署名付きJWTを作る(これがclient_secretとして使われます)

Azure AD B2C上のIdentity Providerを構成する

Azure AD B2CでIdentity Providerを構成する前に、Apple Idに関するディスカバリ・ドキュメント(metadata)を作っておく必要があります。なぜなら、Appleは現在のところmetadata(/.well-known/openid-configuration)を公開していないためです。

私はAzure WebApps上に作成したmetadataを公開しましたが、任意のWebサービスを使うことが可能です。

Azure AD B2CのビルトインのOpenID ConnectのIdPを構成する際、metadataには以下の情報を記載する必要があります。
  • Issuer
  • Authorization Endpoint
  • Token Endpoint
  • Jwks Endpoint
また、metadataを公開するURIは./well-known/openid-configurationで終わっている必要があります。

こちらが作成したmetadataです。

さて、これでAzure AD B2Cのコンソールからビルトインポリシーを構成する準備が整いました。

新しいIdentity Providerを追加する。

OpenID Connect(preview)を選択する


metadata uri、client_id、client_secretを設定する。


sub属性を必須とされている属性へマッピングします。現状、Appleは名前やメールアドレスをid_tokenの中に含めて返してこないのでsub(pairwiseな値)しか使えません。

作成したIdPを利用する様にUser Flow(ポリシー)を構成する

Azure AD B2Cのコンソールでの最後のステップはUser Flowを構成することです。今回はSign In and Sign Up(v2)のポリシーテンプレートでApple IdPを使う様にフローを構成しました。

アプリケーションへ渡すための属性フローを構成します。


これで設定はおしまいです。

Azure AD B2Cに登録したアプリケーションから作成したポリシーを指定してID連携をすればApple Idでのログインが出来るようになっているはずです。


********************

と、言うことでまずはAzure AD B2Cでの構成方法を紹介しましたが、Auth0など他のものへの組込みについても解説できればと思います。(既に他の方も紹介されていますが)