2017年9月28日木曜日

#linedevday 参加!LINE LoginがOpenID Connect対応したので早速試す

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

本日はLINE Developer Day 2017にお邪魔して来ました。

大盛況でした。
先日プレス発表させていただいた通り、最近はエンタープライズからコンシューマまで、と仕事の幅が広がっておりまして、その中でもLINEはやはり外せないのでちょっと場違いな感じがしつつもがっつりと朝から晩まで参加させてもらいました。

先日のプレス関係
 [リリース]LINE/Yahoo! IDを使ってOffice365へのログインを便利にする
 http://idmlab.eidentity.jp/2017/09/lineyahoo-idoffice365.html


先日のJICSでもお世話になった御代田さんの話を含め個人的な注目ポイントは、

  • LINE LoginがOpenID Connectに対応
  • 2018年春を目途に2要素認証とQRコードログインに対応
  • LINE LoginとBot連携(Botへの友達登録を認可に含められる)
  • LINE Login側でのセッション管理が可能に
  • Flexible Rich Menu APIでID連携状態の取得と動的なメニュー構成の変更

でした。

その中で取り敢えずLINE LoginのOpenID Connect対応とBot連携許可のあたりを試してみました。(Bot連携は特別にAPIを使えるように設定してもらいました)

ますはOpenID Connect対応です。例によってAzure WebAppsで簡単なアプリを書いて連携させてみています。

まずは仕様から。
ドキュメントはここにあります。
https://developers.line.me/en/docs/line-login/web/integrate-line-login/

API version 2まではOAuth2.0ベースでしたが、今回リリースされた2.1(刻むなぁ)からOpenID Connectベースとなったため、わざわざアクセストークンを取得してからProfileエンドポイントへ属性を取りに行かなくてもIDトークンに基本属性は入ってきてくれます。尚、メールアドレスや電話番号などこれまでパートナー向けのProfile APIでしか提供されなかった属性もIDトークンでは取得できるようになるようです。(現時点ではまだ取れません)

取り敢えずはcodeフローしか試していませんが、必要な情報は以下の通り。

  • Authorizeエンドポイント
    • https://access.line.me/oauth2/v2.1/authorize
  • Tokenエンドポイント
    • https://api.line.me/oauth2/v2.1/token
  • ClientID/Secret
  • Redirect Uri


若干エンドポイントに違和感が。。。v2.1って刻むなぁ、というあたりとAuthorizeエンドポイントとTokenエンドポイントのホスト名が異なるあたりががが。

ClientIDはLINE用語ではChannel ID、Client SecretはChannel secret、Redirect UriはCallback URLです。いずれもDeveloper Consoleで設定が確認できます。



尚、認可リクエストの際にbot_promptというパラメータをつけるとログインと同時にBotと連携することが出来ます。こんな感じのパラメータをつけてリクエストを書きました。
        'client_id'=>$client_id,
        'response_type'=>$response_type,
        'redirect_uri'=> $redirect_uri,
        'scope'=>'openid profile',
        'state'=>$state,
        'nonce'=>$nonce,
        'bot_prompt'=>'normal'

ちなみにbot_promptに'normal'を指定するとScope指定と同じような感じでBot連携を認可することが出来ますし、'aggressive'を指定すると認可後、Botとの連携許可画面が別途出てきます。



これまではLINE LoginとBot連携をしようとすると個別に友達追加をしないとダメでしたが、この拡張によりよりシームレスに連携が出来るようになりました。

ちなみにbot_promptをaggressiveにするとscope認可の後に友達追加画面が出ます。

※「ブロック解除」になっているのは、テストのため一旦友達になってからブロック~削除をしたためです。

取得できるIDトークンの中身はいたってオーソドックスで、従来のProfileエンドポイントで取得できたuserIDがsub、あとはdisplayNameとPictureUrlが取れるくらいです。



今後の話としては、discovery(well-known)やuserInfo(まぁ、Profileエンドポイントがあるので良いとは思いますが)がまだないので、実装するという話と、先に書いた通りメールや電話番号などの属性をIDトークンへ追加するあたりが予定されているということでした。OpenID FoundationのCertificationも目指すそうなので頑張って欲しいですね。






2017年9月20日水曜日

[FIM/MIM]Forefront Identity Managerのメインストリームサポートは2017年10月10日まで

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

そういえばForefront Identity Manager 2010/2010 R2/2010 R2 SP1のメインストリームがもうすぐ終了します。
https://blogs.technet.microsoft.com/iamsupport/2017/02/22/warning-forefront-identity-manager-fim-mainstream-support-is-ending-10102017/



まだFIMを使っている人もいないとは思いますが、まだの場合はMicrosoft Identity Managerへのアップデートが必要ですね。
MIMが出たての頃はアップデートするのにかなり苦労しましたが、最近はちゃんと設定関係の引継ぎもできるようになっているので、ぜひアップデートしましょう。

ちなみに拡張サポートは2022年10月11日までですが、バグフィックスなどの提供がベストエフォートになってしまいますので、自己責任運用になりますね。

ちなみに私の開発環境の一部がまだFIMなので・・・・面倒だけどこの際アップデートします。

2017年9月7日木曜日

[リリース]LINE/Yahoo! IDを使ってOffice365へのログインを便利にする

こんにちは、富士榮@北海道です。

たまにはお仕事の話です。

本日、Azure AD B2CとLINE、Yahoo! JAPAN IDを連携させるソリューションを雇用主よりプレス発表しました。

SNSアカウントを活用するシステムの構築サービスを開始
http://www.ctc-g.co.jp/news/press/20170906a.html

Impressさん、日経電子版などのメディアに取り上げていただけました。

IT Leaders
 http://it.impressbm.co.jp/articles/-/14950
日経電子版
 https://www.nikkei.com/article/DGXLRSP456311_W7A900C1000000/
クラウドWatch
 http://cloud.watch.impress.co.jp/docs/news/1079437.html

本日北海道大学で開催されたCloud Week 2017で、本件に関する講演を行いデモを含めお披露目をさせていただきました。



簡単に内容を説明すると、Azure AD B2Cをカスタマイズし、
・LINEやYahoo! JAPAN IDなどの日本でメジャーなIdPへの対応
・Office365やG SuiteなどSAMLアプリケーションへの対応
・Microsoft Graphを利用し、Office365に届く重要なメールをLINEへも通知
・個別、一斉でのSNSへのメッセージ配信
というような仕組みをくみ上げたサービスとなっています。



こんな感じです。

動いている姿は以下です。


こんな流れです。
1.LINEで友達になる
2.LINEメニューから組織の払い出したID/PWDでOffice365へログインする
3.LINE IDと紐づけを行う
4.重要なメールはLINEへも通知する様に設定する
5.LINE IDでOffice365へシングルサインオンする
6.Office365へ重要なメールが届くとLINEのタイムラインへも通知される


他にも、公衆無線Wifiへのユーザ登録の簡素化などにも使えます。WeChatなどの中国のSNSにも対応しているので観光客向けのサービスとして無線LANを提供するようなケースを想定しています。


公衆無線Wifiを使った不正行為やいたずらが増えてきているらしいので、サービスレベルの向上(登録の簡素化)と利用者への到達性、証跡の確保の両立をしたい場合などはうまく使ってもらえると思います。

追記)
Cloud Week 2017で使った資料を公開したので、張り付けておきます。



尚、今後は以下のイベントで詳細を説明していきますので、是非ご参加ください。
・9/15 Japan Identity & Cloud Summit 2017
 https://nosurrender.jp/jics2017/
・10/13 CTCフォーラム 2017
 https://www.event-site.info/ctcforum2017/
・11/08 Tech Summit 2017
 https://www.microsoft.com/ja-jp/events/techsummit/2017/
・12/13 AXIES年次総会
 URL未定

また、個別に仕組みが知りたい、という方はぜひご連絡ください!
(標準のAzure AD B2Cでは出来ないことを独自拡張でかなりカバーしているので)