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

[FIM2010]ECMA2.2と各種対応コネクタがベータリリース

$
0
0

そう言えば先日の FIM2010 R2 用の SP1と共に 2.1 へとバージョンが上がった EMCA(Extensible Connectivity:拡張管理エージェント)ですが、早くも 2.2 のベータ版が Connect サイトに上がっています。

https://connect.microsoft.com/site433/Downloads/DownloadDetails.aspx?DownloadID=48615
※要登録

今回のバージョンの目玉はなんといっても「同期エンジンなしで実行できる様になったこと」です。この機能により、Visual Studio を使って単体で管理エージェントのテストやデバッグを実行できるようになりました。

他にも、
・コネクタを作成する際、機能のロードをユーザに情報を入れさせてから実行できるようになった。(例えば、SQL Server などから動的にスキーマを取得するようなコネクタを作ろうとした場合、これまでは SQL Server へ接続するユーザ情報を入力する前に機能をロードしようとして失敗していた)
・アンカー属性として LDAP の DN 形式をサポートした。
・delta import の際に object type の更新/削除できなくした。
という拡張がされています。


また、同時に EMCA2.2 に対応した以下のコネクタのベータ版もリリースされています。
・PowerShell MA
 もともと MCS(Microsoft Consulting Service)が個別で開発して使っていたコネクタのようですが、製品としてリリースされることになりました。
・SharePoint User Profile MA
 SharePoint のユーザプロファイルを管理するコネクタです。
・Generic LDAP MA
 汎用の LDAP コネクタです。XMA1.0 のサポート終了に伴い、コミュニティベースで公開されていた OpenLDAP XMA の代わりに使うことになりそうです。

最近特に FIM 関連の製品更新が多いので、なかなかついていけてません。。。

[WAAD]Windows Azure Active Directory が正式リリース

$
0
0

ようやく正式リリースされました。

Windows Azure チームの blog
 - Windows Azure Active Directory: Ready for Production with over 265 Billion Authentications & 2.9 Million Organizations Served!


細かいポイントはすでに色んな人が書いているので省略しますが、
・マイクロソフトアカウントで作成したWindows Azureテナントから利用が出来るようになった
・アプリケーション統合が管理ポータルから出来るようになった
というあたりが新規機能です。

ブチザッキ
 - Windows Azure AD/Backup Serviceほかいろいろ

Cloud Identity(Vittorio Bertocciのblog。MSDNから引っ越しました)
 - Windows Azure Active Directory Reaches General Availability
 - Walkthrough #1: Adding Sign-On to Your Web Application Using Windows Azure AD
 - Walkthrough #3: Developing Multi-Tenant Web Applications with Windows Azure AD

他にも Graph API で若干変更があったので、ここではその点を見ておきます。

最大のポイントは
・リクエストのパラメータに api-version を指定する必要がある様になった
・それに伴い、data contract version の指定が不要になった
という点です。

もちろん、今のところこれまでと同じエンドポイントも使えるのですが、その場合はこれまで通り data contract version を指定する必要があります。(しかも 0.5 / 0.8 のみ指定が可能)


ユーザ情報の取得を行う場合を例に新しいリクエスト方法を見てみます。

・エンドポイント:https://graph.windows.net/テナント名.onmicrosoft.com/users?api-version=2013-04-05
・メソッド:GET
・ヘッダ
 - Authorization/取得したJWT
 - Accept:application/json;odata=verbose;charset=utf-8
  ※簡易取得なら odata=verbose は不要

これまでは以下でした。
・エンドポイント:https://graph.windows.net/テナント名.onmicrosoft.com/users
・メソッド:GET
・ヘッダ
 - Authorization/取得したJWT
 - x-ms-dirapi-data-contract-version:0.5 or 0.8
  ※直近までは 0.9 も指定可能だったが、今は 0.5 / 0.8 しか受け付けない
 - Accept:application/json;odata=verbose;charset=utf-8
  ※簡易取得なら odata=verbose は不要

ちなみに古い形のリクエストで data contract version を付けないと HTTP 400 Bad Request が返ってきて、0.5 / 0.8 / 0.9 / 1.0 のどれかを指定するように言われるのですが、実際 0.9 や 1.0 を指定しても同じく Bad Request となってしまいます。


逆に新しい形のリクエスト(パラメータに api-version=2013-04-05 をつける)だと、data contract version をヘッダにつける必要はなくなり、Response ヘッダを見ると version 1.0 が使われていることがわかります。



後、実は大きな変更点なのですが、エンドポイントのリソース名(usersやgroups)が小文字しか受け付けなくなりました。
以前はリファレンスにも Users とか Groups と書いてありましたが、今は users や groups のようにすべて小文字にしないと 404 Not Found が返ってきます。



今後も以前の宣言通り OpenID Connect 対応など、IDMaaS としての機能が色々とリリースされるようなので、目が離せません。

A Guide to Claims-Based Identity and Access Control 2nd Editionが紙媒体でリリース

$
0
0
以前のポストで紹介した「A Guide to Claims-Based Identity and Access Control 2nd Edition」ですが、e-Book版のリリースから1年半が経過した今何故か紙媒体でリリースされたようです。(日本のAmazonでは売ってませんが、USのAmazonでは$50程度で売っています)

PDF版がMSDNで無償ダウンロード出来るのでどこまでニーズが有るのかわかりませんが、紙媒体が大好き!っていう方には良いかも知れません。2nd Editionでやたらとページ数が増えたのでPDF版を印刷して持ち歩くっていうのはほぼ不可能な量なので。。
(実は私、1st Editionの時はPDF版を印刷して読みました。その後著者のEugenio Paceさんにサイン入りの紙媒体をMS社内便で送ってもらいましたがw)

Amazon.comのURLはこちら。
http://amzn.to/10UZxhb

Windows Azure の IaaS の正式リリースと FIM2010 R2 SP1 のサポート

$
0
0
永らくプレビューだった Windows Azure の IaaS がリリースされました。

Windows Azure チームの blog
 http://blogs.msdn.com/b/windowsazure/archive/2013/04/16/the-power-of-and.aspx

今回リリースされたのが IaaS ということで、各種 MS サーバ製品群を IaaS 上で動かすことが出来るか?という情報が KB として公開されています。

Microsoft server software support for Windows Azure Virtual Machines
 http://support.microsoft.com/?id=2721672

この KB を見ると、 Forefront Identity Manager 2010 R2 SP1 がサポートされています。
ただ、同時に以下の制限があるので、当面は大規模のプロダクション環境ではなく、小規模(たとえば Office 365 とのディレクトリ同期や部門で利用するクラウドサービスとの連携など)での利用やテスト環境として使われていくのかな?と考えています。

以下、動作に関する制限事項・考慮事項です。

  • バックエンドとして、SQL Azure や別の(リモートの)SQL VMはダメなので、同一サーバ内で SQL Server も動作させる必要がある
  • ドメインコントローラも IaaS 上に配置する必要がある。


[WAAD]アプリケーション統合でGraph APIを簡単に実行

$
0
0
先日のWindows Azure Active Directory(WAAD)の正式リリースでWAADと統合するアプリケーションを簡単に登録することが出来るようになりました。

実際にやっているのは、GoogleのAPIコンソールと同じく、OAuthのクライアントを登録することだけで、

  • アプリケーション情報の登録(各種エンドポイント)
  • クライアントIDとキー(Secret)の取得
  • アプリケーションへ付与するWAADへのアクセス権限を設定

などが行えます。

ここでアプリケーションへ与えることが出来る権限ですが、

  • シングルサインオン
  • シングルサインオン、ディレクトリデータの読み取り
  • シングルサインオン、ディレクトリデータの読み取りと書き込み


の3種類が用意されています。

シングルサインオンはSAMLプロトコルを使ってWAADとの認証連携をする機能、ディレクトリデータの読み取り、書き込みについてはGraph APIを使ってディレクトリデータを操作するための機能を指します。

と、いうことで今回は以前紹介したGraph APIを使って行うWAADのディレクトリデータの操作をアプリケーション統合の機能を使って、より簡単に実行する方法を紹介します。
(といっても簡単になるのはAccess Tokenの取得だけですが)

以前の記事では、Graph APIを利用するためのAccess Tokenを取得するのに、AAL(Windows Azure Authentication Library)を使ったコードを書いていましたが、この部分をアプリケーション統合機能で大幅に簡略化します。

手順はシンプルで、以下のステップだけです。
1.ディレクトリデータの読み取り権限のあるアプリケーションを作成する
  ⇒ClientID / Client Secretを取得する
2.WAADのOAuthのトークンエンドポイントへClient Credentials Grantフローでアクセスする
  ⇒Access Tokenを取得する
3.取得したAccess Tokenを使ってディレクトリデータを読み取る

※尚、OAuth2.0の各種フローと注意点についてはこの辺りを参照してください。
 RFCとなった「OAuth 2.0」――その要点は?

では、さっそくやってみます。


■ディレクトリデータの読み取り権限のあるアプリケーションを作成する

Windows Azureの管理ポータル(https://manage.windowsazure.com/)へログインし、Active Directoryの管理からディレクトリ⇒統合されたアプリケーションを選択します。


アプリの作成からアプリケーションを新規作成します。

[組織で開発中のアプリケーションを追加]を選択します。

アプリケーションに任意の名前を付けて、アクセス権を設定します。とりあえずユーザ情報の読み取りをしたいので、「シングルサインオン、ディレクトリデータの読み取り」を選択します。

URLやアプリIDなどは今回は特に使わないので適当に入れておきます。


取り敢えずアプリケーションが追加されるので、左上の[構成]メニューを開きます。


クライアントIDが生成されているのがわかります。クライアント Secretを生成したいので[キー]のところで時間の指定をします。


1年もしくは2年が選択できるので取り敢えず1年を選択します。保存するとキーが表示されます。


これで必要な情報(Client ID / Client Secret)がそろいました。


■WAADのOAuthのトークンエンドポイントへClient Credentials Grantフローでアクセスする

次は、取得したClient ID / Client Secret)を使ってAccess Tokenを取得します。

手順は簡単で、WAADのOAuthのトークンエンドポイントである
  https://login.windows.net/<テナントドメイン名>/oauth2/token?api-version=1.0
に、

 - grant_type : client_credentials
 - resource : https://graph.windows.net
 - client_id : <先ほど取得した Client ID>
 - client_secret : <先ほど取得した Client Secret>
をPOSTするだけです。
※POSTするデータはURL Encodeしておく必要があります。

いつものAdvanced REST Clientを使ってアクセスしてみます。


すると、JSON形式でAccess Tokenが返ってきます。


これでAccess Tokenを取得できました。
コードを書かずに取得できるというのはとっても素晴らしいことです。



■取得したAccess Tokenを使ってディレクトリデータを読み取る

ここからはこれまでも何回か紹介した方法ですが、取得したAccess TokenをAuthorizationヘッダにセットしてディレクトリからユーザ一覧を取得します。


ユーザ情報が取得できました。




どうでしょうか?
Access Tokenの取得が格段に楽になっているのがわかると思います。
Office365のディレクトリ同期状況の確認などGraph APIの使い道は色々とありますので、一つ簡単なアプリケーションを作っておくと良いかも知れません。

[FIM2010]ヴァーチャルラボで操作体験

$
0
0

昨年秋に開催した FIM2010 / AD FS2.0 のハンズオンですが、今年も再度開催をしたいとは考えてはいても、なかなか身体が空かず、、、という状態なので純正のハンズオンラボをご紹介します。待ちきれない方は是非こちらも触ってみてください。

Technet Virtual Labs - Forefront Identity Manager
 http://technet.microsoft.com/en-us/virtuallabs/bb499665

用意されているシナリオはそれなりにバリエーションが豊富で以下の通りです。

  • Synchronizing Active Directory Users
  • Inbound Synchronization Rules
  • Backup, Restore, and Disaster Recovery, MA Run Scripts, and Final Configuration
  • Joining Data from Another MA and Provisioning AD LDS
  • The FIM Experience
  • Importing and Synchronizing Data
  • Managing Users in the FIM Portal
  • Creating the FIM MA and Synchronizing
  • Password Self-service and Configuring PCNS
  • Managing Groups- Lab A
  • Managing Groups- Lab B


ブラウザ上での操作になるのであまりパフォーマンスはよくありませんし、全編英語なのでそれなりのハードルはありますが一度使ってみるのも良いと思います。

[FIM2010]各リリース毎のビルド番号

$
0
0

Forefront Identity Manager に限らず Microsoft 製品は割と頻繁にモジュール更新がされます。
しかし、実際は全部追いかけ続けるのは現実的ではないので、結局不具合が出てサポートに問い合わせて、言われて初めて当てる、という運用になっているのではないでしょうか?(特に作り込み要素が大きい製品なのでカスタムモジュールなどの動作確認を考えると出来るだけパッチは当てたくない類の製品だと思います)

ということをやっているといつの間にか新しい機能が追加されていたり、不具合が修正されていたり、機能が削除されていたり、、ということになってしまうので、各更新でどのような修正がされたかの情報がまとまっているとうれしいものです。

ということで、TechNet Wiki にそんなページがあるので FIM を運用している人はブックマークしておいた方が良いです。

FIM 2010 Build Overview
 http://social.technet.microsoft.com/wiki/contents/articles/2229.fim-2010-build-overview.aspx#Build_FourOhTwoFiveNineTwoRTM

ちなみに本日段階でのビルドは以下の通りです。


バージョンビルド番号URL
RTM4.0.2592.0
KB978864(Update1)4.0.3531.2http://support.microsoft.com/kb/978864/
KB20286344.0.3547.2http://support.microsoft.com/kb/2028634/
KB22723894.0.3558.2http://support.microsoft.com/kb/2272389
KB24177744.0.3561.2http://support.microsoft.com/kb/2417774
KB24177744.0.3573.2http://support.microsoft.com/kb/2417774
KB25026314.0.3576.2http://support.microsoft.com/kb/2502631
KB25209544.0.3576.2http://support.microsoft.com/kb/2520954/en-us
KB2635086(Update Rollup 2)4.0.3606.2http://support.microsoft.com/kb/2635086/en-us
KB26880784.0.3617.2http://support.microsoft.com/kb/2688078/en-us
KB27375034.0.3627.2http://support.microsoft.com/kb/2737503/en-us
KB27506734.0.3644.2http://support.microsoft.com/kb/2750673/en-us
FIM 2010 R24.1.2773.0
KB2734159(for R2)4.1.2515.0http://support.microsoft.com/kb/2734159
KB2750671(for R2)4.1.2548.0http://support.microsoft.com/kb/2750671
KB2772429(Service Pack 1 for FIM 2010 R2)4.1.3114.0http://support.microsoft.com/kb/2772429
KB28148534.1.3419.0http://support.microsoft.com/kb/2814853
KB28323894.1.3441.0http://support.microsoft.com/kb/2832389/en-us

[SharePoint]JPSPSフォローアップ:認証設定①~フォームベース認証

$
0
0
先日(5/18)に Japan SharePoint Group (http://jpsps.com/)さんの定例勉強会にお邪魔して SharePoint のアイデンティティ管理の話をしてきました。

当日の資料はこちら


当日は時間もなかったので、簡単なデモを見せることしか出来なかったので、環境の構築の方法について解説しておこうと思います。

まずは、認証の設定についてです。
当日はフォームベース認証と SAML トークンベース認証の2つのデモをお見せしましたが、今回はフォームベース認証について解説します。(Active Directory を LDAP の認証データベースとして利用します)

認証の設定を行い、実際にサイトを利用するには、大まかに以下の手順が必要です。
1.認証プロバイダの作成
2.Web アプリケーションの認証プロバイダの設定
3.Web アプリケーションのユーザーポリシーの設定
4.ユーザープロファイルとの紐づけ設定
5.動作確認 では順番に手順を解説します。

1.認証プロバイダの作成

 この手順では、SharePoint Server が認識する認証プロバイダを作成します。フォームベース認証の場合は、以下の3つの Web サイトの web.config ファイルの編集を行う必要があります。
  - サーバの全体管理(SharePoint Central Administration v4)
  - Security Token Service(SharePoint Web Services - SecurityTokenServiceApplication)
  - 対象の SharePoint Web アプリケーション(作成した名前)
   ※括弧内は IIS マネージャより見える Web サイトの名前

 IIS マネージャより上記それぞれの Web サイトに対応するフォルダを開き、 web.config を編集します。対象の Web サイトを右クリックしてエクスプローラを開いたところにある web.config が編集対象です。



 各 Web サイトの web.config を以下の用に設定します。

  - サーバの全体管理(SharePoint Central Administration v4)

  ・<system.web> セクションの以下をコメントアウト
<roleManager>
<providers>
</providers>
</roleManager>
<membership>
<providers>
</providers>
</membership>

 ・以下を追記
<membership defaultProvider="AspNetSqlMembershipProvider">
<providers>
<add name="LDAPMember"
type="Microsoft.Office.Server.Security.LdapMembershipProvider, Microsoft.Office.Server, Version=15.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c"
server="ADサーバ名.xxx.xxx"
port="389"
useSSL="false"
userDNAttribute="distinguishedName"
userNameAttribute="sAMAccountName"
userContainer="OU=フォームベース認証するユーザを入れるOU,DC=xxx,DC=xxx"
userObjectClass="person"
userFilter="(ObjectClass=person)"
scope="Subtree"
otherRequiredUserAttributes="sn,givenname,cn" />
</providers>
</membership>
<roleManager enabled="true" defaultProvider="AspNetWindowsTokenRoleProvider" >
<providers>
<add name="LDAPRole"
type="Microsoft.Office.Server.Security.LdapRoleProvider, Microsoft.Office.Server, Version=15.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c"
server="ADサーバ名.xxx.xxx"
port="389"
useSSL="false"
groupContainer="OU=フォームベース認証するユーザを入れるOU,DC=xxx,DC=xxx"
groupNameAttribute="cn"
groupNameAlternateSearchAttribute="samAccountName"
groupMemberAttribute="member"
userNameAttribute="sAMAccountName"
dnAttribute="distinguishedName"
groupFilter="((ObjectClass=group)"
userFilter="((ObjectClass=person)"
scope="Subtree" />
</providers>
</roleManager>

 - Security Token Service(SharePoint Web Services - SecurityTokenServiceApplication)

  ・<Configuration>セクションに以下を追記
<system.web>
<membership>
<providers>
<add name="LDAPMember"
type="Microsoft.Office.Server.Security.LdapMembershipProvider, Microsoft.Office.Server, Version=15.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c"
server="ADサーバ名.xxx.xxx"
port="389"
useSSL="false"
userDNAttribute="distinguishedName"
userNameAttribute="sAMAccountName"
userContainer="OU=フォームベース認証するユーザを入れるOU,DC=xxx,DC=xxx"
userObjectClass="person"
userFilter="(&amp;(ObjectClass=person))"
scope="Subtree"
otherRequiredUserAttributes="sn,givenname,cn" />
</providers>
</membership>
<roleManager enabled="true" >
<providers>
<add name="LDAPRole"
type="Microsoft.Office.Server.Security.LdapRoleProvider, Microsoft.Office.Server, Version=15.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c"
server="ADサーバ名.xxx.xxx"
port="389"
useSSL="false"
groupContainer="フォームベース認証するユーザを入れるOU,DC=xxx,DC=xxx"
groupNameAttribute="cn"
groupNameAlternateSearchAttribute="samAccountName"
groupMemberAttribute="member"
userNameAttribute="sAMAccountName"
dnAttribute="distinguishedName"
groupFilter="(&amp;(ObjectClass=group))"
userFilter="(&amp;(ObjectClass=person))"
scope="Subtree" />
</providers>
</roleManager>
</system.web>

 - 対象の SharePoint Web アプリケーション(作成した名前)

  ・<membership defaultProvider="i">の<providers>セクションに以下を追記

<add name="LDAPMember" type="Microsoft.Office.Server.Security.LdapMembershipProvider, Microsoft.Office.Server, Version=15.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" server="ADサーバ名.xxx.xxx" port="389" useSSL="false" userDNAttribute="distinguishedName" userNameAttribute="sAMAccountName" userContainer="OU=フォームベース認証するユーザを入れるOU,DC=xxx,DC=xxx" userObjectClass="person" userFilter="(&amp;(ObjectClass=person))" scope="Subtree" otherRequiredUserAttributes="sn,givenname,cn" />

 ・<roleManager defaultProvider="c" enabled="true" cacheRolesInCookie="false">の<providers>セクションに以下を追記

<add name="LDAPRole" type="Microsoft.Office.Server.Security.LdapRoleProvider, Microsoft.Office.Server, Version=15.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" server="ADサーバ名.xxx.xxx" port="389" useSSL="false" groupContainer="OU=フォームベース認証するユーザを入れるOU,DC=xxx,DC=xxx" groupNameAttribute="cn" groupNameAlternateSearchAttribute="samAccountName" groupMemberAttribute="member" userNameAttribute="sAMAccountName" dnAttribute="distinguishedName" groupFilter="(&amp;(ObjectClass=group))" userFilter="(&amp;(ObjectClass=person))" scope="Subtree" />


2.Web アプリケーションの認証プロバイダの設定

 次は、Web アプリケーションに使用する認証プロバイダの設定を行います。
 [サーバの全体管理]から[Web アプリケーションの管理]を開き、対象の Web アプリケーションを選択し、[認証プロバイダー]を開きます。



認証プロバイダの領域では[既定]をクリックし、設定画面を開きます。



クレーム認証の種類のセクションで、[フォームベース認証(FBA)の有効化]にチェックを入れ、[ASP.NETメンバーシッププロバイダ名]に「LDAPMember(先ほど web.config に書いた名前)」、[ASP.NETロールマネージャ名]に「LDAPRole(先ほど web.config に書いた名前)」を設定し、保存します。





3.Web アプリケーションのユーザーポリシーの設定

 次は設定した認証プロバイダで認証されたユーザが Web アプリケーションへアクセスできるように設定します。
 先の手順と同様に[サーバの全体管理]から[Web アプリケーションの管理]を開き、対象の Web アプリケーションを選択し、[ユーザーポリシー]を開き、Web アプリケーションのポリシー画面で[ユーザーの追加]を開きます。



 対象の領域を聞かれるので[すべて]を選択し、[ユーザーの追加]画面の[ユーザーの選択]からユーザピッカーを開きます。


 [すべてのユーザー]から[すべてのユーザー(LDAPMember)]を追加し、元の画面に戻り、[権限の選択]で必要な権限を付与します。(画面は読み取り権限を与えています)




4.ユーザープロファイルとの紐づけ設定

 ここまでで認証とログインまでは出来るようになりましたが、SharePoint 上のユーザとの紐づけが出来ていません。つまり、認証とログインは出来ますが別途 User Profile Service 等で ID ストアから読み込んだユーザ情報と紐づけが出来ませんので、顔写真や姓・名などがうまく表示されない状態です。

 そこで、認証されたユーザと SharePoint 上のユーザプロファイルの紐づけ設定を行います。概念としては下図の通りです。



 今回作ったフォームベース認証プロバイダでは LDAP(AD)の sAMAccountName 属性を識別子として利用しているので、ユーザプロファイルの[クレームユーザーID]という属性が LDAP の sAMAccountName 属性の値と一致していれば同じユーザとみなす、という設定を行います。

 User Profile Service の詳しい設定については後日解説しますが、まず[サーバの全体管理]から[サービスアプリケーション]、[サービスアプリケーションの管理]、[User Profile Service Application]を開き、[ひと]セクションの[ユーザープロパティの管理]を開きます。
 この中の[クレームユーザーID]属性の編集を開きます。



 ここで認証プロバイダ LDAP の sAMAccountName をインポートするように設定し、保存します。



 この状態で[プロファイル同期の開始]で[完全同期]を行うと新しいマッピング状態を含めプロファイルが同期されます。  これで設定は完了です。


5.動作確認

 では、先ほどのサイトへアクセスしてみます。設定が上手く行っていればサインイン方法の選択が出来るようになっています。



 ここでフォーム認証を選択すると認証フォームが表示されますので、認証DB(今回は Active Directory)上に作成したユーザの sAMAccountName とパスワードでログインします。



 ちなみに Active Directory 上に作成したユーザは以下の通りです。



 認証がうまくいくとサイトが使えるようになっており、プロファイルには Active Directory 上に設定したユーザの情報が反映されているはずです。下図は Active Directory 上に顔写真を入れておき、SharePoint へ同期した例です。




今回はここまでです。次回は SAML トークンベース認証を Windows Azure Access Control Service と設定し、Facebook や Google アカウントでログインする方法を解説します。

「改訂新版クラウド環境におけるアイデンティティ管理ガイドライン」が発売されます

$
0
0
2年前にJNSA(日本ネットワークセキュリティ協会)のアイデンティティ管理WGで出版した「クラウド環境におけるアイデンティティ管理ガイドライン」の改訂版が6月10日より発売されます。
(現在 Amazonで予約可能です)

しかも、改定前のものは71,400円だったのが内容を拡充した上で3,200円と大幅な値下げです。
これで個人的に購入することも可能ですね!

- Amazon の内容紹介より
アイデンティティ管理とは何か、主要な構成要素の定義、内部統制や情報セキュリティといった外部要請との関係、ID管理システムの導入効果、ID管理システム導入の各フェーズのタスクについての指針、アイデンティティ管理システムの導入事例、プロジェクトの失敗パターンと処方箋、FAQとかなり広範囲にわたっており、かつ、それぞれを深掘りしてまとめているほか、クラウド環境においてどのようにID管理を運用すべきかを詳しく解説してます。これからID管理システムを導入検討する人には、プロジェクトの推進の準備として、また、現在ID管理システムを導入中の人にとっては、現在のプロジェクトをよりよくするためのチェック、ヒント集として、活用していただける内容となっています。

是非一人一冊ご購入あれ!

[Office365]新ディレクトリ同期ツールはFIM2010R2ベース

$
0
0
6月頭にリリースされた新しいディレクトリ同期ツールを触ってみています。

一番大きな変更点はオンプレミスの Active Directory から Windows Azure Active Directory へのパスワード同期が可能になった点ですが、少し細かい部分を掘っていこうと思います。

尚、全体的な動作やセットアップ方法などは Office 365 MVP の渡辺元気さんが書いているのでそちらが参考になります。

 日々徒然 ディレクトリ同期ツールでパスワード同期
  http://blog.o365mvp.com/2013/06/05/dirsync_with_password_sync/

また、パスワード同期については Technet にドキュメントが公開されているので、こちらも参考になります。

 Implement Password Synchronization
  http://technet.microsoft.com/en-us/library/dn246918.aspx



ディレクトリ同期ツール(FIM)がどうやって Active Directory からクラウドへパスワードを持っていっているのか?についてはもう少し深堀をしている最中なので、いずれ紹介していければと思います。
少なくとも現段階でわかっているのは、
 ・PCNSを使っているわけではない(ドメインコントローラにモジュールを入れる必要はない
 ・Active Directory Connectorを使ってパスワード属性をMetaverseにマッピングしているわけではない(Metaverse、Connector Spaceにパスワード属性は入らない)
ということから、おそらく Windows Azure Active Directory Connector(ECMA2ベース/Microsoft.Azure.ActiveDirectory.Connector.dll)のExtensionの中、もしくは Metaverse の Extension(MSONLINE.MVExt.dll)の中で定期的にパスワード変更を監視して、Active Directory のデータベース(ESE)から直接ハッシュ化された状態のパスワードを抽出しているのだと思われます。(もしくは Active Directory Connector がやっているみたいに Directory の Replication で変更を抽出しているかも。こっちの方が有力です)


と、パスワードに関してはこのくらいですが、もう一つ大きな更新ポイントは内蔵されている FIM のバージョンが変わった点です。
これまでは無印 FIM 2010 ベースでしたが、今回から FIM 2010 R2 ベースにかわっています。

以前のディレクトリ同期ツール




新しいディレクトリ同期ツール


ビルド番号を見ると 4.1.3451.0 となっており、現状の最新の FIM 2010 R2 SP1(4.1.3441.0)のビルドラインに乗っているように見えます。以前は 5.x 台となっており本家の FIM 2010 とは別のソースツリーになっているように見えましたが、ここにきて同じラインになった(様にみえる)、ということは本家 FIM 2010 でも Windows Azure Active Directory Connector がリリースされる日も近いのかも知れませんね。
と、思ったらTechEd North Americaで発表されてました。6月からパブリックプレビューだそうです。

エンタープライズロール管理解説書(第1版)がJNSA IdM-WGよりリリース

$
0
0
私がお世話になっている JNSA (日本ネットワークセキュリティ協会)の アイデンティティ管理ワーキンググループより
 エンタープライズロール管理解説書(第1版)
がリリースされました。

ロール管理、という実際に IdM プロジェクトを進める時は鬼門になりやすいテーマでの議論だったので、主要執筆メンバの方々はかなり苦労をされていたように感じます。(2年越しの議論でした)

以下の URL から無償でダウンロードできるので、ぜひダウンロードしてみてください。

ダウンロードページの紹介分より
本書は「エンタープライズロール管理」について、その基礎となる考え方や実施の意義、ID管理システムを導入するにあたって同時に検討すべき「ロール管理」について、実用的な導入指針(ガイドライン)を示している。本書の作成にあたったワーキングループには、ID管理製品やロール管理製品の開発・販売ベンダー、導入経験のあるSIer・コンサルタント等が多数参加しており、特定の製品に偏向しないことを留意しつつも、ロール管理を導入するユーザ、SIer等にとって有用となる知識・ノウハウを持ち寄った。
その結果、本書はロール管理とは何か?から始まり、ID管理におけるロール管理の重要性を解説し、実際のロール管理の実装ステップをステップ毎に解説をおこなっている。また、ロール管理はその運用が重要になるため運用のガイドラインとなるものを解説した。
これから、ロール管理を導入検討する人には、プロジェクトの推進の準備として、また、現在ID管理やロール管理システムを導入中の人にとっては、現在のプロジェクトをよりよくするためのチェック、ヒント集として、活用していただけると考えている。
なお、本書は「日本ネットワークセキュリティ協会(JNSA)」の「アイデンティティ管理ワーキンググループ」にて数年に渡って検討した内容となっており、ワーキンググループに参加いただいたすべての方々のご協力に深く感謝する。
また、この分野について詳細に書かれた書籍がほとんど出版されておらず、その意味でも本書の内容は多くの企業に役立つ内容となっている。
本書があらゆる企業において、ロール管理の適切な導入・運用に貢献できれば幸いである。




尚、発売について先日紹介したものの一時的に Amazon のリンクが切れていた「訂新版クラウド環境におけるアイデンティティ管理ガイドライン」ですが、昨日より復活しているのでこちらも是非見てみてください。
(Kindle版の発売が決まったのと、紙媒体版の価格が少し上がっています(3200円⇒3360円)




[FIM2010]ついにディレクトリ同期ツールにビルド番号が追いつきました

$
0
0
つい先日、新しいディレクトリ同期ツールに使われている FIM 2010 のビルド番号が本家 FIM 2010 と同一ソースツリーになったらしい、という投稿をしました。


その中で、新しいディレクトリ同期ツールのビルド番号が 4.1.3451.0 、その段階での FIM 2010 R2 のビルド番号が 4.1.3441.0 とお伝えしましたが、昨日 FIM 2010 R2 の HotFix がリリースされ、FIM のビルド番号もディレクトリ同期ツールと同じく 4.1.3451.0 となりました。

 KB ページ


更新内容としては、バグフィックスが2点と久しぶりに FIM CM の機能追加です。
機械翻訳をそのまま持ってきているので妙な日本語ですが、更新ポイントは下記の通りです。

FIM の同期サービス
問題 1
拡張機能 .dll ファイルのキャッシュされたバージョンのパスが長すぎるためパスワード管理操作が失敗します。この問題は、ユーザー マネージャーの Forefront 2010 R2 に含まれている web サービス コネクタも影響します。
問題 2
同期サービスが祖先の処理、特定の状況では、メモリ リークが発生します。
FIM 証明書の管理
機能 1
この更新プログラムは SubjectAltName ポリシーで証明書の要求が発行されると、サブジェクトの別名エントリを RegisteredID の代替名を指定する機能を追加します。
レポート作成
問題 1
Microsoft システム センター サービス マネージャー 2012年サービス パック インストール 1 (SP1)、FIM サービスとポータルのモードの変更のインストールを実行すると、インストールは失敗します。
FIM をレポート サービス マネージャー 2012 SP1 がインストールされている新しいサーバーにインストールすると、次の手順を実行します。
FIM 2010 R2 SP1 の FIMService コンポーネントをインストールします。これを行うには、レポートのチェック ボックスをオフにします。
4.1.3451.0 をビルドするのには、FIMService のインストールをアップグレードします。
モードの変更のインストールは FIMService を実行し、レポートを追加.


後は今月プレビューがリリースされる予定の Windows Azure Active Directory Connector を待つのみですね!

尚、以前紹介したビルド番号一覧にも今回のリリースを反映しておきましたので、歴史を確認したい人はどうぞ。

 [FIM2010]各リリース毎のビルド番号

[FIM2010] FIM ユーザ・グループが始動

$
0
0
流石に日本ではありませんが、オーストラリアの FIM MVP 仲間の Carol Wapshereさんと Bob Bradleyさんがやっている「THE FIM TEAM」という FIM 専門のコンサルティング団体が主催している THE FIM TEAM USER GROUPが立ち上がりました。

 THE FIM TEAM USER GROUP
 - http://thefimteam.com/fim-team-user-group/

メールを送れば誰でも参加できるので、日本の FIM 愛好家のみなさんは是非参加してみてください。

活動としては定期的なオンラインミーティングを予定しているということで、先日第1回が開催されたので早速参加してみました。
残念ながら朝早かったのと、Lync Attendee の調子が非常に悪かったので殆ど何もできませんでしたが、内容的には世界中の FIM User(というかインテグレーション側が多かった印象)がどうやって FIM を使っているのか?という情報を交換する、という感じだったので非常に参考になりました。

当日のレコーディングが YouTube にアップロードされていますので是非ご覧ください。


尚、イベントの中で何個かアンケートがあったので、回答を含め紹介します。
(Carol さんが blogで集計結果を公開しています)

◆本番環境で使っている FIM のバージョンは?
 ・MIIS 2003 : 4%
 ・ILM 2007 : 4%
 ・FIM 2010 : 12%
 ・FIM 2010 R2 : 15%
 ・FIM 2010 R2 SP1 : 65%

 意外とちゃんとバージョンアップしてるんですねぇ。

◆何個くらいのシステムとつないでいる?
 ・1-5 : 10%
 ・5-10 : 35%
 ・10-20 : 50%
 ・20以上 : 5%

 まぁそんなもんかと。

◆使っている同期ルールの種類は?
 ・クラシック(Rule Extension)のみ : 45%
 ・設定(Declarative)のみ : 15%
 ・両方 : 40%

 やっぱりコードレスプロビジョニングだけじゃ何ともならんということです。

◆どのくらいの数のアイデンティティを管理しているか?
 ・1,000以下 : 0%
 ・1,000-5,000 : 3%
 ・5,000-10,000 : 17%
 ・10,000-100,000 : 40%
 ・100,000以上 : 40%

 以外と大規模で使われてますね。数百万という話もチャットの中では出てきました。すごいですねぇ。

◆FIM にかかわる前の技術的なバックグラウンドは何?
 ・運用者 : 50%
 ・開発者 : 30%
 ・その他 : 20%

 やっぱり運用で使い始めて拡大していくパターンが多いんですかね。SIerではなく、ユーザ企業の情報システム部門が自力で実装するケースが多い海外ならではなのかと。

◆FIM にかかわる時間の割合は?
 ・20%以下 : 5%
 ・20-50% : 15%
 ・50-80% : 45%
 ・80%以上 : 35%

 まぁ FIM のグループですから・・・

◆どの FIM のコンポーネントを使っている?
 ・Sync Service
  ・本番環境 : 100%
 ・FIM Servie and Portal
  ・本番環境 : 80%
  ・テスト環境 : 10%
  ・使っていない : 10%
 ・Self Service Password Reset
  ・本番環境 : 55%
  ・テスト環境 : 15%
  ・使っていない : 30%
 ・Certificate Manager
  ・本番環境 : 12%
  ・テスト環境 : 3%
  ・使っていない : 85%
 ・BHOLD
  ・本番環境 : 15%
  ・テスト環境 : 35%
  ・使っていない : 50%
 ・R2 Reporting
  ・本番環境 : 17.5%
  ・テスト環境 : 17.5%
  ・使っていない : 65%

 FIM CM 人気ないですねぇ。。。BHOLD 以下とは。。


MVP の会合以外で中々 FIM の話をどっぷりと聞く機会もないですし、実際に使っている人の話は面白そうなので引き続き参加して情報を共有させてもらおうと思います。



[AD FS]Salesforce との SSO(SP-Initiated SSO)

$
0
0
そう言えば何度も AD FS2.0 を使って Salesforce.com へのシングルサインオン設定はやって来ていても IdP-Initiated SSO (先に IdP / AD FS2.0 側で SAML トークンの発行を受けてから SP / Salesforce 側へアクセスする)ばかりで SP-Initiated SSO(Google Apps や Office365 の場合と同様に先に SP / Salesforce 側へアクセスすると IdP / AD FS2.0 側へリダイレクトされて認証、SAML トークンの発行を受ける)のパターンって試していなかったなぁ、、と思ったのでやってみました。

関連)IdP Initiated SSO の手順

 クラウド・サービスと社内システムとのID連携 最新トレンド:
  第5回 Salesforce CRM/Force.comとのアイデンティティ基盤連携を実現する
  - http://www.atmarkit.co.jp/ait/articles/1303/27/news081.html


■作業の流れ

 以下の流れで作業を行います。非常にシンプルです。

 1.[Salesforce側] 組織のドメイン名を取得/設定する
 2.[Salesforce側] シングルサインオンの設定を行う
 3.[AD FS2.0側] 証明書利用者信頼の設定を行う
 4.[Salesforce側] 対象ユーザの設定を行う
 5.[AD DS側] 対象ユーザの設定を行う
 ※今回は Developer Force のアカウントを使っています。

 では、順に解説します。

◆[Salesforce側] 組織のドメイン名を取得/設定する

 管理者で Salesforce にログオンし、[管理者設定]から[私のドメイン]を選択し、組織のドメインを設定します。ドメイン名は<任意の名前>.my.salesforce.com となりますので、任意の名前(重複不可)を設定します。
 しばらく(1日程度)待つとドメインの設定が完了する(管理者のメールアドレスへ通知がある)ので、これで設定は完了です。

 ドメインの設定が終わると以下のような状態になります。(テストが終わったらリリースすることになりますが、今回はテスト状態でも支障がないのでテスト状態のままで進めます)


◆[Salesforce側] シングルサインオンの設定を行う

 同じく管理者でログオンし、[管理者設定]から[セキュリティのコントロール]、[シングルサインオン設定]を選択します。
 そこで[SAMLを有効化]すると SAML 関連の設定が色々と出来ます。
 今回設定した内容は以下の通りです。

項目設定値
SAMLのバージョン2.0
発行者http://<ADFSサーバのFQDN>/adfs/services/trust
IDプロバイダの証明書AD FSのトークン署名用証明書をエクスポートしたもの(cerファイル)
IDプロバイダのログインURLhttps://<ADFSサーバのFQDN>/adfs/ls
SAMLのユーザID種別アサーションには、ユーザオブジェクトの統合 ID が含まれます
SAMLのユーザIDの場所ユーザ ID は、Subject ステートメントのNameIdentifier 要素にあります
エンティティIDhttps://<設定した組織のドメイン>.my.salesforce.com
サービスプロバイダの起動要求バインドHTTP リダイレクト


 設定を完了すると[メタデータのダウンロード]というボタンが出てくるのでクリックしてメタデータ(XMLファイル)をダウンロードします。


 これで Salesforce 側のシングルサインオン設定は完了です。


[AD FS2.0側] 証明書利用者信頼の設定を行う

 次は AD FS2.0 側の設定です。先ほどダウンロードした Salesforce 側のメタデータをインポートして設定を行います。ポイントはただ一つ、利用するセキュア ハッシュ アルゴリズムをデフォルトの SHA-256 から SHA-1 に変更する点だけです。

 まずは、普通通り AD FS2.0 の証明書利用者信頼の作成を行います。
 データソースの選択画面で先ほどのメタデータファイルを選択します。


 作成が終わったら、クレームのマッピングルールを作成します。
 今回は Active Directory の電子メールアドレス属性に入っている値を名前 ID (nameidentifier)として出力します。


 最後に、作成した証明書利用者申請のプロパティからセキュア ハッシュ アルゴリズムとして SHA-1 を設定します。


 これで AD FS2.0 側の設定も完了です。

◆[Salesforce側] 対象ユーザの設定を行う

 次にシングルサインオンするユーザの紐づけをします。
 今回は SAML トークンの中の subject に入っている nameidentifier を Salesforce 上のユーザの統合 ID と紐づけることでシングルサインオンを実現しますので、AD FS2.0 から出てくる nameidentifier に入っている値、つまり Active Directory の電子メールアドレス属性に入っている値を Salesforce 上のユーザの統合 ID に設定する必要があります。

 こんな感じで対象ユーザの属性を編集します。


 次は AD DS です。

◆[AD DS側] 対象ユーザの設定を行う

 同様に Active Directory 上のユーザの電子メールアドレス属性の値を設定します。


 以上で、シングルサインオンの設定および対象となるユーザの設定は完了です。
 早速、試してみます。

 まずは、先ほど設定した Salesforce の組織のドメインのアドレスへアクセスします。
 - https://<組織のドメイン名>.my.salesforce.com

 すると、AD FS2.0 のログイン画面にリダイレクトされ、認証を行います。(例では AD FS2.0 側の Windows 統合認証を無効化しているのでフォーム認証を行います)


 認証が無事に成功すると Salesforce にログオンされます。



いかがでしょうか?IdP Initiated SSO と設定は大きくは変わりませんが、組織のドメインを設定しておけば、Google Apps 等の SP Initiated SSO と同様のユーザ操作でシングルサインオンが実行されるので、組織内に他の SP Initiated SSO で利用しているサービスがある場合は混乱を避ける意味でもこのような設定の方があっている場合もあると思いますので、参考にしていただければと思います。

[AD FS]Windows Server 2012 R2 Preview の AD FS ①

$
0
0
6月は TechEd 2013 North America があったり、 build があったりとイベントがてんこ盛りで全然ついていけてないのですが、ようやく Windows Server 2012 R2 の Preview が使えるようになったので、予告されていた AD FS の新機能を順番に確認していこうと思います。

尚、AD FS 以外にも多くの機能が Active Directory に追加されているので全体を把握したい人はこちらをご覧ください。
(これはこれで、日本語版のまとめを作る必要がありそうな気がしますが、おそらく Directory Service の MVP の人たちが何とかしてくれるんじゃないかな、と思ってます)

 What's New in Active Directory in Windows Server 2012 R2
 - http://technet.microsoft.com/en-us/library/dn268294.aspx


実はまだ AD FS に関しても細かく見れているわけではないので、とりあえず今回は
・役割の追加と構成
・管理コンソールの中で気になる変化
・ログオン画面の変化
を紹介していきます。

◆役割の追加と構成

とりあえずスクリーンショットを張り付けておきます。尚、今回は Windows Azure の仮想マシンの Windows Server 2012 R2 Preview に日本語言語パックを入れて使っています。また、AD DS を同じマシンにインストール済みです。

途中で KDS ルートキーの設定を求められたので Add-KdsRootKey コマンドレットを使って設定をしたのと、何故か Windows ファイアウォールの規則の生成でエラーが出たのですが放置した、というあたりが特記事項です。

まずは役割の追加です。




次は構成ウィザードの実行です。




こんな警告が出てます。

PowerShell で KDS ルートキーを設定します。






何故か Windows ファイアウォールに嫌われます。


尚、実はこれが今回の AD FS の最大の変化点なんじゃないかな?と思うのが、IIS がいらなくなったという点です。実際 AD FS をインストールしても IIS がインストールされません。
おかげで IIS 管理コンソールを使ってオレオレ証明書を作れなくなったので、別で証明書を作る必要があります。今回は面倒なので Azure の証明書を使ってしまいましたが、マネしないでください。

フォルダ構成を見ても、当然 inetpub/adfs とかは存在せず、C:\Windows の下に ADFS という名前のフォルダがあり、必要なモジュール群はそこにインストールされています。



◆管理コンソールの中で気になる変化

コンソールを立ち上げると、一見見慣れた画面が出てきます。
が、ツリーに存在する「認証ポリシー」という見慣れないメニューが目につきます。

こちらが古い AD FS(Windows Server 2008 R2 時代)


次にこちらが新しいコンソール。「認証ポリシー」というメニューがある。


早速「認証ポリシー」を開いてみると「プライマリ認証」と「他要素認証」というサブメニューが存在します。


それぞれについて編集画面を開くと以下のような設定が出来ます。
・プライマリ認証
 要するにアクセス元によって認証方法を画面から選択できるようになった、ということです。これまでは web.config をいじったりしていた部分です。
 後は、デバイス認証に関する記述があります。これは別途解説が必要なデバイス・レジストレーション・サービス(DRS)という新機能に関連したメニュー(のはず)です。今回のバージョンから iOS なども組織内の Active Directory 上に登録が出来るようになっているので、BYOD を推進するための機能がかなり強化されています。


・多要素認証
 今回の AD FS から他要素認証がデフォルトでサポートされています。まずは他要素認証を適用する条件として、
 ・ユーザ/グループ(特定のユーザ/グループなら多要素認証が必要、など)
 ・デバイス(未登録デバイスなら多要素認証が必要、など)
 ・場所(エクストラネットからのアクセスなら多要素認証が必要、など)
が選択できます。
また、デフォルトでは追加の認証方式として証明書認証だけしか選択できませんが、Windows Azure Active Directory と連携して PhoneFactor を使った SMS や電話、Active Authentication モジュールを使った追加認証もできるようです。



その他、管理コンソールを見ていて気になる点としてはエンドポイントの追加です。
・/adfs/oauth2
・/adfs/portal/updatepassword
とか結構気になるエンドポイントが定義されています。

特に OAuth2.0 のサポートについてはファイルサーバなどのリソースやアプリケーションを Active Directory 上に登録して OAuth2.0 を使って認可する、というシナリオも紹介されていたので、その時に使うものだと思われます。こちらは追って確認してみたいと思います。



◆ログオン画面の変化

試しに手持ちの Google Apps ドメインとの SSO 設定をしてみました。
基本的に設定方法は以前の AD FS2.0 とほぼ変わらないので(他要素認証を証明書利用者信頼ごとに設定が出来るので構成ウィザードで使うかどうか聞かれるくらい)ほぼ問題なく設定は出来ます。

 参考)@IT / Google Appsとのアイデンティティ基盤連携を実現する
 - http://www.atmarkit.co.jp/ait/articles/1301/16/news122.html


で、実際にログオンをしてみるとフォーム認証の画面が一瞬 Office365 や Microsoft アカウントのログイン画面と見間違うようなものに変わっています。


また、多要素認証の設定を入れるとこんな画面になります。(ちなみにクライアント証明書でのログイン設定をしていないのでこの画面で止まりますが)




今回はさわりの部分だけをさらっと見てみましたが、色々と気になる点があるので、引き続き解説していきたいと思います。


[AD FS]Windows Server 2012 R2 Preview の AD FS ②

$
0
0
先日のポストに引き続き Windows Server 2012 R2 Preview での AD FS の話です。

今回は AD FS でデバイス認証を有効にして、ドメインに参加していないデバイス(今回は iPhone)で AD FS と連携したサービス(証明書利用者信頼として登録した Google Apps)へのシングルサインオンを行ってみます。

これは Directory Services の MVP 国井さんが紹介してくれているとおり、「BYODで活用されるデバイスの管理をActive Directoryから行える」という Windows Server 2012 R2 Preview の Active Directory の新機能を使って実現します。

国井さんの blog ポスト:Windows Server 2012 R2 PreviewのActive Directory(1)
- http://sophiakunii.wordpress.com/2013/07/02/windows-server-2012-r2-preview%E3%81%AEactive-directory1/


実現するには、まずデバイスを Active Directory 上に登録して、AD FS の認証をデバイスで実行できるようにする必要があります。

まずはデバイスを登録する。登録サービス(Device Registration Service/DRS)の認証は AD FS を使い、ドメインユーザで実行する。


AD FS でデバイス認証を行いアプリケーションを利用する。


デバイス認証を使うと登録されたデバイスではドメイン環境にある PC と同じように ID / パスワード等でのユーザ認証を受けなくてもアプリケーション(AD FS の証明書利用者信頼)を利用できるようになります。

実際に試してみます。具体的には以下のステップを実行します。
1.DRS を実行できるように AD FS を構成する
2.DRS を使ってドメインに参加していないデバイスを Active Directory 上に登録する
3.AD FS の認証手段としてデバイス認証を有効にする
4.AD FS でデバイス認証を受けサービス(証明書利用者信頼)へアクセスする


◆1.DRS を実行できるように AD FS を構成する

AD FS の役割を追加した状態でも最初から DRS が証明書利用者信頼として登録されていますが、サービスとしては DRS は停止しています。
この状態から DRS を実行するためには、
・デバイスを AD DS に登録できるように AD DS のスキーマを拡張する
・DRS が AD FS で認証するように構成する
という作業が必要です。

具体的には、PowerShell で以下のコマンドレットを実行します。

 Enable-AdfsDeviceRegistration -PrepareActiveDirectory

これで、AD DS のスキーマ拡張等の準備が整いますので、DRS を有効化します。

 Enable-AdfsDeviceRegistration

うまくいけば DRS が開始しているはずです。


◆2.DRS を使ってドメインに参加していないデバイスを Active Directory 上に登録する

次に実際にデバイスを登録します。
現状では Windows 8.1 および iOS が登録可能ですが、今回は iOS を使います。

iPhone の safari で https://<AD FSサーバ>/EnrollmentServer/otaprofile へアクセスします。
AD FS へリダイレクトされ、ユーザ認証が完了するとプロファイルがダウンロードされますので、インストールを実施します。




AD DS の拡張表示を有効にした状態で Active Directory のユーザとコンピュータを見ると Registered Devices というコンテナの下にオブジェクトが登録されているのがわかります。


オブジェクトのプロパティを見ると確かに「iOS」との記載があり、先ほど登録をした iPhone であることがわかります。



◆3.AD FS の認証手段としてデバイス認証を有効にする

次は AD FS 側の設定です。
AD FS 管理コンソールからグローバル認証ポリシーの中のデバイス認証の有効化設定を行います。(Windows Server 2012 R2 Preview からの新しいメニューです)


これで AD FS 側の設定も完了です。再起動なども不要です。


◆4.AD FS でデバイス認証を受けサービス(証明書利用者信頼)へアクセスする

では、実際にアプリケーションへアクセスしてみます。
今回は AD FS の証明書利用者信頼として Google Apps を登録してみました。
先ほどの iPhone から Google Apps へアクセスしたときに、デバイス認証でシングルサインオンが実行されれば成功です。

結果ですが、想定の通り初回ドメインユーザで認証を行えば2回目以降は ID / パスワードを入れることなくアクセスできます。(ブラウザを落として再度アクセスしても大丈夫)
デバイス認証を行わないケースだとブラウザを落とすと毎回 ID / パスワードを聞いてくるのでそれに比べれば非常に簡単なオペレーションになります。


尚、この状態を解除するには、
・iPhone 側でプロファイルを削除する
 ⇒ユーザが自分でワークスペース参加を辞めたい場合
・AD DS 上でデバイスオブジェクトを削除する
 ⇒管理者側が端末の利用を停止させたい場合
・デバイスに配布している証明書を失効させる
 ⇒同上
などが考えられますが、こうなると System Center 等を使ったデバイス管理ソリューションと合わせて運用を行うことでよりセキュアで便利な状態が実現できそうな気がします。
また、多要素認証と組み合わせることで登録してあるデバイスでも追加認証が必要、というようなシナリオも考えられますし、今回は iOS で実験しましたが、例えば Windows RT のようなドメインに参加できないようなデバイスをビジネスで利用する、ということも考えられます。

しかし前回のポストでも述べましたが、Windows Server 2012 R2 では AD FS の役割がこれまで以上に大きな位置を占めるようになっているように感じます。TechEd や Build を見ていると AD FS を活用したシナリオが数多く用意されていますし、AD DS から AD FS への認証機能の大きなシフトチェンジが起きているような予感がします。
引き続き AD FS からは目が離せないですねぇ。

参考URL)
Solution Guide: Join to Workplace from Any Device for SSO and Seamless Second Factor Authentication Across Company Applications
- http://technet.microsoft.com/en-us/library/dn280945.aspx

[WAAD] IDaaS としての機能が充実してきた

$
0
0
ここのところ Windows Azure Active Directory(WAAD)の機能拡充が加速しているようです。
今回は以前に紹介した Intel Cloud SSO(現McAfee Cloud SSO)の様ないわゆる Identity as a Service(IDaaS)の持つ、クラウド・サービスのアイデンティティ管理基盤としての機能である「アプリケーション・アクセス」が追加されました。(現行 Preview)

公式 blog によると、以下のような機能が追加されたということです。

  • A gallery of pre-integrated SaaS apps including top apps like Office 365, Box.com, Salesforce.com, Concur, DropBox & Gmail (plus 40 more).
  • Easy SSO configuration using SAML federation or secure password mangement.
  • User provisioning integration with top SaaS apps like Box, Salesforce.com and Gmail.
  • Simple security reports reporting user logins and suspicious logins.
  • A browser based end-user access panel which makes it easy for employees to find the SaaS apps you're organization provides them and to Single Sign On (SSO) to those applications.


要するに、Office365 とか Box.com とか Salesforce.com など40種類以上の SaaS アプリケーションへの接続がプリセットで用意されていて、SAML もしくはパスワードの管理による SSO とユーザ・プロビジョニングが実行できて、利用者向けのアクセスパネルを使って各アプリケーションへの SSO アクセスが出来る、ということのようです。

Active Directory Team の blog でのアナウンス
 http://blogs.msdn.com/b/active_directory_team_blog/archive/2013/07/07/application-access-enhancements-for-windows-azure-active-directory.aspx


早速、Preview 機能を有効化して Azure 管理ポータルからディレクトリ・サービスを見ると、アプリケーションの追加のオプションで「アプリケーションへのアクセスの管理」を選べるようになっています。


設定を始めると確かに色々なアプリケーションへのアクセスをギャラリーから選択することが出来ます。


今日現在で以下の 75 個のサービスが使えるようです。

  • Adnovate
  • ADP Background Checking
  • ADP Easy Pay
  • ADP eTime
  • ADP Flex Direct
  • ADP HR/Benefits
  • ADP RUN
  • ADP VirtualEdge Recruitment
  • Amazon Web Services (AWS)
  • Annotag
  • Appetas
  • AppPoint
  • Aravo
  • Barium Live
  • Base Camp
  • Bentley Systems
  • Birst Agile Business Analytics
  • B-kin
  • Box
  • Cisco Webex
  • Citrix GoToMeeting
  • ClearlyInventory
  • Click2Translate
  • Concur
  • Dpcisign
  • DropBox for Business
  • Egnyte
  • ElasticWCM
  • Evernote
  • FabaSoft Folio Cloud
  • GitHub
  • Google
  • Google Apps
  • GT Nexus
  • Heroku
  • Hubwoo
  • IBM SmartCloud for Social Business
  • IBM Sterling Commerse Customer Center
  • iMedidata
  • Intacct
  • Intuit
  • litmus
  • LogMeln Rescue
  • LongJump
  • Microsoft Account (Windows Live)
  • Microsoft Bing Ads
  • Microsoft Developer Network (MSDN)
  • Microsoft Office365 Exchange Online (Outlook)
  • Microsoft Office365 SharePoint Online
  • Microsoft SkyDrive
  • MongoHQ
  • MySaasPlace
  • Netsuite
  • New Relic
  • Oracle Taleo
  • pingdom
  • Replicon
  • Saba Meeting
  • Sage North America
  • Salesforce
  • SDL Click2Translate
  • Skype
  • SpringCM
  • SuccessFactors
  • Sunwapta PenForms
  • Syncplicity
  • Thomson Reuters
  • TimeOffManager
  • Ultimate Software UltiPro
  • UPS
  • US Postal Service
  • Volusion
  • WorkflowMax
  • Yammer
  • YouSendIt



試しに Google Apps を追加すると、

  • シングルサインオンの構成
  • アカウントの同期の構成
  • ユーザーアクセスの構成

という3点の構成が出来るようです。


それぞれ、簡単に機能を紹介します。

◆シングルサインオンの構成

WAAD からアプリケーションへのシングルサインオンを行う方法として下記の2つのオプションが提供されています。
1. ユーザーは Windows Azure AD のアカウントを使用して認証
 ⇒SAML を使ったフェデレーションです。
2. ユーザーは既存のアプリケーションアカウントを使用して認証
 ⇒ブラウザに SSO プラグインを導入しての疑似シングルサインオンです。Enterprise SSO のように各サービスのログイン URL の ID / PWD 入力フォームへ WAAD 上のアカウントに紐づけて記憶させた ID / PWD を自動的に入力して Submit してくれます。
 (現状、IE と Chrome 用の SSO プラグインが提供されています)



ちなみに何故かフェデレーションを使った SSO の設定をしようとすると予期せぬエラーが出てしまうので、今のところ 2. のプラグインを使った SSO しか試せていません。


◆アカウントの同期の構成

WAAD のアカウントを各サービスへプロビジョニングする機能です。
これには前提があり、
・WAAD に独自ドメインを追加しておく必要がある
 ⇒ドメイン名は Google Apps で使っているドメインと同じドメインを追加
・Google Apps 側で API アクセスを許可しておく必要がある
 ⇒ Provisioning API を使うために必要
という条件を満たす必要があります。

これさえクリアすれば、設定が完了し、次項で紹介するユーザーアクセスの構成が住んでいるユーザを自動的にサービス側へプロビジョニングしてくれます。

尚、設定する際に Google Apps の管理者ユーザの ID とパスワードを入力させられることから API 認可に OAuth を使わずにレガシーな ClientLogin を使っている?ようでちょっと微妙です。



◆ユーザーアクセスの構成

設定が終わったら WAAD 上のユーザがアプリケーションを使えるようにします。
これは簡単で、ユーザの一覧からユーザを選んで「アクセスの有効化」をクリックするだけです。


これで対象のユーザが Google Apps へプロビジョニングされます。(しばらく時間がかかります)


尚、プロビジョニングしただけのユーザのパスワードは初期状態で WAAD のパスワードが同期されているわけではないので、一旦は Google Apps 側へ直接ログインしてパスワードを変更しておく必要があります。
(フェデレーションを使う場合は不要)




設定としては以上なので、実際に試してみます。

WAAD のアプリケーション・ポータルへ対象のユーザでログインすると設定したアプリケーションが見えます。

 アプリケーション・ポータル
 https://account.activedirectory.windowsazure.com/applications



アイコンをクリックするとプラグインのインストールを促されますので、インストールを実行します。(フェデレーション設定をした場合はことなるはずです)


- IE の場合


- Chrome の場合(Chrome Web Store からのインストール)





プラグインを有効化してブラウザを再起動すると、今度はアプリケーション・アイコンをクリックすると初回は Google Apps 側の ID / PWD を求められます。


ここで入力した値が WAAD アカウントに紐づけられて、ブラウザのプラグインが対象サービスのログインフォームへ自動的に入力してくれる仕組みになっています。

ということで、うまくいけば Gmail のページにアクセスできるようになっているはずです。

まだフェデレーションでのアプリケーション・アクセスの設定が上手く言っていないので何とも言えませんが、これでローカルの AD FS と WAAD のフェデレーション設定がされている環境であれば、各サービス毎にローカル AD FS へ証明書利用者信頼の設定をしなくて済むので証明書の管理など非常に楽になる可能性があり、コスト面でもかなり優位なものになるのではないでしょうか?
(Ping Federate と Ping One の関係のようなイメージでクラウド連携が出来るようになると思われます)

[FIM2010]Google Apps MA 1.1.1 をリリースしました

$
0
0
かなり久しぶりの更新になりましたが、先ほど codeplex にモジュールをアップロードしました。

 Google Apps MA
 - https://fim2010gapps.codeplex.com/



といってもバグフィックスです。
しかも直したのは半年以上前という、、単にアップロードをサボってただけです。

修正ポイントは、
「インポート処理時にページングがうまく実装出来ていなかったので実装した」
の1点のみです。

FIM は CS へインポートする際に MA に設定したページサイズ分のエントリを読み込み終わると一旦 GetImportEntries メソッドを抜け、再度エントリが無くなるまで同メソッドを繰り返し呼ぶ、という動きをするのですが、この際に最後のエントリを読み込み終わったことを FIM 側へ自分で伝えてあげる必要があります。
そのためのプロパティが importReturnInfo.MoreToImport というプロパティで、最後のエントリを読み込み終わったらこの値を true にしてあげれば FIM はすべての Import が完了したという判断をして処理を終わります。

小規模のシステムとの接続であれば MA の設定で大きめの数値をページサイズとして設定してあげれば一回の GetImportEntries 処理で完了するので問題ないのですが、MA に設定できる最大サイズを超えるようなエントリーをインポートする必要がある場合は上記のようなページング処理を実装してあげる必要があります。

ちなみに次の実装予定は
1. Google Provisioning API が 5月に新しい API (Google Directory API)へ変わったのでそこへの対応
2. 合わせて API 認可を現状 ClientLogon(管理者 ID とパスワードを MA に設定する方式)にしているのを OAuth 2.0 に対応させる
の2点を予定していますが、1. の API 変更が結構な大手術になりそうなのでぼちぼちやっていく形になりそうです。
まぁ、これを実装しちゃえば Windows Azure Active Directory の Graph API も SCIM もほぼ同じコードで流用できちゃうので早く実装したいとは思っているのですが、、

ではでは。。

[WAAD]Active Authenticationプロバイダを利用した多要素認証を構成する

$
0
0
最近 Windows Azure Active Directory(WAAD)周りの更新が激しすぎて色々と試せていないことがあるんですが、順番に試して行こうと思います。

今回は、現在 Preview リリースされている Active Authentication による多要素認証の設定です。(2013/6/12にアナウンスされたものです)

 Windows Azure Active Authentication: Multi-Factor for Security and Compliance
 - http://blogs.technet.com/b/ad/archive/2013/06/12/windows-azure-active-authentication-multi-factor-for-security-and-compliance.aspx


まずは準備作業として Windows Azure 管理ポータルよりディレクトリを作成しておきます。(しかし管理ポータルの「すべてのアイテム」から作成したディレクトリを見ると「名簿」となっているのは何とかしてもらいたいもんです)


早速設定していきます。

Active Authentication プロバイダを作成します。


ここで出てくる使用モデルには「認証ごと」もしくは「有効化されたユーザごと」が選択できますが、これは課金のされ方の違いです。
「認証ごと」だと認証10回毎に\83.04、「有効化されたユーザごと」だとユーザあたり一月\83.04という金額体系になっています。

 参考)料金プラン
 - http://www.windowsazure.com/ja-jp/pricing/details/active-directory/



次に作成したディレクトリをリンクします。


うまくいくと Active Authentication プロバイダが作成されます。



次に対象とするユーザのプロパティから多要素認証を有効化します。



早速そのユーザでログオンしてみます。今回は対象アプリケーションとして Office365 を使っていますが、WAAD で認証するアプリケーションであれば何でも大丈夫です。

普通に ID / PWD でログオンすると初回は多要素認証のセットアップを要求されます。



携帯電話や Active Authentication アプリなどを使った認証の設定を自身で設定していきます。



ちなみに Active Authentication アプリの構成をクリックすると QR コードが出てくるのでアプリから読み込んでアプリを構成します。



今回は Android 版のアプリを使います。先日マイクロソフトが買収した「PhoneFactor」の名前がまだ残っています。



アプリをインストールしたら QR コードを読み込みます。



うまくいけば構成が終わるので、次回のログイン時の追加認証としてアプリへ認証要求がプッシュされます。



なんだか文字化けしていますが、こんな画面が出てくるので[認証]をタップします。



うまくいけば認証が完了し、ブラウザ側も自動的にリフレッシュされて Office365 へアクセスできます。



ちなみに、携帯電話への SMS 通知だとこんな感じです。




ブラウザに通知されたコードを入力すると認証完了です。



今回は Office365 を例に Active Authentication を行いましたが、先にも述べたように WAAD で認証を行うアプリケーションならこの機能を使うことが出来ます。
つまり、先日紹介した Google Apps や Salesforce.com などの SaaS へのログオンにもこの機能を使うことが出来ますし、同じく以前紹介した Windows Server 2012 R2 の AD FS の認証についても WAAD を使うことが出来るようになるらしいので、オンプレミスのアプリケーションについても手軽にこれらの機能を使うことが出来るようになってきます。
いよいよ本格的に IDaaS と MBaaS の機能を Windows Azure が担うようになってきた、ということですね。

[Office365]PowerShellを使った自動化を行う際のTIPS

$
0
0
Office365 の管理を自動化する際、PowerShell を使うのが一般的かと思います。

例えば、Forefront Identity Manager(FIM)を使って Office365 のアイデンティティ管理を行う場合も海外の事例を見ているとデンマークの FIM MVP の Soren が提供している PowerShell MA と Office365 用のスクリプトを組み合わせて対応している例が多いようです。

 PowerShell Management Agent

しかし、実際に PowerShell を使って Offie365 の管理の自動化を行う際に一番最初に引っかかるのが Connect-MsolService コマンドレットでの ID / パスワードのポップアップです。



バックグラウンドで使おうと思うとこのようなユーザ・インタラクションは回避したいところです。

ということで、今回は PowerShell で Credential 情報をポップアップせずに入力する方法の紹介です。

まず、問題になるのはパスワードの扱いです。Connect-MsolService 自体は -Credential オプションに PSCredential 型のオブジェクトを渡してあげることでポップアップせずに実行することが出来ますが、この PSCredential 型のオブジェクトを作成する際に使うパスワードが普通の文字列ではなく、SecureString という型なので、平文をそのまま渡してもうまくいきません。

ということでひと工夫です。

まず、SecureString として入力したパスワードをファイルに保存します。
> Read-Host -AsSecureString | ConvertFrom-SecureString | Out-File pwd.txt
*******<- p="">
結果出来上がったファイル(pwd.txt)の中にはハッシュ化されたパスワードが保存されます。
> cat .\pwd.txt
01000000d08c9ddf0115d1118c7a00c04fc297eb01000000c40a300be3002b4a9920bd16c95a674b000000000200000000001066000000010000200000002a7eb8f2b74a57c5a22ab44b53c3b4d685d1c227575e9ee3ceb7f8eb16d1a2e3000000000e8000000002000020000000ca45d7964ca3162a30dcb5d680490235a9899cf1a72ef55c3271982e22d307ab20000000ed0adf53a7ce(以下、略)

これでパスワードを保存できましたので、変数に入れておきます。
> $password = cat .\pwd.txt | ConvertTo-SecureString

これを元にクレデンシャル情報を生成します。
> $cred = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList user@xxx.onmicrosoft.com,$password

これのクレデンシャル情報を使って Offie365 へ接続します。
> Connect-MsolService -Credential $cred


これでポップアップなしに Office365 へ接続できますので、バックグラウンドでの処理を行うことが出来ます。

ちょっとした小ネタでした。->
Viewing all 771 articles
Browse latest View live