Quantcast
Channel: TechNet Blogs
Viewing all 36188 articles
Browse latest View live

System Center 2016 更新プログラム最新版 (Update Rollup 2) がリリースされました!!

$
0
0

こんにちは、日本マイクロソフト System Center Support Team の益戸です。

2017 年 1 月26 日に System Center 2016 R2 向けに Update Rollup 2 (UR2) がリリースされましたのでお知らせいたします。
修正プログラムによっては、適用時にデータベースに対して自動的に更新が発生いたします。
その為、修正プログラムの適用に失敗した場合や、修正プログラムに致命的なエラーが発生した場合に備え、可能な限り、適用前にシステムおよび、データベースのバックアップの取得を検討ください。
System Center 製品については、明確にアンインストールを指示する場合を除き、適用した修正プログラムのアンインストール実施後に動作に問題が発生する場合がございます。

 

Update Rollup 2 for System Center 2016
https://support.microsoft.com/ja-jp/help/3209601/update-rollup-2-for-system-center-2016

このリリースでは、以下の製品に対して修正プログラムが提供されています。本修正プログラムは、Microsoft Update 経由で更新プログラムをダウンロードしてインストールすることができます。また、オフラインの環境では、Microsoft Update Catalog を通じてダウンロードしたパッケージを手動で適用することもできます。詳細な適用手順や、修正内容については、それぞれのリンクをご参照ください。

 

・Data Protection Manager (KB —- )
2 月にリリース予定となります

 

・Operations Manager (KB —-)
2 月にリリース予定となります

 

・Service Provider Foundation(KB3209598)
https://support.microsoft.com/ja-jp/help/3209598/update-rollup-2-for-system-center-2016-orchestrator-service-provider-f

 

・Virtual Machine Manager (KB3209586)
https://support.microsoft.com/ja-jp/help/3209586/update-rollup-2-for-system-center-2016-virtual-machine-manager
* インストールする手順等に注意がございます。
事前に内容をご確認の上、適用ください。
適用に際しては、サーバーの再起動が必要となる場合がございます。

 

まずはリリースの告知をさせていただきました。


Heads-Up: Info on unsupported .NET framework versions (e.g. in SharePoint environments)

$
0
0

In the last two months I have worked on several SharePoint issues where we identified that the servers running SharePoint were still using .NET framework 4.5 or .NET framework 4.5.1 which are unsupported since around a year (supported ended January 12th, 2016 as announced in August 2014):

Currently only .NET 4.5.2, 4.6, 4.6.1 and 4.6.2 are supported:

Please ensure to verify that the servers in your environments use a supported .NET framework version.

Be aware that aside normal fixes also no security fixes will be released for .NET 4.5 and .NET 4.5.1 as these versions are out of support!

 

More Info:

 

Tip of the Day: What’s New in Hyper-V Networking: Switch Embedded Teaming (SET)

$
0
0

Today’s Tip…

image

 

Background

NIC teaming, also known as Load Balancing/Failover (LBFO), allows multiple network adapters to be placed into a team for the purposes of

  • Bandwidth aggregation, and/or
  • Traffic failover to maintain connectivity in the event of a network component failure.

This feature has long been available from NIC vendors but until Windows Server 2012 NIC teaming was not included with Windows Server. 

Teaming on Windows Server 2016

Windows Server 2016 introduces Switch Embedded Teaming (SET), an alternative NIC Teaming solution that you can use in environments that include Hyper-V and the Software Defined Networking (SDN) stack in Windows Server 2016. SET integrates some NIC Teaming functionalities into the Hyper-V Virtual Switch.

SET allows you to group between one and eight physical Ethernet network adapters into one or more software-based virtual network adapters. These virtual network adapters provide fast performance and fault tolerance in the event of a network adapter failure.

Summary

There are two versions of NIC teaming in Windows Server 2016:

  1. The stand-alone NIC Teaming solution, i.e., the NIC Teaming solution that was available in Windows Server 2012 and Windows Server 2012 R2, is available in Windows Server 2016 in ServerCore and full Server versions.
  2. A new teaming solution integrated with the Hyper-V switch and known as Switch-Embedded Teaming (SET), is available in all SKUs of Windows Server 2016 including Nano.

See the following resources for more information on SET:

Windows Server 2016 NIC and Switch Embedded Teaming User Guide

Remote Direct Memory Access (RDMA) and Switch Embedded Teaming (SET)

Грант на $3 млн для ученых, занимающихся Data Science

$
0
0

servers
National Science Foundation, совместно с Microsoft, объявили о гранте для исследователей, занимающихся разработкой в области науки о данных и работой с большими данными.

Участников приглашают поучаствовать в двух категориях: Основы (Foundations), сосредоточив внимание на основах вычислительных технологий с широким применением больших данных; и Инновационные приложения (Innovative applications) основной целью которых является сочетание базовых наук и дисциплин, обрабатывающими большие данные и занимающиеся моделированием.

Это сотрудничество основывается на предыдущих совместных работах между Microsoft и NSF. Так как Azure добавила значительные функциональные возможности и ресурсы в последние годы, в том числе крупные инвестиций в проекты с открытым исходным кодом. Совсем недавно, Microsoft выделил дополнительные $ 3 млн в облачном эквиваленте на NSF для поддержки Big Data Regional Innovation Hubs & Spokes (BD Hubs & Spokes).

От участников требуется выложить проект по одной или нескольким направлениям, а именно биология (BIO), Компьютерная и информационная наука и техника (CISE); Образование и человеческие ресурсы (EHR); Инжиниринг (ENG); Математические и физические науки (MPS), Прикладные математические науки (DMS); Социальная, поведенческая и экономическая науки (SBE).

Кроме того, проекты, запрашивающие доступ к облачным ресурсам обязаны включать детальный план пользования облачным пространством, количество и тип хранения данных, вычислительные ресурсы, сетевые ресурсы или облачные сервисы, которые уже оплачивают создатели проекта. Microsoft является одним из поставщиков облачного пространства для проектов NSF BIGDATA, которые финансируются.

Минимальный запрос облачных ресурсов для любого проекта BIGDATA равен 100 000 $. Участники, которые запрашивают облачные ресурсы от Microsoft могут вычислить ожидаемое облачное пространство через Azure-калькулятор.

National Science Foundation предполагает вручить порядка $ 26,5 млн, рассчитанных  на 27-35 проектов.
Облачные гранты будут вручаться создателям проектов в период с 15 по 22 марта 2017 г.

Для получения подробных инструкций обратитесь к  NSF Program solicitation 17-534
Исследователи могут представить свои проекты через Grants.gov или FastLane системы NSF.

Advanced Threat Protection (ATP) の Safe Attachments によりマルウェアが検知された場合の挙動

$
0
0

こんにちは、プロダクティビティ担当の杉山 卓弥です。

Office 365 E5 のセキュリティ コンポーネントの 1 つである Advanced Threat Protection (ATP) ですが、未知のマルウェア対策の機能である Safe Attachments (安全な添付ファイル) の動作検証が難しいというお声をよくいただきます。本記事では、ATP Safe Attachments にてマルウェアが検知された場合の挙動、特に設定いただいているケースが多い 「置換」 アクションについて詳しくご紹介します。

Safe Attachments ポリシーでは、マルウェアが検知された場合のアクションとして以下の設定オプションが提供されています。

  • オフ : 添付ファイルのマルウェアをスキャンしません。
  • モニター : マルウェアの検出後もメッセージの配信を続行し、スキャン結果のみ追跡します。
  • ブロック : マルウェアが検出されたメッセージと添付ファイルをブロックします。
  • 置換 : マルウェアが検出された添付ファイルのみブロックし、メッセージの配信を続行します。
  • 動的配信 (※記事執筆時点ではパブリック プレビュー)

設定画面

atp_setting

 

「置換」 アクションは、添付ファイル内で未知のマルウェアが検出された場合に添付ファイルのみブロックし、メッセージ自体はスキャン完了後に配信をするアクションです。Safe Attachments によりマルウェアが検知されると、ユーザー メールボックスには検知されたことを示すテキスト ファイルが添付された状態で配信されます。

受信メッセージ例

atp_message

添付テキストの内容例

atp_attachment

また、Safe Attachments ポリシーの [設定] にて [リダイレクトを有効にする] が有効になっていると、指定したメール アドレス宛にスキャン前の状態のメッセージが添付された状態でリダイレクトされます。添付メッセージ内にはマルウェアが添付されているので取り扱いは十分注意が必要ですが、管理者にて独自で調査するといったことも可能です。

リダイレクトされたメッセージ例

atp_redirect

 

最後に ATP Safe Attachments によりスキャンされた場合は、Exchange 管理センターの [メール フロー] – [メッセージ追跡] で該当メッセージを調査すると、Advanced Threat Protection イベントが記録されていることが確認できます。以下は、添付ファイルがマルウェアとして検知された一例となります。

Advanced Threat Protection イベント例

atp_event

<参考>
Title: 未知の脅威から企業をしっかり守るSaaS

URL: http://special.nikkeibp.co.jp/atcl/ITP/16/msatp1128/

Title: メールに対する高度な脅威からの保護

URL: https://blogs.technet.microsoft.com/microsoft_office_/2016/01/22/leading-the-way-in-the-fight-against-dangerous-email-threats/

Title: Office 365 でセキュリティとコンプライアンスにインテリジェンスを活用

URL: https://blogs.technet.microsoft.com/microsoft_office_/2016/10/06/applying-intelligence-to-security-and-compliance/

Download the New Network Policy Server (NPS) Technical Reference for Windows Server 2016

$
0
0

If you’re a network administrator deploying network access servers right and left – such as wireless access points, 802.1X authenticating switches, dial-in servers, and virtual private network (VPN) servers – you’ll be happy to know that you don’t need to configure network access policies on each of these devices individually.

If your network access servers are compatible with the Remote Authentication Dial-In User Service (RADIUS) protocol, you can use Network Policy Server to centrally configure network access for all of your network access servers.

The new Network Policy Server (NPS) Technical Reference for Windows Server 2016 provides a detailed description of NPS, including how NPS works, and the tools and settings you can use to deploy, administer, and troubleshoot NPS.

You can download this document in Word format from TechNet Gallery, at: Network Policy Server (NPS) Technical Reference for Windows Server 2016

Here is some important additional information you need to know about NPS and NPS documentation in Windows Server 2016 and previous operating system versions:

  • NAP is no more. Network Access Protection (NAP), Health Registration Authority (HRA), and Host Credential Authorization Protocol (HCAP) were deprecated in Windows Server 2012 R2, and are not available in Windows Server 2016. If you have a NAP deployment using operating systems earlier than Windows Server 2016, you cannot migrate your NAP deployment to Windows Server 2016 – but you can use Windows Server 2016 as a RADIUS server and RADIUS proxy.
  • If you are running Network Policy Server in Windows Server 2008 through Windows Server 2012 R2, you can download the Network Policy Server (NPS) Technical Reference for WS08-WS12 R2 from TechNet Gallery.
  • The NPS online documentation is now available in the Windows Server 2016 Networking Technical Library, at: Network Policy Server (NPS)

Windows Server Editions and NPS

NPS provides different functionality depending on the edition of Windows Server that you install.

Windows Server 2016 Datacenter Edition

With NPS in Windows Server 2016 Datacenter, you can configure an unlimited number of RADIUS clients and remote RADIUS server groups. In addition, you can configure RADIUS clients by specifying an IP address range.

Windows Server 2016 Standard Edition

With NPS in Windows Server 2016 Standard, you can configure a maximum of 50 RADIUS clients and a maximum of 2 remote RADIUS server groups. You can define a RADIUS client by using a fully qualified domain name or an IP address, but you cannot define groups of RADIUS clients by specifying an IP address range. If the fully qualified domain name of a RADIUS client resolves to multiple IP addresses, the NPS server uses the first IP address returned in the Domain Name System (DNS) query.

For more NPS information, see Network Policy Server (NPS) Technical Reference for Windows Server 2016.

Testing AADConnect Part 5 – Verifying

$
0
0

Till now, in the last posts, we saw how one can install and configure AAD Connect. In this post, we will see how to verify the install and check and verify whether AAD Connect is syncing our users to Azure AD just fine.

Firstly, we had installed our AAD Connect in Staging mode we need to disable staging mode and enable it to SYNC.

Open the AAD Connect configuration file and click on Configure.

https://blogs.technet.microsoft.com/praveenkumar/2017/01/27/testing-aadconne…part-5-verifying/

Here select “View Current Configuration” to check the current configuration.

2

We can see the Account that we are using for AAD Connect here. If you did not use Custom installation and used express installation you would see an account like “MSOL_xxxxx”

3

And the other options we selected for installing and configuring AAD Connect.

456

Select “Configure staging mode(current state:enabled)” and click Next.7

Here give the Azure AD credentials.

8

Uncheck the “Enable Staging mode”

9

Here check the option that says “Start the Syncronization..”1011

Get-ADSyncScheduler output before and after enabling “Start Synchronization” as shown above

22

Once done, you can open the “Synchronization Service Manager” > Connectors > On-Prem Connector.

Here we can click on Containers and see the OU filtering we had selected earlier and do any changes that are required.

1213

Synchronization Service Manager can we viewed to see the Sync status as shown below

14

On the first Sync, it added 57 On-prem objects to the cloud.

15

We can click on the ADDs to see the accounts that were added.

16

Selecting any object will give us details about that specific account.

17

Connect to MSOL PowerShell to check the objects that are being Synced as shown below.

18

In portal, we can check the DirSync Status as shown below

26.PNG

We saw the account that AAD Connect is using for syncing. If we go to services.msc and select the Microsoft Azure AD SYNC service we can see an account like “AAD_xxxx”. It is a local service account is created by the installation wizard.`

The account is created with a long complex password that does not expire.
This account is used to store the passwords for the other accounts in a secure way. These other accounts passwords are stored encrypted in the database. The private keys for the encryption keys are protected with the cryptographic services secret-key encryption using Windows Data Protection API (DPAPI). You should not reset the password on the service account since Windows will then destroy the encryption keys for security reasons.

You should not reset the password on the service account since Windows will then destroy the encryption keys for security reasons.

19

We can check the same is AD users and computers.

23

24

We see that AAD_xxxx is also part of ADSYNCadmins group.

There are other ADSYNC groups that are created as shown below

  • ADSyncAdmins
  • ADSyncBrowse
  • ADSyncOperators
  • ADsyncPasswordSet

25

We also have AzureADSSOACC is the account that will be used for single sign on. When you enable Single Sign-on for either Password Sync or Pass through Authentication. This account is created on on-premise which is used to encrypt the KERBEROS ticket that is being given to the client to be consumed by Azure AD

21

Praveen Kumar E

signature-picture

Introducing the Host Compute Service (HCS)

$
0
0

Summary

This post introduces a low level container management API in Hyper-V called the Host Compute Service (HCS).  It tells the story behind its creation, and links to a few open source projects that make it easier to use.

Motivation and Creation

Building a great management API for Docker was important for Windows Server Containers.  There’s a ton of really cool low-level technical work that went into enabling containers on Windows, and we needed to make sure they were easy to use.  This seems very simple, but figuring out the right approach was surprisingly tricky.

Our first thought was to extend our existing management technologies (e.g. WMI, PowerShell) to containers.  After investigating, we concluded that they weren’t optimal for Docker, and started looking at other options.

Next, we considered mirroring the way Linux exposes containerization primitives (e.g. control groups, namespaces, etc.).  Under this model, we could have exposed each underlying feature independently, and asked Docker to call into them individually.  However, there were a few questions about that approach that caused us to consider alternatives:

  1. The low level APIs were evolving (and improving) rapidly.  Docker (and others) wanted those improvements, but also needed a stable API to build upon.  Could we stabilize the underlying features fast enough to meet our release goals?
  2. The low level APIs were interesting and useful because they made containers possible.  Would anyone actually want to call them independently?

After a bit of thinking, we decided to go with a third option.  We created a new management service called the Host Compute Service (HCS), which acts as a layer of abstraction above the low level functionality.  The HCS was a stable API Docker could build upon, and it was also easier to use.  Making a Windows Server Container with the HCS is just a single API call.  Making a Hyper-V Container instead just means adding a flag when calling into the API.  Figuring out how those calls translate into actual low-level implementation is something the Hyper-V team has already figured out.

linux-arch windows-arch

Getting Started with the HCS

If you think this is nifty, and would like to play around with the HCS, here’s some infomation to help you get started.  Instead of calling our C API directly, I recommend using one the friendly wrappers we’ve built around the HCS.  These wrappers make it easy to call the HCS from higher level languages, and are released open source on GitHub.  They’re also super handy if you want to figure out how to use the C API.  We’ve released two wrappers thus far.  One is written in Go (and used by Docker), and the other is written in C#.

You can find the wrappers here:

If you want to use the HCS (either directly or via a wrapper), or you want to make a Rust/Haskell/InsertYourLanguage wrapper around the HCS, please drop a comment below.  I’d love to chat.

For a deeper look at this topic, I recommend taking a look at John Stark’s DockerCon presentation: https://www.youtube.com/watch?v=85nCF5S8Qok

John Slack
Program Manager
Hyper-V Team


O365 Migration that completes with warnings due to insufficient rights.

$
0
0

The Problem:

With the rise in Hybrid configurations around the world, we are starting to see some regular occurrences of issues around migrating from OnPremises exchange (called OnPrem henceforth) to O365. Perhaps the most common is one where most users migrate fine, but a select few only partially migrate. When you look at the migration logs, they typically look as follows:

FailureType       : UpdateMovedMailboxPermanentException
FailureHash       : 1304
FailureCode       : -2146233088
MapiLowLevelError : 0
FailureSide       : Source
FailureSideInt    : 1
ExceptionTypes    : {Exchange, MRS, MRSPermanent, MRSUpdateMovedMailbox…}
Message           : An error occurred while updating a user object after the move operation. –> Active Directory
operation failed on DC1.instant-grits.com. This error is not retriable. Additional information:
Insufficient access rights to perform the operation.
Active directory response: 00002098: SecErr: DSID-03150BB9, problem 4003 (INSUFF_ACCESS_RIGHTS),
data 0
–> The user has insufficient access rights.

So basically, the user now has a mailbox in the cloud and a mailbox onPrem, because the migration did not fully complete. They can only access their mailbox in the cloud using OWA.

Why?

In most every case, the user you are trying to migrate either belongs to a protected group of some sort or simply does not have permissions inheritance enabled. The protected groups, by design, do not inherit permissions in Active Directory (AD). Exchange OnPrem needs to have specific permissions set in order for a mailbox migration to O365 to complete. Specifically, it needs to be able to convert the OnPrem mailbox to an OnPrem remote mailbox and link it to the O365 mailbox. For Exchange to do that, two groups have to have rights on the mailbox:

Exchange Trusted Subsystem
Exchange Servers

These rights are typically pushed down from the top of the domain using inheritance, so with inheritance disabled, you simply cannot migrate them without errors.

What can I do about that?

A most excellent question. There are a few options here. The ideal one would be to turn on inheritance for the onPrem mailbox.

The problem with that in regards to the protected group members is there is this tiny little process called SDProp that will revert it back to disabled, usually within the hour. Not always long enough for the mailbox to finish migrating. It is a protection mechanism to make sure that the protected group member doesn’t suddenly have a bunch of permissions thrust upon it by the OU that it is a member of thereby giving permissions to an OU administrator over the privileged account that it shouldn’t have.

So what do you do? Well, you can add the two Exchange groups to the user’s permissions manually, which is a huge undertaking as you will have to look at a user who does have inheritance turned on to see exactly which rights the Exchange Trusted Subsystem and Exchange Servers groups has on the account and then mimic them on each mailbox you intend to migrate, or you can add them manually once to the AdminSDHolder container in AD. Or better yet, just enable inheritance on the AdminSDHolder container itself. Sometime in the next hour, it will update all of the protected group members at once, and then you can migrate them. Once migrated, you can turn inheritance back off and up to an hour later, all of those accounts would have it removed for them as well and they would revert back to their original permissions.

enableinheritance

Once the permissions have been inherited, Exchange will then have adequate permissions to convert the mailbox to a remote mailbox and link it to the new O365 mailbox. Once that has completed, the user should be able to access their O365 mailbox from Outlook and OWA.

Note

For more information on AdminSDHolder, SDProp and Protected Groups, check out the following TechNet article:

https://technet.microsoft.com/en-us/library/2009.09.sdadminholder.aspx

There is another option which involves manually completing the process for these accounts. That article can be found here:

https://support.microsoft.com/en-us/kb/2745710

One of our partners has an addendum to the support article that goes into some additional steps which will help preserve your proxy addresses in that process:

http://blogs.perficient.com/microsoft/2014/10/office-365-mailbox-fails-to-convert-during-migration/

THANKS

Special thanks to Raymond Fong for helping me iron out this issue and to Perficient for their excellent blog.

Windows 10、Dynamics 365、Microsoft Teams の FastTrack の提供開始【1/27 更新】

$
0
0

(この記事は 2017 年 1 月 23  日にMicrosoft Partner Network blog に掲載された記事 Get on the FastTrack with Windows 10, Dynamics 365, and Microsoft Teams の翻訳です。最新情報についてはリンク元のページをご参照ください。)

 

niamh-coleman-author-block

 

嬉しいお知らせです。このたび、Microsoft FastTrack が大幅に拡大されます。パートナー様はこれまで、Office 365 および Enterprise Mobility + Security (EMS) の FastTrack サービスを利用して、数千ものお客様の導入とアップグレードを支援してきました。そして今回、Windows 10 と Dynamics 365 でもプレビュー版の FastTrack をご利用いただけるようになります。

 

FastTrack の概要

FastTrack サービスをまだご利用になったことがない方や、よくご存じない方のために、概要からご説明します。FastTrack では、お客様とパートナー様に、Office 365 や EMS といったマイクロソフトのテクノロジへの移行に必要なツール、リソース、ガイダンスを提供します。このサービスは、導入を簡略化し、お客様のビジネス成果につながる可能性を高めるほか、パートナー様には付加価値サービスを提供する新しいビジネス チャンスが広がります。FastTrack では、生産性ライブラリなどの強力なツールを活用することで、お客様は安心して導入プロセスを開始できると同時に、パートナー様はお客様へのリーチを拡大できます。

 

「Office 365 の商談では、いかに短期間で導入を完了できるかが成約の決め手になります。FastTrack を利用すれば、ユーザーへの導入をスピーディに行うことができ、さらには節約にもつながります。お客様は多くの場合、当社が単独で移行作業に当たると、長い時間がかかってしまいますが、お客様にはそこまで長期にわたって対応する余裕はありません」 – ProServeIT、社長、Eric Sugar 氏

 

さらに、このサービスでは、展開を確実に成功させるために、お客様とエンジニアをつなぐと共に、パートナー様のインセンティブ、ツール、コンテンツにアクセスできるようにします。FastTrack を利用すれば、新規および既存のお客様の導入プロセスをスムーズに進めることができます。これは、お客様の信頼を獲得し、お客様に可能な限り優れたエクスペリエンスを提供するために不可欠なことです。FastTrack により、お客様はパートナー様や FastTrack チームとの共同作業を簡単に行い、成功に向けた計画を作成し、最適な展開を実行できます。

 

「当社のプロジェクトの大半は、移行作業が全体の 30 ~ 40% を占めています。Microsoft FastTrack を利用すると、その時間を最大 90% 節約することができます」 – Generation-e、クラウド CTO、Loryan Strant 氏

 

つまり、FastTrack を利用すると、パートナー様は高価値サービスを提供するビジネス チャンスをこれまで以上に獲得できるようになり、粗利益を確保できると同時に、優れた企業の基盤である経常的な収益源を拡大することができます。

 

複数のサービスでの成功をサポート

これまで、FastTrack は Office 365 と EMS のお客様のみに提供されていましたが、今回のサービス拡大によって Windows 10 と Dynamics 365 の両方が対象となり、さらに広範なお客様とつながるチャンスが生まれます。FastTrack サービスの拡大において、パートナー様は重要な役割を果たし、実際に大きなビジネス チャンスが巡って来るはずです。サービス拡大により、以下のようなメリットが期待できます。

 

New! Windows 10 FastTrack プレビュー

Windows 10 は、Windows 史上最もスピーディに導入されているバージョンです。最新の Forrester レポート (英語) によると、Windows 10 に移行することで、IT コストの削減、エンドユーザーの生産性向上につながるほか、以前のアップグレードよりも簡単かつ迅速に導入することができます。しかし、お客様が可能な限りスムーズに移行するためには、依然としてパートナー様のサポートと専門知識が必要です。

そこで FastTrack の出番です。Windows 10 FastTrack では、Windows 史上最も安全性に優れたバージョンの展開を成功させるために必要なすべてのツール、リソース、ガイダンスにオンライン上でまとめてアクセスすることができます。このサービスの特徴は、導入計画とサービスの提供をパートナー様が担当する点です。また、お客様が FastTrack ポータルから直接、優れた導入支援パートナー様を簡単に見つけられるようにしています。

パートナー様のお話によると、Windows 10 は、マネージド サービスからクラウド ワークロードの導入までの追加サービスによる収益の確固たる基盤となっています。たとえば、Windows 10 を Office 365 ProPlus と同時に展開することで、最新の PC で安全かつ生産性の高いコンピューティング エクスペリエンスを実現できるという大きなチャンスがあります。そのために、まずはお客様が FastTrack の Windows 10 サクセス プランに Office 365 ProPlus を組み込むのをお手伝いしてください。

次に、Windows Accelerate による POC やパイロット、デスクトップ導入計画サービス、Windows Defender ATP のお客様還元キャンペーンなど、Windows 10 および Office 365 ProPlus の導入を促進するためにパートナー様やお客様が利用できるキャンペーンを確認してください。今回新たに Windows and Devices コンピテンシー パートナー様は、FastTrack から直接 Windows Accelerate の資金提供を申請できるようになりました。

 

New! Dynamics 365 FastTrack プレビュー

2016 年 11 月に Dynamics 365 がリリースされて以来、市場での売れ行きは非常に好調です。今回、お客様が Dynamics 365 にスムーズかつ安心して移行できるように、Dynamics 365 FastTrack は対象となるすべてのお客様にご利用いただけるようにしました。Microsoft FastTrack エンジニアリング チームが直接提供するベスト プラクティスとガイダンスを活用することで、Dynamics 365 へのスムーズな移行を支援して、お客様とのエンゲージメントを強化し、導入を迅速化することができます。

また、マイクロソフトが提供するリアルタイムの準備および支援コンテンツを利用してパートナー様の能力を向上させ、予測可能かつ反復可能なクラウド展開を実施することで、顧客満足度を向上させ、パートナー様とお客様の関係を強化できます。詳細については、Dynamics 365 FastTrack のサイトをご覧ください。ご不明な点がございましたら、Dynamics チームまでお気軽にお問い合わせください。

 

Office 365 FastTrack と EMS FastTrack の最新情報

現在 FastTrack は毎月 4,000 社以上の Office 365 と EMS の新規のお客様にご利用いただいています。さらに、Windows 10 と Dynamics 365 へのサービス拡大と、Office 365 向けの新しいキャンペーンの提供開始に伴い、この数はさらに増加する見込みです。

Office 365 FastTrack には、Microsoft Teams のサポートが追加されました。このサポートには、お客様がこの新しいプログラムの機能を短時間で習得できるように設計された Scenario and Awareness キットなどが含まれます。さらに、導入とエンドユーザーへの普及に関するオンライン リソースとリモート ガイダンスが FastTrack チームから直接提供されます。FastTrack では、ユーザーへの普及を促進し、IT プロフェッショナルに実践的なガイダンスを提供するために、Office 365 ProPlus の導入と Office 365 ユーザーへの普及に関する新しいベスト プラクティスの提供を開始しました。

最後に、Office 365 FastTrack では、導入および移行シナリオに利用できるツールとプロセスが新たに提供されました。これらは、国際的なテクノロジ セキュリティ標準 ISO 27001 に完全に準拠し、Microsoft HIPAA 事業提携者契約に記載されたものです。これらの更新とローカライズ サービスの拡大により、Office 365 FastTrack はお客様のデジタル改革を推進するパートナー様にとってさらに重要なリソースになります。詳細については、aka.ms/fasttrackforpartners (英語) をご覧ください。

パートナー様はこれらの優れたリソースを活用することで、お客様が FastTrack を利用してマイクロソフトのテクノロジを最大限に活用できるように、簡単にお手伝いできるようになります。

皆様は、既に FastTrack に携わっていますか。お客様にサービスを提供し、パートナー様のビジネスを成長させるうえで、新しい FastTrack のビジネス チャンスをどのように捉えていらっしゃいますか。

 

 

Intune For Education Announced at BETT

$
0
0

This week Microsoft has released some major announcements at the annual BETT Show in London. You can read the full announcements on the official blog here, however the one that caught my attention the most was Intune For Education:

microsoft-tries-expelling-chromebooks-from-schools-with-intune-app-and-low-cost-pcsFor me, this is a key solution for schools to consider to simplify the management of Windows 10 devices, particularly for those schools that may not have dedicated ICT staff. The things that impressed me were:

  • It’s cloud based, there is no need to install locally as it is hosted in Azure and is scalable, making it suitable for schools of any size whilst remaining simple enough for part-time ICT admin staff to use.
  • There are a number of school-specific policies pre-configured to promote security for school devices (there are over 150 settings you can configure if you choose)
  • There is an express setup for schools that allow for quick deployment of new devices for different groups of users.
  • Your list of purchased applications in the Microsoft Windows Store For Business are automatically synchronised to Intune For Education allowing to easily choose which apps you wish to deploy e.g. Minecraft licensing in the Business Store.
  • There is an auto-enrollment feature meaning students or staff automatically receive the apps specified by the school when they first log in.
  • intune-for-education-set-up-pcs-100705444-largeFor super quick deployment there is free access to the “Schools Setup PC App” that creates a USB key to quickly configure common settings on a new device with a single key press – no need to get it on the wireless network first!
  • Intune for Education supports Student Data Sync to automatically create groups of students/teachers for customised group permissions allowing more granular control over policy.
    • Policy will “follow the user” so if you have different policies for different year levels, these will automatically apply as a student moves from year to year.
  • There is a test/assessment mode. Students can log in with a special account to be used when taking assessment which will lock the device down to pre-defined access levels.

These features represent a significant leap forward with technology offerings for managing Windows 10 devices in education. To learn more, check out Microsoft Education.

OMS – Microsoft Operations Management Suite –

$
0
0

Azure OMS

Microsoft が提供するIT管理ソリューションであるOMSについての解説を致します。

OMSにも様々な機能があるため、今回は主にLog Analyticsについての解説をし、機能に触れながらどのような時に使えるのかという論点をまとめていきたいと思います。

概要についてはこちらの記事で述べさせていただいておりますので、こちらも合わせてご覧ください。

クラウド時代には、なぜ「ログ分析」が重要になるのか――高度なログ分析機能を、すぐに、簡単に使えるMicrosoft Operations Management Suite

 

Azure OMSとは

Microsoft Operations Management Suite (OMS) は、Microsoft のクラウドベースの IT 管理ソリューションです。OMS を使用して、オンプレミスとクラウドのインフラストラクチャを管理し、保護することができます。 OMS はクラウドベースのサービスとして実装されるため、インフラストラクチャ サービスに最小限の投資をするだけで、すぐに稼働させることができます。 新しい機能は自動的に配信されるため、継続的なメンテナンスやアップグレードのコストが節約されます。

OMS は、価値のある独自のサービスに加え、System Center Operations Manager などの System Center のコンポーネントと統合して、管理のための既存の投資をクラウドに拡張できます。 System Center と OMS を連携させることで、本格的なハイブリッド管理を実現できます。

(参照:Operations Management Suite (OMS) とは

image.png

OMSのLog Analyticsをログ分析のために用いる論点

「ログ分析ってなんのためにやるの?」という質問の答えは以下が多いでしょう。

  • 障害発生時の原因究明
  • システムの傾向分析(クラウドの課金)
  • セキュリティ監査

それではなんでログ分析をOMSで行うのかを考えていきましょう。

ログがクラウドにある

原因究明のためのログが全部クラウドにあるということはセキュリティの観点でメリットです。

まず悪意のあるハッカーがやることは以下です。

  1. 準備として不審な動きをする(特定のポートに秒間何回もアクセスがあったり)
  2. 侵入する
  3. 悪さをする
  4. 悪さをした痕跡を消す

ログがオンプレ上にあった場合、多くの場合サーバーへの侵入とともに痕跡は消されてしまうでしょう。しかしログがクラウドにあった場合、悪意のあるハッカーは痕跡を消すことが出来ません。
マイクロソフトはペンタゴンの次に悪意のあるハッカーから攻撃されているデータセンターを持っています。もしもハッカーがマイクロソフトのデータセンターに侵入して攻撃の痕跡を消すためにはマイクロソフトのセキュアなデータセンターの壁を乗り越える必要があるのです。

またOMSで扱えるログデータにアクセスする場合は、AzureのAPIではReadはできてもWriteがそもそもできません。

ログがクラウドで管理される問ことはセキュリティの観点でかなりのメリットになります。

コンピューティングリソースを圧迫しない

OMSは今まで管理者が考える必要があったストレージリソースと、演算のリソースを開放します。

ログを多面的に分析したい場合、様々なログを取得することになりますが、その時にログ関連の処理はコンピュータのリソースを圧迫する可能性があります。

OMSの分析をする際にはその必要はありません。必要な時だけ分析エンジンを利用することができます。そしてサーバー運用管理の際に頭を悩ませる一つの要因として、無限にたまっていくように思われるログのデータ容量があります。しかしOMSは既存のストレージの容量を圧迫することがありません。

OMSでは独自のクエリを使ってAzure及びオンプレミスのマシンを含むハイブリット環境のログを検索することができます。

その検索も非常に高速で、潤沢なマイクロソフトのデータセンターのコンピュートリソースを使い、すぐにログ検索の結果を出力することができるのです。

capture20170126165535551

今回のコードは各マシンのプロセッサのパフォーマンスの平均値を取得しています。

また、下のスクリーンショットでは検索窓にアスタリスク(*)を入力し、取得できるすべてのログ集めています。下記環境では1週間で7億9200万件のログがヒットしていますが、こちらも数秒で取得することができます。

capture20170126165002242

OMSの場合は、ログ分析のためのインフラを考える必要はなくなるでしょう。

 

ハイブリッド環境にも使えて、WindowsもLinuxも対応

OMSはオンプレミスの環境にも使うことが出来る、ハイブリッド環境対応の管理サービスです。
もちろん、SoftlayerやAWSといった様々なクラウドのサービスとも連携させることが出来ます。
OMSでは対象のマシンにエージェントをインストールすることで、そのVMがAzureと通信可能な状況にあれば簡単に利用を開始できます。
そして、一つのダッシュボードで統合管理をすることが出来ます。

またOMSで管理できるのはWindowsだけではありません。Linuxベースの多くのOSにも対応しています。
それぞれのOSで作成されるログの形式はバラバラですが、OMSはその差を吸収します。

capture20170126184411682

OMSでは、Windows環境もLinux環境も分析します。例えばアップデートマネジメントの画面では、どのマシンをアップデートすべきか、あてるべきセキュリティパッチはあるのか、といったことを知ることができます。そうした設定もWindowsとLinuxで別の設定をするのではなく、Agentさえ入れればOMSが勝手にやってくれることになります。

見えないものが見える

今までのログ管理では、「ためる」「見る」にフォーカスしがちで、主な目的は死活監視や障害対応でした。
そのため、多くのソフトウェアは「ダウンしていないか」ということにフォーカスしたデザインになっていました。
しかしそうした管理方法ではログから何か知見を得ようとするのが難しいです。

OMSの強みは、システムを俯瞰的に解析し、改善のためのアドバイスができるということです。
「人間が何か特定の事を考え、それを検証するために何かのコマンドを打って結果を見る」という繰り返しが今までの主な管理方法でしたが、
OMSでは、「この設定のほうが良い」「全体のVMのうち何台がアップデートされずに放置されているため、アップデートしたほうが良い」
といったことを、人間が管理していなくても教えてくれます。またOSのアップデートなど、分かってはいても無視されている問題も浮き彫りになります。

また、これはセキュリティの観点で、システム管理者のプロアクティブな活動の一助になります。

capture20170126164604798

OMSはログを見て判断するためだけの環境ではありません。OMSでは解析結果から示唆を得ることができます。

ソリューションを提供

OMSには29のソリューションがあります。

ログを分析できるツールを導入した際に、まず最初に躓く点がダッシュボードの作成だと思います。
ログというデータはあるものの、実際にそれをひと目見ただけではよくわかりづらいですし、セキュリティならセキュリティ、障害対応なら障害対応の切り口で複数のダッシュボードをくみ上げなければなりません。

つ まり、導入してもすぐに使い始めることができないのです。一方でOMSの場合は、もう完成されたものが用意されています。例えば、セキュリティ監査の観 点、Azureマシンのアップデート状況、バックアップの状況、Active DirectoryやO365の状況など、様々な切り口で導入後すぐに分析を開始できます。

capture20170126185701216

ログ分析

OMSはSaaSとして提供される管理環境で、ログ分析を誰でも簡単に始めることができます。
しかし、必ずしも「なんでも」できるわけではありません。もちろん、自分でログを収集するツール、ログを分析するツール、結果を可視化するツールを手組で組んだものに比べればできることの範囲は小さくなります。

ただし、それらのシステムを構築する時間や、それぞれのシステムが配置されるマシンにかかる費用を考えたときに、どちらを選択するほうが良いでしょうか?

昔からSIEMというかたちでログ分析の基盤は提供されていました。しかしそれはシステム的にも価格的にも導入難易度が高いものがあり、一度導入したらそれを使い続けることになります。

一方でOMSはサブスクリプション型の課金モデルで使うことができ、ダッシュボードも簡単に作成可能です。

ログ分析をすぐ始めたい時の入り口として、まずOMSはを使ってみるというのも良いのではないでしょうか。

 

Office 365 開発者向けポッドキャスト 第 114 回: Doug Ware 氏が語る SharePoint アドイン向けの Azure 機能

$
0
0

(この記事は 2017 1 19 日に Office Blogs に投稿された記事 Episode 114 on Azure Functions for SharePoint add-ins with Doug Ware—Office 365 Developer Podcast の翻訳です。最新情報については、翻訳元の記事をご参照ください。)

114 回目は、プレゼンターの Richard diZerega と Andrew Coates が、SharePoint アドイン向けの Azure 機能について、マイクロソフト MVP である Doug Ware 氏に伺います。

ポッドキャストをダウンロード (英語)

関連記事

ポッドキャストについてご質問やご意見がございましたら、Office 365 Technical Network Office 365 開発者向けポッドキャスト (英語) にぜひご参加ください。このポッドキャストの RSS は iTunes  から入手できます。「Office 365 Developer Podcast」で検索するか、RSS フィード feeds.feedburner.com/Office365DeveloperPodcast を直接追加してください。

Doug Ware 氏について

dougware_400x400-150x150Doug Ware 氏は、ジョージア州アトランタに本拠を構える InstantQuick の創設者で、SharePoint MVP です。SharePoint 開発の関連書籍および関連ビデオを多数発行していることで知られています。Atlanta Code Camp、Cloud Saturday Atlanta など、他の Microsoft MVP が主催するコミュニティ イベントもサポートしています。

プレゼンターについて

RIchard diZeregaRichard diZerega は、マイクロソフト Developer Experience (DX) グループのソフトウェア エンジニアとして、開発者やソフトウェア ベンダーのための Office 365 や Azure のマイクロソフト クラウド サービスの活用支援に従事しています。ここ 10 年は、マイクロソフトのさまざまなテクノロジ ポートフォリオにわたる Office 中心のソリューションの開発に注力しています。熱心なテクノロジ エヴァンジェリストとして、世界中のカンファレンス、トレーニング、イベントのスピーカーに招かれています。人気の高い Office 365 コミュニティのブログは aka.ms/richdizz (英語)、Twitter アカウントは @richdizz からご覧いただけます。テキサス州ダラスで生まれ育ち、現在はレドモンドにあるワールドワイド チームに所属しています。趣味はモノ作りと音楽とランニングです。

 

ACoates

土木工学を学び、ソフトウェア開発者になった Andrew Coates は、2004 年からマイクロソフトのデベロッパー エヴァンジェリストとして、コーディング技術の教授、学習、共有に尽力しています。デスクトップ、クラウド、Web、モバイル デバイスにおける .NET 開発に積極的に携わり、現在は Office の開発に従事しています。仕事を心から楽しむことをモットーとしている Andrew が開発したアプリは、さまざまなストアで目にすることができます。妻と近く成人する子ども 2 人と共にオーストラリア、シドニーに在住しています。

関連リンク

StackOverflow

Yammer Office 365 Technical Network

※ 本情報の内容 (添付文書、リンク先などを含む) は、作成日時点でのものであり、予告なく変更される場合があります。

System Center 2012 R2 更新プログラム最新版 (Update Rollup 12) がリリースされました!!

$
0
0

こんにちは、日本マイクロソフト System Center Support Team の益戸です。

2017 年 1 月26 日に System Center 2012 R2 向けに Update Rollup 12 (UR12) がリリースされましたのでお知らせいたします。
修正プログラムによっては、適用時にデータベースに対して自動的に更新が発生いたします。
その為、修正プログラムの適用に失敗した場合や、修正プログラムに致命的なエラーが発生した場合に備え、可能な限り、適用前にシステムおよび、データベースのバックアップの取得を検討ください。
System Center 製品については、明確にアンインストールを指示する場合を除き、適用した修正プログラムのアンインストール実施後に動作に問題が発生する場合がございます。

 

Update Rollup 12 for System Center 2012 R2
https://support.microsoft.com/ja-jp/help/3209604/update-rollup-12-for-system-center-2012-r2

 

このリリースでは、以下の製品に対して修正プログラムが提供されています。本修正プログラムは、Microsoft Update 経由で更新プログラムをダウンロードしてインストールすることができます。また、オフラインの環境では、Microsoft Update Catalog を通じてダウンロードしたパッケージを手動で適用することもできます。詳細な適用手順や、修正内容については、それぞれのリンクをご参照ください。

 

・Data Protection Manager (KB —- )
2 月にリリース予定となります

 

・Operations Manager (KB3209587)
https://support.microsoft.com/ja-jp/help/3209587/system-center-2012-r2-om-ur12
* インストールする手順等に注意がございます。
事前に内容をご確認の上、適用ください。

 

・Service Provider Foundation(KB3209618)
https://support.microsoft.com/ja-jp/help/3209618/update-rollup-12-for-system-center-2012-r2-orchestrator-service-provid

 

・Virtual Machine Manager (KB3209585)
https://support.microsoft.com/ja-jp/help/3209585/update-rollup-12-for-system-center-2012-r2-virtual-machine-manager
* インストールする手順等に注意がございます。
事前に内容をご確認の上、適用ください。
適用に際しては、サーバーの再起動が必要となる場合がございます。

 

まずはリリースの告知をさせていただきました。

Microsoft サポート情報採取ツール (MSDT) の実行を行う際に 0x800B010A が発生する場合の対処方法について

$
0
0

こんにちは。Windows プラットフォーム サポートの福田です。

今回は Windows Server 2008 R2 環境にて Microsoft サポート情報採取ツール (MSDT) の実行を行う際に 0x800B010A が発生する場合の対処方法についてご紹介いたします。

MSDT の詳細につきましては以下を参照ください。

マイクロソフト サポート診断パッケージについて

 

具体的な現象


Windows Server 2008 R2 環境にて Microsoft サポート情報採取ツール (MSDT) の実行を行う際に、以下の画像のようにエラー 0x800B010A が発生し、MSDT の実行に失敗します。

blog_0127

 

原因


Windows Update が行われていない環境などでは Microsoft Certificate Authority 2011 の証明書が存在しないため、MSDT の実行に失敗してしまいます。

 

解決策


Microsoft Certificate Authority 2011 証明書を MSDT を実行するマシンにインストールします。
※ 再起動は不要です。

1. 以下より、証明書 (MicrosoftRootCertificateAuthority2011.cer) をダウンロードします。
http://go.microsoft.com/fwlink/?LinkID=747875&clcid=0x409

2. 証明書 (MicrosoftRootCertificateAuthority2011.cer) を対象のマシンにコピーします。

3. 管理者にてログオンし、[スタート] -> [プログラムとファイルの検索] -> [certmgr.msc] を起動します。

blog02_0127

 

4. [信頼されたルート証明機関] を選択し、右クリックし、[すべてのタスク] -> [インポート] をクリックし “証明書のインポート ウィザード” を起動します。

blog03_0127

 

5. “証明書のインポート ウィザード” にてインポートするファイルにコピーした “MicrosoftRootCertificateAuthority2011.cer” を指定して [次へ] をクリックします。

blog04_0127

 

6. [証明書をすべての次のストアに配置する] にチェックがついていることを確認し [次へ] をクリックして進みます。

blog05_0127

 

7. “証明書のインポート ウィザードの完了” 画面にて以下の内容が表示されていることを確認して [完了] をクリックします。

——————————————————————
ユーザーが選択した証明書ストア: 信頼されたルート証明機関
内容: 証明書
ファイル名: MicrosoftRootCertificateAuthority2011.cer のパス名
——————————————————————

blog06_0127

 

8. セキュリティ警告のポップアップが表示されましたら、Thumbprint (拇印) が以下の内容であることを確認して [はい] をクリックします。

——————————————————————
Thumbprint (拇印): 8f43288a d272f310 3b6fb142 8485ea30 14c0bcfe
——————————————————————

blog08_0127

 

9. “正しくインポートされました。” というポップアップが表示されることを確認します。

blog07_0127

 

10. certmgr.msc の [信頼されたルート証明機関] の [証明書] に Microsoft Root Certificate Authority 2011 がインストールされていることを確認します。

blog09_0127

 
11. MSDT を実行し、ログが採取できることを確認します。

 
 
本ブログが少しでもお役に立てば幸いです。


Blížící se konec aktualizací pro Windows 10 verze 1507

$
0
0

Verze 1507, tedy první oficiální vydání Windows 10, nebude po 26. březnu 2017 dostávat další aktualizace. Po tomto datu nebudou k dispozici ani nové bezpečnostní aktualizace. Novějších verzí 1511 a 1607 se toto oznámení samozřejmě nedotýká.

Tento termín je v souladu se strategií kontinuálního vydávání velkých servisních aktualizací pro Windows označovaného jako Windows as a Service (WaaS) a minimálně 18 měsíční podpory každého takového velkého sestavení ze strany společnosti Microsoft.

Každá taková změna navíc dostane záruku 60 dní, než plně nabude platnosti. Proto datum ukončení podpory není již 26. ledna, ale právě až 26. března. Verze 1507 totiž spatřila světlo světa v červenci 2015, jak už z jejího označení vyplývá. A jelikož se společnost Microsoft zavázala plně podporovat dvě sestavení označovaná jako CBB (Current Branch for Business), právě díky existenci dvou dalších CBB sestavení 1511 a 1607 toto nejstarší sestavení již brzy přijde zkrátka.

V rámci MSDN i VLSC můžete od 26. ledna 2017 stáhnout aktualizovaná média se sestavením 1607. Logickým a doporučeným krokem je tedy aktualizace na nejnovější CBB sestavení pro všechny společnosti, které dosud využívají staršího sestavení.

Pokud se obáváte problémů s kompatibilitou, můžete vyzkoušet novou službu Windows Upgrade Analytics v rámci sady Operations Management Suite, která pomůže definovat a ověřit kompatibilitu aplikací, webových stránek a provést vás nejen pilotním nasazením nové verze, ale i jejím následným přesunem do plné produkce. O této službě se více dozvíte v následujících vydání zpravodaje TechNet Flash, k jehož odběru vás srdečně zveme.

– Petr Vlk (KPCS CZ, WUG)

OMS – Microsoft Operations Management Suite –

$
0
0

Azure OMS

Microsoft が提供するIT管理ソリューションであるOMSについての解説を致します。

OMSにも様々な機能があるため、今回は主にLog Analytics についての解説をし、機能に触れながらどのように使えるのかという論点をまとめていきたいと思います。

概要についてはこちらの記事で述べさせていただいておりますので、こちらも合わせてご覧ください。

クラウド時代には、なぜ「ログ分析」が重要になるのか――高度なログ分析機能を、すぐに、簡単に使えるMicrosoft Operations Management Suite

 

Azure OMSとは

Microsoft Operations Management Suite (OMS) は、Microsoft のクラウドベースの IT 管理ソリューションです。OMS を使用して、オンプレミスとクラウドのインフラストラクチャを管理し、保護することができます。 OMS はクラウドベースのサービスとして実装されるため、インフラストラクチャ サービスに最小限の投資をするだけで、すぐに稼働させることができます。 新しい機能は自動的に配信されるため、継続的なメンテナンスやアップグレードのコストが節約されます。

OMS は、価値のある独自のサービスに加え、System Center Operations Manager などの System Center のコンポーネントと統合して、管理のための既存の投資をクラウドに拡張できます。 System Center と OMS を連携させることで、本格的なハイブリッド管理を実現できます。

(参照:Operations Management Suite (OMS) とは

image.png

OMSのLog Analyticsをログ分析のために用いる論点

ログ分析をする主な理由は以下でしょう。
・障害発生時の原因究明
・システムの傾向分析(クラウドの課金)
・セキュリティ監査

それではなぜログ分析をOMSで行うのかを考えていきましょう。

ログがクラウドにある

原因究明のためのログが全部クラウドにあるということはセキュリティの観点でメリットです。

まず悪意のあるハッカーがやることは以下です。

  1. 準備をする。(その際に、特定のポートに秒間何回もアクセスがあったりなど不審な動きがある)
  2. 侵入する
  3. 悪さをする
  4. 悪さをした痕跡を消す

ログがオンプレ上にあった場合、多くの場合サーバーへの侵入とともに侵入の痕跡も消されてしまうでしょう。しかしログがクラウドにあった場合、悪意のあるハッカーは侵入の痕跡を消すことが出来ません。
マイクロソフトはペンタゴンの次に悪意のあるハッカーから攻撃されているデータセンターを持っています。もしもハッカーがマイクロソフトのデータセンターに侵入して攻撃の痕跡を消すためにはマイクロソフトのセキュアなデータセンターの壁を乗り越える必要があるのです。

またOMSで扱えるログデータにアクセスする場合は、AzureのAPIではReadができてもWriteはそもそもできません。

ログがクラウドで管理される問ことはセキュリティの観点でかなりのメリットになります。

コンピューティングリソースを圧迫しない

ログを多面的に分析したい場合、様々なログを取得して分析をする必要がありますが、そこで気になるのが、ログを保管するストレージや演算のためのリソースです。

OMSを導入した場合、従来よりもリソースの限界について考える必要がなくなります。

また、OMSでは独自のクエリを使ってAzure及びオンプレミスのマシンを含むハイブリット環境のログを検索・分析することができます。

その検索・分析も非常に高速で、潤沢なマイクロソフトのデータセンターのコンピュートリソースを使い、すぐにログ検索の結果を出力することができるのです。

capture20170126165535551

以下のコードでは各マシンのプロセッサのパフォーマンスの平均値を取得しています。

また、下のスクリーンショットでは検索窓にアスタリスク(*)を入力し、取得できるすべてのログ集めています。下記環境では1週間で7億9200万件のログがヒットしていますが、こちらも数秒で取得することができます。

capture20170126165002242

OMSの場合は、ログ分析のためのインフラを考える必要はなくなるでしょう。

 

ハイブリッド環境にも使えて、WindowsもLinuxも対応

OMSはオンプレミスの環境にも使うことが出来る、ハイブリッド環境対応の管理サービスです。
もちろん、SoftlayerやAWSといった様々なクラウドのサービスとも連携させることが出来ます。
OMSでは対象のマシンにエージェントをインストールすることで、そのVMがAzureと通信可能な状況にあれば簡単に利用を開始できます。
そして、一つのダッシュボードで統合管理をすることが出来ます。

またOMSで管理できるのはWindowsだけではありません。Linuxベースの多くのOSにも対応しています。
それぞれのOSで作成されるログの形式はバラバラですが、OMSはその差を吸収します。

capture20170126184411682

OMSでは、Windows環境もLinux環境も分析します。例えばアップデートマネジメントの画面では、どのマシンをアップデートすべきか、あてるべきセキュリティパッチはあるのか、といったことを知ることができます。そうした設定もWindowsとLinuxで別の設定をするのではなく、Agentさえ入れればOMSが勝手にやってくれることになります。

見えないものが見える

今までのログ管理では、「ためる」「見る」にフォーカスしがちで、主な目的は死活監視や障害対応でした。
そのため、多くのソフトウェアは「ダウンしていないか」ということにフォーカスしたデザインになっていました。
しかしそうした管理方法ではログから何か知見を得ようとするのが難しいです。

OMSの強みは、システムを俯瞰的に解析し、改善のためのアドバイスができるということです。
「人間が何か特定の事を考え、それを検証するために何かのコマンドを打って結果を見る」という繰り返しが今までの主な管理方法でしたが、
OMSでは、「この設定のほうが良い」「全体のVMのうち何台がアップデートされずに放置されているため、アップデートしたほうが良い」
といったことを、人間が管理していなくても教えてくれます。またOSのアップデートなど、分かってはいても無視されている問題も浮き彫りになります。

また、これはセキュリティの観点で、システム管理者のプロアクティブな活動の一助になります。

capture20170126164604798

OMSはログを見て判断するためだけの環境ではありません。OMSでは解析結果から示唆を得ることができます。

ソリューションを提供

OMSには29のソリューションがあります。

ログを分析できるツールを導入した際に、まず最初に躓く点がダッシュボードの作成だと思います。
ログというデータはあるものの、実際にそれをひと目見ただけではよくわかりづらいですし、セキュリティならセキュリティ、障害対応なら障害対応の切り口で複数のダッシュボードをくみ上げなければなりません。

つ まり、導入してもすぐに使い始めることができないのです。一方でOMSの場合は、もう完成されたものが用意されています。例えば、セキュリティ監査の観 点、Azureマシンのアップデート状況、バックアップの状況、Active DirectoryやO365の状況など、様々な切り口で導入後すぐに分析を開始できます。

capture20170126185701216

ログ分析

OMSはSaaSとして提供される管理環境で、ログ分析を誰でも簡単に始めることができます。
しかし、必ずしも「なんでも」できるわけではありません。もちろん、自分でログを収集するツール、ログを分析するツール、結果を可視化するツールを手組で組んだものに比べればできることの範囲は小さくなります。

ただし、それらのシステムを構築する時間や、それぞれのシステムが配置されるマシンにかかる費用を考えたときに、どちらを選択するほうが良いでしょうか?

昔からSIEMというかたちでログ分析の基盤は提供されていました。しかしそれはシステム的にも価格的にも導入難易度が高いものがあり、一度導入したらそれを使い続けることになります。

一方でOMSはサブスクリプション型の課金モデルで使うことができ、ダッシュボードも簡単に作成可能です。

ログ分析をすぐ始めたい時の入り口として、まずOMSはを使ってみるというのも良いのではないでしょうか。

 

Get-OneMillionDigitsofPi

$
0
0

After showing a customer the PI static method of System.Math, they asked, “how do I get more digits?”.

capture198

 

A quick bit of lateral-thinking, i.e. cheating, later and a with more than a nod to the hard work done by the folks at angio.net, here’s the wonderfully named Get-OneMillionDigitsOfPi function.

 


function Get-OneMillionDigitsOfPi {

    (Invoke-WebRequest -Uri "http://www.angio.net/pi/digits/pi1000000.txt").Content

}

Let’s run it…

capture199

 

And, just to make sure we’re getting value for money…

capture200

 

 

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

$
0
0

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 App を検索し、Function App をクリックしたら「作成」。

image

 

アプリ名等を入力して「作成」。アプリ名(ここでは GraphFromFunction.azurewebsites.net)は後でAzure AD にアプリ登録するときに使用します。

image

 

作成した Function App に移動すると、以下のようにApp Service(Functions の本体)、ストレージ、App Service プランが作成されていることがわかります。

image

 

App Service をクリックすると、Function App の簡易作成画面(クイックスタート)が表示されます。

 image

 

今回は定期的に Microsoft Graph を実行するので「タイマー」を選択。言語は C#。

選択したら「この関数を作成する」をクリック。

image

初期画面が表示されたら、ためしに「実行」をクリックしてみる。

image

 

ログに以下のような出力がされれば、ひとまず正常です。太字部分はコード内の log.info() によって出力された文字列です。

2017-01-26T13:45:00.009 Function started (Id=db7524a6-c10b-4d9a-9e44-b61e86898aa0)
2017-01-26T13:45:00.009 C# Timer trigger function executed at: 1/26/2017 1:45:00 PM
2017-01-26T13:45:00.009 Function completed (Success, Id=db7524a6-c10b-4d9a-9e44-b61e86898aa0)

 

この関数はタイマーにバインドされているので、規定時間(5分)に1回、自動的に実行されます。

タイマーの間隔を変更するには、左側のメニューの「統合」をクリックします。

image

 

右下に「スケジュール」と書かれたフィールドがありますが、これが間隔を示しています。

設定の方法は以下を参照してください。

 

0 */5 * * * *

 

Azure Functions におけるタイマー トリガー
https://docs.microsoft.com/ja-jp/azure/azure-functions/functions-bindings-timer

 

2. Azure AD にアプリ登録する

 

Function App からいったん離れて、今度は Auzre AD 側の設定をします。実は、AppService の認証/承認の設定からでもできるのですが、今回は何が行われているのかを理解してもらうために面倒な手順で進めてみます。

なお、Azure AD について詳しく知りたい方は以下のリンクがおすすめです。

 

Azure AD ディレクトリの管理
https://github.com/Microsoft/azure-docs.ja-jp/blob/master/articles/active-directory/active-directory-administer.md

 

Azure AD は旧ポータルで操作するのがセオリーですが(ほんとかよ)、ここはあえて新ポータルでいってみましょう。

ポータルで「Azure Active Directory」を開いてください。

 

image

 

「プロパティ」をクリックすると「ディレクトリ ID」が表示されるので、これを控えておきます。あとから、ソースコード内で「Tenant ID」として使用します。

 

TenantID = c9687145-521f-42e6-xxxx-xxxxxxxxxxxx

 

image

 

次に「アプリの登録」をクリックすると、指定したテナントに関連づけられているアプリケーションの一覧が表示されます。

image

 

「追加」をクリックします。「アプリケーションの種類」は「Webアプリ/API」を選択。「サインオンURI」には、先ほど作成した Function App の URL(https://graphgromgunction.azurewebsites.net) を指定して「作成」をクリック。

image

 

先ほどのアプリ一覧に、今作成したアプリが追加されるので、クリックして設定画面を開きます。

「プロパティ」をクリックして表示された情報から「アプリケーション ID」を控えておきます。これはあとから「Client ID」としてソースコード内で使用します。

ClientID = e67fff1a-d912-4bf4-xxxx-xxxxxxxxxxxx

image

 

今度は「キー」をクリックします。

image

既定ではキーは作成されていません。

「機関」からキーの有効期限を選択し(ここでは「期限なし」)、「キーの説明」を適当に入力して「保存」をクリック。保存が完了すると「値」にキーが表示されるので、これを控えておきます。これがコード内で ClientSecret となります。キーが表示されたら、それを控えるまではページを移動しないでください。移動すると、安全のため二度と表示できなくなります。もしキーを忘れてしまったら、既存のものを消して新しくキーを作成すれば OK です。

ClientSecret = b/dmwx0WUnmljqxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

image

 

この作業で以下の3つの情報を収集することができました。

 

<Tenant ID> c9687145-521f-42e6-xxxx-xxxxxxxxxxxx

<Client ID> = e67fff1a-d912-4bf4-xxxx-xxxxxxxxxxxx

<Client Secret> = b/dmwx0WUnmljqxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

 

これらの値を、この後の作業で Function App 内に埋め込みます。

 

Azure AD の最後の作業として、アプリケーションにディレクトリへのアクセス権を与えます。

 アクセス権が無いと、正しいトークンを取得しても以下のようなエラーが発生します。

2017-01-27T04:29:02.895 {
  “error”: {
    “code”: “Authorization_RequestDenied”,
    “message”: “Insufficient privileges to complete the operation.”,
       “innerError”: { “request-id”: “96e44229-5f66-4057-b9ea-f864b5013097”,
       “date”: “2017-01-27T04:29:01”
      }
    }
}

 

「必要なアクセス許可」をクリックしてください。既定では以下のようになっています。

image

アクセス権について詳しく解説はしませんが、このままではアクセスすることができません。

アクセス許可スコープ | Graph API 概念
https://msdn.microsoft.com/ja-jp/library/azure/ad/graph/howto/azure-ad-graph-api-permission-scopes

今回は、Function App がユーザーのログオンを介さずに直接 Graph API にアクセスします。そのため、アプリケーションに対して直接権限を与える必要があります。規定では「委任されたアクセス許可」なので、ユーザーがログオンしないとアクセスすることができないのです。

API 一覧にある「Windows Azure Active Directory」をクリックすると、以下のように権限一覧画面が表示されます。「アプリケーションのアクセス許可」の中にある「Read directory data」を選択してください。既定で与えられている「Sign in and read user profile」は必要ないので外してしまいましょう。アプリケーションには余計な権限を与えてはいけません。「保存」をクリックして保存しましょう。

image

 

以上で Azure AD 側の設定は完了です。

 

3. Function App の作成

 

Function App の設定画面に戻ります。

image

 

既存のコードを以下で上書きして下さい。コード内の Tenant ID、Client ID、Client Secret に先ほど控えた値を埋め込みます。Client Secret を生のまま埋め込むのはアレなので、本当はApp Service のパラメタに登録するのがよいのですが、ひとまずここでは生埋め込みでいっちゃいましょう。パラメタ登録についてはあとで説明します。

 

#r “Newtonsoft.Json”

using System.Net;
using System.Net.Http.Headers;
using Newtonsoft.Json;
using Microsoft.IdentityModel.Clients.ActiveDirectory;

public static async Task<String> Run(TimerInfo myTimer, TraceWriter log)

{
    log.Info($”C# Timer trigger function executed at: {DateTime.Now}”); 
   
    string resourceId = “
https://graph.microsoft.com”;
    string tenantId = “<Tenant ID>”;
    string authString = “
https://login.microsoftonline.com/” + tenantId;
    string clientId = “<Client ID>“;
    string clientSecret = “<Client Secret>“;
    //string clientSecret = ConfigurationManager.AppSettings[“clientSecret”];

    log.Verbose(“ClientSecret=” + clientSecret);
    log.Verbose(“authString=” + authString);

    var authenticationContext = new AuthenticationContext(authString, false);
   
    //アクセストークン取得;
    ClientCredential clientCred = new ClientCredential(clientId, clientSecret);
    AuthenticationResult authenticationResult = await authenticationContext.AcquireTokenAsync(resourceId,clientCred);
    string token = authenticationResult.AccessToken;
    log.Verbose(“token=” + token);

    var responseString = String.Empty;
   
    using (var client = new HttpClient())
    {       
        string requestUrl = “
https://graph.microsoft.com/v1.0/users”;
       
        HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Get, requestUrl);
        request.Headers.Authorization = new AuthenticationHeaderValue(“Bearer”, token);
        log.Verbose(request.ToString());
       
        HttpResponseMessage response = client.SendAsync(request).Result;

        responseString = response.Content.ReadAsStringAsync().Result; 

        log.Verbose(responseString);
       
    }

    return responseString;

}

 

残念ながら、このままでは動作しません。

 

ちょっと説明が面倒なのですが、今回は Microsoft Graph にアクセスするため、必要なモジュールを追加しなければなりません。モジュールによっては、コードの先頭に以下のように書くことで、自動的に Nuget から追加されます。

 

#r “Newtonsoft.Json”

 

これに関する詳細が知りたい方は、以下の「外部アセンブリの参照」を参照してください。

 

Azure Functions C# developer reference (Azure Functions C# 開発者向けリファレンス)
https://docs.microsoft.com/ja-jp/azure/azure-functions/functions-reference-csharp

 

残念ながら Microsoft Graph に必要なモジュール(Microsoft.IdentityModel.Clients.ActiveDirectory)は #r では追加することができません。

 

そこで、特別なファイルを作成してアップロードしてあげる必要があります。以下の  JSON ファイルを作成して、Project.json というファイル名で保存してください。3.13.8 は現時点での安定最新バージョンです。

Active Directory Authentication Library 3.13.8
https://www.nuget.org/packages/Microsoft.IdentityModel.Clients.ActiveDirectory/

 

Project.json

{
  “frameworks”: {
    “net46”:{
      “dependencies”: {
          “Microsoft.IdentityModel.Clients.ActiveDirectory”: “3.13.8”
      }
    }
   }
}

ファイルを作成して保存したら、これを Function App にアップロードします。

画面右上の「ファイルの表示」をクリックしてください。

image

 

以下のように3つのファイルが存在していることがわかります。現在のコードは「run.csx」です。

「アップロード」をクリックして、先ほど作成した Project.json をアップロードしてください。

image

 

アップロードが完了すると、Nuget から必要なモジュールが自動的にダウンロードされて組み込まれます。

 

これで動くようになったはずです。

コード画面の「実行」ボタンをクリックしてみてください。

image

 

ログに、以下の赤枠で囲んだようなJSON形式のデータが出力されていれば成功です。 

 image

今回は、Graph の URL を以下のようにユーザー一覧を取得するように設定したので、Azure AD に登録されているユーザー一覧が取得できています。

https://graph.microsoft.com/v1.0/users

 

出力結果を JSON エディタ等で見ていただくと、以下のようなデータがユーザーの数だけ出力されています。

 

{
    “id”:”deb57951-92af-4bc4-xxxx-xxxxxxxxxxxx”,”businessPhones”:[“+81 9099999999”],
    “displayName”:”admin”,
    “givenName”:”admin”,
    “jobTitle”:”u30a8u30d0u30f3u30b8u30a7u30eau30b9u30c8″,
    “mail”:”admin@pharaojp.onmicrosoft.com”,
    “mobilePhone”:”+81 9017xxxxxx”,
    “officeLocation”:”???-???????”,
    “preferredLanguage”:”ja-JP”,
    “surname”:”user”,
    “userPrincipalName”:admin@pharaojp.onmicrosoft.com
}

 

以上でGraphへのアクセス部分の作成は完了です。

 

4. Azure Blob Storage への出力

 

Blob ストレージへの出力は簡単です。コードを書く必要は一切ありません。

「統合」メニューをクリックしてください。

image

 

画面右上の「新しい出力」をクリックすると出力先一覧が表示されるので、「Azure BLOB ストレージ」を「選択」します。

image

 

「Blobパラメーター名」に「$Return」を指定します。これは、コードの最後に書かれた「 Return responseString; 」に関連しています。responseString 変数に格納された値が、Return されます。

 

image

 

「ストレージアカウント接続」にはストレージアカウントを指定してください。既存のものでも新規に作成することもできます。

 

パスはストレージアカウント内にファイルを保存するときのフルパスです。コンテナは事前に作成しておく必要はありません。指定したコンテナが自動的に作成されます。{rand-guid}は保存するたびにランダムなGUIDを生成することを意味しています。「.txt」を付けておくと開くときに便利です。

 

以上で作業は完了です。

放っておけば5分に1回、Graph API が呼び出されてBlobストレージにその時点のユーザー一覧のスナップショットがとられます(役に立つかどうかは不明ですが。。。)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

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

$
0
0

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 App を検索し、Function App をクリックしたら「作成」。

image

 

アプリ名等を入力して「作成」。アプリ名(ここでは GraphFromFunction.azurewebsites.net)は後でAzure AD にアプリ登録するときに使用します。

image

 

作成した Function App に移動すると、以下のようにApp Service(Functions の本体)、ストレージ、App Service プランが作成されていることがわかります。

image

 

App Service をクリックすると、Function App の簡易作成画面(クイックスタート)が表示されます。

 image

 

今回は定期的に Microsoft Graph を実行するので「タイマー」を選択。言語は C#。

選択したら「この関数を作成する」をクリック。

image

初期画面が表示されたら、ためしに「実行」をクリックしてみる。

image

 

ログに以下のような出力がされれば、ひとまず正常です。太字部分はコード内の log.info() によって出力された文字列です。

2017-01-26T13:45:00.009 Function started (Id=db7524a6-c10b-4d9a-9e44-b61e86898aa0)
2017-01-26T13:45:00.009 C# Timer trigger function executed at: 1/26/2017 1:45:00 PM
2017-01-26T13:45:00.009 Function completed (Success, Id=db7524a6-c10b-4d9a-9e44-b61e86898aa0)

 

この関数はタイマーにバインドされているので、規定時間(5分)に1回、自動的に実行されます。

タイマーの間隔を変更するには、左側のメニューの「統合」をクリックします。

image

 

右下に「スケジュール」と書かれたフィールドがありますが、これが間隔を示しています。

設定の方法は以下を参照してください。

 

0 */5 * * * *

 

Azure Functions におけるタイマー トリガー
https://docs.microsoft.com/ja-jp/azure/azure-functions/functions-bindings-timer

 

2. Azure AD にアプリ登録する

 

Function App からいったん離れて、今度は Auzre AD 側の設定をします。実は、AppService の認証/承認の設定からでもできるのですが、今回は何が行われているのかを理解してもらうために面倒な手順で進めてみます。

なお、Azure AD について詳しく知りたい方は以下のリンクがおすすめです。

 

Azure AD ディレクトリの管理
https://github.com/Microsoft/azure-docs.ja-jp/blob/master/articles/active-directory/active-directory-administer.md

 

Azure AD は旧ポータルで操作するのがセオリーですが(ほんとかよ)、ここはあえて新ポータルでいってみましょう。

ポータルで「Azure Active Directory」を開いてください。

 

image

 

「プロパティ」をクリックすると「ディレクトリ ID」が表示されるので、これを控えておきます。あとから、ソースコード内で「Tenant ID」として使用します。

 

TenantID = c9687145-521f-42e6-xxxx-xxxxxxxxxxxx

 

image

 

次に「アプリの登録」をクリックすると、指定したテナントに関連づけられているアプリケーションの一覧が表示されます。

image

 

「追加」をクリックします。「アプリケーションの種類」は「Webアプリ/API」を選択。「サインオンURI」には、先ほど作成した Function App の URL(https://graphgromgunction.azurewebsites.net) を指定して「作成」をクリック。

image

 

先ほどのアプリ一覧に、今作成したアプリが追加されるので、クリックして設定画面を開きます。

「プロパティ」をクリックして表示された情報から「アプリケーション ID」を控えておきます。これはあとから「Client ID」としてソースコード内で使用します。

ClientID = e67fff1a-d912-4bf4-xxxx-xxxxxxxxxxxx

image

 

今度は「キー」をクリックします。

image

既定ではキーは作成されていません。

「機関」からキーの有効期限を選択し(ここでは「期限なし」)、「キーの説明」を適当に入力して「保存」をクリック。保存が完了すると「値」にキーが表示されるので、これを控えておきます。これがコード内で ClientSecret となります。キーが表示されたら、それを控えるまではページを移動しないでください。移動すると、安全のため二度と表示できなくなります。もしキーを忘れてしまったら、既存のものを消して新しくキーを作成すれば OK です。

ClientSecret = b/dmwx0WUnmljqxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

image

 

この作業で以下の3つの情報を収集することができました。

 

<Tenant ID> c9687145-521f-42e6-xxxx-xxxxxxxxxxxx

<Client ID> = e67fff1a-d912-4bf4-xxxx-xxxxxxxxxxxx

<Client Secret> = b/dmwx0WUnmljqxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

 

これらの値を、この後の作業で Function App 内に埋め込みます。

 

Azure AD の最後の作業として、アプリケーションにディレクトリへのアクセス権を与えます。

 アクセス権が無いと、正しいトークンを取得しても以下のようなエラーが発生します。

2017-01-27T04:29:02.895 {
  “error”: {
    “code”: “Authorization_RequestDenied”,
    “message”: “Insufficient privileges to complete the operation.”,
       “innerError”: { “request-id”: “96e44229-5f66-4057-b9ea-f864b5013097”,
       “date”: “2017-01-27T04:29:01”
      }
    }
}

 

「必要なアクセス許可」をクリックしてください。既定では以下のようになっています。

image

アクセス権について詳しく解説はしませんが、このままではアクセスすることができません。

 

アクセス許可スコープ | Graph API 概念
https://msdn.microsoft.com/ja-jp/library/azure/ad/graph/howto/azure-ad-graph-api-permission-scopes

 

今回は、Function App がユーザーのログオンを介さずに直接 Graph API にアクセスします。そのため、アプリケーションに対して直接権限を与える必要があります。規定では「委任されたアクセス許可」なので、ユーザーがログオンしないとアクセスすることができないのです。

API 一覧にある「Windows Azure Active Directory」をクリックすると、以下のように権限一覧画面が表示されます。「アプリケーションのアクセス許可」の中にある「Read directory data」を選択してください。既定で与えられている「Sign in and read user profile」は必要ないので外してしまいましょう。アプリケーションには余計な権限を与えてはいけません。「保存」をクリックして保存しましょう。

image

 

以上で Azure AD 側の設定は完了です。

 

3. Function App の作成

 

Function App の設定画面に戻ります。

image

 

既存のコードを以下で上書きして下さい。コード内の Tenant ID、Client ID、Client Secret に先ほど控えた値を埋め込みます。Client Secret を生のまま埋め込むのはアレなので、本当はApp Service のパラメタに登録するのがよいのですが、ひとまずここでは生埋め込みでいっちゃいましょう。パラメタ登録についてはあとで説明します。

 

#r “Newtonsoft.Json”

using System.Net;
using System.Net.Http.Headers;
using Newtonsoft.Json;
using Microsoft.IdentityModel.Clients.ActiveDirectory;

public static async Task<String> Run(TimerInfo myTimer, TraceWriter log)

{
    log.Info($”C# Timer trigger function executed at: {DateTime.Now}”); 
   
    string resourceId = “
https://graph.microsoft.com”;
    string tenantId = “<Tenant ID>”;
    string authString = “
https://login.microsoftonline.com/” + tenantId;
    string clientId = “<Client ID>“;
    string clientSecret = “<Client Secret>“;
    //string clientSecret = ConfigurationManager.AppSettings[“clientSecret”];

    log.Verbose(“ClientSecret=” + clientSecret);
    log.Verbose(“authString=” + authString);

    var authenticationContext = new AuthenticationContext(authString, false);
   
    //アクセストークン取得;
    ClientCredential clientCred = new ClientCredential(clientId, clientSecret);
    AuthenticationResult authenticationResult = await authenticationContext.AcquireTokenAsync(resourceId,clientCred);
    string token = authenticationResult.AccessToken;
    log.Verbose(“token=” + token);

    var responseString = String.Empty;
   
    using (var client = new HttpClient())
    {       
        string requestUrl = “
https://graph.microsoft.com/v1.0/users”;
       
        HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Get, requestUrl);
        request.Headers.Authorization = new AuthenticationHeaderValue(“Bearer”, token);
        log.Verbose(request.ToString());
       
        HttpResponseMessage response = client.SendAsync(request).Result;

        responseString = response.Content.ReadAsStringAsync().Result; 

        log.Verbose(responseString);
       
    }

    return responseString;

}

※ こちらからダウンロードできます  https://github.com/junichia/Functions-Graph

 

残念ながら、このままでは動作しません。

 

ちょっと説明が面倒なのですが、今回は Microsoft Graph にアクセスするため、必要なモジュールを追加しなければなりません。モジュールによっては、コードの先頭に以下のように書くことで、自動的に Nuget から追加されます。

 

#r “Newtonsoft.Json”

 

これに関する詳細が知りたい方は、以下の「外部アセンブリの参照」を参照してください。

 

Azure Functions C# developer reference (Azure Functions C# 開発者向けリファレンス)
https://docs.microsoft.com/ja-jp/azure/azure-functions/functions-reference-csharp

 

残念ながら Microsoft Graph に必要なモジュール(Microsoft.IdentityModel.Clients.ActiveDirectory)は #r では追加することができません。

 

そこで、特別なファイルを作成してアップロードしてあげる必要があります。以下の  JSON ファイルを作成して、Project.json というファイル名で保存してください。3.13.8 は現時点での安定最新バージョンです。

 

Active Directory Authentication Library 3.13.8
https://www.nuget.org/packages/Microsoft.IdentityModel.Clients.ActiveDirectory/

 

Project.json

{
  “frameworks”: {
    “net46”:{
      “dependencies”: {
          “Microsoft.IdentityModel.Clients.ActiveDirectory”: “3.13.8”
      }
    }
   }
}

ファイルを作成して保存したら、これを Function App にアップロードします。

画面右上の「ファイルの表示」をクリックしてください。

image

 

以下のように3つのファイルが存在していることがわかります。現在のコードは「run.csx」です。

「アップロード」をクリックして、先ほど作成した Project.json をアップロードしてください。

image

 

アップロードが完了すると、Nuget から必要なモジュールが自動的にダウンロードされて組み込まれます。

 

これで動くようになったはずです。

コード画面の「実行」ボタンをクリックしてみてください。

image

 

ログに、以下の赤枠で囲んだようなJSON形式のデータが出力されていれば成功です。 

 image

今回は、Graph の URL を以下のようにユーザー一覧を取得するように設定したので、Azure AD に登録されているユーザー一覧が取得できています。

https://graph.microsoft.com/v1.0/users

 

出力結果を JSON エディタ等で見ていただくと、以下のようなデータがユーザーの数だけ出力されています。

 

{
    “id”:”deb57951-92af-4bc4-xxxx-xxxxxxxxxxxx”,”businessPhones”:[“+81 9099999999”],
    “displayName”:”admin”,
    “givenName”:”admin”,
    “jobTitle”:”u30a8u30d0u30f3u30b8u30a7u30eau30b9u30c8″,
    “mail”:”admin@pharaojp.onmicrosoft.com”,
    “mobilePhone”:”+81 9017xxxxxx”,
    “officeLocation”:”???-???????”,
    “preferredLanguage”:”ja-JP”,
    “surname”:”user”,
    “userPrincipalName”:admin@pharaojp.onmicrosoft.com
}

 

以上でGraphへのアクセス部分の作成は完了です。

 

4. Azure Blob Storage への出力

 

Blob ストレージへの出力は簡単です。コードを書く必要は一切ありません。

「統合」メニューをクリックしてください。

image

 

画面右上の「新しい出力」をクリックすると出力先一覧が表示されるので、「Azure BLOB ストレージ」を「選択」します。

image

 

「Blobパラメーター名」に「$Return」を指定します。これは、コードの最後に書かれた「 Return responseString; 」に関連しています。responseString 変数に格納された値が、Return されます。

 

image

 

「ストレージアカウント接続」にはストレージアカウントを指定してください。既存のものでも新規に作成することもできます。

 

パスはストレージアカウント内にファイルを保存するときのフルパスです。コンテナは事前に作成しておく必要はありません。指定したコンテナが自動的に作成されます。{rand-guid}は保存するたびにランダムなGUIDを生成することを意味しています。「.txt」を付けておくと開くときに便利です。

 

以上で作業は完了です。

放っておけば5分に1回、Graph API が呼び出されてBlobストレージにその時点のユーザー一覧のスナップショットがとられます(役に立つかどうかは不明ですが。。。)

Viewing all 36188 articles
Browse latest View live


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>