Azure Functions から定期的に Microsoft Graph にアクセスする

Azure Functions って知ってますか ? 一言でいえば、Azure Automation の”開発屋さん版”です(って、適当すぎて怒られそうw)。   Azure Automation は PowerShell スクリプトをクラウド上でジョブ化することができますが、Azure Functions は C#、F#、Node.js、Python、PHP Java などで書いたプログラムを WebJob として登録することができます。いずれも、サーバーを置くことなくジョブを実行することができる、いわゆるサーバーレスを実現するためのコンポーネントです。 PowerShell 好きの私的には Automation が好みではありますが、悔しいことに Functions のほうが高機能であることは否めません。何がいいって、入力や出力の定義が超簡単。これはAutomationにはない部分です。詳しくは以下の手順で。   Azure Functions の概要https://docs.microsoft.com/ja-jp/azure/azure-functions/functions-overview   ためしに使ってみようかってことで、ここでは、Microsoft Graph にアクセスしてユーザー一覧を取得し、これを Azure Blob に保存するジョブを作成してみることにします。 Microsoft Graph にアクセスするので Azure AD 側の設定も必要になります、そこも含めて手順を書いておきますので参考にしてください。   1.  Azure Functions アカウントの作成   Azure Portal  の Marketplace で Function…


Azure Functions から定期的に Microsoft Graph にアクセスする

Azure Functions って知ってますか ? 一言でいえば、Azure Automation の”開発屋さん版”です(って、適当すぎて怒られそうw)。   Azure Automation は PowerShell スクリプトをクラウド上でジョブ化することができますが、Azure Functions は C#、F#、Node.js、Python、PHP Java などで書いたプログラムを WebJob として登録することができます。いずれも、サーバーを置くことなくジョブを実行することができる、いわゆるサーバーレスを実現するためのコンポーネントです。 PowerShell 好きの私的には Automation が好みではありますが、悔しいことに Functions のほうが高機能であることは否めません。何がいいって、入力や出力の定義が超簡単。これはAutomationにはない部分です。詳しくは以下の手順で。   Azure Functions の概要https://docs.microsoft.com/ja-jp/azure/azure-functions/functions-overview   ためしに使ってみようかってことで、ここでは、Microsoft Graph にアクセスしてユーザー一覧を取得し、これを Azure Blob に保存するジョブを作成してみることにします。 Microsoft Graph にアクセスするので Azure AD 側の設定も必要になります、そこも含めて手順を書いておきますので参考にしてください。   1.  Azure Functions アカウントの作成   Azure Portal  の Marketplace で Function…


Azure リソースの RBAC でカスタムロールを作成する

※ この投稿は PowerShell Advent Calendar 2016 に参加しています   Azure 上の全てのリソースは Azure AD に登録されたユーザーやグループを使用してアクセス制御が行えます。この時に使用するアクセス制御の方法を RBAC(Role Based Access Control)と言います。   Azure ポータル(https://portal.azure.com/)で何らかのリソース(いかの場合は仮想マシン)を選択すると、必ずメニューの中に「アクセス制御(IAM)」が表示され、ここを起点としてRBACを設定することができます。     RBAC の概念を簡単に図にすると、以下のようになります。リソースに直接アクセス権を設定するのではなく、ROLE を介してアクセス権を得ることになります。ROLE には「アクション」が定義されており、これが Azure のリソースに対して行える権限を表しています。   ここでは「仮想マシン作成協力者」というロールのアクションを見てみましょう。以下が仮想マシン作成協力者に定義されているアクション(アクセス許可)の一覧です。 見ていただくとわかりますが、リソースプロバイダーに対してアクセス権が設定されていることがわかります。リソースプロバイダーについてはここでは解説しませんが、リソースの種類だと思ってください。Microsoft Compute は仮想マシンに関連したリソースを意味しています。ここには仮想マシンや仮想マシンノスケールセットなどが含まれています。Microsoft Network はネットワークに関連したリソースを意味しており、仮想ネットワーク、ネットワークインターフェースなどのリソースが含まれています。   Microsoft Computeをクリックして表示した画面が以下です。Virtual Machine に対してフルコントロールが与えられているのがなんとなくわかりますか?Availability Sets には「読み取り」「書き込み」「削除」の権限が与えられています。   さて、ここからがいよいよ PowerShell の出番です。これらを PowerShell から確認してみましょう。   まずは、以下の PowerShell コマンドレットで Azure AD にログオンします。…


初の日本語版 Azure Active Directory 専門書~脱オンプレミス! クラウド時代の認証基盤 Azure Active Directory 完全解説

Gartner 社から発表された Magic Quadrant(マジック クアドラント) によれば、Azure AD Premium が IDaaS(Identity and Access Management as a Service)部門で Leader 枠に位置づけられています。 Gartner からリリースされているレポート(無償で読めます)によれば、IAM 分野における IDaaS の採用率は 2020 年までに 40% に上るとみられており、今後ますますクラウド上での IAM に注目が集まりそうです。 Gartner による分析では、IAM を大きな 3 つの機能の集合体であるととらえており、これらの機能が B2B や B2C を問わずさまざまなシナリオで動作することが前提となっています。 IGA(Identity and Governance Management) 少なくとも顧客の持つIdentity ストアとの同期が行え、管理用のインターフェースが提供されていて IDaaS から顧客のディレクトリを管理できる ユーザー自身でパスワードをリセット Identityのライフサイクル管理機能 さまざまなシステムへの自動プロビジョニング アクセスのリクエスト(セルフサービス含む) ポリシーの適用により重要なシステムへのアクセスに対するガバナンス Access 少なくとも、Web プロキシやフェデレーションを使用したアプリへの SSO…


Azure AD のごみ箱(recycle bin)

ちょっと小ネタを。 Active Directory にゴミ箱機能が実装されたのは Windows Server 2008 R2 からでした。覚えてます? 実は、Azure Active Directory にもゴミ箱があります。 ちょっと以下の画面ショットをご覧ください。これは、Office 365 に用意されている「削除済みのユーザー」というメニューです。 Office 365 上で削除されたユーザーは、いったんここ(ゴミ箱)に移動されます。移動されたユーザーは、30日後に完全に削除されます。逆に言えば、30日未満であればもとのアクティブなユーザーとして復活することが可能です。 ここであることに気づきますよね。 そうです。Office 365 のユーザー管理簿は Azure Active Directory ですから、そもそも Azure Active Directory 自身にゴミ箱機能があるんじゃないか? まさにその通りです。 現在の旧ポータルで提供されている Azure Active Directory の管理画面では、念ながらゴミ箱を参照することはできませんが、PowerShell を使用すれば確認することができます。 まずは、Connect-MSOLService コマンドレットで Azure AD のテナントにログオンしましょう。 次に、Get-MSOLUser  -RetuenDeletedUsers コマンドを入力してみてください。ごみ箱に入っているユーザーを確認することができます。 削除されているユーザーが、「いつ」削除されたかを確認するには SoftDeleteionTimestamp プロパティを参照します。   このユーザーは 30 日後に削除されるわけですが、それがいつなのか?を確認するには SoftDeleteionTimestamp に…


IT 業界私的英雄列伝 ー 富士榮 尚寛 氏「フェデレーションが難しい?美しいものほど攻略には苦労するものさ(フッ)」というセッションで Identity にどっぷりつかる

富士榮(ふじえ)さんと初めで出会ったのは MIXI でした。 まだ残っていると思いますが、MIXI 上で Identity Management グループを運営していて、メンバーは富士榮さんを含むたった2名(笑)。ほとんどスレッドなんて立っていない状態でしたが、なんか武骨な雰囲気がよさげで参加申請したのが始まりです。 当時の写真はこんなかんじで、ちょっと付き合いたくない雰囲気を醸し出していました。だって「華羅王(ファラオ)」とか名乗ってるし。中2病に決まってます。 オンラインで何度か会話をしているうちに、なんの因果か飲むことに。場所は新宿の思い出横丁にあるホルモン屋。私のお気に入りの場所の1つでした。 やってきたのは、驚くなかれ大手 SIer の課長様。当時、まだ 33,4 じゃなかったかな。 当初は軽快な大阪弁から繰り出される Identity 話で盛り上がりつつも、酒が進むにつれて次第に彼の野生が顔を出してきました。 変態でした。ドが付くほどの変態でした。それは間違いありませんでした。 MIIS(Microsoft Identity Integration Manager、現 MIM:Microsoft Identity Manager)や Sun Idetity Manager の内部の仕組みや問題点などを的確に、かつ深く語りつつ、そこにどうしても下ネタを交えないと気が済まない人でした。 私は「この人は確かに変態なんだけど、MS MVP にノミネートして広く発信するチャネルを与えないと IT 業界の損失だ」と感じるようになりました。いや、もっと正直に言うと、彼を取り込んで味方につけないと後々面倒かもしれない。そう考えていたのかもしれません。 彼はすでに IdM 実験室 http://idmlab.eidentity.jp/ という blog を運営しており、その中身はといえば、まーそれはそれは詳細な Identity Management に関するノウハウがびっしり。当時の MS の MIIS サポートチームが彼の Blog を参考にするくらい、その筋の方々に愛されているサイトでした。 MS MVP ってスキルだけじゃなれないんです。外部にインフルエンスするスキルも求められるため、そこで多くの人が脱落するのです。が、彼の場合はスキルセットも明確だし、Blog からは幸いにして変態性は伝わらないのでノープロブレムでした。ノミネート1回目にして難なく審査通過。これは、かなり珍しいことだと思います。…


IT 業界私的英雄列伝 – 横山 哲也 氏による「Active Directory の正しいとらえ方」講義を聴かずに AD は提案してはいけない

どの業界にも有名人ってのはいるもので、IT 業界も例外ではありません。 会社員でありながら広くメディアに露出し”その筋” の関係者から知られていたり、Twitter や Facebook などでやたらフォロワーが多かったりと、その形態はさまざまです。 IT 関係だと、日経 ITPRO や ITMEDIA などのオンラインメディアで技術解説している人なんてのも、そういう有名人候補の一人です。が、IT 系コラムや IT 業界ウォッチャーに有名人はいても、案外「技術解説」の執筆者は埋もれてしまいがちなんですよね。それも当然で、「技術解説」には色が出しずらいので、読者が執筆者を意識することがあまり無いんですよね。 昔 Nifty Serve というパソコン通信メディアがありました。私も夜11時テレホタイムに突入すると、モデムを起動して電話回線につなぎっぱなしにしたもんです。当然電話回線を占有しますから、家族からはひんしゅくを買うわけです。のちに INS64 が出てきたときは「これがデジタル世界か!」と感動したものですが。 家族からのひんしゅくを買いながらも、なぜにパソ通につなぎたかったか。 それは「情報」が欲しかったからです。情報に飢えていたんです。 当時 IT 系の情報は雑誌や書籍しかありませんでした。「コミュニティ」とか「オフライン」という勉強会みたいな会合に参加すれば、それこそ業界の有名人から直接手ほどきを受けることもできたのだと思いますが、人見知りの私はそんな怖いところに飛び込もうなんて思ったこともありません。 一方、手に入れることができる、”当時の”マイクロソフトのドキュメントは、はっきり言って浅すぎました。ネットサーフィンなんてまだありえませんでしたから、マイクロソフトのサイトからホワイトペーパーを手軽にダウンロードなんてできない時代です。 「やってみたけどわからない。調べたけど情報がない。何とかして知りたい!」という欲求を満たすには「知っている人」に聞くしかなく、知っている人がどこにいるかといえば Nifty Serve の Windows フォーラム 、略して FWIN でした。 ある日のこと、FWIN を巡回していると、なんかやたらキレている人がいるんです。 お会いしたことのない人だけど、とにかくキレまくっていることが容易に察せる文章でした。 その方のハンドルネームは cano さん。このフォーラムでたびたび見かけるお名前です。 彼の投稿は、かならず「cano です」から始まります。 当時、私はそれを「カノ」と読むものばかり思っていましたが、のちに「キャノ」だと知りました。 cano さんの知識の広さと深さはとてつもないものでした。 何をやっている人かは全く知りませんでしたが、とにかく途方もない人材であることは間違いありませんでした。 確か、「名前解決」か何かに関する質問を投稿したことがあるのですが、それに対し適切で詳細な回答をしていただいたことを今でも覚えています。どうやってそんな情報を得るんだろう?とても不思議でしたが、のちにトレーナーの方だということが分かり、すごくあこがれたものです。 回答のお礼に、「CANO さん、ありがとうございます!」と書いたところ、 「CANO ではありません、cano です」と訂正されたときには、ビビりすぎて死ぬかとおもいました。…


3/18 Active Directory 15th 記念カンファレンス 最終セッションリスト

Active Directory 大好きな皆様、おつかれさまです。ずっとヤルヤル詐欺のままだったのですが、とうとう開催が決定しました(といってもずいぶん前なのですが)。 お申し込みは以下から。(現時点で既にキャンセル待ちです。。。が、あと少し席を増やしますので、お見逃しなく。ここ数日で増席設定が完了予定です。) すみません、満席となってしまいました orz  キャンセル待ちは可能ですので、よろしければどうぞ。もしご都合が変わってご参加できない場合はキャンセルいただけると嬉しいです。 https://aka.ms/ad15thpublic/ で、イベントの正式なセッション情報が決定しましたのでお知らせします。 13:00 – 14:00 ◆Room A Azure ADと外部アプリのID連携/SSO Deep Dive MVP for Enterprise Mobility 富士榮 尚寛 氏 Azure ADの最大の特徴である、GoogleやSFDCなどの外部アプリケーションとの ID連携/シングルサインオン機能について、具体的な連携方法やトラブルシュー ティング時に必須となるSAML/OpenID Connectなどのプロトコルの解説、実際の連携時の通信のトレース方法についてデモを交えて解説します。 ◆Room B (仮題)Active Directory ドメイン サービス / Azure Active Directory の価値とは? グローバルナレッジネットワーク株式会社 横山哲也 氏 多くの企業で使用されている Active Directory ですが、その価値を本当に理解して使われているシステムはどれほどあるでしょう?Office 365 を使用するためだけに、仕方なく Active Directory を認証基盤として導入している企業も少なくないはずです。本セッションでは、インフラストラクチャーにおける Active Directory…


Azure Automation の RunBook で Add-AzureAccount を使用する場合の注意

寒くなってまいりました。PowerShell 使ってますか?暖かくなりますよ。たぶん。 Ch9 に PowerShell 日本語専門チャネルを作りましたMastering Windows PowerShell for Japanese 以下の記事は、動画でも解説していますので、デモンストレーションとともにご覧ください。 #01 Azure Automation 概要と Add-AzureAccount 使用時の注意点 PowerShell から Azure サブスクリプションに接続するには Add-AzureAccount コマンドレットを使用します。 Add-AzureAccount をそのまま実行すると、以下のようなサインイン画面が表示されます。 しかし、Azure Automation 上からスクリプトを実行する場合、資格情報の入力を省きたいものです。自動化ですから当然です。その場合は、-Credential パラメタを使用するのが定石です。 Azure Automation には「アセット」として「資格情報」を保存しておくことができます。 例えば、Azure サブスクリプションの管理者アカウントを「資格情報」アセットとして登録しておけば、Azure Automation の Runbook からアセット名を指定するだけで呼び出すことができて便利です。 ただ、1点注意があります。 -Credential に指定できるアカウントは「組織アカウント」だけなのです。 しかし、Azuer サブスクリプションの管理者は、規定ではマイクロソフトアカウントです。hotmail.com とか outlook.jp とかのアレです。これを –Credential の引数として使用すると、以下のようにエラーになります。 同じエラーは 手元のPowerShell のコンソールからも確認することができます。 ためしに、PowerShell コンソールを起動して以下のコマンドレットを実行してみてください。 $cred =…


Active Directory の最新情報を手っ取り早く動画で理解

みなさま、おつかれさまです。Active Directory、楽しんでますか? 最近、Active Directory や Azure Active Directory 関連の情報、Enterprise Mobility 関連の情報が次々と出てくるため、情報収集にてんてこ舞いです。 あまりにも動きが速いので、エンジニアの皆さんも大変だとおもいます。 かといって頻繁にセミナーを開催したところで、参加も大変でしょうから、Preview 版について手っ取り早く理解いただくための動画サイトを用意しました。 ここで、Preview が発表されたら、極力3日以内(あくまで努力目標ということで。すんまへん。)に日本語のデモ付き解説動画を投稿します。がんばります。 とりいそぎ、Azure AD ドメインサービス と Azure AD B2C について説明しましたのでご覧ください。 Azure AD B2C Preview とは Azure AD ドメインサービス とは