日本マイクロソフト株式会社 様主催のAzure Deep Dive 2017/03/27登壇しました。

内容

Azure Cognitive Service (Text Anylitics)を使用しOffice365 Excchange Onlineからの英語訓練用辞書作成について説明しました。

Azure Cognitive Service (Bing Speeach)を使用してXamarinでテキストから音声、音声からテキストを利用してどのように英語訓練をするかを説明しました。

ビジネス英会話とAzure Cognitive Servicesについてこれからの盛り上がりを感じました!!


会場の様子

wp_20170327_12_39_00_pro

wp_20170327_12_53_17_pro

Dynamics CRM(365) Online – Excel 連携アプリ(技術解説)

概要

Excel (Office Add-ins) を使用して、Microsoft Dynamics CRM Onlineにアクセスするアプリケーションを作成しました。

Excelを使用して、Dynamics CRMのデータに入力及び、出力ができます。

※このアプリは、初期設定で、Dynamics CRMの「Entity, View, Record, Field」 と Excel 「Cell」の組み合わせを定義します。

 

今回は、複数の技術使用していります。少し難しいので、簡単に解説します。

機能紹介ページ  – Dynamics CRM Excel 連携アプリ

システム概念図

Office Add-ins Dynamics CRM(365)

システム配置 – 概要

 

crm-officeaddins0100

詳細 – 使用しているリソースおよび技術

  1. Microsoft Dynamics CRM(365) Online
    D
    ynamics CRM Online は今後は、SOAPではなく、REST APIが主な開発手法になっていくようです。
    このアプリもREST APIを使用しました。
    REST APIに関数に関して以下のブログが参考になります。

    1. Japan Dynamics CRM Team Blog – SDK
    2. Morning Girl
  2. Azure App Service – Web
    C
    #を使用して、Web SiteをAzureに配置しています。
    crm-officeaddins0130

  3. Azure Active Directory – Application
    Web アプリケーションを作成したあとに、AzureAD と Dynamics CRM Onlineへのアクセスを設定します。
    「Acess CRM Online as organization users」を選びます。
    crm-officeaddins0110
    「Access the directory as the signed-in user」を選びます。
    crm-officeaddins0120
  4. Office Add-ins
    マニフェストファイルに以下をいれないとAzure AD にログイン時にExcelからログイン画面が、ポップアップしてきますので、注意して下さい。

    <AppDomains>
    <AppDomain>https://login.windows.net</AppDomain>
    <AppDomain>https://login.microsoftonline.com</AppDomain>
    </AppDomains>

    crm-officeaddins0140
    Officeアドインの詳しい解説は以下がわかりやすいです。

    1. 初心者備忘録 – Office アドイン
  5. Visual Studio 2015
    C#とJavaScriptを使用しています。統合デバックでOffice Add-ins(オフィスアドイン)のデバックもできます。 crm-officeaddins0150

 

 

セットアップ編 – Windows IoT with Raspberry Pi 3 to Azure or Office365 for 監査ログ(Windows/Linux/Router log)

概要

「Windows Eventlog」, 「rsyslog(Linux ,Yamara Router )」 等のログをAzure or Office365へ保存します。

そのプログラムを「WIndows IoT」 with 「Raspberry Pi 3」で作成します。

最初に 「Linux or Yamha RTX Router」 よく使われる rsyslogアプリを作成したいと思います。

今回は、「Raspberry Pi 3」 に 「Windows IoT」 をインストールしてリモートで「Raspberry Pi 3」にアクセスしたいと思います。

目的

Azure BLOB/Office365 SharePoint/OneDriveを使用してログを保存する仕組みを作り、簡単・安価にログを保存・監査・分析に使えるようにすることです。
※通常は、ローカルログ保存サーバを構築+バックアップが必要なので、構築・運用に数百万必要とするのを数千円~数万円にすることが可能になります。

またクラウドにデータを保存することにより、機械学習やPowerBI等の恩恵を受けることが可能です。

補足

Microsoftには、Log Analytics は、Operations Management Suite (OMS) のサービスがあります

https://azure.microsoft.com/ja-jp/documentation/articles/log-analytics-overview/

普通にログをとるのは、これでも大丈夫です。(容量や保存期間に制限があります)

 

詳細

「Raspberry Pi 3」です。

2016-08-07 (62)

Windows Dev Center>Windows IoT

https://developer.microsoft.com/en-us/windows/iot

ここにセットアップ方法がかいてあります。

2016-08-07 (63)

 

「IoT Dashboard」 から新規デバイスをインストールします。

PCからMicroSDカードにOSを書き込みます。

MicroSDカードを「Raspberry Pi 3」に差し込んで起動します。

ディスプレイ(HDMI) 、USB キーボード、マウスを取り付けると、Windows IoTが操作できます。

必要なら、無線LANの設定、優先LANはDHCPで自動的に接続されます。

 

2016-08-07 (64)

IoT Dashboard>自分のデバイス

自分のデバイスを選択して、 Device Portal を開きます。

ユーザIDは標準で「Administrator」

パスワードは、MicroSDカードにインストール時の「パスワード」

Windows IoT Remote Server をEnabledにします。

2016-08-07 (68)

マイクロソフトストアから Windows IoT Remote Client をインストールして、デバイスを選択して接続します。

2016-08-07 (69)

リモートデスクトップのようにWindows IoTを操作できます。

2016-08-07 (70)

次回は、HellWorldを動作させて、その後、rsyslogサーバを作成して動作させてみましょう。

2016-08-07 (71)

AAD Connect による、ADFS アプリテスト環境の作成の手順(SSL取得込で2時間で作れます)

概要

企業にはADFSが導入されている場合があり、AAD(Azure Active Directory)  アプリ (Application + OAuth2)のテスト環境が必要になります。

しかしながら、アプリの作成者がADFSを作成するには、難しいポイントがいくつかあるので、説明します。

この通りやると2時間程度でADFSテスト環境が作成できます。

はじめて、作成したので、アプリエンジニアがはまりそうなところは全部網羅していますので、ご期待ください。

全9回(作成中)

  1. ADFSとはなにか
  2. Office365を契約する。
  3. onamae.com でドメイン取得し、Office365にドメインを追加する。
  4. Azure Portal にログインできるようにして、AADを確認する。
  5. Local Windows Server OSインストール, AD(Active Directory)環境構築
  6. 試にディレクトリ同期(DirSync)のみでテストしてみる(この手順は不要です)
  7. SSLの取得、httpsのルータの設定
  8. ADFS(ディレクトリ同期+ 認証基盤)
  9. 動作確認(社内AD参加PCから、社外AD不参加PCから)

 

注意

OutlookのDesktopがうまく同期できない。おそらくSSLの問題なようなので調査中です。

AAD(Azure Active Dirctory) OAuth Application(Multi Tenant) ConcentUIのエラーについて

概要

AAD (Azure Active Dicrectory) のOAuth Application(アプリ)はアクセスを許可(承認)するためには、ConcentUI(コンセントUI)で許可する必要があります。

重要:組織で一度だけでOKです。

一般ユーザではConcent UIが表示されないように使用変更されたので
※Mutlti Tenant(マルチテナント) のみだと思われる?(Single Tenant未確認)

Global Administrator(全体管理者)がOrganization(組織)に許可しなければならない。

組織に許可すると一般ユーザはConcentUIが不要になるためくログインできるようになります。

現象

1. AAD Application (Mutli Tenant) でユーザがログインする

aadoauthconsetui0010

2. Concent UIが表示できずに以下のエラーが表示される。

AADSTS90093: User cannot consent to web app requesting user impersonation as an app permission.

aadoauthconsetui0020

 

解決方法

1. “prompt=admin_consent” をURL Parmaetert付でApplication(アプリ)を認証します。

例)重要:組織で一度だけでOKです。

https://login.microsoftonline.com/common/oauth2/authorize?response_type=code&prompt=admin_consent&client_id=beebf982-a44d-4f0b-8cc8-c1e3a72ca8ab

2. Global Administrator(全体管理者) でログインします。

aadoauthconsetui0030

 

3. 管理者用のConcent UIが表示されますので組織に承認します。

aadoauthconsetui0040

 

4. 一般のユーザでログインしてもConcent UIが表示されなくなりますので、エラーが表示されなくなります。

 

参考

  1. Azure Active Directory の Common Consent Framework (Client 側)
  2. v2.0 endpoint の OAuth を使った Client 開発 (Azure AD と MSA への対応)
  3. Update to Graph API consent permissions
  4. Managing user consent for applications using Office 365 APIs

監査ログ 保管・検索・レポートサービス for Office365: (Audit Log Search & Report Service)

概要

Microsoft様のOffice365の監査ログ機能に、以下のような機能を追加したWebアプリケーション開発しています。

もうちょっとでリリースします。

目指しているところ

  1. 月次監査レポートの自動化
  2. リアルタイムフックによる脅威への対応
  3. ログに付加情報の追加 (IPアドレスから名前解決等)
  4. 高速検索・レポート(随時ログ情報をクロールしデータベースに保存)

 

Office365の監査ログをクロール(取得)する設定

Auditlog010

詳細監査ログ

Auditlog020

監査ログのグループ化とドリルダウン

Auditlog030

レポート1:日別・人別・操作件数

Auditlog040

 

 

Office365 Management API

概要

Office365 Management APIでAzure Active Directory のAuthentication情報、SharePoint Online, Exchange Online, Skype for Bussiness, etcの監査ログが取得できます。

また、Office365の監査ログの有効期限(Expire Date)は7日のようです。

ポイント

ログはJSONフォーマットになっており、SQLでは対応難しいので流行のNoSQLを使ってみました。MongoDBに似たAzure DocumentDBを使用しています。

サービス化に向けて

Office365 Management APIはとても洗練された監査ログが出力できますので、監査ログサービスを作成しています。統計情報等のレポーティングは Azure HDInsight で PowerBIを使うか検討中です。

リリース予定は2016年/6月予定

Dynamics CRMはVer2で対応予定

実際にサンプルを作成し検証してみました。

期限を超えると監査ログが取得できなくなります。

o365Auditlog0010

ログインされたユーザの情報、詳細ではIPアドレス等もわかります。

o365Auditlog0020

 

Tokyo ComCamp 2016 powered by MVPs で登壇しました。

予約ページ  Tokyo ComCamp 2016 powered by MVPs – connpass

株式会社gloopsさんにて、Office365 の開発について登壇を行いました。

Office365の開発は、ユーザ数が増えて、開発者も増えてきました。

機能が多いので、開発手法についてデモを交えながら、説明しました。

詳しい方もいたので、Office365について知識が深まりました。

 

ComCamp2016

 

スライド


 

Windows用OneDrive API 2.0導入まで

以前紹介いたしましたOneDrive APIはMicrosoftアカウントのみの対応でしたが、
2.0になってOneDrive For Businessに対応になりました。

事前に用意するもの

・VisualStudio 2015
・Microsoftアカウント
・一般法人向けOffice365 (OneDrive For Businessで必要)
・AzureAD(AzureADは一般法人向けOffice365についてきます)

何が変わったか

2015年2月に出たライブラリとは互換性がないのが残念ですが、nugetから最新のパッケージが入手できるようになっております(Microsoft.OneDriveSDKで検索)。
もちろん、サンプルも新しくなっておりURLも変わっております。

サンプルを動かしてみよう

サンプルはWindows Form用とユニバーサルアプリの2通りが入っておりますので、
OneDriveに対応したアプリを作成される場合、サンプルに沿って作れば比較的楽に作れると思います。
2016/1/30時点では下記のような設定を入れないと動かなかったことを確認しております。

onedriveapi2_1

上記の設定のあとビルドし、OneDrivePhotoBrowserを起動すると下記のような画面が表示されます。

onedriveapi2

Log in to AADを押すと、Office365ログイン画面が表示されたのち、OneDrive For Businessのファイル情報が表示されました。
※実行時はLog in to MSA側は動作しませんでしたが、OneDriveApiBrowser側では動作しておりましたので、
MSA側が気になる方はそちらを参考にするとよいと思います。

Microsoft GraphAPI(formerly “Office 365 unified API”) されたのでアプリをAzureWeb SiteにUPしました。

ついに、Microsoft GraphAPI(formerly “Office 365 unified API”) がGAされましたので、

いまのところがREST APIがメインなのでC#にて作成してみました。

Microsoft GraphAPI(formerly “Office 365 unified API”) GAのニュースは以下から

Introducing the Microsoft Graph –The Azure AD GraphAPI goes big time

http://blogs.technet.com/b/ad/archive/2015/11/19/introducing-the-microsoft-graph-the-azure-ad-graphapi-goes-big-time.aspx

作成したアプリ概要

Microsoft GraphAPI(formerly “Office 365 unified API”)  のV1.0リリース版を使用して、グループとユーザを取得してExcelにてグループとユーザマトリックスを作成しました。

作成したアプリの場所

https://o365info.azurewebsites.net

作成したアプリの画面イメージ

ログイン後

Previe0365list_display1

実行画面

Previe0365list_display2

ダウンロードしたExcelを表示

Previe0365list_display3

 

作成したアプリの作成で参考になったサイトを集めたところ

https://www.facebook.com/groups/office365developer/