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

今が決断のとき: GDPR への対応準備 【1/28更新】

$
0
0

(この記事は2018年1月3日にMicrosoft Partner Network blog に掲載された記事 Your resolution: prepare for GDPR! の翻訳です。最新情報についてはリンク元のページをご参照ください。)

 

パートナー様が GDPR に対応していない場合、お客様にも影響が出ます

一般データ保護規則 (GDPR) の施行を 2018 5 25 日に控え、一刻も早い準備が必要となっています。IDC の試算によると、パートナー様やお客様が GDPR への準拠に取り組むにあたり、セキュリティ製品およびセキュリティ サービスの市場規模は 35 億ドルに達すると見込まれています。また、最近の調査では、GDPR への対応を最優先事項ととらえている米国企業の 75% が、準備に向けた予算として 100 万ドル以上を計上していると回答しています。一方、今年 Forrester が発表したレポート『Assess Your Data Privacy Practices with the Forrester Privacy and GDPR Maturity Model (Forrester のプライバシーおよび GDPR 成熟度モデルによるデータ プライバシー施策の評価)』には、欧州企業の予算額は組織の準備状況によるものの 10 万~数百万ユーロにも上ると書かれています。

マイクロソフト パートナー様は、自社に罰金が科されることを回避するため、そしてお客様のコンプライアンス確保を支援するために GDPR 準拠に取り組む必要があります。以下のセクションでは、GDPR がパートナー様のビジネスに及ぼす影響と、その対策についてご紹介します。

 

 

GDPR の 6 つの主要原則

欧州連合 (EU) GDPR では、個人データを収集または処理する組織に対して広範な要件が課されます。その中には、以下の 6 つの主要原則の遵守が含まれます。

 

  • 顧客の個人データの取り扱いにおける透明性、公正性、適法性を確保する
  • 個人データの処理を特定された明示的で正当な目的に限定する
  • 個人データの収集と保管を必要最小限にとどめる
  • 個人データの正確性を確保し、消去または訂正できる状態にする
  • 個人データの保管を制限する
  • 個人データのセキュリティ、整合性、機密性を確保する

 

 

備えておくべき最大のリスク

IAPP と Trust Arc アンケート調査 (英語) によると、パートナー様の GDPR 準拠に関して、特に以下の要件が大きなリスクとして想定されているようです。

  • 72 時間以内の侵害通知義務の遵守
  • データのインベントリとマッピングによる収集データの把握
  • データ収集に対するユーザーの同意の確認
  • 国際的なデータ転送要件への準拠

 

 

非準拠に対する罰則

パートナー様が GDPR のコンプライアンス要件を満たしていない場合、2,000 万ユーロ、または全社の年間売上高の 4% のいずれか高い方が罰金として科されるおそれがあります。それだけではありません。罰金に加えて訴訟費用を負担させられたり、違約金が科されたりする場合があります。

パートナー様だけでなく、お客様もこのリスクにさらされています。つまり、お客様がコンプライアンスを確保できるかどうかは、パートナー様にかかっているのです。

 

 

マイクロソフトのサポート

マイクロソフトは世界各国のパートナー様と協力し、GDPR に関するニーズにお応えしています。現在、複数のパートナー様がマイクロソフトのテクノロジをベースとして、GDPR 要件に準拠するための管理機能を完備したソリューションを提供しています。マイクロソフト パートナー ネットワークでは、皆様の準備と成功をお手伝いするパートナー企業を探していただけます。

 

 


Azure AD Reporting API を利用して PowerShell より Azure AD のサインイン アクティビティ レポートと監査アクティビティ レポートを CSV ファイルで取得する方法

$
0
0

こんにちは、Azure & Identity サポート チームの 姚 (ヨウ)です。

 

Azure AD のサインイン アクティビティ レポートと監査アクティビティ レポートの保持期間は決まっており、例えばサインイン アクティビティであれば Azure AD Premium のライセンスがテナントに割り当てられていても 30 日です。

そのため、それ以前のデータを確認したい場合には、予めログをエクスポートしてバックアップしておく必要があります。

バックアップは、 Azure ポータルで行うことはできるのですが、手動で定期的にバックアップをすることは手間ですが、そのような場合には Azure Active Directory Reporting API を利用して PowerShell よりおこなうこともできます。

 

以下の公開情報では、それぞれのレポートを PowerShell スクリプトを用いて取得する方法を紹介しています。

 

Azure Active Directory サインイン アクティビティ レポート API のサンプル

https://docs.microsoft.com/ja-jp/azure/active-directory/active-directory-reporting-api-sign-in-activity-samples

 

Azure Active Directory レポートの監査 API の例

https://docs.microsoft.com/ja-jp/azure/active-directory/active-directory-reporting-api-audit-samples

 

しかし、上記の方法は、レポートを .json ファイル形式で保持し、取得する方法です。

json ファイル形式は以下のようになり、このままは利用しづらいフォーマットです。

 

ポータルからは以下のような .csv ファイル形式でダウンロードできますので、この形式で入手したいという要望をお持ちの方も多いと思います。

今回は PowerShell スクリプトで .csv ファイル形式で取得する方法を紹介します。

 

 

1. 以下の URL にアクセスし、 右上にある "Raw" を右クリックし、"対象をファイルの保存" をクリックし、azureadutils.psm1 をダウンロードします。

https://github.com/AzureAD/azure-activedirectory-powershell/blob/gh-pages/Modules/AzureADUtils/AzureADUtils.psm1

 

2. 任意の一時フォルダを作成し、AzureADUtils.psm1 をコピーします。

 

3. 管理者権限で PowerShell を起動し、AzureADUtils.psm1 をコピーした一時フォルダに移動します。

 

4. 次のコマンドを実行し、 Execution Policy Change の画面が表示されましたら "Y" を入力します。

> Set-ExecutionPolicy Unrestricted

 

5. 次のコマンドを実行し、モジュールをインポートします。このとき Security warning が表示された場合には "R" を入力します。

> Import-Module .AzureADUtils.psm1

 

6. 次のコマンドを実行し、モジュールをインストールします。ここでも Security warning が表示された場合には "R" を入力します。

> Install-AzureADUtilsModule

 

7. これまでの PowerShell コンソールを終了し、新しい PowerShell を開始します。

 

8. 次のコマンドを実行し、再度モジュールをインポートします。ここでも Security warning が表示された場合には "R" を入力します。

> Import-Module AzureADUtils

 

9. 以下のドキュメントに記載された手順に従って、アプリケーションを登録し、"構成設定を収集する" に従って必要な情報を取得します。

 

Azure AD Reporting API にアクセスするための前提条件

https://docs.microsoft.com/ja-jp/azure/active-directory/active-directory-reporting-api-prerequisites-azure-portal

 

10. テキスト エディタを開き、次の中身をコピーしたうえで、環境に合わせて赤字部分の内容を設定した上で、実行します。

これによりサインイン アクティビティ レポートと監査アクティビティ レポートを csv ファイルに取得できます。

 

===========================サインイン レポートの場合==================================

# Import AzureADUtils Module

Import-Module AzureADUtils

 

# Set parameters for the command

$ClientID     = "<アプリケーションのクライアント ID>" # 手順の 9 で作成したアプリケーションのクライアント ID です。

$ClientSecret = ConvertTo-SecureString -String "<アプリケーションのクライアント シークレット>" -AsPlainText -Force  # 手順の 9 で作成したアプリケーションのクライアント シークレットです。

$tenantdomain   = "<対象のテナント ドメイン名>" # 利用されている Azure AD のテナント名です。例えば contoso.onmicrosoft.com です。

$Credential = New-Object -TypeName "System.Management.Automation.PSCredential" -ArgumentList $ClientID, $ClientSecret

 

# Get Access Token

$AccessToken = Get-AzureADGraphAPIAccessTokenFromAppKey -TenantDomain $tenantdomain -ClientCredential $Credential

 

# Set date range

$daysago = "{0:s}" -f (get-date).AddDays(-<採取したいログの過去の日数>) + "Z"  # 例えば過去 30 日のデータを取得したい場合には $daysago = "{0:s}" -f (get-date).AddDays(-30) + "Z" とします。

 

#Getting logs

Invoke-AzureADGraphAPIQuery -TenantDomain $tenantdomain -AccessToken $AccessToken -GraphQuery "/activities/signinEvents?api-version=beta&`$filter=signinDateTime gt $daysago" | Export-Csv -Path "<出力ファイルのファイル名>.csv"

===================================================================================

 

==============================監査レポートの場合====================================

# Import AzureADUtils Module

Import-Module AzureADUtils

 

# Set parameters for the command

$ClientID     = "<アプリケーションのクライアント ID>"

$ClientSecret = ConvertTo-SecureString -String "<アプリケーションのクライアント シークレット>" -AsPlainText -Force

$tenantdomain   = "<対象のテナント ドメイン名>"

$Credential = New-Object -TypeName "System.Management.Automation.PSCredential" -ArgumentList $ClientID, $ClientSecret

 

# Get Access Token

$AccessToken = Get-AzureADGraphAPIAccessTokenFromAppKey -TenantDomain $tenantdomain -ClientCredential $Credential

 

# Set date range

$daysago = "{0:s}" -f (get-date).AddDays(-<採取したいログの過去の日数>) + "Z"

 

#Getting logs

Invoke-AzureADGraphAPIQuery -TenantDomain $tenantdomain -AccessToken $AccessToken -GraphQuery "/activities/audit?api-version=beta&`$filter=activityDate gt $daysago" | Export-Csv -Path "<出力ファイルのファイル名>.csv"

===================================================================================

 

- 参考情報

Azure AD のサインイン アクティビティ レポートと監査アクティビティ レポートについては、以下の公開情報も参考いただければと思います。

Azure Active Directory レポートの保持ポリシー

https://docs.microsoft.com/ja-jp/azure/active-directory/active-directory-reporting-retention

 

Azure Active Directory 監査 API リファレンス

https://docs.microsoft.com/ja-jp/azure/active-directory/active-directory-reporting-api-audit-reference

 

Azure Active Directory サインイン アクティビティ レポート API リファレンス

https://docs.microsoft.com/ja-jp/azure/active-directory/active-directory-reporting-api-sign-in-activity-reference

 

本ブログの情報がお客様の検証や運用のお役に少しでもお役に立てば幸いです。

 

製品動作に関する正式な見解や回答については、お客様環境などを十分に把握したうえでサポート部門より提供させていただきますので、ぜひ弊社サポート サービスをご利用ください。
※本情報の内容(添付文書、リンク先などを含む)は、作成日時点でのものであり、予告なく変更される場合があります。

Azure Backup を VM 作成エクスペリエンスに統合

$
0
0

執筆者: Trinadh Kotturu (Senior Program Manager, Azure Backup)

このポストは、2018 年 1 月 23 日に投稿された Announcing integration of Azure Backup into VM create experience の翻訳です。

 

このたび、ポータルの VM 作成エクスペリエンスから仮想マシンのバックアップを有効化できるようになりました。昨年には、VM 管理ブレードからの仮想マシンのバックアップもサポートされています。今回の発表により、VM 作成時からエンタープライズ レベルのバックアップ ソリューションを使用して VM を保護することが可能になります。Azure Backup では、Azure が提供するさまざまな種類の VM のバックアップがサポートされます。対象は Windows と Linux、マネージド ディスクと非マネージド ディスク上の VM、Premium Storage と Standard Storage、暗号化 VM と非暗号化 VM、これらの組み合わせなど多岐にわたります。
 

機能の概要

Azure Backup が VM 作成エクスペリエンスに統合されたことで、次の操作が可能になりました。

ワンクリックでバックアップを設定: 適切な既定値が自動的に設定されるため、ワンクリックで VM にバックアップを追加できます。

Create VM Integration

インラインでコンテナーを選択または作成: 既存のコンテナーを選択するか、新規のコンテナーを作成して、バックアップを保存できます。また、バックアップと VM を別々のリソース グループに保存しているお客様の構成に対応するために、VM 以外のリソース グループにコンテナーを作成できるようにしました。

VM のバックアップ ポリシーを管理: VM 作成エクスペリエンスから、新しいバックアップ ポリシーを作成し、このポリシーを使用して VM のバックアップを構成できます。このポリシーでは、エンタープライズ レベルの GFS スキーマもサポートされており、バックアップの保持期間を柔軟に選択できます。


 

Azure VM バックアップの主なメリット

Azure VM バックアップではクラウド ファーストのバックアップ アプローチを採用しているため、以下のメリットがあります。

  • インフラストラクチャ管理が不要に: VM のバックアップ用に追加のインフラストラクチャをデプロイする必要がありません。
  • アプリケーション整合性バックアップ: VM をシャットダウンすることなく、Windows と Linux の両方の VM にアプリケーション整合性バックアップを利用できます。
  • ファイルを瞬時に回復: ファイルを瞬時に回復する機能 (英語) を利用することで、VM 内のファイルやフォルダーを参照し、必要なファイルのみを回復できます。VM 全体を復元する必要はありません。
  • 従量課金制: 料金体系がシンプルで、VM の保護に使用した分だけ料金を支払います。

 

使用を開始する

このエクスペリエンスは Azure Backup がサポートするすべての OS イメージで利用可能で、有効化のオプションは、VM 作成エクスペリエンスの手順の 3 番目に表示されます。このエクスペリエンスは既定でオフに設定されているため、有効化するにはオプションを切り替える必要があります。このエクスペリエンスは本日以降、リージョンごとに順次ロールアウトされます。今週末にはすべてのリージョンで提供される予定です。
 

関連資料へのリンクと関連コンテンツ

 

MS クラウド ニュースまとめ – Azure サポートに関する発表、他 (2018/01/24)

$
0
0

このポストは、2018 年 1 月 24 日に投稿された Cloud Platform Release Announcements for January 24, 2018

の翻訳です。

 

Azure 用 ITSM Connector の一般提供

Azure 用 IT Service Management (ITSM) Connector の一般提供 (英語) が開始されました。ITSM Connector を使用すると、Cherwell、Provance、System Center Service Manager、ServiceNow といった IT サービス管理製品に Azure を統合できます。ログ データ (パフォーマンス カウンター、構成の変更、更新など) とヘルプ デスクのデータ (インシデント、イベント、アラート、変更要求など) を 1 か所にまとめることで、問題のトラブルシューティングをすばやく実施し、迅速に解決できるようになります。このソリューションにより、以下のことが可能になります。

  • Azure とオンプレミス リソースからのアラートに基づいて、サービス デスク ソリューションにインシデント (またはイベントやアラート) を作成する
    • サービス デスク ソリューションからのインシデントを確認し、Azure Log Analytics ワークスペース内の関連するログ データと関連付ける
    • サービス デスク ソリューションからの変更要求項目を確認し、変更要求データを Change Tracking ソリューションと関連付ける
    • 内容が厳選されたダッシュボードを表示して、イベント、アラート、インシデント、影響を受けるシステムの詳細を把握する
    • Log Analytics ワークスペース内の他の管理ソリューションと関連付け、迅速にトラブルシューティングを実施する

    詳細および関連資料については、IT Service Management Connector のドキュメント ページこちらのブログ記事 (英語) をご覧ください。

     

    Azure サポートに関する発表

    Microsoft Azure では、お客様のクラウド移行を支援するオプションを随時拡大しています。たとえば、組み込みの Azure Advisor サービスでは、個々のお客様に合わせて先を見越した Azure のベスト プラクティスを無料で提案しているほか、Azure サポートでは、マイクロソフトのクラウド エンジニアが直接やり取りさせていただくなど、幅広いサービスを提供しています。

    Microsoft Azure では複数のレベルでサポートを提供しており、お客様のフィードバックをもとに、運用環境のワークロードを実行している組織向けの Azure Standard サポート プランを強化しています。今回は、定額料金を月額 100 ドル (これまでは 300 ドル) に引き下げると共に、重大度 A のケースの初期応答時間を 1 時間 (これまでは 2 時間) に短縮します。ぜひこの機会に Azure Standard サポートの購入またはアップグレードをご検討ください。詳細と利用条件については、こちらの記事 (英語) をご覧ください。

     

    Azure Monitor の新しいアラート (プレビュー)

    Azure Monitor を使用すると、アラートを設定して、インフラストラクチャ、アプリケーション、プラットフォームといったスタック全体のメトリックやログ データを監視できます。今回、この監視エクスペリエンスのユーザー インターフェイスが刷新され、プレビューの提供が開始されました。このプレビューでは、Azure ポータルの Azure Monitor ブレードであらゆるリソースのアラートを作成し、一元管理できます。新しいアラート エクスペリエンスの詳細については、こちらの記事 (英語) をご覧ください。

     

    Azure Data Factory 用ビジュアル ツールのプレビュー

    お客様からのフィードバックにお応えして、Azure Data Factory 用ビジュアル ツール (英語) をリリースしました。このツールを使用すると、一切コードを記述することなく、パイプラインをすばやく作成して利用することができます。シンプルでコードの記述が不要な直観的なインターフェイスから、パイプライン キャンバスにアクティビティをドラッグ アンド ドロップし、テストを実行して、反復的にデバッグし、パイプラインの実行をデプロイおよび監視することができます。今回のリリースでは、新たに実装されたビジュアルの作成機能と監視機能の使用方法を説明するガイド ツアーと、お客様から貴重なフィードバックを送信していただく機能も追加されました。

    Data Factory の新しいビジュアル ツールの詳細については、こちらの記事 (英語) をご覧ください。

     

    Azure Cosmos DB のフランス リージョンでのプレビュー

    フランスで Azure Cosmos DB の提供を開始
    フランスの Microsoft Azure サービスのプレビュー (英語) に Azure Cosmos DB が追加されました。このプレビューは現在、世界中のすべてのお客様とパートナー様に提供されており、この最新の Azure リージョンでサービスをデプロイし、Azure Cosmos DB に対してワークロードのテストを実行することができます。この新リージョンの Azure Cosmos DB でも、他のリージョンと同じエンタープライズ レベルの信頼性とパフォーマンスが提供され、業界最高レベルの包括的な SLA によってフランスの企業や組織のミッションクリティカルなアプリケーションやワークロードがサポートされます。Azure France のプレビューには、こちらのページ (英語) からサインアップできます。

     

    Azure Cosmos DB のパーティション分割コレクションの下限引き下げ

    Azure Cosmos DB: 無制限のコレクションで初期料金を引き下げ
    昨年 2 月、無制限のコンテナーの最低料金を引き下げたことで、コスト効率が大幅に向上しました。その後もサービスを継続的に強化し、12 月には、無制限のコンテナーの最低料金を以前よりもさらにコスト効率の高いものにしたことを発表しました。無制限のコレクションをプロビジョニングする場合に、下限が 2,500 RU/秒から 1,000 RU/秒に引き下げられ、100 RU/秒単位でスケーリング (英語) できるようになりました。無制限のコンテナー (コレクション) を使用すると、プロビジョニングを 1,000 RU/秒から数百万 RU/秒まで動的にスケーリングすることが可能で、ストレージ使用量の制限もありません。

     

    Azure Cosmos DB の Visual Studio 機能の一般提供

    Azure Cosmos DB: Visual Studio への Azure Functions の統合の一般提供を開始
    Visual Studio では Azure Functions をネイティブに統合して、Azure Cosmos DB の変更フィード機能を使用できます。これにより、Azure で Cosmos DB の変更フィードを使用している Azure Functions のローカルでの開発やデバッグが非常に簡単になります。エンドツーエンドの実際の使用例や詳細については、Azure Cosmos DB、Functions、Visual Studio の統合に関する動画 (英語) をご覧ください。

     

    Azure Search のセキュリティ更新の一般提供

    Azure Search: 新しいエンタープライズ セキュリティ機能
    企業では、ユーザーがコンテンツを簡単に見つけられるように検索機能を提供するケースが増えてきましたが、それに伴いセキュリティの重要性が増しています。今回、Azure Search のエンタープライズ セキュリティ機能を拡張する 2 つの新機能が追加されました。1 つは暗号化 (英語) 機能で、データをストレージに保管する前に暗号化し、取得する前に暗号化を解除できます。2 つ目はセキュリティ トリミング機能で、管理者が Azure Search のセキュリティ レベルを引き上げるために、Azure Active Directory などのテクノロジを利用してグループとロールを定義できます。この定義をユーザー権限と照合することで、ユーザーごとに検索、表示できるコンテンツが判定されます。

     

    Power BI Desktop の新機能の一般提供

    Power BI Desktop に複数の新機能と機能強化 (英語) が追加されました。まず、レポート機能が強化され、ページの表示と非表示、デカルト積およびマップ ビジュアルのデータ ラベルの背景色の変更などが可能になりました。また、PowerApps (英語)、TreeViz、Funnel with Source by MAQ Software、Box and Whisker chart by MAQ Software といった追加のカスタム ビジュアルを利用できるようになりました。さらに、分析とデータ接続も強化されました。たとえば、Azure SQL Database と Data Warehouse のコネクタに対して Azure Active Directory 認証がサポートされています。

    Web サイトまたは Windows ストアから最新の Power BI Desktop リリースをダウンロードして、今すぐ新機能をご利用ください。今回ご紹介した新機能やその他の機能の詳細については、Power BI ブログ (英語)2018 年 1 月の更新に関する発表記事 (英語) を参照してください。

     

    Power BI サービスの新機能の一般提供

    ご要望の多かった Power BI サービスの新機能が、ユーザーやビジネス アナリストの皆様に向けてリリースされました。まず、大規模なデータセットのサポートが追加されました。Power BI Premium でアップロード可能な Power BI Desktop (.PBIX) ファイルの上限が、これまでの 10 倍となる 10 GB に引き上げられました。Power BI データセットは圧縮率が高く、データ量はファイル サイズの何倍にもなります。実務の場面では、Power BI Premium と大規模なデータセットを併用することで、何億行にもなる可能性のあるデータに対して、セルフサービス型かつリアルタイムのデータ探索を実行できるようになります。Power BI Premium での大規模なデータセットのサポートの詳細については、こちらの記事 (英語) をご覧ください。

    Reddit ソリューション テンプレート スイートは、AI とインタラクティブなビジュアル分析機能を組み合わせたもので、Reddit プラットフォームでそれぞれのブランド (企業、CEO、個々の製品など) の業績を確認することができます。内部的には Azure サービスと Microsoft AI and Research のテクノロジを使用して、センチメント レベル、キーワード、作成者コミュニティによるリッチなデータ探索をサポートしています。Reddit ソリューション テンプレートの詳細については、こちらの記事 (英語) をご覧ください。

    今すぐ新機能をご利用いただけます。今回ご紹介した新機能やその他の機能の詳細については、Power BI ブログ (英語) をお読みください。

     

    Intune パートナーの Jamf との統合の一般提供

    2017 年 10 月に開催された Jamf Nation User Conference (JNUC) では、Jamf とのパートナーシップにより、Mac デバイスから企業データに安全にアクセスできるコンプライアンス ベースの自動化ソリューションが提供されることを紹介しました。このソリューションは、Microsoft Enterprise Mobility + Security (EMS) の条件付きアクセスと Jamf Pro Mac の管理機能を使用して、信頼できるユーザーが信頼できるデバイスから信頼できるアプリを使用した場合にのみ、企業データにアクセスできるようにします。

    マイクロソフトと Jamf は、共通のお客様に向けてこの統合の一般提供を開始しました。Jamf をご利用のお客様は、Jamf Pro 10.1 にアップグレードしてすぐに利用を開始できます。EMS クラウド サービスは既に更新されており、全世界でこの機能をご利用いただけます。この統合の詳細については、こちらの記事 (英語) をご覧ください。

     

    注目市場に対応する新しい Azure のトレーニング リソースを追加【1/29 更新】

    $
    0
    0

    (この記事は2017年11月13日にMicrosoft Partner Network blog に掲載された記事  New Azure learning resources for a growing market の翻訳です。最新情報についてはリンク元のページをご参照ください。)

    今日のマイクロソフト パートナー様に 1 つアドバイスをするとしたら、お客様のデジタル トランスフォーメーションの推進を支援するために必要なスキルを身に付けることをお勧めします。そこで今回は、新しくなった Azure のトレーニング コースをご紹介します。より多彩な学習スタイルをサポートすることで、皆様 1 人ひとりに合った方法でスキルを向上できるようになりました。

    クラウド関連のスキルは、デジタル トランスフォーメーションに必要不可欠と言っても過言ではありません。2017 年にマイクロソフトの依頼を受けて IDC が作成したホワイト ペーパー『Cloud Skills and Organizational Influence: How Cloud Skills Are Accelerating the Careers of IT Professionals (クラウドのスキルと組織への影響: クラウド関連のスキルが IT 担当者のキャリア向上にもたらす効果)』では、500 人以上の IT 担当者を対象に行われた調査の結果がまとめられました。これによると、IT 担当者がクラウド関連の認定を 1 種類取得するだけで、クラウドの導入時に与える影響力は 35% も向上することがわかりました。また、今後 24 か月間のうちに、クラウド サービスを担当する人材の確保が IT 部門の戦略的な推進要因になるとも予測しています。

     

     

    実は 1 年前に Azure Massively Open Online Course (MOOC) の第 1 弾をリリースした時点で、既にある程度の手応えを感じていました。この Open edX をベースとした無料のセルフ学習型コースは、世界中のパートナー様にご利用いただいており、登録者数は 7 月の時点で 162,000 人を超えました。マイクロソフトは引き続き、さまざまな新しいコースと新たな学習スタイルをサポートし、Azure のトレーニング プログラムを強化したいと考えています。

     

    Azure 関連スキルのラーニング パスを拡充

    マイクロソフトはこのたび、Azure 関連スキルのラーニング パスを拡充し、担当職務とトピック別に分類した複数のコースを追加すると共に、パートナー様にお勧めの 4 種類の学習スタイルに対応しました。

     

    1. Azure の基礎知識の習得: Microsoft Azure Essentials では 3 つの簡単なステップで学習を進めることができます。開始方法はわかりやすく、また Azure に関する 1 つのトピックを 1 時間足らずで学習できます。最初に短い動画を見てから、ハンズオン デモで演習を行い、最後に無償アカウントを使用して Azure を試用するという流れです。その後は Azure の無償の各種トレーニング リソースにアクセスして、キャリアアップに必要なスキルを磨き、クラウドの知識を身に付けることができます。
    2. 担当職務別の基礎トレーニング: Pluralsight と提携して開発された無料オンライン コースでは、Azure サービスのアーキテクチャ設計、開発、管理、運用といった Azure の担当職務に応じた基礎知識を学習し、準備を進めることができます。
    3. 高度なトレーニング: MOOC で Azure 関連スキルを身に付け、専門知識を強化できます。
    4. 認定: マイクロソフト認定プロフェッショナル (MCP) 資格を取得し、Azure の専門知識を証明しましょう。2018 年 3 月 30 日までは、Microsoft Azure Exam Pack (模擬試験、本試験のバウチャー、再試験を含む) を期間限定の特別価格 (英語) で購入できますのでご検討ください。Azure 関連試験を割引料金で受験可能に1. MCP 試験のみ (英語) 2. MCP 試験と再試験 (英語) 3. MCP 試験、再試験、模擬試験 (英語)

    さらに、MPN コンピテンシーに対応した各種認定試験の準備用ラーニング パスも複数追加されました。

     

    Azure 関連試験を割引料金で受験可能に

    すべての MCP 試験 (Azure、Windows、SQL を含む) にご利用いただける 3 種類のお得な受験パッケージをご用意しています。詳細については、以下のリンクよりご確認ください。

    1. MCP 試験のみ (英語)
    2.  MCP 試験と再試験 (英語)
    3.  MCP 試験、再試験、模擬試験 (英語)

     

     

    MOOC へのアクセス方法

    既にお気付きかもしれませんが、これまでの MOOC のランディング ページを廃止し、新たに Pluralsight と協力して無料の各種オンライン Azure トレーニング コースの提供を開始しました。ただし、パートナー様は引き続き、MOOC の各種コースを無償でご利用いただけます。MOOC へのアクセス方法については、こちらのドキュメント (英語) をご覧ください。MOOC コースを含むラーニング パスの一覧も掲載されています。MOOC への登録後は、直接リンクをブックマークしておくことをお勧めします。そうすれば MOOC が廃止された場合も、直接リンクからコースやダッシュボードにアクセスできます。

     

    Azure 関連スキルの新しい無料トレーニング

    Pluralsight から提供される新しい無料のセルフ学習型 Azure トレーニング コースは、担当職務ごとに分類されており、今すぐ業務に役立つ実践的なスキルを習得できます。Pluralsight への登録は無料で、Pluralsight プラットフォームのすべての機能にアクセスし、学習を進めることができます。Pluralsight では、Azure の以下の担当職務およびトピックに関するコースを提供しています。

    • Azure 管理者
    • Azure Stack 運用担当者
    • Azure ソリューション アーキテクト
    • Azure の .NET 開発者
    • Azure の Node.js 開発者
    • AWS 担当者向けの Azure の知識

     

    他にも、マイクロソフトの認定トレーナーによって作成された Microsoft Official Courses On-Demand などといった、認定取得のための準備コースをご用意しています。

    常に最新の Azure 関連スキルを身に付けておくことは、パートナー様のビジネスや従業員のキャリアの成功へとつながります。あらゆるキャリア レベルの皆様がそれぞれ最適な方法で学習していただけるように、マイクロソフトは多彩な形式のトレーニングを提供しています。

    ご紹介したラーニング パスに関するご質問は、partnerup@microsoft.com までお問い合わせください。また、トレーニングのご感想につきましては、マイクロソフト パートナー コミュニティ (英語) への投稿をお待ちしています。

     

     

    2018 年 2 月のウェビナーの開催予定のご案内

    $
    0
    0

    マイクロソフトでは、様々な支援ができるよう多数のウェビナーを開催しております。
    オンラインで参加いただける形式ですので是非ご参加いただき、お役立て下さい。
    (事前のお申込みが必要になります)
     

    Index

    アプリケーション開発系ウェビナー
    IOT 系ウェビナー
    OSS 系ウェビナー
    DevOps 系ウェビナー

    セッションレベルの説明
    • L100…マイクロソフトの製品群やテクノロジ群の方向性を説明し、ビジネス判断のためにテーマを理解できることを目指したレベル
    • L200…受講いただいた方がテーマの製品やテクノロジの全貌や備わった機能を把握し、開発/提案ができるようになることを目指したレベル
    • L300…受講いただいた方が自ら関わっているプロジェクトでプロトタイピングや PoC などを通じて採用判断/開発判断ができることを目指したレベル

     
     
    アプリケーション開発系

    2018/2/6 (L100)

    【ウェブ セミナー】Azure Functions&Logic App ではじめるサーバレスアプリケーション: 入門編

    2018/2/9 (L100)

    【ウェブ セミナー】45分でリテールテックをご紹介!画像認識を通じてより細かなおもてなしを可能にするブレインパッドの「おもてなしサポーシステム」を徹底解説

    2018/2/9 (L200)

    【ウェブ セミナー】 AI 開発のヒントがここに ! (第1弾) ビジネス シナリオにマッチする付加価値ソリューションの活用例

    2018/2/13 (L300)

    【ウェブ セミナー】~ Any developer, Any app, Any platform ~Visual Studio とクロス デバイス アプリケーション開発の今

    2018/2/15 (L100)

    【ウェブ セミナー】Trained Modelの今を正しく知る。今さら聞けないCognitive Service 概要

    2018/2/20 (L100)

    【ウェブ セミナー】きっちり"コンテナ"を理解しよう

    2018/2/20 (L300)

    【ウェブ セミナー】データ サイエンティスト、開発者向け「Microsoft AIプラットフォーム」の全体像

    2018/2/22 (L100)

    【ウェブ セミナー】Any Developer Any App Any Platform 時代の Visual Studio Family をデモを中心に紹介

    2018/2/23 (L200)

    【ウェブ セミナー】 AI 開発のヒントがここに ! (第2弾) 使ってみよう、ビジネス ニーズにフィットした日本品質の汎用サービス・API

    2018/2/27 (L300)

    【ウェブ セミナー】何が違う?Azure SQL Database for MySQL/PostgreSQL/MariaDB

     
    IOT系

    2018/2/8 (L100)

    【ウェブ セミナー】45分でリテールテックをご紹介!オーダーから支払いまでをアプリで実現!12言語でインバウンドにも対応可能なサービス「Putmenu」を徹底解説

     
    OSS系

    2018/2/1 (L300)

    【ウェブ セミナー】OpenShift on Azureで始めるDevOps (2018年度版)

    2018/2/7 (L200)

    【ウェブ セミナー】Microsoft Azureで動くLinuxの活用例と活用ポイント ~Linux仮想マシンを本番環境で動かすには?~

    2018/2/13 (L200)

    【ウェブ セミナー】Microsoft Azureを使ったOSSの活用とAzureの機能・リファレンスアーキテクチャの紹介

    2018/2/27 (L200)

    【ウェブ セミナー】Linux に SQL Server を入れてみよう!

     
    DevOps系

    2018/2/1 (L100)

    【ウェブ セミナー】解説 Azure DevOps Project ~Visual Studio Team Services / Team Foundation Server で自動化をしたい方にお勧めです~

    2018/2/7 (L300)

    【ウェブ セミナー】Web App for Containers + Cosmos DBで コンテナ対応したMEANアプリを作ろう!

    2018/2/8 (L100)

    【ウェブ セミナー】Web App for Containers 概要と実戦投入への準備

    2018/2/14 (L100)

    【ウェブ セミナー】iOS/Android アプリ開発の必須機能をご紹介! Visual Studio App Center で始めるモバイルアプリ高速開発の基礎と実践

    2018/2/16 (L300)

    【ウェブ セミナー】ご好評につき追加開催!オウンドメディアを Web Apps で構築・運用する方法応用

    2018/2/21 (L300)

    【ウェブ セミナー】はじめてでもすぐにできる Azure IaaS VMのDR Azure Site Recovery を知ろう!

    2018/2/28 (L300)

    【ウェブ セミナー】Web App for Containers + Cosmos DBで コンテナ対応したMEANアプリを作ろう!


    2018 年 3 月のウェビナーの開催予定のご案内

    $
    0
    0

    マイクロソフトでは、様々な支援ができるよう多数のウェビナーを開催しております。
    オンラインで参加いただける形式ですので是非ご参加いただき、お役立て下さい。
    (事前のお申込みが必要になります)
     

    Index

    アプリケーション開発系ウェビナー
    IOT 系ウェビナー
    OSS 系ウェビナー
    DevOps 系ウェビナー

    セッションレベルの説明
    • L100…マイクロソフトの製品群やテクノロジ群の方向性を説明し、ビジネス判断のためにテーマを理解できることを目指したレベル
    • L200…受講いただいた方がテーマの製品やテクノロジの全貌や備わった機能を把握し、開発/提案ができるようになることを目指したレベル
    • L300…受講いただいた方が自ら関わっているプロジェクトでプロトタイピングや PoC などを通じて採用判断/開発判断ができることを目指したレベル

     
     
    アプリケーション開発系

    2018/3/1 (L200)

    【ウェブ セミナー】高速!高精度!Azure Search はじめの一歩

    2018/3/1 (L300)

    【ウェブ セミナー】Bot Framework ではじめるチャットボット開発

    2018/3/2 (L100)

    【ウェブ セミナー】Azure上でのコンテナ利用パターン紹介

    2018/3/6 (L100)

    【ウェブ セミナー】AI/Cognitiveを活用したチャットボットソリューションをご紹介!―カスタマーサポートから社内業務の効率化まで対応―"

    2018/3/8 (L300)

    【ウェブ セミナー】Azure BaaS(Blockchain as a Service)で分散台帳Cordaを始めよう

    2018/3/8 (L300)

    【ウェブ セミナー】Azure Functions&Logic App ではじめるサーバレスアプリケーション: 応用編

    2018/3/9 (L300)

    【ウェブ セミナー】Azure アプリケーション アーキテクチャ ガイド

    2018/3/14 (L300)

    【ウェブ セミナー】本格化するサーバーレス コンピューティングと Azure Functions の進化

    2018/3/22 (L100)

    【ウェブ セミナー】Any Developer Any App Any Platform 時代の Visual Studio Family をデモを中心に紹介

    2018/3/27 (L300)

    【ウェブ セミナー】データ サイエンティスト、開発者向け「Microsoft AIプラットフォーム」の全体像

     
    IOT系

    2018/3/15 (L100)

    【ウェブ セミナー】今から始める Azure IoT~ Device Provisioning、IoT Edge SDK Ver 2、IoT Centralなど最新情報が満載~"

     
    OSS系

    2018/3/9 (L100)

    【ウェブ セミナー】RHEL on Azure、初めの一歩 (2018年度版)

    2018/3/15 (L300)

    【ウェブ セミナー】Azure上でDeep Learningをやってみよう

    2018/3/20 (L300)

    【ウェブ セミナー】 Microsoft Azureで動くコンテナ技術の紹介と活用方法 ~Azure WebApp/Azure Container Service(K8S)/Container Registry/RedHat OpenShift/Pivotal Cloud Foundry~

    2018/3/28 (L300)

    【ウェブ セミナー】OpenShift on Azureで始めるDevOps (2018年度版)

     
    DevOps系

    2018/3/6 (L200)

    【ウェブ セミナー】Web App for Containers 概要と実戦投入への準備 -実践編-(2018/3/6版)

    2018/3/7 (L300)

    【ウェブ セミナー】Azure標準機能とLog AnalyticsではじめるAzure IaaS 監視

    2018/3/13 (L100)

    【ウェブ セミナー】解説 Azure DevOps Project ~Visual Studio Team Services / Team Foundation Server で自動化をしたい方にお勧めです~

    2018/3/20 (L300)

    【ウェブ セミナー】Web App for Containers + Cosmos DBで コンテナ対応したMEANアプリを作ろう!

    2018/3/27 (L200)

    【ウェブ セミナー】Web App for Containers 概要と実戦投入への準備 -実践編-(2018/3/27版)


    Video: Creating Inclusive Classrooms

    $
    0
    0

    This morning I watched Mike Tholfsen’s recent webinar earlier in January with Operation Diversity where he spoke about the power of creating inclusive classrooms through the Microsoft Education tools, specifically the Learning Tools / Immersive Reader found across a range of the Office365 products.

    The entire video is worth watching above, but I’ve pulled out some of the key features from this video below and also have the PDF version of the PowerPoint deck Mike presented that you can download here:

    Operation Diverstiy Webinar – Reading and Writing

    It’s worth noting that the three educational goals Microsoft have include:

    1. Empower students to do their best work
    2. Enable teachers to engage every learner
    3. Ensure equity and inclusion in schools

    The last one is particularly important and resonates with me as I see technology as a key feature for enabling students to access and learn from content that they may not previously have been able to engage with. There is recent research that I referred to in this earlier post that showed the Learning Tools from Microsoft enabled all  students to access content at higher reading levels than they previously could have, irrespective of their starting literacy levels.

    Indexed Points Of Interest From The Webinar:

    • Demo of Immersive Reader in the free OneNote for Win10 app
      • Text to speech and individual line and word highlighting – aimed to sustain focus and in some cases improve reading speeds.
      • Reduce visual crowding by increasing line, word and letter spacing.
      • Special fonts are included and tuned for people with dyslexia. These fonts are “Sitka” and “Calibri”
      • Short line mode – increase font size for visually impaired readers
    • Cognitive services built into Immersive Reader
      • The highlighting of grammar, breaking down of words by syllables to help emerging readers decode words more accurately.
    • Line focus or “digital reading rulers”
      • Dimming out background text and focusing on a single line. This allows the eye to stay in the same place whilst the text moves “up” in the background, (optionally, a student could manually scroll the text if they preferred).
      • These features save the teacher time as they don’t have to manually set these for each student and the student gains independence because they can control how they want to see the text and don’t feel stigmatized by needing to seek assistance
    • Using Office Lens and OneNote with picture OCR
      • This works with any picture of text! Take a photo of text, insert into OneNote and the text will be scanned automatically and can then have Immersive Reader apply the tools and filters to that text.
    • The FREE version of Word Online includes Immersive Reader
      • The “Read Alout” automatically detects language direction and goes right to left for Arabic example.
      • In the desktop version of Word ProPlus this is supported too, and you have real time breaking by syllable as you type.
      • When co-authoring in Word desktop individuals can choose how they want the look and feel to be – if one student needs Learning Tools / Immersive Reader then they can view the text that way, other students can view the default look and feel. This is called  “inclusive co-authoring” and is an incredibly empowering tool to individualise the learning process for students, enabling them to access the support they may need whilst working collaboratively with other students.
    • Edge Browser supports the Immersive Reader as well
      • Supported in off line browsing too – if the page is loaded the “Read aloud” will still work as this is powered by Windows 10
      • You can read PDF in Edge too
      • ePub documents are supported as well
    • Efficacy of OneNote Learning Tools
      • These tools have been winning awards in the Dyslexia community for the effectiveness of these tools
      • There is a specific reference in here to the independent research that I blogged about late last year in terms of improving students’ reading rates and literacy through the use of Learning Tools for just six weeks.
    • Office Lens will do OCR in real time and make the text support Immersive Reader
    • What products support Learning Tools? 
    • Writing more efficiently with Dictation Editor and Read Aloud
    • Editor in Word
      • Includes new spell checkers that are tuned for dyslexia – giving prompts of words based on common mis-spellings by dyslexics
      • Allows for read aloud, not just of the word, but also of the definition so a student can have read back to them various definitions and choose the correct one based off what why were meaning (this feature is coming to OneNote soon).
    • Give it a go without an account!
      • If you go to www.onenote.com/learningtools/ you can launch the Immersive Reader tool with no account needed and see how it works. A great way to easily try it out.

    quote

    My Point of View:

    This combination of tools have the potential to make a huge difference in the lives of teachers and students. The real power is that they are integrated directly within the Office365 products – there are no need for third party plugins as these features are all developed internally by Microsoft and built directly into the products.

    I love the fact that students are empowered to engage in the content in the way that makes the most sense for them and they can choose the level of support they require when accessing the text. This also frees up the teacher to support and teach, rather than having to be the “technology manager” in the classroom.


    ディレクトリ ベースのエッジ グロック (DBEB) によってメールが有効なパブリック フォルダー (PF) を利用する際の注意点

    $
    0
    0

    いつも Office 365 をご利用いただきありがとうございます。
    今回は、ディレクトリ ベースのエッジ グロック (DBEB) によってメールが有効なパブリック フォルダー (PF) を利用する際の注意点をご案内します。

    Exchange Online や Exchange Online Protectionでは DBEB と呼ばれる機能があり、Office 365 内に存在しないメール アドレス (※ 1) に送信されたすべてのメッセージをブロックしたりすることができます。
    ※ 1 Office 365 内に存在しないメール アドレスとはAzure Active Directory (AAD) 上に存在しないアドレスを意味します。

    アドレスが存在しない場合、フィルター処理の前にサービスによりメッセージがブロックされ、メッセージが配信されなかったことを通知する配信不能レポート (NDR) が送信元に送信されます。
    具体的な NDR の内容は次のようになります。
     
    '550 5.4.1 [<存在しないアドレス>@<ドメイン名>]:Recipient address rejected:Access denied'.
     
    メールが有効な PF を作成すると、メールが受信できるように onmicrosoft.com のアドレスが既定で付与されますが、この onmicrosoft.com のアドレスを 任意のカスタム ドメイン (onmicrosoft.com 以外の固有のドメイン) に明示的に変更すると、カスタム ドメインのアドレスをもつメールが有効な PF がAAD に同期されないため、変更したアドレスに対して外部よりメッセージの送信を試みると DBEB によって送信者に上述のエラーが返されてしまいます。
    既定ではメールが有効な PF にはonmicrosoft.com のアドレスが付与され、AAD に同期されるため DBEB によるエラーは発生しません。
    任意のカスタムドメインのアドレスとして外部からメールが有効な PF に対してメールが送信できるように運用したい場合は、以下の手順を実施ください。

    - 手順
    1) メールが有効な PF のアドレスは既定どおりonmicrosoft.com のアドレスに戻す
    2) Exchange Online 側でメールが有効な PF 以外の Exchange 受信者オブエジェクト (連絡先や共有メールボックスなど) を別途作成する
    3) 2) のExchange 受信者オブエジェクトに対してメールが有効な PF に割り当て予定のカスタム ドメインのアドレスを付与する
    4) 3) のオブジェクトから 1) のメールが有効な PF へ転送設定する
     
    以上が現時点での注意点となります。
    将来的にカスタムドメインでも受信できよう検討予定でございますので、今後ともExchange サーバーならびに Exchange Online のご愛顧のほど何卒よろしくお願い申し上げます。
     

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

    2018年2月份合作伙伴培训计划

    $
    0
    0

    欢迎访问我们的2月份在线课程列表。如果您希望参加以下课程,请点击课程名称,并使用您的公司邮箱和名称进行注册。

    2018/02/01到2018/02/28课程安排

    课程名称 课程日期
    Exchange Online系列课程
    Exchange Online 概览 2018/02/01 02:00-04:00
    如何迁移到Exchange Online 2018/02/08 02:00-04:00
    Microsoft Azure系列课程
    Technical Deep Dive on Azure Stack - Azure Stack 管理与配置 2018/02/01 10:00-12:00
    使用Microsoft Bot框架创建智能机器人 2018/02/06 02:00-04:00
    通过Azure认知服务让应用程序和机器人更智能 2018/02/07 02:00-04:00
    Office 365系列课程
    SharePoint Online Ask the Experts: 深入了解用于Office 365的ADFS和AAD Connect 2018/02/01 02:00-04:00
    SharePoint Online入门:Office 365实现团队协作 2018/02/02 02:00-04:00
    Ask the Experts on Office 365:如何通过Microsoft Flow建立流程 2018/02/09 02:00-04:00
    Power BI & Self Service BI系列课程
    Power BI入门 2018/02/01 02:00-04:00
    Power BI深入介绍 2018/02/05 02:00-04:00

    Exchange Online: Looping through large numbers of objects, a PowerShell example

    $
    0
    0

    Sometimes it is necessary to run a command against a large number of objects.  The simplest way to do this is with a pipe like in this example where litigation hold is enabled for all users:

    get-mailbox -resultsize unlimited | set-mailbox -litigationholdenabled $true -litigationholdduration 3660

     

    However, as you get into thousands or tens of thousands of users this may start to run into a couple of problems:

    • running time can become quite high.  This is because the Pipe operation takes place in the memory of your local PowerShell client.  All the data from get-mailbox has to be brought down to your PC before the Pipe operation can take place.
    • high memory consumption (because all that data has to be stored before the pipe is executed)
    • Disconnects of the PowerShell session
    • You could get throttled while running the command

    You can get around these problems with Matt Byrd's EHLO blog.  It is posted here:

    Running PowerShell cmdlets for large numbers of users in Office 365

     

    I have had some of my customers complain that this is too complex or state that they wanted to make customizations.

     

    This blog is about a simpler version.  I am attaching an example that loops through all the objects.  As it does so it saves a record of every operation it completes.  That way if the script fails or gets interrupted it can exclude the completed entries from what it has already done.  The script regularly tears down the PowerShell session and recreates it.

    Hopefully I have included enough comments in the example that you will be able to modify it to suite your needs.  It is expected all the PowerShell code included here would be saved as a PS1 file and then modified to suit your needs.  This particular example retrieves all User Mailboxes and then makes sure the RetainDeletedItemsFor property is set to the default of 14 days.

     

    Thanks

     

    Chris

     

    The example:

     

    #

    # Change RetainDeletedItemsFor to a specific value for all usermailboxes in the Exchange Online

    # tenant.

    #

    # Data for each mailbox is written to disk as it is processed. If the script is run twice

    #with the same file name and path the script will load the file and use the file to exclude

    #mailboxes that have already been processed.

    # As each mailbox is processed a line is appended to the Output file. If the script is interrupted

    #it can resume based upon the content of the file. Simply make sure that you specify the exact same

    #path and file name the next time you run the script.

    #

    # Parameters:

    #     Script takes the absolute path to a CSV file. For example:

    #           c:o365monthlyscriptDec2015LastLogon.csv

    #

    # Script author: Chris Pollitt

    # Last Modified: 2017-12-07

    # Script provided as is without warranty of any kind. Use at your own risk.

    #

     

    param (

    [string]$FileAndPath

    )

     

    # Pull the full list of mailboxes. Only pulling user mailboxes since Shared don't normally have licenses.

    # Using invoke command so that pulling the full list of mailboxes takes only 2-4 minutes. Without the invoke this would be

    # much slower, consume more RAM and be prone to hitting throttling limits outside of the invoke-command.

    # Requires PowerShell 4.0 or higher

    [array]$Mbxs = @()

    [array]$Mbxs = invoke-command -session $session -scriptblock {Get-mailbox -RecipientTypeDetails usermailbox -resultsize unlimited | select-object userprincipalname,retaindeleteditemsfor}

    # NOTE the use of $Session in the statements used in the Invoke-command. The Invoke needs to use the variable

    #tied to the current PowerShell logon. If you use a different variable please change this.

     

    $OptionsForSession = New-PSSessionOption

    $OptionsForSession.SkipRevocationCheck = $true

     

    if( $Mbxs.count -eq 0 )

    {

    write-host "Failed to retrieve list of mailboxes. "

    $Count = (get-mailbox -RecipientTypeDetails usermailbox -resultsize unlimited).count

    write-host "Number of mailboxes in the Org is " $Count

    write-host "If the invoke-command did not return this please let author know."

    exit

    }

     

    Write-host "initial mailboxes found " $Mbxs.count

    write-host "Elimintating mailboxes where RetainDeletedItemsFor is already the desired value"

    $Mbxs = $Mbxs | ?{$_.retaindeleteditemsfor -ne "14.00:00:00"}

     

    if($Mbxs.count -eq 0) {

    write-host "All mailboxes are set to 14.00:00:00 for RetainDeletedItemsFor. Script exiting."

    exit

    }

    else {

    write-host $Mbxs.count "mailboxes are not set to 14.00:00:00 for RetainDeletedItemsFor. "

    }

     

    [array]$LastUserChanged = @() #declare an empty array

    [array]$UniqueMbxs = @()

    $Resuming = $false

     

    if(test-path $FileAndPath)

    {

    write-host "Found the output file. Assume we are resuming from a previous run"

     

    [array]$PreviousProgress = import-csv -path $FileAndPath

     

    if( $PreviousProgress.count -ne 0) #Make sure file is not empty.

    {

    $Resuming = $true

    [array]$UniqueMbxs = compare-object -ReferenceObject $Mbxs.userprincipalname -DifferenceObject $PreviousProgress.userprincipalname -passthru | ?{$_.sideindicator -eq “<=”}

    #Assert that $UniqueMbxs is an array that only contains UPNs at this point. If $PreviousProgress had additional properties

    #they are now stripped out because all we need is a unique way to identify the mailbox.

    write-host "Previously " $PreviousProgress.count " mailboxes were processed."

    write-host ($Mbxs.count - $PreviousProgress.count) "mailboxes remain."

     

    If( $Mbxs.count -eq $PreviousProgress.count )

    {

    Write-host “Number of mailboxes equals number of mailboxes in source file. Exiting script.”

    Exit

    }

     

    }

    else

    {

    write-host "Attempted to import previous file. No records found in the file. Treating this as a new execution of the script."

    [array]$UniqueMbxs = $Mbxs

    }

    }

    else

    {

    [array]$UniqueMbxs = $Mbxs

    }

     

    $Mbxs = $NULL             #Clear array not being used

    $PreviousProgress = $NULL #Clear array not being used

     

    #release memory of arrays set to $NULL

    [gc]::collect()

     

    write-host $UniqueMbxs.count

    $loopProgress = 1

    $StatsSession = get-pssession

    $Credential = get-credential -message "Please supply the stats script with credentials"

    write-host " "

     

    foreach($m in $UniqueMbxs)

    {

     

    if( ($Session.state -ne "Opened") -or (($loopProgress % 100) -eq 0))

    {

    write-host " "

    Write-host "Removing Existing PS Sessions"

     

    # Destroy any outstanding PS Session

    Get-PSSession | Remove-PSSession -Confirm:$false

     

    # Sleep 30s to allow the sessions to tear down fully

    Write-host "Sleeping 30s for Session Tear Down"

    Start-Sleep -Seconds 30

     

    Write-host "Creating new PS Session"

    write-host " "

     

    # Create the session

    $Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri "https://outlook.office365.com/powershell-liveid/" -Credential $Credential -Authentication Basic -AllowRedirection -SessionOption $OptionsForSession

    $null = Import-PSSession $Session -AllowClobber

    } #EndIf

    if ($Resuming) #$UniqueMbxs can have two formats. This affects syntax used to reference the data

    {

    set-mailbox $m -RetainDeletedItemsFor 14.00:00:00 #NOTE there is an inherent assumption on this line that the set-mailbox

    #is successful. There is no Trap or exception checking here.  To make this more robust the command could be wrapped in a

    #Try Catch structure.

    $Last = $m

    }

    else # Script is not resuming after a previous run

    {

    set-mailbox $m.userprincipalname -RetainDeletedItemsFor 14.00:00:00

    $Last = $m.userprincipalname #NOTE there is an inherent assumption on this line that the set-mailbox is successful. There is not Trap or exception checking here.

    } #EndIf

     

    write-host "." -nonewline #Print a period with every record processed. Gives visual indication script is running.

    sleep 1 #This is 1 second, but might need to be adjusted upwards if the script hits throttling limits.

    #with session teardown and recreate every 100 objects you might even be able to comment this out.

    [array]$LastUserChanged += $Last

    $Last | Export-csv -append -path $FileAndPath -notypeinformation #If file does not exist it should be created.

    $Last = $NULL   #Clearing $Last in the hope that forcing it clear after writing will prevent odd duplication issue on subsequent times through the loop

    $loopProgress++

    } #Next

     

    #$LastUserChanged #dumps the contents of variable to the screen

    write-host "Script complete."

     

     

    Implicit Conversions – Ouch!

    $
    0
    0

    Today we have a guest post from one of our excellent Premier Field Engineers from the United States – Susan Van Eyck.

    In this post Susan explains the pitfalls of comparing different data types in a where clause and how it can hurt performance.

     

    This post is about implicit conversions, or more accurately, it’s about which ones are hurting your query performance.

    For SQL Server to compare two values (e.g., a column and literal value as in WHERE b.Status = N'A') both values need to be of the same data type.  If they differ, the one having the lower data type precedence will be (implicitly) converted to match that of the other value.  Practically speaking, the rules of data type precedence are about not losing information.

     

    Imagine a comparison between an Integer and Decimal value .  If the Decimal was converted to an Integer, data could be lost (123.45 >> 123).   The same holds true when comparing an NVARCHAR (Unicode data types can store 64,000 different characters) and VARCHAR (only 256 distinct characters) strings as in the code snippet above.  There are many NVARCHAR values that simply can’t be represented as VARCHAR values, so the implicit conversion must go from VARCHAR to NVARCHAR.

     

    Where we get into trouble is when the leading key value in one of our carefully crafted indexes gets implicitly converted to another data type.  Again referring to the code snippet above, let’s say that b.Status is a CHAR(1) column and that we’ve created an index to support the query (CREATE INDEX ix_Status ON dbo.SomeTable (Status);).  The value we're searching for is an NVARCHAR (as indicated by its "N" prefix) which has a higher data precedence than CHAR so the values in Status must be converted to NVARCHAR before SQL Server can compare them with N'A'.  The net result of this is that we can no longer use our lovely index.

     

    Let's compare the execution plans for this pair of queries where [Status] is a CHAR(1) and is indexed:

     

    SELECT COUNT(*) FROM dbo.SomeTable WHERE [Status] = 'A';

     

    SELECT COUNT(*) FROM dbo.SomeTable WHERE [Status] = N'A';

    clip_image002

     

    The plan for the first query uses the index (Index Seek) and is about 5X less costly to execute than the second query.  This is because the second query requires that [Status] be converted to an NVARCHAR which means we can't use our index so have to scan the table instead.  The good news is that SQL Server tells us something is wrong.  Note the warning symbol on the SELECT operator in the second plan.  Looking at the operator's properties you'll see a warning that there was an implicit conversion which may impact our ability to perform an Index Seek

     

    But – not all implicit conversions interfere with Index Seeks, and I wanted to know which ones were problematic and which ones weren’t so I went through an exercise to find out, the final result set of which looks something like this:

    clip_image004

     

    The row headers represent our indexed columns' data types and the column headers represent the various data types we might try comparing them against.  The outcomes are color coded – Green (and NULL) where SQL can perform and index seek, Yellow where we fall back to Scans (Nonclustered Index Scans if we’re lucky, Clustered Index/Table Scans if we're not) and Red for illegal comparisons where an implicit conversion can’t be made.

     

    Note that some “legal” conversions may also fail.  For example, we can convert “10” to an integer, but not “XYZ”!

     

    Happy Exploring!

    Security baseline for Office 2016 and Office 365 ProPlus apps – DRAFT

    $
    0
    0

    Microsoft is pleased to announce the draft release of the recommended security configuration baseline settings for Microsoft Office Professional Plus 2016 and Office 365 ProPlus 2016 apps. Please evaluate this proposed baseline and send us your feedback via blog comments below.

    Download the content here: Office-2016-baseline-DRAFT

    The downloadable attachment to this blog post includes importable GPOs, scripts for applying the GPOs to local policy, a custom administrative template (ADMX) file for Group Policy settings, all the recommended settings in spreadsheet form and as Policy Analyzer rules. The recommended settings correspond with the Office 2016 administrative templates version 4639 released on December 15, 2017 that can be downloaded here.

    Instead of retaining the entire Office 2013 baseline and simply adding settings that were newly introduced in the Office 2016 GPOs, we have conducted a thorough review of all available configuration settings – as we did beginning with the Windows 10 baselines – including in the baseline only those settings that address contemporary security threats. In the process we removed over eight dozen settings that had been in previous baselines but that were determined not to advance security posture in a meaningful way, and added a handful of new settings. The result is a more streamlined, purposeful baseline that is easier to configure, deploy, and validate.

    Macro security

    Office’s support for macros remains a vital tool for enterprise automation and at the same time a vector for attack, so macro security remains an important consideration. Office 2016 introduced a new GPO setting, “Block macros from running in Office files from the Internet” that was also later backported to Office 2013. Enabling the setting disables macros embedded in Office documents that came from the internet, including through email from an external sender. Office displays a notification that does not give the user an option to enable the macros. This baseline enables the setting for all apps that offer it: Excel, PowerPoint, Visio, and Word. Because this setting affects only Office documents received from the Internet that contain embedded macros, we anticipate that enabling this setting should rarely if ever cause operational problems for enterprises. The settings do not affect documents that are received from the enterprise’s Intranet or Trusted Sites zones.

    The baseline also retains the “VBA Macro Notification Settings” options from our previous baselines that require that macros embedded in Office documents be signed by a trusted publisher. We recognize that some organizations have had workflows and processes relying on such macros for a long time, and that enforcing these particular settings can cause operational issues. It can also be challenging to identify all the documents and VBA projects that need to be signed. We are considering moving these settings into a separate GPO to make it easier to switch the settings on or off without affecting the rest of the baseline. Please let us know via the comments on this post what you think of that idea.

    Blocking Flash activation

    We have also added a setting to the custom “MS Security Guide” ADMX that prevents the Adobe Flash ActiveX control from being loaded by Office applications. Vulnerabilities in Adobe Flash are often exploited by sending the victim a Microsoft Office document that contains malformed Flash data and an OLE reference that activates Flash and passes it the malformed data, which triggers the exploit code. This setting allows you to either (1) block all activation of Flash from within Office or (2) only block activation of Flash when it is directly embedded or linked in an Office document. The baseline recommends that you block all activation as it is the safest option available but note that it can impact productivity scenarios (e.g. consuming embedded videos in PowerPoint) within your enterprise. Please test this setting within your environment to identify the appropriate level of protection that balances your security and productivity requirements.

    Office has long included a “kill-bit” feature similar to Windows’ that enables administrators to block specific controls from being activated within Office processes. Enabling the new setting in “MS Security Guide” configures Flash kill-bit registry values to block Flash activation in Office processes, reducing your security exposure.

    Other changes

    Although we have removed many settings from the baseline, there are a few changes to which we would like to call attention. All of these are under User ConfigurationAdministrative Templates.

    • Microsoft Outlook 2016Account SettingsExchange, Authentication with Exchange Server: we are keeping this setting enabled, but changing its configuration from “Kerberos/NTLM Password Authentication” to “Kerberos Password Authentication.” We do not anticipate operational issues from strengthening this setting. Please test this change in your environments and let us know what you observe.
    • Microsoft Office 2016Manage Restricted Permissions, Always require users to connect to verify permission: we are removing this setting from the baseline, but there is a security and usability tradeoff, and our finding is that the security benefit is too small for the usability degradation. The setting ensures that if someone’s access to a rights-managed document or email is revoked after they have received it, they will be blocked from opening it the next time they try. The downside is that this blocks all offline access. In our experience, this kind of revocation is far less common than the need to open rights-managed items when in airplane mode.
    • We have dropped the “Disable all trusted locations” Trust Center settings, but disabled two additional “Allow Trusted Locations on the network” settings that had been overlooked in past baselines for Project and Visio.

    We look forward to your feedback on this beta so that the final version strikes the correct balance between security and usability. Thank you.

     

    ソーシャル エンジニアリングによって引き起こされる攻撃を途絶させる方法

    $
    0
    0

    本記事は、Microsoft Secure ブログHow to disrupt attacks caused by social engineering” (2018 1 10 日 米国時間公開) を翻訳したものです。


    執筆者: Milad Aslaner (Senior Program Manager, Windows & Devices Group)

    10 年前のサイバー攻撃は、企業のインフラストラクチャーを直接攻撃することを目的として、マルウェアまたは複合的な手法をきっかけに開始されるものがほとんどでした。この状況は様変わりし、現在では、ID を盗み取るための洗練された 1 通のメールだけで十分です。

    図 1: 複雑なインフラストラクチャーで抜け穴を探す試み

    デジタル化は進んでおり、避けて通ることはできません。すべての業界にとって不可避であり、社会の自然な進化段階の一部です。デジタル トランスフォーメーションがいつ起こるのか、本当に起こるのかどうかではなく、どのように起こるのかが重要です。マイクロソフトのセキュリティに対するアプローチは、安全なデジタル トランスフォーメーションを実現することに焦点を当てています。お客様がサイバー犯罪に対する保護、検出および対応を実現できるよう支援することで、この目的を達成します。

    ソーシャル エンジニアリングの手法自体は新しいものではなく、ブロードバンド接続がない時代から存在していました。当時、その脅威アクターはハッカーではなく、詐欺師と呼ばれていました。Abagnale & Associates 社のシニア コンサルタントである Frank Abagnale 氏は、かつてこのようなことを言っています。「昔の詐欺師は見た目が良く、温厚で、身なりに気を使い、話し方も上品でアピールの仕方をよくわかっている人でした。現在では、そのようなことが必要なくなりました。なぜなら、これらの犯罪を実行している人たちは、遠く離れた土地にいるからです。」

    STRONTIUM などの脅威アクター グループは、現代版の詐欺師の集団です。従来の詐欺師と同じアプローチを取りますが、活動する場所はデジタルな世界です。重要なインフラストラクチャーに直接アクセスするための新しい抜け穴や脆弱性を見つけるよりも、高機能なフィッシング詐欺メールを送る方が簡単なため、このアプローチを選ぶのです。

    図 2: STRONTIUM のフィッシング詐欺メールの例

    米国会計検査院のチーフ テクノロジスト、Keith A. Rhodes 氏は「ネットワークに侵入するための技術的な方法は必ず存在しますが、会社の従業員を利用して入った方が簡単な場合があります。彼ら自身のセキュリティを引き渡すよう騙すのです」と話しています。

    Verizon 社が 公開した 2016 年の「データ漏洩/侵害調査報告書」によると、フィッシング詐欺メールのうち 30% が開封されています。受信者は平均してたったの 40 秒でメールを開封し、その後、悪意のある添付ファイルを開くまでに 45 秒しかかかっていません。すべてのフィッシング詐欺メールのうち 89% は組織的な犯罪シンジケート、9% は国家支援を受けた脅威アクターによって送信されています。

    3: Verizon 社の「2016 年データ漏洩/侵害調査報告書」

    一番の弱点が人であることに変わりはありません。ユーザーが責められるべきだと主張する人もいますが、標的型のフィッシング詐欺メールの多くは大変洗練されており、平均的なユーザーが悪意のあるメールと正規のメールを見分けるのは不可能であるのが現実です。

    図 4: 初見では正規のメールに見えるフィッシング詐欺メールの例

    フィッシング詐欺メールは数分もあれば作成することができます。まず、脅威アクターはソーシャル ネットワークや専門家のネットワークを這いまわり、攻撃対象の個人情報をできる限り探します。これには組織図、企業文書のサンプル、共通で使用しているメールの見出し、従業員バッチの写真などが含まれます。公開データベースや漏えいされたデータベースから、これらの情報を引き出すプロフェッショナル ツールもあります。実際、必要があれば脅威アクターはダーク ウェブで情報を買うこともできます。例えば、侵害された 100 万個のメールとパスワードは約 25 ドル、銀行アカウントのログインはアカウント当たり 1 ドル、社会保障番号は生年月日の照合も含めて約 3 ドルで取り引きされています。次に、脅威アクターはパスワード リセットの通知など受信者が見慣れているメールのテンプレートを用意します。最後に、そのメールをユーザーへ送信します。

    ソーシャル エンジニアリングは多くの脅威アクターにとって強力な手段であり、目的によってコンピューターベース、モバイルベース、またはヒューマンベースのソーシャル エンジニアリングを使い分けます。

    図 5: フィッシング攻撃のステージ

    • フェーズ 1: 脅威アクターは、フィッシング キャンペーンを介して標的とする従業員を決める
    • フェーズ 2: 従業員が受信したフィッシング詐欺メールを開封する。これによって、脅威アクターは悪意のあるペイロードを読み込んだり、ユーザー ID を侵害することが可能になる
    • フェーズ 3: ワークステーションが侵害され、脅威アクターはマルウェアを存続させて資格情報を収集する
    • フェーズ 4: 脅威アクターは盗み取った資格情報で侵入を拡大して未承認のアクセスを取得し、重要なインフラストラクチャーの構成要素を侵害する
    • フェーズ 5: 脅威アクターは、PII (個人情報) や他の機密性の高いビジネス データを抜き取る

    組織は Enterprise Mobility + SecurityWindows 10Office 365、および Microsoft Azure に組み込まれた機能で、これらの攻撃を止めることができます。以下は、各フェーズに対応している機能が一目でわかるよう図式化したものです。

    今日、脅威アクターがサイバー攻撃を仕掛ける入口のハードルは大変低く、それ故にサイバーセキュリティは CEO が取り扱うべき問題です。組織は「ファイアウォールとウイルス対策、ディスク暗号化の技術を採用しているので安全である」という考えから離れ、「サイバー攻撃は起こりうる。壁を作ることだけに焦点を当てるのではなく、迅速に侵害を検出し対応できるようにするべきだ」というマインドセットに移行する必要があります。侵害を想定することが要です。組織の規模や業界に関係なく、すべての企業には脅威アクターや、場合によっては国民国家にとって価値のあるデータが存在するのです。

    今日の世界では、情報セキュリティへの一貫した取り組みが必須です。適切なインシデント対応プロセスの整備、サイバー攻撃に対する保護、検出と対応を可能にするテクノロジの活用、そして IT とエンドユーザーの準備が完了していることが重要です。

    マイクロソフトのセキュリティ製品やソリューション、またお客様のセキュリティ戦略に役立つリソースの詳細については、https://www.microsoft.com/secure を参照してください。

    [GDPRDemopalooza] Reporting von bestimmten Office/Azure Diensten

    $
    0
    0

    Basierend auf der GDPR / DSGVO Demopalooza hier das Demo zum Reporting von bestimmten Office/Azure Diensten.

    Wie immer aufgeteilt in zwei Bereiche: Das "Why" und das "How"

    Why

    Einer der Hauptaspekte der DSGVO dreht sich um den eigentlichen Schutz der PII (Personally identifiable information). Um diesen Schutz gewährleisten zu können ist es unumgänglich, dass eine Unternehmung genau weiß was auf den technischen Systemen passiert. Dazu gehört , dass durch regelmäßige Überprüfungen sichergestellt ist, dass nur diejenigen über entsprechende Adminrechte verfügen, die diese Recht auch haben sollten. Das schließt mit ein, dass ein solches Reporting auch offenlegt, wenn ggf. ein erfolgreicher Angriff dazu genutzt worden ist sich (wie auch immer) Adminrechte zu übertragen.

    Unsere Empfehlungen, welche Reportings regelmäßig zu überprüfen sind können u.a. aus dem Secure Score abgeleitet werden und die hier vorgestellten Reportings beziehen sich auch genau darauf. D.h., dass es noch weitere Reportings gibt, die im Gesamtkontext herangezogen werden müssen, diese werden in diesem Post aber nicht betrachtet.

    How

    Zu aller erst widmen wir uns der regelmäßigen Überprüfung der Rollen - und starten natürlich mit den global Admins:

    1. Dazu gehen wir auf https://portal.office.com/AdminPortal/Home#/users
    2. und wählen als "View" -> "Global Admins" aus:
      all global admins
    3. Unsere Empfehlung ist nicht mehr als 5 Global Admins zu haben, so sollte die Überprüfung hier sehr schnell sein.
    4. Neben den global Admins sollte es noch weitere geben. Diese müssen im folgenden über die Veränderung des Views überprüft werden. Damit dies erfolgreich ist, muss zu aller erst ein passendes Admin Konzept erstellt und umgesetzt worden sein. Dazu zählt auch, dass immer klar ist, wer (bzw. welche ID) welche Rolle innehaben sollte, so dass schnell ersichtlich ist, wenn eine ID der falschen Rolle zugewiesen ist:
      Change View to non global admin
    5. Nachdem nun die Administratoren überprüft worden sind - und sicher hier natürlich 😉 nichts ungewöhnliches ereignet hat, sollten/müssen wir sicherstellen, dass wir keine ungewollten Rollenaktivitäten haben. Dies könnte ggf. auf side-moves von Angreifern hindeuten und sollte dann entsprechend im Auge behalten werden bzw. Gegenmaßnahmen ergriffen werden.
    6. Dazu besuchen wir https://portal.azure.com/#blade/Microsoft_AAD_IAM/ActiveDirectoryMenuBlade/Audit
      Account provisioning activities
    7. Die View kann/sollte ggf. weiter eingeschränkt werden, da die Liste gerne schnell groß wird und wenn dies nicht in kurzen Zyklen (=>mind. wöchentlich) regelmäßig überprüft wird, dann wird es möglicherweise zu umfangreich.
    8. Auch sollten die "Risky Signins" kontinuierlich beobachtet werden, damit Dinge wie "impossible travel", "ungewöhnliche Logonorte", "brute force attacks" schnellstmöglich wahrgenommen werden.
    9. Dazu muss der Report https://portal.azure.com/#blade/Microsoft_AAD_IAM/ActiveDirectoryMenuBlade/RiskySignIns aufgerufen werden:
      Risky Sign-Ins
    10. Dieser Report kann auch einfach in einem CSV Format heruntergeladen werden, welches dann exemplarisch so aussieht:
      CSV Version Risky Sign-Ins
    11. Zusätzlich gibt es in der Advanced Identity Protection noch den Punkt "Vulnerabilities" - welcher ein Stück weit auch in Richtung Secure Score geht.
    12. Diese Vulnerabilities sollten ebenfalls regelmäßig kontrolliert werden und es sollte dann auch einen Prozess geben, wie mit diesen umgegangen werden sollte, denn es gibt erkannte Vulnerabilities, die bewusst nicht abgestellt werden (z.B. "kein MFA für jeden").
      AAD Vulnerabilities
    13. Beim Klick auf eine gefundene Vulnerability werden noch weiterführende Informationen zu a) der Vulnerability und b) den betroffenen Nutzern dargestellt:
      Admins not using their priv roles
    14. Neben diesen allgemeinen Themen, gibt es auch noch weitere, etwas speziellere Themen. Dazu zählt z.B. die "Nutzung" einer Mailbox durch andere als den eigentlichen Eigentümer. Dies ist grade im Kontext DSGVO relevant, da in Emails Architektur bedingt nun mal sehr viele PII enthalten sind.
    15. Dazu wird https://outlook.office365.com/ecp/Reporting/NonOwnerAccessReport.aspx?rfr=admin_o365&exsvurl=1&mkt=en-US&Realm=ems666407.onmicrosoft.com&RpsCsrfState=83d6c52d-7f69-d045-f91b-b5e52ca810ed&wa=wsignin1.0 aufgerufen
      Mailbox access by non-owners
    16. Last but not least möchte ich hier auf das Reporting zu "safe attachments" bzw. "safe links" eingehen. "Safe Links" dienen dazu "after the facts" [sprich auch nach der Zustellung einer Mail/Dokument] Links zu disablen und somit etwaig gefährliche Links den Zahn zu ziehen. Dazu werden Links [sofern konfiguriert] umgewandelt und beim Aufruf redirected um bei Gefahr geblockt zu werden.
      Die Verwendung von Safe Links/Attachments kann entsprechend ausgewertet werden um hier vorrangig die Gefahr durch Phishing einzugrenzen, welches bei weitem die #1 der Angriffe auf User IDs darstellt.
    17. Hierzu wird https://protection.office.com/?pivot=EventType#/reportv2?id=ATPV2Report aufgerufen, welcher dann folgendes Zutage bringt:
      Spam Detection reportDas Reporting sieht mittlerweile anders aus, da dieses aus dem Exchange Admin Bereich in den O365 Reporting->"Threat protection status" gewandert ist, allerdings habe ich nur Tenants ohne Safe Link Aktivität, denn hierzu wären echte User hilfreich, die ich nicht vorweisen kann! 😉 Hier trotzdem ein Blick auf das leere Reporting:
      Threat Protection Status Reporting

      Kleiner Hinweis am Rande: wer Safe Links einmal "positiv" testen möchte, der darf gerne http://www.spamlink.contoso.com/ verwenden!

     

    Abschließend ist zu sagen, dass "Sicherheit" und damit auch "DSGVO Compliance" nicht 'mal eben so' passiert. Hier ist es essentiell wichtig, dass die Systeme (regelmäßig/permanent) im Auge behalten werden und entsprechende Reporting Mechanismen und SIEM genutzt werden. Da dies grade im Zuge der Cloud täglich schwieriger wird muss ein entsprechendes Security Operations Center (SOC) etabliert werden oder ggf. die damit verbundenen Tätigkeiten an vertrauenswürdige Partner abgegeben werden. (->Stw "Security as a Service")
    Sprechen sie ihren Microsoft Vertreter oder den Microsoft Partner ihres Vertrauens gerne zu diesen Themen an, wir unterstützen gerne!

     

    Diese Demoanleitung bietet einen Überblick zur Nutzung von O365/Azure Reportings im Kontext von DSGVO und stellt keine rechtlich bindende Aussage dar!


    Windows Server with more than 64 Logical Processors

    $
    0
    0

    Recently I was involved in a troubleshooting case about the maximum number of logical processor used by a specific application, running on Windows Server 2008 R2, let me give you some data.

    ENVIRONMENT:

    • OS: Windows Server 2008 R2
    • Server model: Cisco UCS Blade Server
    • N° of physical socket: 2
    • N° of core per socket: 18
    • Hyper threading: Enabled
    • Processor model: Intel(R) Xeon(R) CPU E5-2699 v3 @ 2.30GHz, 2301 Mhz, 18 Core(s)
    • Total number of logical processor: 72

     

    PROBLEM DESCRIPTION:

    The customer has recently migrated from an old Windows Server 2008 with 48 Logical Processor to a new Windows Server 2008 R2 with 72 logical processor.

    (Why in 2018 some customers migrate their OS [Operating Systems] to 2008R2 instead of 2012R2 or better 2016? Unfortunately, the answer is easy, and in most of the cases is due to their applications requirements, like in this case)

    The problem is related to the application installed on the server, because it makes high complex mathematical calculation with heavy use of the CPUs, but during this calculation the customer notice that only 36 (half of the total) of the logical processor was used, and as a result the customer notice that the old hardware with less logical processor (48 exactly) is more fast than the new hardware with 72 logical processor.

    RESOLUTION

    Windows Server 2008 R2 is a 64-bit operating system and it support more than 64 logical processors on a single computer.

    Support for systems that have more than 64 logical processors is based on the processor group.

    So, what is a processor group? Is a set of logical processors up to 64, that is treated as a group.

    Processor groups are numbered starting from the "Group 0" and if you have a server with less than 64 logical processor you have only the "Group 0", let me show you with the Coreinfo utility:

    1. This is the old server, each "*" is a logical processor, and in this case, we have 48 logical processor.

       


       

    2. This is the new server with a total of 72 logical processor.

       



    We always need to keep in mind that:
    =====================================================================
    By default, an application is constrained to a single group, which should provide ample processing capability for the typical application.

    The operating system initially assigns each process to a single group in a round-robin manner across the groups in the system.

    A process begins its execution assigned to one group. The first thread of a process initially runs in the group to which the process is assigned. Each newly created thread is assigned to the same group as the thread that created it.

    Reference:
    https://msdn.microsoft.com/en-us/library/windows/desktop/dd405503(v=vs.85).aspx
    =====================================================================

    So how can we solve this kind of problem?

    1. Downgrade the processor type, to have a maximum of 64 Logical Processor.

       

    2. Modify the application to be compliant with the "Processor Group" (this is my favorite solution)

       

    3. Try to disable from the BIOS the Hyper threading functionality, and make a performance test with the application, just to be sure to have an improvement in performance.

       

    If you want to rewrite the application, here you can find a reference for the functions for 2008R2:
    https://msdn.microsoft.com/en-us/library/dd405527(VS.85).aspx

     

    OTHER INFO

    Another thing that you need to keep in mind is that to view all the logical processor from the performance counter you can't use the "Processor" Counter, because it only show the "Group 0"

     

    Use the "Processor Information" performance counter to view all the Logical processor on the server with this syntax:

     

    INSTANCE OF SELECTED OBJECT

    DESCRIPTION

    0,_Total

    is the total of "Processor Group 0"

    0,0

    Processor Group 0, Logical Processor 0

    0,1

    Processor Group 0, Logical Processor 1

    …….

    …….

    1,_Total

    is the total of "Processor Group 1"

    1,0

    Processor Group 1, Logical Processor 0

    1,1

    Processor Group 1, Logical Processor 1

    …….

    …….

     

    Also, keep in mind that on Windows Server 2008 R2 you can have a performance issue if you don't have installed the following KB:

    ========================================================

    Performance issues when more than 64 logical processors are used in Windows Server 2008 R2
    https://support.microsoft.com/en-us/help/2510206/performance-issues-when-more-than-64-logical-processors-are-used-in-wi

    ========================================================

    Wissen ist Macht

    $
    0
    0

    Logbucheintrag 180129:

    Ob früher alles besser war, sei mal dahingestellt. Aber sicher war früher alles anders. Da hießen zum Beispiel die favorisierten Berufsbilder: Lokomotivführer, Feuerwehrmann und Bauarbeiter. Später wollten alle Betriebswirtschaft studieren oder Informatik. Dann, nach der Jahrtausendwende hieß es: „Irgendwas mit Marketing“ oder „Irgendwas mit Medien“. Morgen dürfte die Antwort auf die klassische Oma-Frage, „Was willst du denn später einmal werden?“, lauten: Data Scientist oder Machine Learning Engineer oder Distributed Algorithms Developer.

    Schon heute jedenfalls jagen die Head Hunters verzweifelt hinter den Hochqualifizierten her, die dabei helfen sollen, möglichst hohen Mehrwert aus Systemen der künstlichen Intelligenz zu schöpfen. Datenanalyse, Mustererkennung, Entscheidungsunterstützung, Sprachsteuerung, Robotics und Automation sind gegenwärtig die Schwerpunktbereiche, in denen Unternehmen KI-Software verwenden. Und auch wenn man sich nicht gleich ein komplettes Jobprofil unter den neuen Jobbezeichnungen vorstellen kann - der Arbeitsmarkt ist bereits leergefegt, bevor überhaupt ein richtiger Bedarf entstanden ist.

    Kein Wunder also, dass die Gehälter für die neuen AI-Berufe explodieren. Eine Viertelmillion Dollar Jahresgehalt für einen Data Scientist ist im Silicon Valley schon keine Seltenheit mehr. Und auch hierzulande stehen Konzerne und mittelständische Unternehmen bereits im engen Wettbewerb um den Skill der Zukunft. Immer häufiger entscheiden sich die HR-Abteilungen dafür, das austarierte Gehaltsniveau zugunsten eines KI-Spezialisten auszuhebeln. Das ist ein untrügliches Zeichen dafür, dass Unternehmen im KI-Einsatz inzwischen große Benefits fürs Geschäft sehen.

    Dabei sind es vor allem die Unternehmensbereiche Kundenkommunikation und automatisierte Produktion, in denen sowohl Kosteneinsparungen als auch Umsatzwachstum durch KI erwartet werden. Wer hier als Microsoft Partner zusätzlichen Skill rund um Azure und KI-Services aufbaut, sichert sich ein starkes Wachstumsfeld für die Zukunft. Denn der Bedarf an Fachkräften in diesem Gebiet wird auf lange Sicht nicht gedeckt werden können.

    2,3 Millionen neue Jobs sollen in den kommenden drei Jahren weltweit durch KI entstehen, schätzen die Analysten der Gartner Group. Zwar werden durch die KI-gestützte Automatisierung gleichzeitig rund 1,8 Millionen Jobs verlorengehen, doch sieht Gartner auch langfristig einen positiven Saldo aus Job-Creation und Stellenabbau. Hinzu kommt, dass nach Ansicht der Analysten in den nächsten fünf Jahren ein Mehrwert in Höhe von 2,9 Billionen Dollar entstehen wird. Und KI-Systeme werden durch die Übernahme von Routineaufgaben rund 6,2 Milliarden Stunden Arbeitszeit freigeschaufelt haben.

    Voraussetzung für die sinnvolle Nutzung von KI-Services ist freilich die Digitalisierung der Geschäftsprozesse. Und die geht wiederum nicht ohne eine mindestens teilweise Migration in die Cloud. Wer also als Microsoft-Partner und Kunde auf die Azure-Plattform setzt, hat sich den Zugang zu den drei wichtigsten Wachstumsfeldern der kommenden Zeit verschafft. Wer jetzt seine Mitarbeiter in Richtung Cloud-Computing, Digital Management und KI-Training qualifiziert, sichert sich einen unschätzbaren Wettbewerbsvorteil.

    Das Thema künstliche Intelligenz dominierte übrigens auch den Weltwirtschaftsgipfel in Davos. Nahezu alle Regierungschefs und Unternehmer sprachen die Auswirkungen von KI auf die Arbeitswelt an. Dabei zeigte sich, dass nicht allein wenig qualifizierte Aufgaben wegfallen können. Je stärker KI-Systeme für die Entscheidungsunterstützung herangezogen werden, umso stärker werden auch Management-Aufgaben obsolet. Schlankere Hierarchien und agile Unternehmen dürften die Folge sein. Auch daraus entsteht ein Mehrwert – und ein gigantischer Beratermarkt.

    Denn es wird nicht allein darum gehen, KI-Systeme zu installieren. Rund 90 Prozent des Aufwands wird dafür benötigt, KI-Systeme „anzulernen“ und die verfügbaren Daten richtig zu aggregieren. Deshalb arbeitet Microsoft auch an KI-Systemen, die KI-Systeme optimieren können. Mittelfristig soll damit die Anlernphase von lernenden Maschinen halbiert werden können.

    Damit zeigt sich, dass auch die Installation von KI-Systemen immer günstiger wird und damit auch für kleinere Unternehmen erschwinglich sein wird. Doch je breiter der Markt, desto größer wird der Bedarf an Skill. Wer jetzt in KI-Wissen investiert, erntet morgen Markt-Macht.

    ADFS: Monitoring a Relying Party for Certificate Changes

    $
    0
    0

    Howdy folks!

    Michele Ferrari here from the Premier Field Engineer-Identity Team in San Francisco, here today to talk about ADFS Monitoring settings for Claims Provider Trust and Relying Party Trust.

    This is the question we're going to answer today as part of the Mix and Match series:

    How can we Monitor when our partners' Identity Providers update the Signing and Encryption certificates?

    Well, what I'm implementing it's something which is still not available today but, our PG is aware, and it will be included in vNext. Before going straight to the solution, I want to present a real scenario and recall some of the basic concepts in the Identity space.

    The solution we discuss can be used to monitor either the Claims Provider Trust or the Relying Party Trust certificates => same knowledge can be applied to that as-well.


    Relying Party signature certificate is rarely used indeed. It is meant when the SaaS application provider also wants to digitally sign the SAML Sign-In request, when the request is sent over to the ADFS server to ensure the SAML request doesn't get modified somehow. There isn't typically anything important in the SAML request but there are cases where the application owner or us want to enforce a certain authentication type. Signing the SAML request ensures no one modifies the request.

    It's also possible to encrypt the SAML request but this is definitely rare to see in the real life.
    If you want to understand more what a SAML Protocol Sign-In request looks like, read this post from Dave Gregory here=>https://blogs.technet.microsoft.com/askpfeplat/2014/11/02/adfs-deep-dive-comparing-ws-fed-saml-and-oauth/

    Ready? Follow me…

    Let's start from a practical example:

    CONTOSO.COM wants to allow his employees to access a 3rd party application called ClaimsWeb hosted by MISTERMIK.COM , providing the SingleSignOn experience.

    èJohn, an employee at CONTOSO.COM wants to access an expense note application (ClaimsWeb).

    Let's break this down and identify all the moving parts involved:


    • John, is an User member of CONTOSO.COM. It's called Subject.
    • CONTOSO.COM is the Identity Provider (abbreviated IP in WS-Federation, IdP in SAML) authenticates a client using, for example, Windows integrated authentication. It creates a SAML token based on the claims provided by the client and might add its own claims.
      èA Relying Party application (RP) receives the SAML token and uses the claims inside to decide whether to grant the client access to the requested resource.
    • MISTERMIK.COM is a software vendor offering
      SaaS solutions in the cloud.

      MISTERMIK.COM decides that its ClaimsWeb application should trust CONTOSO.COM because of CONTOSO.COM purchasing a license for the ClaimsWeb application.

      MISTERMIK.COM here plays the role of the Relying Party STS,
      è which does not authenticate the client, but relies on a SAML token provided by an IP-STS that It trusts (CONTOSO).

    • CLAIMSWEB.mistermik.com is the Relying Party
      Application
      . Synonyms for an RP include "claims aware application" and "claims-based application".
      è A relying party is a Federation Service or application that consumes claims to make authorization decisions: an application that trusts an Identity Provider is referred to as a relying party or RP.

      Claims provider trust:
      è
      it is a trust object that is created to maintain the relationship with another Federation Service that provides claims to this Federation Service.

      MISTERMIK'S ADFS has a claims provider trust with CONTOSO'S AD FS = CONTOSO'S ADFS provides CONTOSOJohn's claims to MISTERMIK'S AD FS.

      Relying party trust:

      è it is a trust object that is created to maintain the relationship with a Federation Service or application that consumes claims from this Federation Service.

      CONTOSO'AD FS has MISTERMIK.COM's AD FS as Relying Party Trust. MISTERMIK.COM consumes claims coming from CONTOSO'S AD FS.

    Now that we have covered the terminology with the entities that will play the role of the IdP or IP, and RP, we want to make it perfectly clear in our mind and go through the flow one more time.

    Let's write something on the whiteboard and focus on steps:


    Step : Present Credentials to the Identity Provider

    1.1. When John from CONTOSO.COM attempts to use ClaimsWeb App for the first time (that is, when he first navigates to https://clamisweb.mistermik.com ), there's no session established yet. In other words, from an identity's point of view, the User is unauthenticated. The URL provides the application with a hint about the customer that is requesting access

    1.2. The application redirects John's browser to the Identity's issuer (the federation provider/AD FS). That is because MISTERMIK.COM'S federation provider is the application's trusted issuer. As part of the redirection URL, the application includes the whr parameter that provides a hint to the federation provider about the customer's home realm. The value of the whr parameter is http://contoso/trust.

    1.3. The MISTERMIK.COM 's federation provider uses the whr parameter to look up the customer's Identity Provider and redirect John's browser back to CONTOSO issuer.

    Assuming that John uses a computer that is already a part of the domain and in the corporate network, he will already have valid network credentials that can be presented to CONTOSO.COM's Identity provider.

    1.4. CONTOSO.COM's Identity provider uses the User's credentials to authenticate him and then issue a security token with a set of CONTOSO.COM's claims. These claims are for instance the Username, Group Membership and other attributes.

    Step : Transmit the Identity Provider's Security Token to the Federation Provider

    2.1. At this point the Identity Provider's Federation Service transforms the organization claims to a set of outgoing claims. The outgoing claims are sent to the Federation Service of the resource provider, MISTERMIK.COM.
    The CONTOSO'S Identity Provider uses HTTP redirection to redirect the security token it has issued to MISTERMIK.COM's federation provider.

    2.2. MISTERMIK.COM's federation provider receives this token and validates it.

    Step : Map the Claims

    3.1. MISTERMIK.COM's federation provider applies token mapping rules to the CONTOSO's Identity Provider security token. The claims are transformed into something that ClaimsWeb Application understands.

    3.2. The federation provider uses HTTP redirection to submit the claims to the User's browser (John).

    Step : Transmit the Mapped Claims and Perform the Requested Action

    4.1. The browser sends the federation provider's security token, which contains the transformed claims, to the ClaimsWeb Application.

    • The application validates the security token.
    • The Expense Note Application ClaimsWeb, an ADFS-enabled Web application also defined as Claims aware application, it consumes the organization claims and uses them to Authorize the user or to personalize the application for the user, for example showing the expense notes related to John and other John's financial data.

    Ok folks, I know it's a lot to digest but, you will appreciate having this perfectly clear on your next Identity conversation. We have now to understand how the Identity Provider and the Resource Provider can trust each other.

    Claims Provider Trusts

    We can use the Claims Provider Trust to federate to ADFS implementation to other organization or 3rd party federated identity providers (Ping Federate, Siteminder, etc).


    When you configure a claims provider trust or relying party trust in your organization with claim rules, the claim rule set(s) for that trust act as a gatekeeper
    for incoming claims by invoking the claims engine to apply the necessary logic in the claim rules to determine whether to issue any claims and which claims to issue.

    We can't really talk about Trusts without introducing the Claim Pipeline:

    The Claim Pipeline represents the path that claims must follow before they can be issued.

    • Accepting incoming claims
      • The acceptance rules are run
    • Authorizing the claims requester
      • Access Control Policy for Authorization decision
    • Issuing outgoing claims
      • Issue outgoing claims and package into a security token

    The Relying Party trust provides the configuration that is used to create claims. Once the claim is created, it can be presented to another Active Directory Federation Service or claim aware application.

    Claim provider trust determines what happens to the claims when it arrives.

    Let's apply what we discussed here to our practical example:

    Claims Provider Trusts and Relying Party Trusts

    In order to accept incoming claims from a Claims Provider (IdP-STS), you must first establish trust by creating a Claims Provider Trust on your Relying Party (RP-STS). (Gatekeeper).
    èMISTERMIK.COM (RP-STS) -------Claims Proivider Trust---à CONTOSO.COM (IdP)

    In order to send outgoing claims from your IdP-STS, you must first establish a trust by creating a Relying Party Trust on your IdP-STS. A Relying Party Trust can be another STS which is relying on claims from your STS.
    èCONTOSO.COM (IdP) --------------Relying Party Trust---à MISTERMIK.COM (Resource Provider)

    MISTERMIK.COM has a Relying Party Trust à ClaimsWeb Application, which close the circuit as Relying Party Trust can be a web application or service which is relying on claims from your STS.

    Properties of a Trust Relationship

    Monitoring – The Federation Metadata URL is used to obtain policy from the partner STS. This policy information is pulled on a regular interval which is called trust monitoring. Trust monitoring can be disabled and the pulling interval can be modified.

    Identifiers – Display Name determines how the trust is viewed in the AD FS MMC and also how it appears on the home realm discovery page. The Claims provider/relying party identifier is a unique identifier in URI format. The default identifier for AD FS STS's is http://{dns_name}/adfs/services/trust.


    Certificates – The public key portion of the Claims Provider partner's token-signing certificate is stored.

    Encryption – The public key portion of the partner's token-encryption certificate is stored.

    Signature – This is the verification certificate for a Relying Party used to verify the digital signature for incoming requests from this Relying Party.

    Offered Claims – The Claim Descriptions that are published by the Claims Provider partner STS are shown. If the Claim Type of the Claim Description matches the Claim Type of a Claim Description on your STS, then the display name is shown. Otherwise, you will see the Claim Type of the offered claims.

    Now that we've reviewed the basics, discussed the moving parts and broke the flow in detail and understood their correlation, we're ready to make the next step into certificates and why is so important these are up-to-date.

    Certificates

    Each federation server uses a token-signing certificate to digitally sign all security tokens that it produces. This helps prevent attackers from forging or modifying security tokens to gain unauthorized access to resources.

    When we want to digitally sign tokens, we will always use the private portion of our token signing certificate. When a partner or application wants to validate the signature, they will have to use the public portion of our signing certificate to do so.

    CONTOSO.COM, the IdP (Identity Provider) has an X.509 certificate. When John, a CONTOSO employee authenticates for accessing the ClaimsWeb App in MISTERMIK.COM .COM, the IdP uses the private key associated with the X.509 certificate to digitally sign the token. The Federation Service in MISTERMIK.COM verifies the digital signature using the public key confirming the token has been produced only by CONTOSO.COM's Identity Provider and that the content has not been altered from the moment it was signed. https://docs.microsoft.com/en-us/windows-server/mistermik.com /ad-fs/design/token-signing-certificates

    Then we have the Token Decryption Certificate. This certificate would be used to encrypt SAML tokens from the Identity Provider.
    Encryption of tokens is strongly recommended to increase security and protection against potential man-in-the-middle (MITM) attacks that might be tried against your AD FS deployment. Use of encryption might have a slight impact on throughout but in general, it should not be usually noticed and in many deployments the benefits for greater security exceed any cost in terms of server performance.

    Encrypting claims means that only the relying party, in possession of the private key would be able to read the claims in the token. This requires availability of the token encrypting public key, and configuration of the encryption certificate on the Claims Provider Trust (same concept is applicable at the Relying Party Trust).

    Recalling our practical example, when CONTOSO.COM, the IdP sends MISTERMIK.COM /RP a token, AD FS will use the private key of his token signing certificate and optionally, the public key of his partner's token encryption certificate.

    To generalize and reinforce the concept: If you're receiving tokens from a third party identity provider because you are a SaaS provider, they'll be sending you tokens signed with their token signing certificate private key and they'll encrypt the token with the public portion of your token encryption certificate.

    By default, these certificates are valid for one year from their creation and around the one-year mark, they will renew themselves automatically via the Auto Certificate Rollover feature in ADFS if you have this option enabled. We don't in our Lab and we want to monitor when a certificate is changed.


    This tab governs how AD FS manages the updating of this claims provider trust. You can see that the Monitor claims provider check box is checked. This indicates that AD FS will periodically check the Federation Metadata URL shown in the dialog and compare it with the current state of the claims provider trust.

    ADFS starts the trust monitoring cycle every 24 hours (1440 minutes).

    Get-ADFSProperties select MonitoringInterval

    PS C:MF> Get-ADFSProperties | select MonitoringInterval

    MonitoringInterval

    ------------------

    1440

    From the AD FS/Admin log we can see:


    1.
    Log Name:      AD FS/Admin
    Event ID:      336
    The certificate management cycle was initiated.

    2.
    Log Name:      AD FS/Admin
    Event ID:      337
    The certificate management cycle was completed.

    But those above are the only information you will get from ADFS when Signing or Encryption certificate are change from the partner.

    Federation Metadata

    When creating a federation trust between Federation Services, we utilize the /FederationMetadata/2007-06/FederationMetadata.xml endpoint. This endpoint is enabled and enabled for proxy by default. The FederationMetadata.xml file is held in memory by the AD FS Windows service and is never written to disk, so if the AD FS Windows service is not running the FederationMetadata.xml data is not accessible.

    Once the federation trust is created between partners, the Federation Service holds the Federation Metadata endpoint as a property of its partners, and uses the endpoint to periodically check for updates from the partner. For example, if an Identity Provider gets a new token-signing certificate, the public key portion of that certificate is published as part of its Federation Metadata. All Relying Parties
    who partner with this IdP will automatically be able to validate the digital signature on tokens issued by the IdP because the RP has refreshed the Federation Metadata via the endpoint.

    The Federation Metadata.XML publishes information such as the public key portion of a token signing certificate and the public key of the Encryption Certificate. What we can do is creating a schedule process which:

    1. Download the partner FederationMetadata.XML
    2. Extrapolate the Signing and the Encryption certificates
    3. Compare the Thumbprints between these certificates and what the Federation Service has
    4. Create an event to inform the status of certificates: Error if different=certificates were updated
    5. From here there are then a number of secondary actions customer can take (emails, other tasks etc.).

    Case1

    Monitor the Relaying Party Trust certificates (From CONTOSO Vs SaaS provider offering the Application)

    The script assumes the existence of an EventLog source: ADFSCert

    You can create the source with the following line as an Administrator of the server:

    New-EventLog –LogName Application –Source "ADFSCert"

    More Info: https://blogs.technet.microsoft.com/heyscriptingguy/2013/06/20/how-to-use-powershell-to-write-to-event-logs/

    From CONTOSO'S AD FS, the Identity Provider, I want to monitor the Signing and Encryption certificate with MISTERMIK'S SaaS Provider / Relying Party STS.

    ##DISCLAMER##
    #NO WARRANTY OF ANY KIND IS PROVIDED. THE ENTIRE RISK OF THE USE OR THE RESULTS FROM
    #THE USE OF THIS SCRIPT REMAINS WITH THE USER.
    #THIS SAMPLE CODE AND ANY RELATED INFORMATION ARE PROVIDED "AS IS" WITHOUT WARRANTY
    #OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
    #WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE
    ## PROPERTIES

    $metadataurl="https://adfs.identity.mistermik.com/FederationMetadata/2007-06/FederationMetadata.xml"
    $RPName "adfs.identity.mistermik.com"
    try
    {
       [xml]$metadataDoc = (Invoke-WebRequest $metadataUrl).Content
    }
    catch
    {
        Write-Error "There was an error downloading the metadata: $($_)"
        return
    }
    ## LOAD FEDERATION METADATA
    $fedmd Invoke-WebRequest -Uri $metadataurl
    $fedmdXml New-Object Xml
    $fedmdXml.LoadXml($fedmd.Content)
    #$base64 = $fedmdXml.EntityDescriptor.RoleDescriptor.KeyDescriptor.KeyInfo.X509Data.X509Certificate

    ## SIGNING CERTIFICATE
    $Signing = ($fedmdXml.EntityDescriptor.RoleDescriptor.KeyDescriptor|Where-Object {$_.use -eq "signing"}).KeyInfo.X509Data.X509CertificateSigning|Out-File -FilePath $RPName"_Signing.cer" -Append:$false
    $CertSign Get-PfxCertificate -FilePath $RPName"_Signing.cer"
    $ThumbCertSign = $CertSign.Thumbprint

    #Remove-Item $RPName+"_Signing.cer"
    ## ENCRYPTION CERTIFICATE

    $Encrypt = ($fedmdXml.EntityDescriptor.RoleDescriptor.KeyDescriptor|Where-Object {$_.use -eq "encryption"}).KeyInfo.X509Data.X509Certificate
    $Encrypt|Out-File -FilePath $RPName"_Encryption.cer" -Append:$false
    $CertEncr Get-PfxCertificate -FilePath $RPName"_Encryption.cer"
    $ThumbCertEncr= $CertSign.Thumbprint

    #Remove-Item $RPName"_Encryption.cer"
    ## LOAD ADFS RP Cert Info
    $ADFS_RP_CertSign = (Get-ADFSRelyingPartyTrust -Name $RPName).RequestSigningCertificate
    $ADFS_RP_ThumbCertSign = (Get-ADFSRelyingPartyTrust -Name $RPName).RequestSigningCertificate.Thumbprint
    $ADFS_RP_CertEncr = (Get-ADFSRelyingPartyTrust -Name $RPName).EncryptionCertificate
    $ADFS_RP_ThumbCertEncr = (Get-ADFSRelyingPartyTrust -Name $RPName).EncryptionCertificate.Thumbprint
    $ResultSign Compare-Object $CertSign $ADFS_RP_CertSign -property Thumbprint, Subject, Notafter -includeequal
    $strResultSign $ResultSign | %{"`nThumbprint..: "+$_.Thumbprint+"`nSubject..........: "+$_.Subject+"`nNotAfter........: "+$_.NotAfter+"`nSideIndicator.: "+$_.SideIndicator}|Out-String
    $Monitor Get-ADFSRelyingPartyTrust -Name $RPName ?{$_.Enabled -eq $true -And $_.MetadataUrl -ne $null -And $_.MonitoringEnabled -eq $true} |
    %{"`nName........................: "+$_.Name+"`nLastMonitoredTime: "+$_.LastMonitoredTime+"`nLastUpdateTime.....: "+$_.LastUpdateTime}|out-string
    IF ($ResultSign.SideIndicator -ne "==")
    {
    write-Host "$RPName Signing certificate was changed"
    Write-EventLog –LogName "Application" –Source "ADFSCert" –EntryType Error –EventID 1
    –Message "$RPName Signing certificate - CHANGED $strResultSign ################################################## $Monitor"
    }
    ELSE {
    Write-Host "$RPName Signing certificate - OK"
    Write-EventLog –LogName "Application" –Source "ADFSCert" –EntryType Information –EventID 1 –Message "$RPName Signing certificate - OK $strResultSign ################################################## $Monitor"
    }
    $ResultEncr = Compare-Object $CertEncr $ADFS_RP_CertEncr -property Thumbprint, Subject, Notafter -includeequal
    $strResultEncr = $ResultEncr | %{"`nThumbprint..: "+$_.Thumbprint+"`nSubject..........: "+$_.Subject+"`nNotAfter........: "+$_.NotAfter+"`nSideIndicator.: "+$_.SideIndicator}|Out-String IF ($ResultEncr.SideIndicator -ne "==")
    {
    write-Host "$RPName Encryption certificate was changed"
    Write-EventLog –LogName "Application" –Source "ADFSCert" –EntryType Error –EventID 1
    –Message "$RPName Encrypting certificate - CHANGED $strResultEncr ################################################## $Monitor"
    }
    ELSE {
    Write-Host "$RPName Encryption certificate - OK"
    Write-EventLog –LogName "Application" –Source "ADFSCert" –EntryType Information –EventID 1 –Message "$RPName Encrypting certificate - OK $strResultEncr ################################################## $Monitor"

    }


    Signing Certificates and Encryption Certificates were changed

    Signing Certificate

    Encryption Certificate

    If all is good:

    Signing Certificate

    Encryption Certificate

    Case2

    Monitor the Claims Provider Trust certificates (From the SaaS provider offering the Application Vs my Customer IP/CONTOSO)

    ##DISCLAMER##
    #NO WARRANTY OF ANY KIND IS PROVIDED. THE ENTIRE RISK OF THE USE OR THE RESULTS FROM
    #THE USE OF THIS SCRIPT REMAINS WITH THE USER.
    #THIS SAMPLE CODE AND ANY RELATED INFORMATION ARE PROVIDED "AS IS" WITHOUT WARRANTY
    #OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
    #WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE
    #Monitor the Claims Provider Trust certificates (From the SaaS provider offering the Application Vs CONTOSO IP)
    ## PROPERTIES

    $metadataurl="https://adfs.oauth.mistermik.com/FederationMetadata/2007-06/FederationMetadata.xml"
    $CPT "CONTOSO.COM"
    try
    {
        [xml]$metadataDoc = (Invoke-WebRequest $metadataUrl).Content
    }
    catch
    {
        Write-Error "There was an error downloading the metadata: $($_)"
        return
    }

    ## LOAD FEDERATION METADATA

    $fedmd Invoke-WebRequest -Uri $metadataurl
    $fedmdXml New-Object Xml
    $fedmdXml.LoadXml($fedmd.Content)
    #$base64 = $fedmdXml.EntityDescriptor.RoleDescriptor.KeyDescriptor.KeyInfo.X509Data.X509Certificate

    ## SIGNING CERTIFICATE
    $Signing = ($fedmdXml.EntityDescriptor.RoleDescriptor.KeyDescriptor | Where-Object {$_.use -eq "signing"}).KeyInfo.X509Data.X509Certificate
    $Signing| Out-File -FilePath $RPName"_Signing.cer" -Append:$false
    $CertSign Get-PfxCertificate -FilePath $RPName"_Signing.cer"
    $ThumbCertSign= $CertSign.Thumbprint

    #Remove-Item $RPName+"_Signing.cer"
    ## ENCRYPTION CERTIFICATE

    $Encrypt = ($fedmdXml.EntityDescriptor.RoleDescriptor.KeyDescriptor|Where-Object {$_.use -eq "encryption"}).KeyInfo.X509Data.X509Certificate
    $Encrypt|Out-File -FilePath $RPName"_Encryption.cer" -Append:$false
    $CertEncr Get-PfxCertificate -FilePath $RPName"_Encryption.cer"
    $ThumbCertEncr= $CertSign.Thumbprint

    #Remove-Item $RPName"_Encryption.cer"
    ## LOAD ADFS RP Cert Info

    $ADFS_CPT_CertSign = (Get-AdfsClaimsProviderTrust -Name $CPT).TokenSigningCertificates
    $ADFS_CPT_ThumbCertSign = (Get-AdfsClaimsProviderTrust -Name $CPT).TokenSigningCertificates.Thumbprint
    $ADFS_CPT_CertEncr = (Get-AdfsClaimsProviderTrust -Name $CPT).EncryptionCertificate
    $ADFS_CPT_ThumbCertEncr = (Get-AdfsClaimsProviderTrust -Name $CPT).EncryptionCertificate.Thumbprint
    $ResultSign Compare-Object $CertSign $ADFS_CPT_CertSign -property Thumbprint, Subject, Notafter -includeequal
    $strResultSign $ResultSign %{"`nThumbprint..: "+$_.Thumbprint+"`nSubject..........: "+$_.Subject+"`nNotAfter........: "+$_.NotAfter+"`nSideIndicator.: "+$_.SideIndicator}|Out-String
    $Monitor AdfsClaimsProviderTrust -Name $CPT ?{$_.Enabled -eq $true -And $_.MetadataUrl -ne $null -And $_.MonitoringEnabled -eq $true} %{"`nName........................: "+$_.Name+"`nLastMonitoredTime: "+$_.LastMonitoredTime+"`nLastUpdateTime.....: "+$_.LastUpdateTime}|out-string
    IF ($ResultSign.SideIndicator -ne "==")
    {
    write-Host "$CPT Claims Provider Trust Signing certificate was changed"
    Write-EventLog –LogName "Application" –Source "ADFSCert" –EntryType Error –EventID –Message "$CPT Claims Provider Trust Signing certificate - CHANGED $strResultSign ################################################## $Monitor"
    }
    ELSE {
    Write-Host "$CPT Claims Provider Trust Signing certificate - OK"
    Write-EventLog –LogName "Application" –Source "ADFSCert" –EntryType Information –EventID –Message "$CPT Claims Provider Trust Signing certificate - OK $strResultSign ################################################## $Monitor"
    }
    $ResultEncr Compare-Object $CertEncr $ADFS_CPT_CertEncr -property Thumbprint, Subject, NotAfter
    -includeequal
    $strResultEncr $ResultEncr %{"`nThumbprint..: "+$_.Thumbprint+"`nSubject..........: "+$_.Subject+"`nNotAfter........: "+$_.NotAfter+"`nSideIndicator.: "+$_.SideIndicator}|Out-String
    IF ($ResultEncr.SideIndicator -ne "==")
    {
    write-Host "$CPT Claims Provider Trust Encryption certificate was changed"
    Write-EventLog –LogName "Application" –Source "ADFSCert" –EntryType Error –EventID –Message "$CPT Claims Provider Trust Encrypting certificate - CHANGED $strResultEncr ################################################## $Monitor"
    }
    ELSE {
    Write-Host "$CPT Claims Provider Trust Encryption certificate - OK"
    Write-EventLog –LogName "Application" –Source "ADFSCert" –EntryType Information –EventID –Message "$CPT Claims Provider Trust Encrypting certificate - OK $strResultEncr ################################################## $Monitor"
    }

    Signing Certificates and Encryption Certificates were changed

    Signing Certificate

    Encryption Certificate

    If all is good:

    Signing Certificate

    Encryption Certificate

    Signing Certificate was changed from the Partner Federation Service.

    I also write when the trust was last monitored and Updated.

    Be aware, that the 'LastMonitoredTime' is updated, whether or not the monitoring was successful.

    THAT'S IT!!!!

    We introduced today a solution which included the establishment of a claims-based architecture with an issuer that acts as an identity provider (IdP/IP) on the customers' side and an issuer that acts as the federation provider (FP) on Mistermik.com side: a gateway between a resource and all of the issuers that provide claims about the resource's users.

    As part of my Mix and Match series, we went through concepts and terminologies of the Identity metasystem, understood how all the moving parts operates across organizational boundaries.

    We discussed the certificates involvement in AD FS and how I can use PowerShell to create a custom monitor workload and a proper logging which can trigger further automation.

    I hope you have enjoyed and that this can help you if you land on this page.

    Michele Ferrari (MisterMik)

    Premier Field Engineer

    What’s new for US partners the week of January 29, 2018

    $
    0
    0

    Find resources that help you build and sustain a profitable cloud business, connect with customers and prospects, and differentiate your business. Read previous issues of the newsletter and get real-time updates about partner-related news and information on our US Partner Community Twitter channel.

    Subscribe to receive posts from this blog in your email inbox or as an RSS feed.

    Looking for partner training courses, community calls, and information about technical certifications? Read our MPN 101 blog post that details your resources, and refer to the Hot Sheet training schedule for a six-week outlook that’s updated regularly as we learn about new offerings. To stay in touch with us and connect with other partners and Microsoft sales, marketing, and product experts, join our US Partner Community on Yammer.

    Top stories

    New posts on the US Partner Community blog

    New on demand videos

    MPN news

    Partner webinars available this winter

    Learning news

    Upcoming events

    US Partner Community partner call schedule

    Community calls and a regularly updated, comprehensive schedule of partner training courses are listed on the Hot Sheet.

    SharePoint – Troubleshooting “Access denied” issues when using SAML authentication

    $
    0
    0

    Are SharePoint users getting the message "Sorry, this site hasn't been shared with you." when trying to give them access to a SharePoint site that uses SAML authentication? Below I explain some of the common mistakes that administrators make when giving users permissions to a SharePoint site that is using SAML authentication.

    Giving users access to SharePoint using SAML
    When using SAML claims with SharePoint, depending on your SAML configuration. You can give your users access either by using the user's identity claim or Group/Role claim. Below I go over both methods.

    Giving access using the Identity claim of the user
    To give access using the user's Identity claim, you first need to determine which claim is configured as the Identity claim in your SharePoint farm. This is the special claim that SharePoint uses to identify the user. If you are not sure which claim has been configured to be the identity claim in your farm. Then run the following PowerShell script on one of your SharePoint servers using the SharePoint Management Shell. In the screen shot below you can see that my identity claim is "E-Mail Address". In other cases, it might be configured as the UPN, SamAccount, or some other type of claim used for identifying the user.

    Get-SPTrustedIdentityTokenIssuer | % {$_.IdentityClaimTypeInformation}

    Now that you have found your identity claim type. We need to determine if the user is getting added to the site correctly.
    If you do not have a custom claim provider configured on your farm. It is important to understand that it is very easy to add the user in-correctly to SharePoint. SharePoint will not validate the user against the identity provider like you are used to when using Windows claims. This means you must enter the user's identity claim correctly without typos.

    Incorrectly adding the user
    Since my farm doesn't have a custom claim provider configured, I can accidently add the user in correctly. I should be using the E-Mail address claim and not something like the users display name.



    Correctly adding the user
    When picking your user, make sure you select the user in the list that has the identity claim and not some other claim that is not the user's identity claim. In the screen shot below I am choosing the user with the E-Mail claim by hovering over it to see the claim type.

    Giving access by using a Group/Role claim
    Depending on your custom claim provider, you might call your groups "Roles" or "Groups. They are both the same thing. Using the group/role claim can be just as tricky because they can come in a few different formats. Depending on the custom claim provider configuration, you could be using one of a few formats for groups. For example, they might be in the format as "domaingroup name" or just "group name" without the domain name. Below I show examples of a few group format examples.

    Unique Group name – "Group A"

        

    Domain name with group name – "ContosoGroup A"

        

    If you are not sure what format your Group/Role claim is in. You can capture a Fiddler trace of the user to collect SAML token being created for the user. There we can determine if we are using the right claim format. See the next section below.

    Collecting the SAML token with a Fiddler trace
    If you have determined that you are correctly giving your user permissions either by the identity claim or by Group/Role claim. We can take a Fiddler trace from the user's workstation during the login process to the SharePoint site. You can validate what claims your custom claim provider is provider to the SharePoint server on for the user.

    Step 1 – Download and install the Fiddler application to the user's workstation - Fiddler Download Here. Installing Fiddler is straight forward, just go through the install wizard selecting Yes to all the menus till its completed.

    Step 2 – Once you have Fiddler installed, start the Fiddler application. Next make sure you enable HTTPS so we can decrypt the SSL packets. To do so, select "Tools/Options" on the Ribbon, then select the "HTTPS" tab. Check the box next to "Capture HTTPS CONNECTs" and the box next to "Decrypt HTTPS traffic". Select OK to complete the configuration.

    Step 3 – To start and stop the capturing, you can click on File in the top ribbon and select "Capturing Traffic" or by clicking "F12". When it's capturing you will see the words "Capturing" in the lower left corner.

    Step 4 – Once you have Fiddler capturing, have the user log in to the SharePoint site using Internet Explorer. The user should be re-directed to the custom claim provider for authentication. 

        

    Step 5 – Once the user gets the error message, stop the Fiddler trace by pressing F12.

        

    Step 6 – Now review the Fiddler trace looking for the URL that contains "/_trust/". See my screen shot below. You can see in frames 2 through 5 the user accessed the SharePoint site and was re-directed to the custom claim provider in frames 7 through 9. Frame 10 is where we get the SAML token that was generated by the custom claim provider. Select the "Inspectors" tab and then the "WebForms" tab. Locate the "wresult" section and copy everything opposite from it in the value Colum.

        

    Step 7 – Paste the contents into a Notepad and save it as a XML file, see below. Be sure to switch your Save as type to "All Files (*.*)".


    Step 8 – Open the saved XML file using your web browser. Reviewing the information in the SAML token you can see the claims provided by your custom claim provider.

        

    SAML token explained:
    GREEN Box – Here you can see the email address identity claim for the user. This is the claim we are looking for when identifying the user. When giving this account permission to the SharePoint site, it has to be in the same format as found in the Fiddler trace above..
    BLUE Box – Here you can find the role claims for the user. Take note of the format of the role claims in your SAML token, this is the format you should use when adding it to your SharePoint site with people picker.
    YELLOW Box – Here we can find the SAML Life time by subtracting the Created time from the Expired time. This value is set by the claim provider. In this example its set for 1 hour.

    STEP 9 – Using the information in the SAML token you can validate if you are giving the user permission correctly to the SharePoint site using the correct identity or Group/Role claims. Try re-adding the user to the site collection using one of the claims found in the users SAML token captured in the Fiddler trace and have the user test again. Once you get the right claim added the user should be able to access the SharePoint site successfully.

    Note – If you do not see the correct claim information in the SAML token. Then there must be a configuration problem with your custom claim provider.

    Viewing all 36188 articles
    Browse latest View live


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