Quantcast
Channel: IdM実験室
Viewing all 769 articles
Browse latest View live

日経ネットワークにAzure AD特集を寄稿しました

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

久しぶりの紙媒体です。
今週頭に発売された日経ネットワーク 2016年1月号でAzure Active Directory特集を書かせていただきました。

Azure ADの存在自体をご存じない方を含めターゲットにしているため、内容的には「Azure ADとは?」などの基礎的な部分から、実際にアプリケーションとのID連携(SSO/プロビジョニング)を行う方法のウォークスルーまで、と広く浅く10ページ程度でまとめています。

尚、日経ネットワークって書店ではほとんど扱っておらず、定期購読していない場合は、以下の直販サイトから購入できますので、よろしければどうぞ。

 日経ネットワーク 2016年1月号
 http://ec.nikkeibp.co.jp/item/backno/NN0189.html


以下、ゲラの編集中のイメージです。


MVP Renewal 7th!!

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

早いもので、ついに7年目に突入しました。
(ということはこのブログも、もうすぐ9年目に・・・)



先日のMVP Program Updateを受けて、今回からはEnterprise Mobilityという分野での受賞となりました。(Identity and AccessはEnterprise Mobilityへ属することになりました)

実は昨年夏のMicrosoft Identity Manager 2016(MIM)のリリースを前にForefront Identity Manager(FIM)のカテゴリはDirectory Servicesと統合されたので、2015年7月からはDirectory Services(DS)に変わっていたんですが、あっという間に分野の再編が行われてしましました。。。

思えば最初に受賞した時はIdentity Lifecycle Manager(ILM)、すぐにFIMへ名称変更、そしてDSからEnterprise Mobility、、と7年間でここまでカテゴリ名が変わった人もいないんじゃないか?と思う程に名前が変わっていますね。。。


昨年は仕事の面でもアイデンティティ(特にIDaaS)に特化した年でしたし、@IT日経ネットワークなどの各種媒体にIDaaS(Identity as a Service)に関する記事を公開したり、ID&IT Management ConferenceOpenID Summit TokyoAsia MVP/RD Meetupをはじめとした各種イベントでの登壇の機会を数多く頂いた年でした。

今年もIDaaSに関するこの活動はしばらく続く見込みなので、今年こそ日本における「IDaaS元年!」を目指して活動を継続していきたいと思います。

皆さま引き続きよろしくお願いいたします!!

[AAD Connect]特定のドメインコントローラからIDを同期する

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

Azure AD Connect(AAD Connect)を使ってオンプレミスのActive DirectoryからAzure Active Directory(Azure AD)へIDを同期する際、実環境においては同期元となるADドメイン上に複数のドメインコントローラが複数サイトに配置されている場合が多いと思います。

そのような場合、同期元とするドメインコントローラをある程度固定することでレプリケーションのタイムラグなどによる無用なトラブルを回避することが可能です。

※Forefront Identity Manager(FIM)やMicrosoft Identity Manager(MIM)を使っている方なら普通に行う設定ですが、AAD Connectについても考え方は同様で、正式にサポートされている方法です。


早速設定方法を見てみます。

◆AAD Connectの初期状態

複数ドメインコントローラが存在する環境にAAD Connectをインストールした状態です。
今回はds1-addsとds2-addsという2台のドメインコントローラを用意し、ds2-addsにAAD Connectを同居させているので、初期状態では自動的にds2-addsが同期元として選択されました。(基本的にネットワーク的に近い(ICMPのレスポンスが早い)サーバが自動選択される仕組みのはずです)

Synchronization Service Managerを開いて同期履歴を見ると使われたドメインコントローラがわかります。


AD DSの管理エージェントの設定の[Last used]を見ても確認できます。



◆同期元とするドメインコントローラを設定する

いよいよ同期元となるドメインコントローラを設定します。
同じくSynchronization Service ManagerのConnectorsメニューよりAD DS管理エージェントの設定を開き、[Only use preferred domain controllers]にチェックを入れ、[Configure]を開きます。


ここで使用するドメインコントローラのFQDNを入力・設定します。



この設定を行うことにより、設定したドメインコントローラからのみIDが同期されるようになります。

再度同期ジョブを流すと設定したドメインコントローラが使われることがわかります。



◆優先ドメインコントローラが停止している場合の動作

先に設定した状態だと、優先設定したドメインコントローラからのみしか同期が行われないため、設定したドメインコントローラが停止していると同期エラーが発生してしまいます。


この事態を回避するためにはPreferred DCに複数のドメインコントローラを設定するか、[Only use preferred domain controllers]のチェックを外しておきます。


こうすることで優先ドメインコントローラが停止していたら、他のドメインコントローラを使って同期ジョブが実行されるため、同期が停止することはありません。



まとめると、以下のような動作となりますので環境に応じて設定を変更してうまく運用していきましょう。
DC1DC2Preferred DCOnly use preferred domain controllers同期ジョブ
起動起動DC1チェックONDC1を利用して同期実行
停止起動DC1チェックON同期エラー
起動起動DC1チェックOFFDC1を利用して同期実行
停止起動DC1チェックOFFDC2を利用して同期実行


[MIM/FIM]間違ったオブジェクト削除を防ぐための仕組み

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

ID管理システムを本番環境で運用していると一番気を遣うのが、人事システムからわたってくるデータの間違いへの対応です。

ID管理システム自体はデータを生成するわけではないので、人事システムなどの信頼できるデータソースから従業員や組織に関する元情報を受け取り、そのデータをあらかじめ決めたポリシーに従ってActive Directoryやアプリケーションなどへ渡していきます。

つまり、ID管理システムが正しく動作するためにはデータソースから正しいデータがわたってきていることが大前提となっているわけです。

しかし、人事システムもあくまで人が運用しているシステム。社員情報を登録するのも人なわけで、必ず入力ミスは起きますし、データの受け渡しをするインターフェイスにバグが絶対に無いとは誰も言い切れるものではありません。

そのような前提を踏まえてID管理システムを設計~構築する時は、入力データのバリデーションをするための前処理を入れる検討をするなど、色々と気を使います。

その際に、まだ氏名の漢字間違い等であれば、あまり影響はないのですが、役職や組織などアクセス権に関する属性の間違い(これが意外と多いんです!)や、データの欠損を含む在籍状態の間違いなど、非常にインパクトの大きな間違いがしばしば発生するのも事実です。
間違って退職扱いになってしまい、各アプリケーションからIDが消えてしまったりするとリカバリを行うのに非常に大きな手間がかかりますし、特にActive DirectoryではObjectSidでIDを識別しているので、同じ名前でユーザを再作成すればよい、というものではなく大惨事を招いてしまいがちです。


各社のID管理製品は特にこのようなデータ削除に関する保護措置を用意しているものが多く、Microsoft Identity Manager(MIM)においてもあらかじめ設定した閾値を超えたオブジェクトの削除が一気に発生するとジョブを停止する機能「Specify number of deletions to process」が用意されています。
(昔からある機能なので、当然まだForefront Identity Manager(FIM)を使っていてもこの機能は使えます)


早速みてみます。

シナリオとしては、以下を想定してみます。

  • ユーザデータをCSVからMIMに取り込んでいる
  • 前日までの取り込みで現在MIM上に10,000ユーザが存在している
  • 人事システムとのインターフェイスの不備で取り込むCSVの大多数のレコードが消えてしまった


◆入力データ

 正しい入力データ(前日のデータ)はこちら。10,000件レコードが存在します


 しかし、当日2レコードしかないCSVがわたってきてしまいます。



 データ取り込み前まではMIM上に10,000件データが取り込めています。



◆何も考えずにデータを取り込む

 インポートすると、当然のことながら9,998件がDelete対象として認識されてしまいます。このままMetaverseへの同期処理を実行すると本気であちこち消えていきます。。。


◆一括削除防止機能を設定する

 インポート処理で削除が一定の件数を超えたら処理を止めるための設定を行いますので、CSV取り込み用のConnector SpaceのRun ProfilesのImport処理の中に設定項目が存在します。
 Thresholdの項目の中の「Specify number of deletions to process」にチェックを入れて、とりあえず10に設定してみます。
 ちなみにこの設定、一度設定~保存しても、再度設定の編集画面を開くと保存した内容が「表示上」はクリアされてしまいます。キャンセルを行えば設定は残るのですが、間違えて保存をすると本当に設定がクリアされてしまうので、注意が必要です。(昔からのバグですね)


◆取り込んでみる

 先の間違ったデータを取り込んでみます。
 すると、Statusが「stopped-deletion-limit」でジョブが停止しているのがわかります。


 削除対象としてマークされた件数も先ほど設定した10件になっていることがわかります。


 このようにジョブが異常終了してくれるので、後続で同期ジョブを流す前にConnector Spaceの段階でリカバリができ、大惨事を防ぐことが可能になります。

特に期初の大規模人事異動時などはこのような機能をうまく使って、上手にID運用をしていくとよいと思います。

[AzureAD/Java]WebLogic/JavaアプリケーションとAzure ADを連携する

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

先日マイクロソフトの寺田さんがJavaアプリケーションでActive Directory Authentication Library for Java(ADAL4J)を使うコードをgithubに公開されていましたので、私はちょっと違う方法で。


エンタープライズでJavaを使ったWebアプリケーションを開発する場合、WebLogicやWebSphere、JBossなどの商用アプリケーション・サーバ上にデプロイするケースが殆どだと思います。

このような環境下だとアプリケーションの単位でADALを使って個別に連携するよりも、アプリケーション・サーバのレイヤでAzure ADと連携させてしまった方がメリットがある場合があります。特にアプリケーションのロジックとアイデンティティ基盤を完全に分離できるので、既存アプリケーションの修正が不要となる点や同一アプリケーション・サーバ上にデプロイされているアプリケーションであれば、アプリケーション毎に設定を行う必要がない点は大きなメリットと言えます。
(ASP.NETのアプリケーションを書くときに、IISサーバをドメイン参加させて統合Windows認証が使うのか、アプリケーション単位で認証ロジックを書くのか、の違いによく似ています)

今回、WebLogicをSAML SP(Service Provider)として構成し、Azure Active Directory(Azure AD)と連携させる環境を作ってみました。

おそらくエンタープライズ屋さんであれば自宅の仮想環境にOracle DBとWebLogicの環境の一つや二つ遊んでいると思うので、ぜひ試してみてください。


早速やってみます。

1.Azure ADでアプリケーションを作成する

 まずは、Azure AD側に連携するためのアプリケーションの設定を行います。Azure AD Premiumエディションを持っていれば、ギャラリーからカスタムのSAMLアプリケーションを追加できるので、今回はこちらを使っています。

 アプリケーションの追加を行います。



 アプリケーションが追加できたら、シングルサインオンの設定を行います。


 Microsoft Azure ADのシングルサインオンを選択します。


 アプリケーション設定の構成で以下を設定します。
・識別子:
 後でWebLogicに設定するSP Entity IDのURIを設定します。単なる識別子なので実際にアクセスできる必要はありません。
・応答URL:
 同じく後で設定するSAML AssertionのPOST先URLを設定します。こちらは実際にSAML AssertionをPOSTするので、クライアントがアクセスできるURLである必要があります。


 SAML Assertionの署名に使う証明書のダウンロードを行います。この証明書をSP(WebLogic)が知っている必要がありますので、後程FederationMetadataに埋め込んでアップロードします。


 WebLogicにIdP(Azure AD)の情報(エンドポイント、署名に使う証明書の情報など)を設定するためのFederationMetadataを作成します。
 まずは、元となるFederationMetadata.xmlをAzureよりダウンロードします。アプリケーション一覧の画面から[エンドポイント]を開くとFederationMetadata.xmlのURLが確認できるので、ブラウザでアクセスしxmlファイルを保存します。



 実は、ダウンロードしたFederationMetadata.xmlはそのままでは使えません。
 理由は、以下の2点なので、修正します。
 ・ws-federation関係の情報が含まれている
 ・アプリケーション用の証明書の情報が含まれていない

 先にダウンロードした証明書ファイルをメモ帳などで開き、実体部分をコピーし、FederationMetadata.xmlのX509Certificateのデータを書き換えます。


 同時に、ws-fedやRoleDiscripterなど不要なエレメントをすべて削除します。結果以下のようなxmlファイルが出来上がります。




 とりあえずここまででAzure AD側の設定は一旦終了です。



2.WebLogicの設定

 今度はWebLogic側の設定を行います。ざっと概要を説明すると大きくは次の3点を設定する必要があります。

①セキュリティ・レルムの設定
 連携するSAML IdP(ここではAzure AD)の参照設定を行います。
②サーバのSSLの有効化
 Azure ADは応答先URLにHTTPSしか設定できないので、WebLogic側のSSLエンドポイントを有効化します。
③サーバのフェデレーション設定
 WebLogicドメイン上のサーバをSAML SPとして設定します。


 順番に設定をしていきます。

①セキュリティ・レルムの設定
 WebLogicの管理コンソールで、ドメイン構造から[セキュリティ・レルム]を開き、レルム一覧から[myrealm]を開きます。


 [プロバイダ]から[認証]タブを開き、認証プロバイダを追加していきます。


 認証プロバイダの名前に任意の名前を、タイプに[SAML2IdentityAsserter]を設定します。


 認証プロバイダを作成後、一旦管理サーバを再起動します。

 その後、先ほど作成した認証プロバイダにAzure AD側の設定を入れていきます。作成した認証プロバイダを開き、[管理]タブを開き、アイデンティティ・プロバイダ・パートナーを新規作成します。この際、[新しいWebシングル・サインオンのアイデンティティ・プロバイダ・パートナー]を選択します。


 作成後、先ほど作成したAzure ADのFederationMetadata.xmlを読み込ませることでほぼ自動で設定ができます。



 作成が完了した後、有効化およびリダイレクトURL(このURLにマッチしたらIdPへリダイレクトする)を設定します。


 今回、あとでデプロイするアプリケーションのパスが/WebApp/となるので、今回は/WebApp/*を設定しています。



 ここまででセキュリティ・レルムの設定は完了です。次はサーバ設定です。
 今回は管理サーバ上にアプリケーションをそのままデプロイしていますが、実環境では管理サーバとは別に被管理サーバを作成すると思うので、実環境の場合はそちらに対して設定します。


②サーバのSSLの有効化

 [構成]、[サーバー]より対象のサーバを開き、SSLリスニング・ポートの有効化とポートの設定を行います。




③サーバのフェデレーション設定

 次に、ようやくSAML SPとしての構成を行います。
 サーバを開き、[構成]、[フェデレーション・サービス]、[SAML2.0サービス・プロバイダ]を開き、以下の設定を行います。
・有効:チェック
・アーティファクト・バインドの有効化:チェックなし
・優先バインド:POST
・デフォルトURL:アプリケーションのURL



 次にSAML同じく[SAML2.0全般]タブを開き、以下の設定を行います。
・公開サイトのURL:
 先にAzure ADに設定したSAML AssertionのPOST先(のパスの一部。/saml2まで)
・エンティティID:
 先にAzure ADに設定したアプリケーションの識別子
※他の情報(連絡先など)は任意です。



 ここまででWebLogic側も設定は終わりです。ようやくアプリケーションの作成とデプロイです。


3.アプリケーションの作成

 ここではEclipseを使って単にユーザ名を表示するだけのjspを作っていますが、むしろ大切なのはweb.xmlおよびweblogic.xmlに記載するセキュリティ設定です。

index.jspのソース。
単純にgetRemoteUser()でユーザ名を取得して表示しているだけです。

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Test Application</title>
</head>
<body>
<h1>My Test App</h1>
<h4>Hello <%= request.getRemoteUser() %></h4>
</body>
</html>


web.xml
・security-constraintで/*(アプリケーション全体)を保護対象としています。
・auth-constraintで対象領域にはAdminおよびUserロールに属しているユーザのみがアクセスできるようにしています。
・security-roleでAdminおよびUserロールを定義しています。

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1">
<display-name>WebApp</display-name>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
<security-constraint>
<display-name>Protected Area</display-name>
<web-resource-collection>
<web-resource-name>Protected Area</web-resource-name>
<url-pattern>/*</url-pattern>
</web-resource-collection>
<auth-constraint>
<description></description>
<role-name>Admin</role-name>
<role-name>User</role-name>
</auth-constraint>
</security-constraint>
<security-role>
<role-name>Admin</role-name>
</security-role>
<security-role>
<role-name>User</role-name>
</security-role>
</web-app>



weblogic.xml
Security Role AssignmentでAdminロールに[nfujie]というPrincipalを割り当てています。
(このPrincipalがAzure ADから発行されるSAML AssertionのName Identifierの値と一致していればAdminロールが割り当たります)




 これでアプリケーションは完成ですので、デプロイします。
 今回はwarへデプロイしてWebLogicへインストールしていきます。

 まず、アプリケーションのプロジェクトを右クリックしてExport、WARを選択します。
 出力先のファイル名、ターゲットランタイムにWebLogicを選択してFinishをクリックします。



 続いてWebLogicの管理コンソールの[デプロイメイント]より[インストール]を行います。



 エクスポートしたwarファイルを指定し、次へ進めます。



 これでデプロイは完了です。


4.ユーザの割り当てとName Identifier属性の設定

 早速アプリケーションへアクセスしていきたいところですが、Azure ADにアプリケーション連携設定を作成した場合、対象アプリケーションにアクセスさせるユーザの割り当てを行っておく必要があります。

 また、先にアプリケーション(weblogic.xml)に設定したPrincipalと同じ値がAzure ADから発行されるようにSAML Assertion上の属性のマッピングを行う必要があります。

 まずは、ユーザの割り当てです。
 管理ポータルよりアプリケーションを開き、[ユーザおよびグループ](Premium/Basicの場合。無償版の場合は[ユーザ])よりアクセスさせたいユーザに割り当てを行います。



 次に属性の編集です。
 同じく管理ポータルより[属性]を開き、SAML Assertionの編集を行います。
 今回、割り当てたユーザがnfujie@pharaoh.onmicrosoft.comなのでそのままだとName Identifierにはnfujie@pharaoh.onmicrosoft.comが値として入ってしまいますが、WebLogicは単にnfujieという値を期待しているので、ドメインパートを削ってあげます。
 そのためにはExtractMailPrefix()という関数を使って値の成型をする必要がありますので、nameidentifier属性を開き、以下のように設定を変更して保存を行います。



 これで本当にすべて完了です。早速アクセスしてみます。

まずは、アプリケーションのURLへアクセスします。
https://wls:7002/WebApp/

するとAzure ADのログイン画面が出てくるので、先ほど割り当てたユーザでログインします。



うまく認証が完了すると、アプリケーションが開き、ユーザ名が取得できていることがわかります。




いかがでしたでしょうか?
ちなみに今回はユーザ名のみの取得でしたので、設定のみで連携させましたが、Assertion上の他の属性をWebLogic上のユーザ属性とマッピングさせるためにはカスタムの属性マッパークラスを実装することで対応が可能となります。
この辺りは別の機会にでも。

[AD FS]JavaアプリSPとSAML Artifact Bindingで連携する際の証明書ストア

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

小ネタです。
JavaでSAML SPとなるアプリケーションを開発した場合のSP⇒IdP間のバックエンド通信に使う証明書の登録に関するTIPSです。

◆SAML Arifact Bindingとは?

まず、SAML Artifact Bindingの通信フローのおさらいです。
簡単に言うと、POST Bindingではユーザのブラウザを経由してSAML AssertionをIdPからSPに渡すのに対して、Artifact Bindingでは認証後Artifactと言われるコードをユーザのブラウザを経由してSPへ渡し、SPはブラウザより受け取ったArtifactをIdPへ渡してSAML Assertionと交換する、という仕組みです。
ややこしいので、SPとIdPの間で直接の通信が行われるタイプのBindingと覚えておいてください。
OAuthやOpenID Connectがわかる人は、Code Flowと同じ考え方と理解すると早いかもしれません。

こんなイメージです。


昔はガラケーなどブラウザで扱えるデータサイズの問題があったので、SAML Assertionそのものをブラウザ経由でPOSTするのではなく、比較的サイズの小さいArtifactを使ってID連携をする必要があったのですが、最近は通信速度や端末性能の向上により、Artifact Bindingが使われることは減ってきています。SPとIdPの間で直接通信をさせなければならないので、クラウドサービスと社内IdPを連携させる場合などの通信の取り回しなども非常に面倒、というのも使われなくなってきた一因です。

ただ、今でもたまにArtifact Bindingしか使えないSAML SPが存在するので、仕方なく実装することがあります。(AD FSではArtifact Bindingをサポートしています。尚、Azure ADはPOST BindingのみなのでArtifact Bindingは使えません)


◆SPとIdP間のSSL通信に使う証明書の信頼設定

先述の通り、POST Bindingではすべての通信がブラウザを介して行われるため、SSL通信に使う証明書のチェックについてはブラウザが信頼している証明書であればなんの問題もありませんし、最悪オレオレ証明書でもユーザが警告を無視してくれさえすれば、ID連携することが可能でした。

しかし、Artifact BindingではSPとIdPの間でSSL通信をエラーなく成立させる必要があるので、SPがSSL通信に使う証明書を信頼している必要があります。

信頼をするための方法はミドルウェアによりさまざまで、例えばsimplesamlphpでは設定ファイルに通信で使う証明書が入っているストアを直接指定する、などの方法をとります。

今回は前回のポストで使ったWebLogic上にデプロイしたJavaアプリケーションの場合のTIPSです。
WebLogicが信頼する証明書ストアはサーバの構成よりキーストアの設定で設定・確認することが出来ます。


初期状態では、デモ用のキーストアおよびJava標準のキーストアが設定されていますので、このキーストアのどちらかにIdPがSSL通信で使う証明書がインストールされている必要がある、ということになります。

今回はAD FSをIdPとして使ったので、AD FSがSSL通信で使っている証明書をExportしてWebLogicが使うキーストアにインストールします。

まずは、AD FS管理コンソールより証明書を開き、Service Communicationに設定されている証明書を開き、DER encoded binary X.509(cer)形式でエクスポートします。

エクスポートしたcerファイルをSPにコピーし、以下のコマンドを実行して証明書ストアへインストールします。
keytool -keystore <ストアのファイル名> -importcert -file <証明書ファイル名>

こんな感じです。


これで、無事にSP⇒IdP間でSSL通信が成立するので、SAML Assertionの受け渡しが行えるようになります。








[告知]2月はJapan ComCampでAzure ADとWindows 10の話をします

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

先日告知させていただきました通り、今月(1月)は日本ネットワークセキュリティ協会(JNSA)のアイデンティティ管理WGの10周年記念イベントで「ID管理プロジェクトの進め方」について解説させていただきますが、2月は少し毛色を変えてAzure ADとWindows 10についてJapan ComCamp powered by MVPというイベントでお話しさせていただきます。


 イベントサイト:
   https://technet.microsoft.com/ja-jp/mt637807


国内の各拠点で同時に開催されるイベントでMicrosoft MVPが中心になって企画・運営をしているらしいです。

私はなぜか東京会場に呼ばれましたので、大阪ではなく東京で登壇させていただきます。

まだ内容は全然考えていませんが、以下がセッション概要です。

タイトル:
 Azure ADとWindows 10によるドメイン環境の拡張
内容:
 クラウドやモバイルを活用しようとすると、例えばPCへのログインだけで社内のアプリケーションへシングルサインオンできたり、グループポリシーでデバイスの制御を行う、といった従来の社内ドメイン環境でできていたことが不可能になってきています。
しかし、Windows 10とAzure AD/Intuneを活用することで従来のドメイン環境に近い利便性や管理レベルを維持しつつクラウドを利用することができるようになってきています。
本セッションではクラウド・モバイルをセキュアに利用するためのAzure ADやIntune、Windows 10の上手な活用方法を紹介します。


もちろん他の会場も含め興味深いセッションも多数あるようなので、ぜひ登録してみてください。
ちなみにストリーミングもやるそうです。

[AD FS]連携アプリケーション毎に対応するIdPへ自動振り分けを行う

$
0
0
こんにちは、富士栄です。

AD FSを使ってアプリケーションとのID連携を行う場合、基本はビルトインのActive Directoryでの認証および属性の提供を行うことになりますが、アプリケーションが増えてきたり、複数の企業でAD FSを使ったりし始めると、AD FSをHUBのように使いたくなってきます。
(他にもプロトコルの変換を行うために使うケースなんかでもHUB的にAD FSを使いたくなります。例えばアプリケーションがws-federationにしか対応していなくて、IdPがSAMLにしか対応していないような場合とかですね。Windows Server 2016のAD FSではOpenID Connectにも対応してくるので、OpenID Connectにしか対応していないアプリケーションをSAMLしかしゃべれないIdPに統合するケースなど、AD FSをHUBとして使うケースも出てくるかもしれません)

そんな場合、AD FSに登録するIdP(Claim Provider)が複数になってしまいますので、利用者自身がどのIdPを使うのかを選択する必要が出てきます。(少なくとも初回は。2回目以降はCookieでブラウザに記憶されます)


AD FSに複数のClaim Providerが設定されているケースです。
下の画面ではビルトインのActive DirectoryとAzure ADを設定しています。

この環境でアプリケーションからAD FSにリダイレクトされるとIdPを選択する画面が表示されます。
これをHome Realm Discovery(HRD)と呼びます。


これって結構面倒くさいですよね。
利用者が間違ったIdPを選択してしまうと一旦Cookieをリセットしてもらって、、、ということにもなりますのでサポートしなければならない情報システム部門からすると非常に頭の痛い問題にもなりかねません。


ということで、例えば絶対に特定のIdPでしか認証させないアプリケーションであれば選択画面(HRD画面)をスキップして直接IdPへリダイレクトさせたいのですが、そういう場合はAD FSに少々設定を行うことで実現可能です。

具体的にはAD FSのPowerShellコマンドレッド「Set-AdfsRelyingPartyTrust」を使って対象のRelying Party(アプリケーション)が指定したClaim Provider(IdP)のみを使うように設定を行います。

構文は以下の通りです。

AdfsRelyingPartyTrust -TargetName <アプリケーション名(RP名)> -ClaimsProviderName <IdP名>


尚、複数のIdPを指定したい場合は、@("AAA","BBB")という形で配列を指定することで対応できます。

詳細は以下のURLにありますので、参考にしてください。
 https://technet.microsoft.com/en-us/library/dn280950.aspx


早速設定してみます。WLSという名前のアプリケーションはAzure ADのみを使って認証する、という設定です。

この状態で先ほどのアプリケーションに再度アクセスしてみます。
(Cookieをクリアしてからアクセスするのをお忘れなく)

選択画面(HRD)が出ずに直接Azure ADへリダイレクトされました。
これで多少なりとも混乱を防ぐことが出来ると思われます。


尚、間違えてClaim Providerを制限しすぎてしまったので元に戻したい、という場合は先と同じコマンドレットに他のClaim Providerを指定してあげれば大丈夫です。



[Windows 10/Azure AD]ハイブリッド環境におけるドメイン参加とシングルサインオン①

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

Azure Active Directory(Azure AD)に参加したWindows 10デバイスでのデバイス・サービス間のシングルサインオンの仕組み(Microsoft Passport)については、これまでもidconや本ブログなどでも解説をしてきました。

 [Windows10]デバイス&サービス間のシングルサインオンの仕組み
  http://idmlab.eidentity.jp/2015/05/windows10.html
 [FIDO/Windows10]idcon vol.20(別名fidcon)が開催されました
  http://idmlab.eidentity.jp/2015/05/fidowindows10idcon-vol20fidcon.html


しかし、現実のエンタープライズ・シナリオでは一気にAzure ADへPCを参加させて、クラウドだけで生きていく、ということは考えにくく、まずは現存のオンプレミスのドメインとWindows 10をどうやって組み合わせて活用していくのか?が焦点になっていくものと思われます。

と、いうことで今回はオンプレミスのドメインにWindows 10のPCを参加させて、Azure ADと連携することで得られる利点について解説していきたいと思います。いわゆるハイブリッドID基盤をWindows 10を使うことで更に活用できますよ、というシナリオです。

ちなみに、やれることは単純にデバイスへのログインと社内アプリ、社外アプリへのシームレスなログイン(シングルサインオン)ですが、この環境を実現するためのシナリオとしては複数の方法があります。

1)AD FSを構築してAzure ADとID連携する方法
 現在も主流となっているオーソドックスな方法です。PCはあくまでオンプレのAD DSに参加、ログインをして利用しますので、社外で利用する場合は社内ネットワークへVPN接続するか、Web Application Proxy(WAP)を用意してForm認証する必要があり、AD FSがダウンすると全滅するという弱点がありました。

2)Azure AD WAPを使う方法
 上記1のパターンと似ていますが、PCはAzure ADに参加して社内アプリへのアクセス時だけAzure AD WAPを使うため、可用性の面では改善されたものの、社内にいても社内アプリケーションへのアクセスはあくまでAzure AD WAP経由となるため、ファイルサーバなどの非Webアプリケーションへの対応ができない、など機能面で現実的な選択ではありませんでした。

3)Windows Server 2016のAD FSを使い、Microsoft Passport for Workを利用する方法
 おそらく今後の本命になると思います。社外はAzure ADを使ったMicrosoft Passport、社内はMicrosoft Passport for Work、社内外のつなぎはAzure ADとAD FSの連携という形になるので、オンプレのAD DSに参加したPCでもAzure ADに参加したPCでもシームレスに社内外のアプリケーションを利用できます。非WebアプリケーションについてもMicrosoft Passport for Workではカバーする予定らしいので、そうなると無敵です。弱点は基盤構築が超面倒なところですかね。SCCMとかIntuneとかのMDMが必要になりそうです。

4)Azure AD Connectを使いMicrosoft Passportに使うデバイス情報をオンプレ・クラウド間で同期する方法
 今回紹介する方法です。PCはオンプレのADへ参加するので従来通り社内リソースは統合Windows認証で利用し、社外アプリケーションはAzure ADとMicrosoft Passportで利用する形をとります。認証する局面においてクラウド・オンプレの間で連携がないので、完全に環境を切り離すことが可能なので、可用性はあんまり気にしなくても良いのが利点です。ただ、この後解説しますが現状はちょっと環境を選びます。


では、さっそく解説します。

◆実現すること
おさらいですが、以下を実現します。
・ドメイン参加したWindows 10 PCがAzure ADと連携されているアプリケーションへSSO(PCログインとアプリログインのSSO)できるようにする
・社内ファイルサーバなどへのログインは従来通り統合Windows認証を利用
 ※つまり、Windows Server 2016のAD FSを使ったMicrosoft Passport for Workシナリオではありません。
・社外アプリ(Azure AD連携アプリ)へのログインはMicrosoft Passportを利用




◆前提および制限事項
実現するためには以下の前提や制限があります。
・Azure ADとAD DSはAzure AD ConnectでID同期を行っている
・Azure ADとAD DSはフェデレーションしていない(AD FSを使っていない)
・Azure ADとAD DSの間はパスワードハッシュ同期を行っている
・PCはWindows 10(TH2以降)
・ドメインコントローラはWindows Server 2012R2以降
・オンプレドメイン名とAzure ADドメイン名は同一であること
 (Azure AD ConnectでメールなどUPN以外の属性でオブジェクト・マッチングをするとNG。代替UPNでも良いので同一UPNが必要)
・実際にデバイスがAzure ADに登録されるまでには結構時間がかかります。(ログイン、Azure AD Connectによる同期、ログインの順で処理が走るので、同期の前後でログインをする必要があります)


◆準備作業
まず、準備として以下の2点を行います。
1.クライアントPCが自動的にデバイス登録(Workplace Join)を行うためのタスクの有効化

 グループポリシーの設定を行います。
 Windows Server 2016のドメインだと、
  コンピューターの構成
   ⇒ポリシー
    ⇒管理用テンプレート
     ⇒Windowsコンポーネント
      ⇒デバイスの登録
 から「ドメインに参加しているコンピューターをデバイスとして登録する」を有効にします。
 ※2012 R2サーバだと、「社内参加(Workplace Join)」という名前の項目になっています。





 このポリシーを有効にすることで、クライアントPCにユーザがログインしたタイミングでデバイスを登録するためのタスクスケジューラ(dsregcmd.exe)が起動するようになります。
 (このあたりの細かい動きは次回解説します)


2.有効化されたタスクがAzure AD DRSのドメイン、テナントを解決するためのエントリ(SCP:Service Connection Point)をAD DS上に登録

 1の作業で有効化したタスクがデバイスを登録する先となるAzure ADのサービス名(ドメイン名およびテナントID)をAD DS上に登録する作業です。
 実際の作業としてはAzure AD Connectに含まれるPowerShellのコマンドレット「Initialize-ADSyncDomainJoinedComputerSync」を実行することになります。

 こんな感じです。



 これを行うと、CN=62a0ff2e-97b9-4513-943f-0d221bd30080,CN=Device Registration Configuration,CN=Services,CN=Configuration,DC=example,DC=comにazureADNameとazureADIdという二つの情報が登録されます。先のタスクスケジューラはこの値を見てデバイス情報を登録する先のAzure ADを判別します。
 ※ちなみに、Azure ADのディレクトリ内に複数のドメインが存在する場合、意図しないドメイン名が登録されてしまうことがありますので、その場合は直接AD DS上の値を修正する必要がありそうです。(これが原因かどうかはわかりませんが、うまく動かないことがありました)




◆PCをドメインに参加させ、ドメインユーザでログイン、そして同期する
ここは特に何もいりません。通常の手順です。

ただ、グループポリシーが正常に適用されると「Automatic-Device-Join」というタスクが自動的に実行されているはずです。



結果、いくつかのことが発生します。

まずは、初回ログインの際、ドメインに登録されたコンピュータオブジェクトのuserCertificate属性に証明書がセットされます。(タスクの中で自己証明書を発行します)



このあとAzure AD Connectでデバイス情報の同期を行います。Azure AD Connectの同期ルールを見るとuserCertificateに値が入っていないとAzure ADへコンピューターオブジェクトを同期しないので、この段階で初めて同期対象となるためです。

同期されるとAzure AD上にデバイスが登録されます。登録状態はGraph Exploreで確認するしか方法がありません。



そして、再度ドメインユーザでログインします。
するとAzure AD上に登録されたデバイスとログイン時に実行されるタスクによる登録要求の突合が行われ、Microsoft Passportに必要なKey Registration Serviceエンドポイントでの認証に必要なクライアント証明書がダウンロードされます。
この後、Windows 10はキーペアを生成し、秘密鍵をTPMに、公開鍵をKey Registration Serviceへ登録し、Microsoft Passportのデバイス登録フェーズが完了します。

次回Azure ADへログインする際はTPM上の秘密鍵で署名したリクエストによりPrimary Refresh Token(PRT)が取得できるので、そのあとは必要なアクセストークンを取得してアプリケーションを利用、という流れでシングルサインオンが実現します。

この際、ユーザのアカウント設定のページにはAADTokenBrokerが発現、紐づけられたAzure AD上のアカウント情報が表示されます。




◆Azure ADと連携したアプリケーションへアクセスする
ここまで来れば、これまで紹介したものと同じです。
アクセスパネルにアクセスするとAzure ADでのログインを求められることなく、アクセスできます。





かなりややこしいフローになるため、次回は少し深いところの仕組みを解説し、なぜこのような動きをするのか?を解説したいと思います。

[Windows 10]PIN対パスワード、そしてWindows Passport

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

昨年夏のリリース時から「パスワードは時代遅れです」というメッセージで世の中を混乱の渦に巻き込んできたWindows 10ですが、半年が経過した今でも「やっぱり意味がよくわからない」という声をしばしば耳にします。
※ちなみにTH2のビルドだと「PINのセットアップ」というメッセージになっています。


これまでも各所の記事やセミナなどでは簡単に話をしたことはあるのですが、ちょうど前回から書き始めているWindows 10のドメイン参加やサインインの仕組みの大前提になる話でもあり、良い機会でもあるので簡単にまとめておきたいと思います。
(ちなみに多分に私見が入っています)


◆何が議論されているのか?
まず、これまで起きている議論はどういうものなのか、簡単にまとめておきます。

Windows 10をセットアップすると「PINはパスワードを使用するよりも早くて安全です」というメッセージ表示されます。また、短いPINが長いパスワードより安全な理由として「PINはこのデバイスでしか動作しないからです」と説明されています。


これを見て、
「数字4桁のPINの方がなんでパスワードより安全なの?」
とか、
「Windows 10ではPINに数字以外が使えるようになったし桁数も増やせるから!!」
とか、
「Windows Helloで生体認証と組み合わせられるから安全なんだ!」
とか、
「PINは端末とセットだからパスワードより安全なんだ!」
など、色々な疑問や意見がやり取りされて来ました。


それぞれの疑問や意見を見ると、もっともらしいものもありますが、いまいち何の話をしているのかがよくわからない、というのが正直な感想です。


◆なぜモヤモヤするのか?
まず、これらの議論を考えるうえで圧倒的に欠けているのは、「安全かどうか?」という話の大前提は「相対論」である、という点だと思います。
つまり、疑問が発生するのは「何と何を」、「どうやって」比べて相対的に「安全」なのか?という前提が抜け落ちているからではないでしょうか?

例えば、桁数や複雑性を比較軸としてPINとパスワードを比べると、パスワードの方が安全、という結果になることが多いと思いますし、有効範囲(端末をまたいで使えるか)の広さを考えるとPINの方が安全(でも結局同じPINを使いまわすんじゃない???)みたいな話です。

このあたりがごっちゃになってしまっているので、ある一部分を切り取るとPINの方が安全に見えるし、違う見方をするとそうでもない、という話になり混乱を招いているといったところでしょう。


◆整理してみる
では、軸を整理してきちんと比較すればPINとパスワードのどちらが安全なのかが見えてくるんでしょうか?

まずリスクとなりうるポイントを洗ってみます。


ケースPINパスワードコメント
のぞき見される×通常、複雑性はパスワードの方が有利
通信経路で盗まれる×PIN自体は通信経路を流れないのでPINの方が有利
フィッシングサイトに入力する×PINでサイトへログインすることは無いのでPINの方が有利
サービスのDBから漏えいする×PINでサイトへログインすることは無いのでPINの方が有利
リストを使ってサインインを試行×PINは端末とセットなので、漏れたPINで別端末へログインはできない
リスト攻撃される×PINでサイトへログインすることは無いのでPINの方が有利



いかがでしたか?
結論は出ましたか?


一見PINが安全に見えますが、やっぱりモヤモヤは止まりません。


◆ではマイクロソフトは何が言いたかったのか?
結論から言いますと、そもそも単純にPINとパスワードを比べてしまっている段階で間違えているんだと思います。
マイクロソフトが言いたかったのは、Windows 10で新たに採用された「Microsoft Passport」を使ったサインインは従来のIDとパスワードを使ったサインインに比べて安全である、ということを言いたかったんだと思います。

ただ、その安全性を正しく理解するには、ベースとなっているFIDOの考え方やデジタル署名やTPMなどの用語を説明し理解してもらう必要性がある中、メッセージを単純化しようとして「やりすぎた」んではないか?と私は思います。


Microsoft Passportを使ったサインインの本質は、端末内(TPM)に保存された秘密鍵を使ってデジタル署名をしたサインイン要求を、認証サーバ側にあらかじめ登録したペアとなる公開鍵を使って検証することをもって正当性を判断することにあります。

この仕組みにおいてPINなどユーザを認証するための情報(クレデンシャル)はリクエストに署名するための秘密鍵へアクセスするために端末内でだけ使われるため、ネットワーク上を流れず、従来のサインインに比べて安全である、ということです。

参考)Windows 10におけるサインイン時のフロー(Azure AD参加/Microsoft Passport利用)



これが認証サーバはデバイスを、デバイスは利用者を信頼・認証する、つまり「利用者の認証と端末の認証を分離する」というFIDO(https://fidoalliance.org/)そしてMicrosoft Passportの基本的な考え方です。



この考え方では利用者の認証手段を問いませんので、もちろん従来通りパスワードを使って問題はありませんが、
・端末内だけで使うため利便性を上げるにはシンプルな方法が望ましい
・パスワードは使いまわしや漏えいしていることが前提なのでもはや単体で使っても安全ではない
などの理由でPINがデフォルト、さらに利便性と安全性を高めるためにWindows Helloを使った生体認証を使うことが出来るように設計されているのだと考えられます。


つまり、最終的にマイクロソフトが言いたかったことは、
「安心してください、流れてませんから」
Microsoft Passportという新しい仕組みを使うことでクレデンシャルの盗難が起きないようにしたから、パスワードのように運用上面倒なものを使わなくても安全ですよ」ということです。

少しはすっきりしましたかね。。。やっぱり難しいですね。

参考)昨年のidconで使った資料:FIDO in Windows 10
http://www.slideshare.net/naohiro.fujie/fido-in-windows10

[告知]Active Directory & Security Conference 2016

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

なんだか毎月イベントやってますね。先日のJapan Community Camp by MVPに続き、3月は「Active Directory & Security Conference 2016」(通称AD16周年)に登壇予定です。

日時:2016年3月18日(金)12:50~20:00
場所:日本マイクロソフト品川本社セミナルームA~D
イベント申込URL:
 http://events.msfthcp.com/?CR_CC=200764089&eventID=JA-EMS-IPVNT-FY16-03Mar-18-Active-Directory-Security-Coference%20&ls=Website&lsd=AzureWebsite
※結構埋まってきているみたいなので、お早めに。

私は、Deep DiveトラックでAzure Active DirectoryとアプリケーションのID連携について解説する予定です。Deep Diveということで、普段は抑え目にお話ししているフェデレーションの深いところを心置きなくしゃべれるようなので個人的に楽しみにしています。

こんなセッションにする予定です。
タイトル(仮):Azure ADと外部アプリのID連携/SSO Deep Dive
内容(仮):Azure ADの最大の特徴である、GoogleやSFDCなどの外部アプリケーションとのID連携/シングルサインオン機能について、具体的な連携方法やトラブルシューティング時に必須となるSAML/OpenID Connectなどのプロトコルの解説、実際の連携時の通信のトレース方法についてデモを交えて解説します。

もちろん、他にもとても楽しみなセッションがたくさん予定されていますし、一部(英語)というセッションがあるあたり、ゲストにも期待大です。

ぜひ、お申込みください。


あ、そういえばJapan Community Campの資料は以下にアップしていますので、よろしければどうぞ。


[Azure AD]Google AppsとのSSO設定でのポイント

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

これまでも本ブログや各種記事で何度も紹介してきたAzure Active Directory(Azure AD)とクラウド・アプリケーションとのシングルサインオンですが、その中でもGoogle Appsが非常に手軽かつ利用シーンも多いので、何度も設定例として取り上げてきました。

しかし、実はAzure ADとGoogle Appsのシングルサインオンを行う際、2点はまりポイントがあります。

簡単に解説します。

◆サインオン時にGoogle Apps側で「ログイン資格情報を確認できない」と言われる

これはダブルバイト圏ならでは悩みと言えますが、原因は「Azure AD上のユーザ名に日本語(ダブルバイト文字)が含まれている」ことです。
Azure ADはSAML AssertionのAttribute Statementに必ず氏名の情報を含めてしまうため、ダブルバイト文字がAssertionに含まれてしまい、Google Appsが解釈できずにエラーとなる、という具合です。

一見なぜエラーになっているのかよくわからないため、タチが悪いと言えます。
Azure ADでログオンした後、Google Appsへリダイレクトされた際、以下のエラーが表示されます。

SAML Assertionの中身をトレースするとダブルバイト文字が入っていることがわかります。(SAML Tracerで見ると文字化けしてます)

対策としては、Google AppsはNameIdentifierさえあればシングルサインオンできるので、不要なAttribute Statementを消してしまえばOK、と思いきやAzure ADのSAML Assertionの編集画面で不要な属性を消しても、以下の属性が必ずAssertionに含まれてしまいます。
・tenantid
・objectidentifier
・identityprovider
・givenname
・surname
・name
・displayname

仕方がないので、日本語が入る可能性がある、givenname、surname、name、displayname属性にダミーの文字列を固定で入れてしまいます。

尚、displaynameについては初期状態の属性一覧には出ていないにも関わらず、Assertionの中を見ると値が飛んでいるので、属性定義を追加してから他の属性と同じくダミーの値を入れます。
ちなみに属性名は「http://schemas.microsoft.com/identity/claims/displayname」です。

必要な属性について編集を行い、保存します。以下が編集後の属性マッピング設定です。

これで実際のAssertionを見ると、ダミーのシングルバイト文字列がAssertionに含まれるようになり、エラーが出ることは無くなりました。


◆ログアウトするとエラーになる

シングルサインオンは良いのですが、Google AppsからログアウトするとAzure ADのサインアウト画面でエラーが出る、というケースがあります。

こんな画面が出ます。正しいSAMLプロトコル・メッセージではないというエラーが出ています。

これは、Azure ADがSAML2.0のシングルログアウトに対応していないにも関わらず、Azure ADがGoogle AppsのログアウトURLにSAMLのエンドポイントを設定していたことが原因です。(ws-federationのサインアウト設定を行う必要があります)
ちなみに、現在はこの問題は解決されているので、新規にシングルサインオン設定を行うとちゃんとws-federationのエンドポイントが設定されます。

以前の設定(エラーが出る):https://login.windows.net/{テナントID}/saml2
現在の設定(エラーは出ない):https://login.windows.net/common/wsfederation?wa=wsignout1.0

現在は、以下のようにちゃんとサインアウトできます。


このようにアプリケーションとのシングルサインオン設定はたまに更新されるので、定期的に設定を見直しておいた方が良いかもしれません。

ちなみに余談ですが、同一テナント上に複数のドメインが設定されており、かつフェデレーション・ドメインが含まれるケースにおいてはシングルログアウトの際に、全IdPのセッションをクリアしに行きます。
そのため、サインアウト時にIdPが落ちていたりして疎通できないと、うまくセッションがクリアできませんので、注意が必要です。(そのドメイン上のユーザかどうかに関係なく必ずセッション・クリアに行ってしまいます)

こんな感じで、落ちているIdPへもアクセスしようとしてエラーが出ます。


このように、Azure ADを使うと、かなり簡単にクラウド・アプリケーションとのシングルサインオン設定を行うことが可能ですが、トラブル時に対応するためにはID連携プロトコルの中身について少し知っておくと非常に有用です。

[SAML/OpenID Connect]どうなる?Microsoft Passportを使った場合のacr/amr

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

SAMLやOpenID ConnectではIdentity Provider(IdP)でユーザがどのような方法で認証されたのかをAssertionやid_tokenの中に含めてRelying Party(RP)へ連携を行います。

この目的は、RPがIdPから渡される認証手段を検査して、求めるLoA(Level of Assurance/保証レベル)を満たしているかどうかを判断し、ログインを許可するかどうかを判断させることにあります。例えば、決済に関するサービスであればパスワードを使った認証では不十分で多要素認証を求める、などの判断を行います。

では、Azure ADに参加したWindows 10のPCにログオンし、Microsoft Passportを使ってアプリケーションへシングルサインオンした場合、IdPであるAzure ADはRP(アプリケーション)へどのような値を連携するのでしょうか?Microsoft Passportを使うということは、Azure ADへのログオン時に一切パスワードを使っていません。
(ついでに言うと今回のテスト時、PCへのログオンはWindows Helloを使ったので、PCへのログオン時にもパスワードは一切使っていません)

早速見てみましょう。
今回は、SAMLおよびOpenID Connectに対応したアプリケーションを用意し、fiddlerで実際にどのような値が渡ったのかを覗いてみます。

◆SAMLとOpenID Connectにおける認証手段の表現方法

まずSAMLとOpenID Connectにおける認証手段の表現方法を確認しておきましょう。

  • SAML
    • AuthnContextのAuthnContextClassRef属性を利用します。例えば、パスワードで認証されたことを示す場合は、[urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport]がセットされたり、AD FSなどを使って統合Windows認証が使われた場合は[urn:federation:authentication:windows]が使われたりします。
  • OpenID Connect
    • (2016/03/07追記)SAMLと同じくacr(Authentication Context Class References)を使います。OpenID Connectにおいてはid_tokenの中に値が設定されます。が、現状Azure ADにおいてはacrはセットされないようです。(B2Cテナントにおいては何故か固定値[b2c_1_sign_in]がセットされます)
    • id_tokenの中のamr(Authentication Methods References)クレームを利用します。どのような値が使われるかはプロトコルの規定外ですが、パスワードで認証された場合は[pwd]が使われたりします。



◆SAML対応アプリケーションへ渡されるAssertionを覗いてみる

では、早速SAML対応のアプリケーションへログオンしてみます。
Azure ADに参加したWindows 10のPCへAzure ADユーザでログオンし、アクセスパネル(https://myapps.microsoft.com)をMicrosoft Passportに対応したブラウザ(今回はEdgeを使いました)でアクセスします。


Microsoft Passportが有効なので、パスワードを入力することなくアクセスパネルが開きますので、SAMLに対応したアプリケーション(今回はGoogle Appsを使います)を開いてみます。

このとき、fiddlerを立ち上げて通信をキャプチャしておき、Google AppsのAssertion Consumer Service(www.google.com/a/ドメイン名/acs)へPOSTされるSAMLResponseを拾います。


拾ったSAMLResponseはSAML AssertionをBase64URL Encodeしたものなので、Decodeしてから目的のAuthnContextClassRefを探します。
ちなみに、SAML2 debuggerというサイトを使うとSAMLのメッセージをEncode/Decodeできるので便利です。
 参考)SAML2 Debugger
   https://rnd.feide.no/simplesaml/module.php/saml2debug/debug.php



結果、[urn:oasis:names:tc:SAML:2.0:ac:classes:Password]が入っています。
パスワードで認証したわけではないのに、パスワードで認証されたことになっている、ということです。
Azure ADを使ってSAMLアプリケーションにログインする場合は、どんな認証手段を使ったかについてはあてにならない、ということですね。


◆OpenID Connectアプリケーションへ渡されるid_tokenを覗いてみる

次は、OpenID Connectです。
SAMLの場合と同じく、Azure ADと連携したアプリケーションへMicrosoft Passportが有効な環境でログオンしてみます。

id_tokenをアプリケーションへ渡す方法(response_mode)も色々ありますが、今回のアプリケーション(自作)ではAzure ADの初期値であるform_postでid_tokenを渡しているので、Azure ADでログオンを行うとformを含むhtmlがダウンロードされ、JavaScriptで自動的にformデータがPOSTされます。
fiddlerで見ると、こんな感じに見えます。


このid_tokenの中身を覗いてみます。今度はJSON Web Token(JWT)なので、decodeするとPayload部分のJSONに各種クレーム(属性)が出てきます。

SAMLではSAML2 Debuggerを使いましたが、OpenID Connectの場合はjwt debuggerを使います。
 参考)jwt debugger
   http://jwt.io/

こんな感じで出力されます。

amrクレームの値を見ると、[pwd]と[rsa]の2つの値が入っています。
SAMLの場合と異なり、一応署名検証を使った認証を使ったことも認識されているようです。
(実際には使っていないパスワードも使ったことになっていますが)


ちなみに、Microsoft Passportが無効な環境で同じアプリケーションにアクセスした場合は[pwd]のみしかamrクレームに入ってきませんので、一応認証方式が異なることを表現してはいるようです。

こちらが、Microsoft Passportなしでログインした場合のamrの値です。



◆結論?

現段階において、Azure ADと連携するアプリケーションを開発する場合は、SAMLにおけるAuthnContextClassRefやOpenID Connectにおけるamrを見て認証方式や強度を判断するのは困難なようです。(OpenID Connectの方が若干マシですが、pwdが残ってるのは?です)


いずれにしても、想定している認証手段でログオン~ID連携が行われた場合にアプリケーションがどのような値を受け取るのか?についてはテスト段階で十分に検証を行っておく必要がありますね。





[小ネタ]Azure ADからGoogle Appsへのプロビジョニング

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

今回は小ネタです。しかも事象からの推測ですのでタダの都市伝説かもしれません。

ご存知のとおり、Azure Active Directory(Azure AD)が持つアプリケーション連携の機能には「シングルサインオン」と「プロビジョニング(ID同期)」の2つがあります。

で、今回はプロビジョニングに関する小ネタです。
※プロビジョニングの細かい設定方法は以下の動画をどうぞ。(IdM実験室別館より)
 https://channel9.msdn.com/Blogs/IdM-Lab-Annex-MVP-for-Directory-Services-Naohiro-Fujie/AAD-Setup-App-3

Google Appsへユーザを新規にプロビジョニングした場合、作成されたユーザのステータスが「無効」になっている場合と「アクティブ」になっている場合があります。

<そもそものGoogle Appsの仕様は?>

Google Admin SDK Directory APIの仕様を見ると、新規に作成されたユーザはサスペンドされ(suspendedにtrueがセットされ)、サスペンド理由(suspensionReason)にWEB_LOGIN_REQUIREDがセットされ、初回ログイン時にアクティベートされる、と書いてあります。
https://developers.google.com/admin-sdk/directory/v1/reference/users
抜粋)
A new account is automatically suspended by Google until the initial administrator login which activates the account. After the account is activated, the account is no longer suspended

しかし、先に書いた通りAzure ADからユーザをプロビジョニングすると最初からsuspendedがfalseのユーザ(アクティブ)ができる場合と、仕様通りtrueのユーザ(無効)の両パターンができる場合があります。

<Google Apps上のユーザの状態>

<有効なユーザ>

Directory APIでGoogle Appsを直接見ると、suspendedがfalseになっています。

この状態でログインすると、規約への同意をすればすぐにサービスが使えます。



<無効なユーザ>

同様にAPIを直接たたくとsuspendedがtrue、suspensionReasonがWEB_LOGIN_REQUIREDとなっています。APIドキュメント通りです。

この状態だと、ログイン時に本人確認が走ります。



<Azure AD上でのアカウント状態の違い>

何が違うのか?を追うためにAzure AD上でのユーザの違いを眺めると、、、

最初からアクティブになるユーザ:オンプレミスのADから同期されてきたユーザ
無効となるユーザ:Azure AD上に直接作ったユーザ

という違いがありました。
本当にこれが原因なのかどうかはよくわかりませんが、少なくとも私のテナントではこの部分しかアカウントの違いがなく、何ユーザ試してみてもこの動きになったので、何か関係しているのかもしれません。

マイクロソフトやGoogleに確認した訳ではないので、厳密には良くわかりませんが。。。





[翻訳]Azure ADとWindows 10におけるMicrosoft Passport for Work

$
0
0
こんにちは、富士榮です。
Windows 10におけるFIDO/Microsoft PassportWindows Helloについて本ブログでもお伝えしてきましたが、今回はマイクロソフトでWindows 10とMicrosoft Passportを中心に担当しているJairo Cadena氏のAzure ADとWindows 10のMicrosoft Passport for Workの動作の裏側に関する記事の翻訳をお送りします。(翻訳版の転載を快諾していただいたJairoさんに感謝!)
それではどうぞ。
***************************
Windows 10デバイスを利用する際の利点の一つは、Azure ADに登録されたWindows 10のデバイスは、Windows HelloとMicrosoft Passport for Workにより実現する利便性とセキュリティです。このポストでは、Azure ADと連携するMicrosoft Passport for Workのテクノロジについて、およびそれがどのようにデバイスと強固な認証と関連するのかを掘り下げていきます
Microsoft Passport for Workはアプリケーションの認証のため、3種類のAzure ADへのデバイス登録方法のすべてでサポートされます。 このポストでは主にAzure ADへ参加したデバイスと、ドメイン参加したデバイスに焦点を当てます。
パーソナルデバイスに関する簡単なメモ
2015年11月の更新プログラムを適用したWindowsのパーソナルデバイスの場合、Microsoft Passport for Workは、ユーザに関連づけられたジェスチャー(詳細については今後のポストで紹介します)によるクレデンシャルのアンロックによる従来のアプリケーション(VPNなど)のための証明書の保護については限定的です。 これらの証明書は一般的にモバイルデバイス管理(MDM)システムによって配備されます。
Microsoft Passport for Workは、MDMがAzure ADに対して自動登録設定が行われていない限り、職場または学校のアカウントの追加を行っても表示されてきません。この場合、このデバイスを利用しているユーザーは、Microsoft Passport for Workを使用して、Azure ADで認証されません。これは将来のWindowsのアップデートにより、サポートされる予定です。
一方、(個人的なデバイスを含む)Windows 10のデバイスが持つクレデンシャルは、Azure AD参加もしくはドメイン参加したデバイスへのリモート認証するために利用できます。詳細については今後のポスト、Microsoft Passport for Word 2Go:携帯電話を利用してWindowsへの認証を行うをご覧ください。
パスワードの現状
今日、パスワードには問題があります。それらは複製しやすく簡単に盗むことが出来ます。それら実装における問題は、パスワードを安全ではないものとし、ユーザーは利便性とセキュリティのバランスをとるのに苦労しています。しばしばユーザーはセキュリティ要件が求められた際、簡単に利用するための「回避策」を見つけてしまいます。(例えば、複雑なパスワードが求められる場合、それを保護されていない場所に書いてしまうこともあります)
Microsoft Passport for Workは、ユーザーのジェスチャー(PINもしくは指紋や顔認識などの生体ジェスチャー、すなわちWindows Hello)によって保護された、デバイスに強固に紐づけられたユーザーの資格情報を使用してユーザーのパスワードを置き換えます。
パスワードの問題の詳細については、最近TechNetで公開されたMicrosoft Passport guide 伝統的な資格情報の問題の章を参照してください
Microsoft Passport for Workの資格情報
資格情報は、デバイスのトラステッドプラットフォームモジュール(TPM)にセキュアに保存された秘密鍵、およびAzure AD上に安全に登録された対応した公開鍵の構成される非対称鍵(秘密鍵と公開鍵のペア)です。 TPMが存在しない場合、キーはソフトウェア的に生成され、暗号化されて保存されています。
秘密鍵は、安全な場所を出ることはなく(TPMが利用可能な場合)、Azure ADまたはADに知られることも、ネットワークを流れることもありません。 それは、"Hello"を使って暗号化・保護され、ユーザーが知っていること(PIN)もしくはユーザーが誰であるか(バイオメトリクス)によってのみアクセスが可能です。”Hello”はジェスチャー、デバイスとユーザー毎に固有な認証器なのです。
公開鍵は、デバイスとユーザーの両方の認証が完了した後にAzure ADに安全に登録されます。ユーザーは第2の要素を提供することで、強固に認証される必要があります。Microsoft PassportはAzure ADで認証する際、強力な資格情報と見なされるため、これは重要なことです。資格情報が他要素認証(MFA)ポリシーを満たし、この資格情報で取得されたトークンは、対応する関連属性を含みます。
資格情報がプロビジョニングされると、それはAzure ADでの認証のために使用されます。
Microsoft Passport for Workの資格情報のプロビジョニング
すべては、デバイスがAzure ADに登録されるところから始まります。デバイスはMicrosoft Passport for Workの資格情報を取得する前に、Azure ADへ参加、もしくはドメインへ参加(することによるAzure ADへ自動登録 )、職場または学校のアカウントを追加している必要があります。
Azure ADへ参加もしくはドメイン参加したデバイスの登録が完了した後、次回にユーザーがWindowsへサインインする際、Microsoft Passport for Workのプロビジョニング画面が表示されます。Azure ADへの公開鍵の登録は、Azure Device Registration Service(Azure DRS)によって行われます。
これはシステム内の特定のWinRT APIへアクセス可能なホストである、Cloud eXperience Host(CXH)内にレンダリングされるWebドリブンの画面です。これはAzure AD参加の際に使用されているもののと同じホストです
以下の条件に該当する場合 、Windowsにユーザーがサインインした後に起動されます:
  1. Microsoft Password for Workのポリシーがプロビジョニングされている。これは次の条件のいずれかを意味します:
    • デバイスがAzure ADに参加しており、Microsoft Passport for Workのポリシーが無効になっていない (ポリシーが存在しない場合のデフォルトの動作では、資格情報をプロビジョニングします)。
    • デバイスがドメイン参加しておりポリシーが有効になっている(ポリシーが存在しない場合のデフォルトの動作では、資格情報のプロビジョニングを行いません)。これは、ドメイン参加したデバイスが資格情報を使用してドメインコントローラ(DC)で認証できるようにオンプレミスのインフラストラクチャに必要な準備を行うためです。必要な設定が行われた後、組織はポリシーを有効にすることができます。記事の後半でオンプレミスADの認証のサポートに関するいくつかの考慮事項について言及します。
  2. 現在のセッションがリモートセッションでないこと。これはMicrosoft Passport for Workのプロビジョニングが仮想マシン(VM)上で発生しないことを意味しているわけではありません。しかし、ユーザーがリモートデスクトップサービスセッション(RDS)経由でVMまたは物理デバイスに接続している場合、プロビジョニング画面は表示されません(これはHyper-Vの拡張セッションモードでの接続を含みますので、検証環境で試す場合はHyper-Vホスト上で行う必要があります)。
上記の条件が満たされると、プロビジョニング画面が表示されます。これは次の場所でホストされています:
 https://account.live.com/aadngc
次のページが表示されます。
ブログ -  PINを設定します
ユーザーが「PINを作成」ボタンをクリックするとdsreg.dllのWinRTのAPIの部分が呼び出されます。この登録APIは、次の2つの操作を実行します:1)Azure DRSでトークンを取得するために現在のユーザーを認証する、2)鍵ペアを生成し、(1)で得られたトークンを使用してAzure DRSへ公開鍵を登録する。
(1) Azure DRSでのユーザー認証
まず初めに登録APIは、次に生成される公開鍵をAzure ADに登録するためのアクセストークンを取得します。このトークンは、Azure DRSが対応するユーザーに公開鍵を登録し、対応するデバイスオブジェクトと関連づけるために利用されます。トークンを取得するため、登録APIはWebアカウント・マネージャのAPIを使用します。
 Windows.Security.Authentication.Web.Core.RequestTokenForWindowAsync
このAPIは、Azure ADプラグインの対応する実装を呼び出します。ウェブアカウントマネージャーとAzure ADプラグインの詳細については今後の記事、Windows 10においてSSOはどのように動作するのかを参照してください。
いくつかの条件に応じてユーザーにはMFAが要求されます。
  1. ドメイン参加デバイス上のユーザーはMFAが要求されます。これはユーザー名とパスワードの資格情報を使用しています。Windows 10の2015年11月の更新では物理または仮想スマートカードを使用してWindowsにログインしている場合、Microsoft Passport for Workはサポートされませんので注意してください。これはWindowsの将来のアップデートで対応されます。
  2. Azure AD参加デバイス上のユーザーは、そのユーザーが最初にこのデバイスをAzure ADへ参加させたユーザで、デバイス参加時に他要素認証されている場合、MFAを要求されません(デバイスオブジェクトの属性「RegisteredOwners」にこのユーザーが設定されます)。Azure ADはデバイス登録時に他要素認証が行われた場合、そのデバイスを認証の第2要素として扱います。この動作はこの記事が書かれた時点のサービスの動作であることに注意してください。私たちは、登録されたデバイスを多要素としてに扱うことに関する複数のフィードバックを受けとっています。将来的には、組織が制御することができる設項目定の中で設定できるようにする予定です。
  3. Azure AD参加デバイス上のユーザーで、デバイスをAzure ADへ参加させたユーザーではない場合はMFAが要求されます。
フェデレーションを行っている組織の場合、MFAはAzure ADもしくは組織内のSTS(例えばAD FS)から要求することが出来ます。
ブログ -  NGCプロビジョニング時にMFA
ユーザーが認証され、APIがトークンを取得した後、Microsoft Passport for Workの鍵の生成と登録プロセスへ進みます。
(2) Microsoft Passport for Workの鍵の生成とAzure ADへの登録
登録APIは、鍵を生成し利用可能な場合はAttestationデータを取得するには、Microsoft Passportの暗号API(ncrypt.dllの一部)に依存しています。現状のクライアントとサービスの実装ではまだAttestationの検証をサポートしていませんのでご注意ください。サービスおよび/またはWindowsの将来のアップデートでこの機能が有効になります。
一般的に鍵はこの瞬間に作成されるのではなく、事前に生成された鍵のプールから取得されます。複数の鍵の事前生成は、デバイスの起動時にバックグラウンドで実行されます。RSA 2048ビットの鍵ペアの生成はTPMに依存し、生成するのに少し時間がかかります
鍵ペアが得られた後、PIN設定のためのUIが表示され、ユーザはPINを要求され​​ます。論理コンテナが作成され、秘密鍵はその中に配置されます:
ブログ -  NGC PINコレクションのUI
コンテナは、ジェスチャに関連付けられている保護鍵で保護されている鍵情報の論理的なグループです。この場合、PINはこのとき得られた保護鍵に関連付けられます。この鍵は、取得したMicrosoft Passport for Workの秘密鍵を安全にラップします。PINのジェスチャーは、論理コンテナを開き秘密鍵へアクセスするためのものです。
鍵のAttestationについて
前述したように、Attestationの検証はまだ実装されていませんが、ここでAttestationの生成の背後にあるメカニズムのいくつかの詳細を解説します。対応する公開鍵と共に、利用可能な場合は関連するAttestationデータも、暗号化APIを使用して取得されます。AttestationデータはAttestation Identity Key(AIK)証明書とユーザーと生成されたMicrosoft Passport for Workキーに関する情報を保持しているBlobで構成されています。Blobは、TPMがプラットフォームの認証を提供することを可能にする特別な目的のRSA鍵であるAIKによって署名されています。Endorsement Key(EK)および(製造者からの)証明書と併せてAIKは、TPM製造者と信頼のチェーンを持つAIK証明書を生成するために、Azure証明書サービスへ送信されます。この信頼チェーンは、サービスがキー登録時に検証するためのものです。
登録APIは、Azure DRSのアクセストークンと鍵情報を取得し、Azure DRSの次のエンドポイントにPOSTします。
 POST http://enterpriseregistration.windows.net/EnrollmentService/Key
Azure DRSはディレクトリ内のユーザーオブジェクトを検索し、特定のマルチバリュー属性に鍵情報を追加します。 鍵情報にはデバイスIDへの参照が含まれています(ユーザとデバイスIDの両方がトークンから取得されます) ユーザオブジェクトは、Microsoft Passport for Workの資格情報をプロビジョニングしたそれぞれのデバイスに対して1つのキーを持ちます。
Azureの管理ポータル内のユーザーのデバイスのUIについて
もう一つ興味深い点を。Azureの管理ポータル内のUIにはユーザーが自身が(Azure AD参加もしくは職場または学校のアカウントを追加によって)登録したデバイスの情報が表示されます。ドメイン参加したWindows 10デバイスは、Azure ADへのデバイス登録プロセスにユーザーが参加しないため、管理ポータルのUIには表示されません。例外として、ユーザーがMicrosoft Passport for Workの資格情報をプロビジョニングすると管理UIのユーザーのデバイスの下にドメイン参加したデバイスが表示されます。
Microsoft Passport for Workの資格情報を使用した認証
最終的に資格情報がプロビジョニングされた後、その資格情報をAzure ADでの認証時、およびオンプレミスのADでのWindowsへのサインイン時に利用することが出来ます。どのようにこれが行われるのかの詳細については将来の記事、Windows 10においてSSOはどのように動作するのかを参照してください。
オンプレミスのADへの認証
オンプレミスADに対するMicrosoft Passport for Workをサポートするには、デバイスがWindows Server 2016(この記事の執筆時点では、テクニカル・プレビュー4です)で動作しているDCに到達できるようにする必要があります。 オンプレミスADは新しいドメインまたはフォレストの機能レベルで構成する必要はありません。
新しいDCを展開する代わりに、Microsoft Passport for Workで使用されるログオン証明書を展開することもできます。 この場合、下位バージョンのDCでは認証に証明書(今日と同様に仮想スマートカード)を利用し、ユーザーはWindows Helloのメリットを享受できます。この場合においてもAzure ADは認証に鍵を使用していきますのでご注意ください。
Microsoft Passport for Workの鍵を使うログイン証明書をサポートするためには、System Center Configuration Manager Technical Preview(ドメイン参加したデバイス用)またはIntune(Azure AD参加したデバイス用)が必要です(サードパーティのMDMも同様にサポートされるようになります)。
オンプレミスのADへの認証を有効にする場合の展開の要件の詳細についてはTechnetのMicrosoft Passport guide展開の 要件セクションを参照してください。また、より多くのリソースを参照するには関連するTechNetドキュメント(ここ)を参照してください。
最後に、ここまで読んでいただき、これらの機能に興味を持っていただいたことに感謝します。質問やコメントがあればお聞かせください。
ではまた次回。
Jairo Cadena(Twitter:@JairoC_AzureAD)
***************************

他にもJairoさんの記事には興味深いものが多数あるので、また翻訳をしてみなさんに公開していきたいと思います。

[Windows 10]Microsoft Passport for Work 2Goが来たか?

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

Windows 10のデバイスへのサインイン方法は従来のID/パスワードに加えてPINやWindows Helloの生態認証など大幅に拡張されています。

また、追加でWindows 10 Mobileのスマートフォンを使ったサインイン方法が用意される予定で、ついにベータ版のアプリケーションがストアに登場しました。

が、結論まだまだマイクロソフト社内のテスト用に特化しているようで、まともに動きません。残念。

ということで、概要の紹介と試行錯誤の結果だけ書いておきます。


◆スマートフォンを使ったサインイン

機能の名称は「Microsoft Passport for Work 2Go」になるのかな?という気がしていますが、ようするに、Bluetoothで接続されたスマートフォン上で対象のコンピュータ名をタップすることによってサインインできる、という動きになります。

AndroidとChromebookにおけるSmart Lock for Chromebookと同じですね。
※Smart Lock for Chromebookに関する過去のポストはこちら


◆動作に必要な要件

まだ私の環境では動いていないので動作に必要な要件というのもナンセンスなのですが、色々と資料を見ていると、
・Windows 10 mobile(10.0.14283.1000以降?)のスマートフォン
・スマートフォンにはPhone Sign-inアプリがインストールされていること
・Azure ADに登録されたPC(つまりMicrosoft Passport for Workが動いている環境)
 ※必然的にTH2以降のWindows 10 Pro以上
・スマートフォンとPCがBluetoothでペアリングされていること
が条件になってきそうです。

◆現状の動き

とりあえず、どんな動きになるのか確認してみます。

<PC>
先の条件を満たしたPCにAzure ADのアカウントでサインインすると、サインイン画面にスマートフォンでサインインというメニューが出てきます。

これをクリックするとこんな画面が出てきます。


<スマートフォン>
本来はここでスマートフォン側のアプリ(Phone Sign-in)でコンピュータ名を選んでログインするんでしょうが、現状はアプリケーションにアカウントを追加するところでエラーが出て、うまく動きません。

とりあえずできているところまで紹介します。
①ストアからPhone Sign-inをインストールする
 現状ストアアプリで検索しても出てこないので以下のリンクから直接ストアへ移動してダウンロード・インストールを行います。
 https://www.microsoft.com/en-us/store/apps/phone-sign-in-beta/9nblggh5lb73

 ここで問題となるのが、最新のWindows 10 mobileのビルドが要求されてしまうところです。手元にあったWindows 10 mobileは10.0.10586.164だったのですが、このビルドではインストールできませんでした。


仕方がないので、Fast Ringより10.0.14283.1000へあげてみます。ちなみに現状このビルドへあげられるのはかなり限定されたデバイスだけみたいです。(手元のLumia 430はNG、Lumia 950はOKでした)


ビルドを上げた後、再度ストアへアクセスすると今度はちゃんとインストールできました。


②アプリにアカウントを登録する
どうやらサインインに使うアカウントをアプリにも登録しておくようです。
断定できないのは、ここでエラーが発生して先に進めていないからです。。。



まずは、スマートフォン自体にサインインしているアカウント(Azure ADアカウントでサインインしています)が表示されるので、選択してみます。

選択して先に進むと、エラーがでてしまいます。


こうなるとにっちもさっちもいきません。
アプリを再起動してもこの状態のままで何もできなくなります。
仕方がないので、アプリを削除して再インストールします。

今度は別のアカウント(スマートフォンへログインしているユーザではないAzure ADユーザ)を追加してみます。
すると、別のエラーが出ます。

Azure ADにセットされているReply URLがCloud eXperience Hostと同じくAAD Broker Pluginとなっており、Azure ADテナントに登録されているアプリケーションのReply URLと異なっているようです。このあたりからまだまだインターナル用なのかな?という推測をしています。おそらくインターナルテスト用のAzure ADにはこの仕組みに対応したアプリケーションが登録されていて、うまく動くんだと思います。



とりあえず今後の更新に期待ですね。
アプリの解説ページにも今後はマイクロソフトアカウントでも使えるような拡張なども予定されているようですし。





[MIM]Microsoft Identity Manager March 2016 Previewが公開

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

マイクロソフトの製品開発がサイクリックに細かいアップデートを出していく、という方法にかわり、Microsoft Identity Manager 2016(MIM)についても例外なく小さなアップデートがちょいちょい出てくる、という形になってきているようです。

今回はMarch 2016 CTPということでconnectサイトに登録してダウンロードするという形で提供されており、以下のシナリオが用意されています。

https://connect.microsoft.com/site433/Downloads/DownloadDetails.aspx?DownloadID=57668

1. MIM Portal end-user self-service from additional browsers
 FirefoxやChromeでMIMポータル・セルフサービス機能へアクセスする
2. PAM with activation into groups in the “PRIV” forest
 すでに特権フォレストに存在するユーザとグループをPAMロールに含める

時間作って触ってみないと。。

Active Directory & Security Conference 2016の資料・デモの公開

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

先日(3/18)のActive Directory & Security Conference 2016はイベント公開後すぐに満席になってしまうほどの盛況ぶりで、当日も日本マイクロソフトのセミナルームに人があふれている状態という異常な盛り上がり状況でした。

私はDeep Diveトラックということで濃いトラックを担当していましたので、先日のポストで予告させていただいた通り、Azure ADのアプリケーション連携の機能について紹介させていただきました。

動画の撮影もしていたようなので、いずれChannel 9などで公開されることになるとは思いますが、取り急ぎ資料の公開をしておきます。


尚、SAMLを使ったID連携のデモとして①Google Appsおよび②カスタムアプリ(simplesamlphp)、OpenID Connectを使ったデモとして③カスタムアプリ(php)と④API(graphおよびuserInfo)を直接たたくデモを用意していましたが、当日は②のsimplesamlphpおよび④のAPI実行のデモしかやっていませんので、他のモノを含め改めて動画公開をしていこうと思います。

取り急ぎは、以前から公開しているものとして、①を。


残りは準備している最中なので、でき次第Channel 9で公開していきたいと思います。

[告知:de:code 2016]チョークトーク登壇&Vittorio本の翻訳出版のお知らせ

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

ご存知の通り5月24日~25日にプリンスパークタワー東京で開催されるde:code 2016ですが、チョークトーク・セッションに登場する機会を頂きました。

内容はまだこれからですが、お題は「認証とか認可でもやもやしている方のための公開相談室」ということで、おなじみのMS安納さん、松崎さん、ゆりか先生こと村木さんと私の4人で濃い話をすることになりそうです。
https://www.microsoft.com/ja-jp/events/decode/2016/special.aspx#CHK-003

[紹介文より]
ユーザー管理や認証、そして認可を正しく理解するには、膨大な量の読書と長い経験が必要です。でも、なかなかそんな時間が取れないのが実情。本セッションは、皆様がお持ちの疑問に対して、テクニカル エバンジェリストに加え、セキュリティ サポート担当、そして現場でいやというほどアイデンティティ関連案件を担当している Microsoft MVP が経験と知識をフルに動員して、我先に回答するチョーク トークです。

※写真はComing Soonとういことで(笑)


また、先日のActive Directory & Security Conference 2016に参加された方にはPreview版が配布されたおなじみVittorio Bertocciの新刊「Modern Authentication with Azure Active Directory for Web Applications」の日本語版をde:code 2016に合わせて発売する予定です。

Active Directory & Security Conference 2016で配布されたPreview版


しばらく先の話ではありますが、是非ご参加ください。

[Windows 10]スマートフォンでサインインする

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

先日のポストでWindows 10へスマートフォンでサインインする機能について紹介しました。
 [Windows 10]Microsoft Passport for Work 2Goが来たか?

先日はうまく動きませんでしたが、最近公開されたビルド14295にスマートフォンをアップデートしたところ、うまく動くようになりました。

こんな感じで動きます。

では、早速環境を見てみましょう。

◆準備

必要なのは以下のものです。

  • Azure ADのアカウント
  • スマートフォン
    • Windows 10 Mobile 10.0.14295.1000
    • Phone Sign-inアプリ
    • Azure ADアカウントでサインイン
  • PC
    • Windows 10
    • Azure ADアカウントでサインイン
  • スマートフォンとPCがBluetoothでペアリングされていること


スマートフォンはこんな感じです。

Azure ADの組織に参加しています。

PCとBluetoothでペアリングされています。


PC側はこんな感じです。

Azure ADの組織に参加しています。

スマートフォンとペアリングされています。

◆動作

地味なので、動作は動画で公開してありますので、こちらを見てください。

Viewing all 769 articles
Browse latest View live