2017年12月16日土曜日

疑似指紋とWindows Helloを対決させてみた ~パート2

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

先日、疑似指紋でWindows Helloの指紋認証を突破できるか?を試してみて結果惨敗したんですが、別の指紋認証デバイスを入手したので、再度対決させてみました。

結果、「突破できました!!!

今回試したのは、PQI JapanのMy Lockeyです。FIDOのUAFにも対応している優れモノです。以下の画像をクリックするとAmazonの商品ページへ飛びます。


Amazonで4290円で売っています。

大きさなどはMouse Computerのヤツより若干大きいくらいですが、仕上げはMy Lockeyの方が高級感があります。


感度はMy Lockeyの方が格段にいいです。

Macbook Airに挿すとこんな感じです。指紋認証するときにMagsafeがかなりの確率で外れます。



まぁ、良し悪しはおいておいて、指紋がない人とかには有効なんじゃないでしょうか。

2017年12月15日金曜日

[告知]JASA定例研究会でID管理システム導入チェックリストについてお話します

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

年明け2018年1月18日に開催されるJASA定例研究会(月例セミナ)で、先日JNSAのID管理WGでリリースしたID管理システム導入チェックリストについて解説させていただきます。


JASA定例研究会)
 エンタープライズにおけるID管理のあるべき姿
 ~ID管理システム導入チェックリストを活用した体系的管理~
 http://www.jasa.jp/seminar/monthly_seminar.html?year=2017&seminar_id=37


内容としては、ID管理WGのリーダー宮川さんよりエンタープライズにおけるID管理のあるべき姿についてお話いただき、私からチェックリストを作成した背景、目的、使い方などについて詳しく解説させていただこうと思います。

私も皆様のご意見をいただきながらチェックリストを上手く育てていきたいと思いますので、是非ともご参加いただき、意見交換などが出来ればと思っています。

2017年12月6日水曜日

FirefoxにSAML Tracerが復活

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

先日のFirefoxの更新で使えなくなっていたSAML Tracerが12/3に更新され、新しいFirefoxでも使えるようになりました。祝!復活!

更新されると、ブラウザのメニューバーにアイコンが出るようになりました。

アドオンを確認すると12/3に更新されたことがわかります。


これでSAMLのトレース・デバッグも楽々です。一安心。


2017年12月5日火曜日

[告知]AXIES(大学ICT推進協議会)年次大会でAzure AD B2Cの話をします

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

またまた登録締め切りが過ぎてしまった話なのですが、広島で来週12/13~15に開催されるAXIES(大学ICT推進協議会)の2017年度年次大会の認証連携部会の企画セッションで大学におけるSNS IDの活用についてお話しさせていただきます。(私は12/13が出番です)

AXIES年次大会
https://axies.jp/ja/conf/conf2017

セッションテーマは、「認証システムの利用対象者拡張:在学生・在職教職員を越えて」ということで、SNSを上手く使って在学生、教職員以外の入学候補生や保護者、卒業生などに対してどのように大学がシステムやサービスの提供をしていくか?についてAzure AD B2C + LINEを例に解説させていただく予定です。

一緒に登壇するのが、慶応義塾大学の細川先生、信州大学の鈴木先生、東京大学(今回は学認の顔みたいですが)の佐藤先生という錚々たるメンバなので緊張しまくりです・・・

これで年内は最後の登壇となりますが、既に年明けのイベント登壇予定が3つ決まっているという。。。まだまだハードな日々は続きそうです。

2017年12月4日月曜日

[Azure AD B2B]ゲストユーザに使用条件(Terms of Use)への同意を求める

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

前回はAzure AD B2Bを使って外部ユーザを招待し、組織のアプリケーションを利用させる方法を紹介しました。

しかし、ゲストユーザを招待する際に、利用規約や使用条件などへの同意を取得したいケースが多々あると思います。

そこで、今回は現在Preview版が公開されている条件付きアクセスのTOU(Terms of Use)を使い、ゲストユーザがアプリケーションへアクセスする前に使用条件へ同意を求める、ということを実現していきます。

手順は以下の通りです。

  1. Terms of Useを定義する
  2. 自動的に条件付きアクセスのポリシーが生成されるので、適用対象をゲストユーザに絞る
  3. ゲストを招待、アプリケーションへアクセスさせる

◆設定してみる

早速やってみましょう。

まずは、条件付きアクセスの設定を開くとTerms of Useの設定が出来るようになっていますので、開きます。

Newをクリックして使用条件を定義します。

名称、表示名、使用条件として表示するドキュメント(PDF)、言語を設定します。また、ちゃんとドキュメントを表示させないと先に進まない様にするための設定、および自動的に条件付きアクセスのポリシーを作成させるための設定を行います。

尚、自動的にポリシー作成をさせるとゲスト以外を含む全ユーザ、全アプリケーションに対するポリシーがいきなり有効な状態で出来上がってしまうので、要注意です。ポリシーは自動作成はせずに手動の方が良いかも知れません。

ここでは自動で出来上がったポリシーを見ていきます。
条件の部分で先ほど作成したTOUが出てきています。

全員に適用されてしまっていたので、ゲストユーザだけに適用する様に変更します。All Guestという動的グループを作成してゲストユーザだけがメンバ登録されるようにしてあるので、こちらを使います。


これで、ゲストユーザだけがTOUに同意しないとアプリケーションにアクセスできない様になりました。

◆アクセスしてみる

前回の手順に則り、外部ユーザでサインアップしアプリケーションへアクセスしようとするとTOUが表示されます。


TOUを展開すると先ほどアップロードしたPDFが表示されます。



尚、一回同意すると同意済みとしてマークされるので、次回以降は同意は求められることはありません。

また同意状況については監査ログから確認することが出来ます。


Azure AD B2Bと条件付きアクセスを上手く使って外部ユーザの管理をしっかりしていきましょう。

2017年12月1日金曜日

疑似指紋とWindows Helloを対決させてみた

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

まもなく冬がやってくる、ということで疑似指紋が話題ですね。

これからの季節にピッタリ!手袋をしたままiPhoneで指紋認証ができる「疑似指紋 Diper ID」が便利 - Engadget日本語版
http://japanese.engadget.com/2017/11/24/iphone-diper-id/ 


話題になるのと同時に当然ですが、なんだか香ばしい感じもしますが・・・。ポイントは3万パターン(も?しか?)あることと、あくまで疑似指紋なので自分の指紋のコピーを作るわけじゃない、というあたりらしいです。

ということでとりあえず近所のロフトで買ってきました。


1パッケージに3枚入っていて1580円(税別)という微妙な値付けです。

Touch IDに特化した、とありますが今回はWindows Helloを対決してみたいと思います。

試してみたのは、

  • Surface Pro4の指紋センサー付きType Coverキーボード
  • マウスコンピュータのUSB指紋リーダー
の2つです。

マウスコンピュータのやつはこれですね。



結論から言うと、ダメでした。

2017/12/16続報。別の指紋センサーで試したら突破できました。
http://idmlab.eidentity.jp/2017/12/windows-hello_16.html

指紋センサー付きType CoverではWindows Helloへの指紋登録までは何とか出来るのですが、いざログインしてみようとすると上手く認識をしてくれませんし、マウスコンピュータの方は指紋登録の段階でうまく認識してくれませんでした。
もしかして単純に向きが悪かっただけなのかも知れませんが、iPhoneのTouch IDでは全然問題なく使えるので、やはり「Touch IDに特化」というのはあながち嘘ではないのかも知れません。


とりあえず対決の記録を残しておきます。

まずは開封の儀です。
開封すると台紙に3枚の疑似指紋シールが入っています。

でっぱりがある方を先端にして手袋などに張り付けます。


まずは、Surface Pro4+Type Coverです。
Windows Helloの設定で指紋を登録していきます。認識率はあまり良くないものの何度もリトライしつつ指紋登録を完了することが出来ました。



登録が出来たので、早速ログインをしてみます。

うーむ。全然認識してくれずリトライ回数オーバーです。



次にマウスコンピュータの指紋センサーです。
こちらはUSBタイプでPCの横に飛び出る感じになりますので、ここをタッチしてみます。

全く反応しません・・・・


素手だとちゃんと反応するので、センサーが悪いわけじゃなさそうです。



と、言うことで疑似指紋 vs Windows Helloの対決結果は「Windows Helloの圧勝!」ということでした。残念。

2017年11月29日水曜日

[Azure AD B2B]アプリケーション管理者によるゲストユーザの招待

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

Azure Active Directoryには無印(いわゆるAzure AD)の他に、

  • 組織外のユーザ向けのAzure AD B2B
  • コンシューマ向けのAzure AD B2C

と言われるオプションというか機能があります。

Azure AD B2CについてはTech Summitなどでお話しさせていただいたり、このブログでも取り上げてきたLINEやYahoo! JAPANなどのIDを使ったサービスへのログインの話ですが、今回はAzure AD B2Bの話です。

実はOffice365を使っている方は以前からAzure AD B2Bの機能を使っていました。いわゆる外部共有(招待)の機能の事です。

この機能を使うと組織のディレクトリ内に存在しない人を招待してゲストユーザとしてディレクトリへ登録し、組織のリソース(アプリケーションなど)へアクセスさせることが可能になります。

注意して使わないと危ないよ、という話は以前書かせていただいた通りですので、一読いただけるとよいと思います。

Office365管理者は要対応。外部共有により不要なアクセス権が付与される
http://idmlab.eidentity.jp/2017/01/office365.html


本日は、Office365ではないアプリケーションを外部ユーザへ共有したい、という場合のAzure AD B2Bの使い方を紹介したいと思います。

具体的には、

  • 外部のコンサルや開発ベンダのアカウントをアプリケーションを使わせたい
  • アプリケーションのSSOを構成するとAzure ADで全員を認証しないといけなくなってしまい、全ユーザがAzure AD上に登録されている必要がある
  • 外部ユーザのID管理を管理者が行うのは面倒なので、責任範囲を明確にする意味でも当該のアプリケーションの管理者に権限委譲をしたい(Azure ADの管理者権限は渡さずに)

というようなケースを想定した使い方です。

早速やってみたいと思います。

◆必要なステップ

全体の流れとして、以下のステップで準備を行う必要があります。

  1. [全体]招待するユーザを入れるためのセキュリティ・グループの作成
  2. [全体]セルフサービスグループ管理の有効化
  3. [アプリケーション単位]セルフサービスアクセス要求の有効化
  4. [アプリケーション単位]セキュリティ・グループの割り当て
後は、アプリケーション管理者でアクセスパネルから外部ユーザを招待するとメールで招待が行き、外部ユーザがサインアップしてアプリケーションが使えるようになります。

◆設定してみる

では、早速やってみましょう。


1.[全体]招待するユーザを入れるためのセキュリティ・グループの作成


手動でメンバ管理を行うグループを作成します。


2.[全体]セルフサービスグループ管理の有効化


次に、ディレクトリのセルフサービス設定で、グループ管理を有効化します。(無効の場合は有効にします)


3.[アプリケーション単位]セルフサービスアクセス要求の有効化

次はゲストに使わせたいアプリケーションの設定で、セルフサービスアクセス要求と承認の設定を行います。ここで承認者として設定した人がアプリケーション管理者となり、ゲストを招待することが出来るようになります。


4.[アプリケーション単位]セキュリティ・グループの割り当て

後は、3で指定したグループをアプリケーションへ割り当てます。


これで準備は完了です。割とシンプルですね。

◆招待しゲストにアクセスさせる

では、早速動かしてみましょう。

まずは、アプリケーション管理者でアクセスパネル(https://myapps.microsoft.com)を開き、ゲストに使わせたいアプリケーションを選択して「アプリの管理」を開きます。


するとアプリケーションへユーザを追加することが出来るようになっているので、「+」をクリックしてゲストを招待します。

外部ユーザのメールアドレスを入力すると招待メールの文面を入れる画面が自動的に出てきますので、何かメッセージを入れて招待を行います。


これで外部ユーザには招待メールが届きます。


「はじめに」というリンクをクリックするとサインアップ画面へ遷移します。

パスワード、表示名、国を指定してゲストユーザ登録を完了します。

メールへ確認コードが飛んでくるので確認画面で入力してアカウント確認を行います。

登録が完了すると登録したパスワードで認証が走り、アクセスパネルが表示され、アプリケーションが利用できるようになります。


今回は、アプリケーション管理者により外部ユーザをAzure AD上に招待することにより少なくとも認証は全員Azure ADを使う様に構成することが出来ました。このことで条件付きアクセスなど、アプリケーション利用ポリシーをAzure ADで一括で管理することが出来るので、セキュリティ面でも安心できると思います。

ちなみに、管理者によりゲストユーザを作成したり招待することも可能ですし、APIを使って一括で外部のディレクトリからユーザを引き込む、というようなことも可能です。(大規模なM&Aや業務提携などの場合はカスタムアプリケーションを作って自動同期をするように構成することが多いようです)




2017年11月27日月曜日

[AD FS]ログイン画面をAzure ADの新UIライクにカスタマイズする

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

Azure Active Directoryのサインイン画面が新しいUIに変わったのに、AD FSはいつまでも昔のままというのは微妙だよね、ということでAD FSのログインUIをAzure ADに合わせるカスタムCSSが公開されています。

Using an Azure AD UX Web Theme in Active Directory Federation Services
https://docs.microsoft.com/en-us/windows-server/identity/ad-fs/operations/azure-ux-web-theme-in-ad-fs

早速試した先人のblog
https://msfreaks.wordpress.com/2017/11/19/adfs-new-sign-in-experience-added/

このドキュメントに従いgithubよりCSSをダウンロードし、AD FSのカスタムテーマを設定してみたいと思います。(Windows Server 2016のAD FS用、とありますが、2012R2でもちゃんと動いています。他のバージョンは試してませんが)

まずは旧UIです。お馴染みですね。

ちなみに、bingの画像をとってきて自動的にログイン画面の背景に使う、というスクリプトが公開されているので、こちらを使っています。

Automated Bing Wallpaper for ADFS 3.0 Themes
https://gallery.technet.microsoft.com/Automated-Bing-Wallpaper-c34136eb

先の手順に従ってカスタムテーマを設定していきます。
まずは、DefaultテーマのExportを行います。ちなみにこの手順が先のサイトでは省略されているのですが、必ず必要なので実施をしてください。この手順を飛ばすとonLoad.jsがないので背景が設定されません。

Export-AdfsWebTheme -Name Default -DirectoryPath C:\Style\default


次に、カスタムテーマを作成します。
必要なCSSや画像がダウンロード済みなことを確認し、以下を実行します。

New-AdfsWebTheme -Name custom -StyleSheet @{path="c:\style\ThemeCenterBrand.css"} -Illustration @{path="C:\Style\bing.png"} -AdditionalFileResource @{Uri='/adfs/portal/script/onload.js';path="c:\style\default\script\onload.js"}


後は、テーマを有効化すればOKです。

Set-AdfsWebConfig -ActiveThemeName custom


こんな感じになります。



ロゴなんかも変えるとこんなこともできますね。
カークとラーズが隠れてしまってますが・・・



2017年11月22日水曜日

LINEログインとBotの自動リンク機能が一般公開

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

先日のLINE Developer Dayで発表されたLINEログインとBotの自動リンク機能がいよいよ一般公開されました。
また、同時にBotとユーザの友だち関係が取得できるAPIも同時に公開されているため、従来Webhookでfollow/unfollowのイベントを取得して保存して状態を管理しておかなければならなかったのがリアルタイムに状態把握が出来るようになり、Bot開発者はとっても楽になりました。

LINEログインチャネルにボットをリンクできるようになりました
https://developers.line.me/ja/news/#link-your-bot-to-your-line-login-channel-2017-11-21

それぞれ動作イメージです。

◆LINEログインとBotの自動リンク

基本は以前紹介したエントリと変わりませんが、DeveloperコンソールからリンクするBotを自分で設定できるようになりました。


チャネル内にLINEログインとMessaging APIを作成、LINEログインのチャネル設定からリンクするBot(Messaging API)を設定します。

この設定をして、LINEログインをすると認可画面でBotを友だち追加する許可が表示されます。



尚、この機能を使うには、前提事項がありますので、注意が必要です。

  • LINEログインのversion 2.1を使うこと
  • アプリケーションタイプがWebであること
  • 同一プロバイダ内にBotがあること


◆友だち関係の状態を取得する

もう一つが、最新の友だち関係の状態を取得するAPIです。
2つ方法があります。

  • 認可コードを取得する際にCallback URLへcodeとともに返ってくる「friendship_status_changed」の値を見る(状態の変化の有無の確認)
  • 状態取得用API(Social API)エンドポイントをGETする


2つ目のSocial APIエンドポイントへアクセスして状態確認をするのが一番任意のタイミングで確認できるので便利かも知れません。

Social API
https://api.line.me/friendship/v1/status

クエリ方法は単純でAuthronizationヘッダにaccess_tokenをつけてGETするだけです。
trueが返ってくれば友だち、falseだと友だちではないかBlockしている状態です。


さてさて、早速Azure AD B2Cとの連携モジュールを少し改修して便利にしていかなきゃ、と思います。

Firefoxの更新でSAML Tracerアドオンが利用不可に・・・

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

Firefoxのバージョンが上がりましたね。スクリーンショットが撮れたりするのは良いんですが、SAML Tracerなどのアドオンが使えなくなってしまったのは全国3000万のSAMLerの皆さんには受け入れがたい事実です。


※2017/12/6続報。対応バージョンが出ました。一安心。
 http://idmlab.eidentity.jp/2017/12/firefoxsaml-tracer.html

仕方がないので別のアドオンを探してみると、SAML Message Decoderというモノがあったので早速入れてみます。


インストールすると、メニューバーにアドオンが追加されるので、早速SAMLを使っているサイトへアクセスします。
アイコンを右クリックするとExport messagesというメニューが出てくるので、ここをクリックしてトレースデータをExportするようです。
SAML Tracerのようにリアルタイムでトレースが見れないのが非常に残念です。


Exportしたファイルはjson形式で保存されるのでエディタなどで開くと確かにメッセージが表示されています。。。



決して見やすいとは言えないですね。。。
SAML Tracerのバージョンアップに期待しておきましょう。

2017年11月10日金曜日

Tech Summit で使った Azure AD B2C + LINE チュートリアル

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

Tech Summitが終わりましたね。
私は先に告知させていただいた通り、Azure Active Directory B2C と LINE の連携の話をさせていただきました。

[告知] Tech Summit 2017で Azure AD B2C+LINE、Yahoo! ID辺りの話をします
http://idmlab.eidentity.jp/2017/10/tech-summit-2017-azure-ad-b2clineyahoo.html


セッションの動画公開は行わない予定ですが、資料は来週以降に公開されるそうなので、その時はまたお知らせしますが、ここではセッション内でお見せしたデモ環境をご自身で作っていただくためのチュートリアルを紹介します。

Azure AD B2C + LINE連携 / チュートリアル
https://github.com/fujie/ts2017

置いてあるのは、
・手順:readme.md
・ポリシーテンプレート:policy_template_base.xml、policy_template_susi.xml
・テスト用アプリケーション:test.php
です。

基本的には手順に従って作業をしてもらえればとりあえずLINEでテストアプリケーションへログインできるようになりますので、一度試してみてください。

2017年11月8日水曜日

[Office365+AD FS管理者向け] Azure ADのエンドポイント追加による可用性の向上

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

Azure AD単体(要はクラウド認証)でOffice365を使っている人には関係ありませんが、AD FSやサードパーティのIdPを使ってOffice365やAzure AD連携されたアプリケーションを使っている人は、近々エンドポイント追加の作業が必要になりそうです。
公式アナウンス)New Azure Active Directory resilience features: action required
https://cloudblogs.microsoft.com/enterprisemobility/2017/10/27/new-azure-active-directory-resilience-features-action-required/

正式なアナウンスは追ってあるようですが、要するに可用性を向上するためにAzure ADのACS(Assertion Consumer Service)のエンドポイントが増えたので、AD FSとかサードパーティのIdPでOffice365やAzure ADを使っている人は対応してね、ということらしいです。
※ちなみに、Azure AD ConnectでAD FSを構成している人は自動的に構成が変更されるみたいです。

こちらが変更までのAD FSの構成です。

手動で追加する場合はPowerShellで一括で登録することもできますし、この画面で追加しても大丈夫です。
一括追加のスクリプトは以下の通りです。
$rp = Get-AdfsRelyingPartyTrust -Identifier urn:federation:MicrosoftOnline
$endpoints = New-Object System.Collections.ArrayList
if ( $rp.AdditionalWSFedEndpoint ) { $rp.AdditionalWSFedEndpoint | %{$endpoints.add($_)} }
$endpoints.add("https://stamp2.login.microsoftonline.com/login.srf")
$endpoints.add("https://ccs.login.microsoftonline.com/ccs/login.srf")
$endpoints.add("https://ccs-sdf.login.microsoftonline.com/ccs/login.srf")
set-adfsrelyingpartytrust -targetname $rp.Name -AdditionalWSFedEndpoint $endpoints


結果、こんな感じになります。


尚、Azure ADと外部IdPを連携する際のsp-metadataを見るとまだ上記のエンドポイントは記載されていないのですが、今後は追加されてくるのかも知れませんね。

参考)Azure ADのsp-metadata
https://nexus.microsoftonline-p.com/federationmetadata/saml20/federationmetadata.xml