Quantcast
Channel: MSDN Blogs
Viewing all 29128 articles
Browse latest View live

ADFS 2012 R2 now supports Password Change (not reset) across all devices

$
0
0

Howdy everyone!

Today I’m going to bog about password change feature in ADFS. This is not a well-known feature but a very useful one for many organizations.

Password change is the ability for a user (in Active Directory Domain Services) to change their password with knowledge of their old password. Note that this is not password reset where the user does not know their password and needs to use an alternate credential (such as phone or security questions) to reset their password. One such example is Azure Active Directory that provides Self-Service Password Reset capabilities in the cloud that make this simple for end users.  Traditionally users would use their windows domain joined devices inside their corporate devices or they would change password through their on-premises OWA system that provided this functionality. However, with moving to Office 365 and the advent of multiple devices accessing company resources, users cannot really use those same mechanisms anymore. Employees are also not always connected to the corporate network when their password need to be changed which can also prove to be challenging and a help desk call generator.

The feature in ADFS was meant to address the above issues. The use cases that we targeted were the following:

  • Expired Password: User is accessing applications such as Office 365 and is logging onto ADFS using their expired password. At this time, ADFS will interrupt the login flow (when password change is enabled) and ask the user to change their password. Once they change their password, they are seamlessly taken back to the login page, enter their changed password and subsequently taken to the application that they were logging into.
  • User Must Set Password at next login: Many times when you have a new employee or when a password is reset through a password reset mechanism such as the SSPR feature in Azure AD, users need to change their passwords at the next login into AD.
  • Change Password when passwords are soon to expire: We targeted this case specifically for Office 365 applications where ADFS can notify Office apps that a password is set to expire with 14 days (not configurable) and notify the user and now the user can just click on the change password link when this notification appears and can change their password via ADFS.
  • Change Password any time by directly going to the password change URL: This is simply a case where the user can bookmark the change password URL and just access this to change their password in AD.

Enabling Change Password in ADFS

By default, this functionality is disabled in ADFS. Change password looks just like another endpoint in ADFS and all you need to do is enable the endpoint. You can use the MMC snapin to enable this.

 

You can also do this via PSH using the Set-AdfsEndpoint cmdlet.

 

Once enabled, users can always access the change password page via https://adfs.contoso.com/adfs/portal/updatepassword/. It would look like this

 

 

Note: ADFS 2012 R2 required authenticated/registered devices (a.k.a ‘workplace join’) to allow the change of passwords. Based on customer feedback, we have relaxed this constraint and allow this from all devices. You will need to apply 3035025 hotfix on all the ADFS servers.

Enabling password expiry notification

This is a use case that is specifically targeted towards logging into Office 365. Enabling this requires a modification to the ‘issuance’ claims rules for the relying party trust that represents Azure Active Directory. If you used AAD PSH to create this RP trust, you will see this as the “Office 365 Identity Platform” RP trust.

All you need to do is to add the following claims rule to the issuance claims when sending tokens to Azure AD/Office 365.

c1:[Type == "http://schemas.microsoft.com/ws/2012/01/passwordexpirationtime"]

=> issue(store = "_PasswordExpiryStore", types = ("http://schemas.microsoft.com/ws/2012/01/passwordexpirationtime", "http://schemas.microsoft.com/ws/2012/01/passwordexpirationdays", "http://schemas.microsoft.com/ws/2012/01/passwordchangeurl"), query = "{0};", param = c1.Value);

With the above rule we are sending 3 additional claims

  • Password Expiration Time: This is the time when the user’s password will expire
  • Password Expiration Days: This is the number of days remaining prior to the password expiry
  • Password Change URL: This is the URL of the password change URL from ADFS

 

Hope you found this blog post useful. Feel free to post comments on this blog post to ask questions or leave feedback. You can also tweet to @MrADFS.

--Sam


Reacting to feedback, common issues, and our first update

$
0
0

Reacting to feedback, common issues, and our first update

It’s been an amazing few weeks since we launched Visual Studio Code.  The reaction from all of you has been incredible. I want to start out by saying thank you and sorry for the delay in getting our second blog post out. Follow us on Twitter to receive regular updates from us and also to join the discussion with the community. 

The level of engagement we saw from you and the reaction so far has been nothing short of incredible, we are humbled.  I’m going to list out some numbers that give you a feel for the level of engagement to date.

It’s been really great to see the engagement – so thank you.  I’m now going to move onto a few areas where we could have done better and are reacting to your feedback.

While in the first post I introduced Visual Studio Code, in this post I’d like to share its evolution story.  Here is what I’ll be talking about today -

  • Improving the visibility of reported issues
  • Getting to the bottom of some of our most common issues
  • Improving issue submission & follow-up – announcing public issue tracking
  • Early community support and evangelism
  • Gearing up for the first update – announcing the insiders update channel

We shipped a preview version of Visual Studio Code and asked you to help us test it out and improve for the next version. Within the first week it became clear that there were a number of common issues people were running into.  Once the pattern was clear we published a new FAQ page on our site to share the status and any workarounds we knew of. 

 

Improving the visibility of reported issues

We announced this page on Twitter on 6th May and have continued to update the page with newly reported common issues since then.  Moving forward we intend to make this a permanent fixture of the site. If you are running into an issue that isn’t addressed here, please reach out to us and let us know.

 

 

Getting to the bottom of some of our most common issues

We had a broad set of issues reported, spanning errors in our documentation (we just fixed them all :)) to issues requiring a binary product fix.  I would like to share the story of two of the most impactful issues for some of our early adopters and how the community helped us get to the bottom of them quickly.

1. ‘Help… I can’t install on Linux’

While many users were successful in installing Code for Linux we almost immediately started to get reports of failed installs and issues extracting the Zip archive.  Initially we simply did not understand the cause of the issue in our own testing on Ubuntu and Kubuntu it worked in the Archive Manager :)  The issue turned out to be a pretty tricky bug to track down – we plan to dedicate a separate post to the whole process covering – diagnosing the issue, resolving it, and the final fix. 

In this post the key point I wanted to make was that, several people in the community suggested a workaround almost immediately, e.g. Daniel Beauyat in the comments of the previous post to this blog, and this answer by byaruhaf on StackOverflow.  A new updated Zip archive is on the way and the workaround for users today is posted on our FAQ page.

2. ‘Help… I can’t see any of the icons’

Several users reported that post-install all icons in Code were blank.  We scratched our head around this and wondered if it was a High DPI issue or something else for a few days. 

To track down the cause we reached out to several users who reported this issue and eventually we connected with Ping Wu and were able to isolate it. It turns out the issue is caused on Windows when the .SVG file type is associated to something other than image/svg+xml in the registry.  At that point Chromium refuses to render the file as an image when it’s requested over http:///. 

We published a work around on the FAQ for this and are working on a more permanent fix.

 

These are two stories to highlight how the community is helping us make Code better.  We really appreciate your help and hope to continue the engagement.

 

Improving issue submission & follow-up – Announcing Public Issue Tracking

When we launched Code we had a simple ‘mailto:’ link for Reporting Issues both on the website but also in the Help menu.  Unfortunately we even had a few issues with this on Day One.  We included an internal DL for the team and this resulted in errors being sent as an auto reply.  This understandably confused many of you.  The good news is we were getting every mail.

Net, net – mail was a bad choice – it’s hard to triage, hard to see if we are acting on the feedback and also results in a lot of duplicate reports. Lesson learnt, so on Monday we launched a new public web interface that displays the bugs you have reported.  This is all backed by Visual Studio Online which allows us to triage the bugs, report on status and integrate it into our development workflow.

We have been happily using Visual Studio Online for several years now.  However, one thing it lacks is the ability to host a public issue tracking system.  We partnered with the Visual Studio Online team to build a solution into our ASP .NET website leveraging their REST APIs.  We did this as a joint Hack-a-Bug project that we started on Monday – by Monday night we had the system up and running, by Tuesday (today) we had search, by tomorrow (Wednesday) we will round of the feature set. 

I’ll update the images in this post once we finish. Here is a quick view into how it works.  With the tool you can see a list of currently triaged issues, and search to see if the issue you are experiencing has been reported:

If your issue has been reported you can ‘me too’ the exiting issue and add additional comments (coming Tuesday night).  That way we get an indication of how broad the reported issue is.  Over time you can return to this page and check the status of the issue.  Including any relevant discussion in the community or with the team.  You’ll also be able to see which release your issue is resolved in.

Issues can be submitted from either the website ‘Connect’ page or from the in-product help menu.  When you submit a new issue from within the product we will pre-populate the OS and Version data if (from the next update onwards).

We are still hacking on this now, so some of the feature set described above (specifically voting, attachments and discussion) are still in development.  You will see those in the coming days.  But as you read this you should already be able to see the direction we’re headed.

 

Early community support and evangelism

One of the most rewarding things the team has observed since the launch is the number of community engagements that have occurred for Code.  On Twitter, Stack Overflow and User Voice, where you are helping out and answering each other’s questions. 

We have also seen a large number of overviews [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] published for Code – I’m sure we missed a few on this list.  We have tried to re-tweet the majority of these on the @Code Twitter account , if we missed retweeting your post please share a link with us and we’d be happy to retweet it. We really appreciate all the effort people have put into helping other users use Code successfully by sharing their experiences.

One interesting story relates to one of the top request features on UserVoice - Unity Support. Within days several user [1, 2] created posts on how to use Unity and Code together.  Clearly more to do and this will be a great place for users to extend Code but really great to see the peer-2-peer engagement.

All this feedback s great but only if we address it in the product…

 

Gearing up for the first update – Announcing Insiders Update Channel

We are getting close to publishing our first update to Code.  This will be the start of a pretty regular update cadence.  We have mentioned before that Code has auto update capabilities so all of you will receive the update once released.  We also have the ability to have several update streams.  Within our own team we subscribe to the nightly update channel.

Today we are announcing the first major benefit of being a Code ‘Insider’ (more about insiders on our Connect page).  In the next week we will be contacting all of you with the details of how you can opt into early updates.  This will get you with the latest bits sooner than the public update channel and will allow us to discover any critical issues before rolling the update to all developers. It is a win/win and we would love your support here.

Want to get early builds?  Fill out this short survey to join the insiders.

 

Ok that’s if for now – you can always find us on Twitter. Please continue to send us your feedback.

 

Thanks,

Sean McBreen – Visual Studio Code Team Member

How to write an ADFS claims rule for a custom Active Directory attribute

$
0
0

I worked a case recently for a customer that wanted to pass a custom Active Directory attribute as a claim. It’s actually easy to do and does not require a custom claim rule, but the answer is less than obvious.

To create a new Issuance Transform Rule on the relying party trust. Follow these steps:

Choose Add Rule

Use the Send LDAP Attributes as Claims template

 

Name the rule and choose the Active Directory attribute store.

 

Next, type the custom attribute name I the Ldap Attribute dropdown exactly as it appears in ADSI Edit or your favorite ldap browser of choice. Hit enter.

You will notice that now if you choose the dropdown, the custom attribute is saved towards the bottom for future use.

You can now map that attribute to any of the claim types built in to ADFS and select Finish.

That how to map your custom Active Directory attribute in an ADFS claims rule. Deceptively easy.  Hope this helps.

Microsoft Ignite 2015 – Office 365 Development Session : Get Your Hands Dirty with the Office 365 RESTful APIs

$
0
0
I love this great session presented by Rob Howard; this session dives into the available scenarios when using the OneDrive for Business, Calendar, Mail, Contacts and Sites services in the Office 365 APIs. These Office 365 APIs can be called by any standalone web app or mobile device app. There are built in Visual Studio wizards, in the majority of Project Templates, to connect to them, handling all of the authentication flow and class libraries that help to call them. Understand the Azure Active...(read more)

Application Insights Planned Maintenance - 05/15 - Initial Notice

$
0
0
Planned Maintenance: 05/15 16:00 UTC - 05/16 16:00 UTC
The Application Insights team will be performing planned maintenance on one of the data storage subsystems. During the maintenance window we will be upgrading storage subsystem to a newer version.
We don't expect any downtime or data latency over 2 hours during this maintenance. However, during this timeframe some customers may experience data latency under 2 hours.

We apologize for any inconvenience.

-Application Insights Service Delivery Team


Video – Meet the upcoming Microsoft Exchange Server 2016

$
0
0
Have you missed Microsoft Ignite 2015 Conference and more info about upcoming Microsoft Exchange Server 2016? No worries. As I promised you earlier to get more info about Microsoft Exchange Server 2016 I am sharing the below info. At Microsoft Ignite 2015 conference we discussed about upcoming Microsoft Exchange Server 2016 – so that you can get a first look at Exchange Server 2016, the on-premises release that we plan to ship in the second half of this year. Come learn about the innovation in Exchange...(read more)

What are the applications of Machine learning in E-commerce ?

$
0
0
  Some of the scenarios for Ecommerce: Fraud Detection : Internet fraud has resulted in billions of dollars of loss in the past decade. It is important for websites to leverage various technologies to manage the exposure and risk from online fraud. Machine Learning technology can play a critical role in building a strong defense line against online fraud. We have templates available on the Microsoft Azure Machine Learning Gallery that walks through building a model to detect fraud: http://bit...(read more)

THINK BIG, WIN BIG WITH TRAINING

$
0
0


Think Big, Win Big!

Learn how to boost sales & be in the running for great prizes!

Microsoft is inviting all people in sales and pre-sales technical roles at our Partner companies to get involved now.

Simply pass an online assessment in Sales or Pre-Sales specialist accreditation for cloud workloads – and you could win return flights, accommodation and a ticket to Microsoft’s partner conference on the Gold Coast in September 2015.

Why get specialist accreditation?

Microsoft accreditation helps you secure bigger deals faster, reducing the time needed to build mutual trust with your customers. And that means more sales! Various assessment streams are available – the more you complete, the more entries you have to win.

Entries Close June 5, winners announced June 17.

major prize
secondary prize

Enter now for your chance to win!

*Terms and conditions apply

Get Accredited for Your Chance to Win

Get your teams involved and we might see you in Broadbeach! Remember, the more accreditations you and your team complete, the more chances you have to win!

Get accredited now!


GraphicsWindow Basics - Small Basic Featured Article

$
0
0

Check out this classic article from :

 

Small Basic: GraphicsWindow Basics

 

Table of Contents

 

 

 

Here's an excerpt about moving shapes:

The position of a shape is defined by a bounding box. The bounding box is a rectangle that completely covers the shape when it was created. The position of the shape on the canvas is defined by the top left corner of the bounding box. The bounding box has a width and height which corresponds to the size set when the shape was created.

  • If a shape has width w and height h, then to position a shape with its centre at (x,y), we need to set the top left corner at (x-w/2,y-h/2).
  • Note that when a rotated or zoomed shape is moved it appears as if the rotation or zoom was performed after the positioning movement – the position is the top left corner of the un-rotated and un-zoomed bounding box.

 

I love how the Wiki is always evolving! This article was written in 2012, but in March of this year, Yan translated it into French:

 

 Small Basic - Les Bases : La Fenêtre Graphique GraphicsWindow (fr-FR)

  

Special thanks to Yan for translating and to LitDev for this timeless article!

 

Small and Basically yours,

   - Ninja Ed

 

Dynamics CRM Online 2015 Update 1: Excel にエクスポートの新機能

$
0
0

みなさん、こんにちは。

今回は Dynamics CRM Online 2015 Update 1 で強力に拡張された Excel に
エクスポート機能を紹介します。

概要

今回のリリースでは以下の機能拡張が実施されました。

- Excel ファイルとしてのエクスポート
- クイックエクスポート
- Excel Online 統合

早速順番に見ていきましょう。

Excel ファイルとしてのエクスポート

これまでの Excel にエクスポート機能では、エクスポートしたファイルは
ネイティブな Excel ファイルではなく、ファイルを開く際に警告が表示
されたり、通貨のフォーマットが数値として認識されないため、
合計が上手くできないなどの弊害がありました。

今回のリリースではエクスポートしたファイルは Excel ネイティブな形式に
なります。そのため、ファイルを開く際に警告は出ません。またセルの
形式は以下の通りです。

セルの形式

テキスト、シンボル、電話番号、オプションセット、参照: テキスト形式
電子メール、URL: 標準
数値、通貨: 数値
日付: 日付 (OS の設定でフォーマットが決まります)
計算列、ロールアップ列: Excel で変更が可能

クイックエクスポート

これまで Excel にエクスポートボタンをクリックすると、ダイアログが
毎回表示されていました。クイックエクスポートは Excel にエクスポート
ボタンをクリックするだけで、すぐにファイルをダウンロードできる
機能です。

image

明示的に種類を選択したい場合は、ドロップダウンを利用します。

image

Excel Online の統合

ローカルのコンピューターに Excel がない場合でも、Excel Online
を利用して、直接ファイルを開くことができます。また編集した
内容をそのままインポートすることも可能です。

1. ブラウザで Dynamics CRM Online に接続します。

2. 任意のエンティティグリッドで EXCEL にエクスポート | Excel
Online で開くをクリックします。

3. 以下のように画面が開きます。

image

4. ファイルを変更します。ここでは取引先企業名を変更してみます。

image

5. 画面左上の「変更を CRM に保存」をクリックします。自動的に
データインポートに変更が通知されます。

image

6. しばらく待つと変更が反映されます。

image

データの変更ではなく、分析などを行った後に結果を保存しておきたい
場合は、ファイルよりファイルを保存できます。

image

まとめ

Excel 連携は業務プロセス時にも、生産性の向上のためにも必須の機能
ですが、今回 Excel ネイティブフォーマットに対応したことや、Excel
Online に対応したことで、より活用シーンが広がると感じます。

是非お試しください!

- 中村 憲一郎

都高情研さまとの勉強会

$
0
0

先日の土曜日に日本マイクロソフト品川オフィスにて、都高情研 -東京都高等学校情報教育研究会さまと勉強会を実施しました。教育におけるICT活用と生徒へのコンピュータサイエンスやプログラミング教育において、日本マイクロソフトが貢献できることはなにか?その接点を見いだすことが私たちの目的です。

 こちらが当日のプログラムです。プログラミング授業体験では、Visual Studioを用いたプログラミング授業をご体験いただきました。

  1. 高校の普通教室における ICT 活用のご提案と事例紹介
  2. プログラミング教育のマイクロソフトの取り組み
  3. マイクロソフトが提案するプログラミング授業体験
  4. ディスカッション

実際の高等学校における情報教育で困っていることはなにか?日本マイクロソフトがお手伝いすることで解消できることはあるか?高校全体にプログラミング教育を広げるためには何が必要か?

最後のディスカッションではこれらをテーマに議論をさせていただきました。予定を30分以上超過してしまいましたが、私たちにとって大変、参考になりました。いただいたご意見を一つづつ具現化しながら、日本のコンピュータサイエンス教育の普及に貢献していきたいと思っています。

Small Basic: Iteration Count

$
0
0

Take a look at this For loop:

For N = i To t Step s

  Statement(s)

EndFor

 

i is the initial value, t is the terminal value, and s is the step size. You can use this formula to find the number of times your program runs the loop (the iteration count):


 

 

 
The answer’s truncated (if needed) to give you an integer; the decimal part is removed. Of course, the minimum iteration count’s zero. This table shows you some examples:

Example

i, t, s

Formula

Iteration Count

For N = 1 To 20 Step 3

1, 20, 3

7.33

7

For N = 5 To 150 Step 40

5, 150, 40

4.625

4

For N = 20 To 5 Step –3

10, 5, –3

6

6

For N = 2.5 To 8.0 Step 0.5

2.5, 8.0, 0.5

12

12

  

Head to http://blogs.msdn.com/SmallBasic to download it and learn all about it!

   

Small and Basically yours,

   - Ninja Ed & Majed Marji

[Sample Of May. 14] Remove users across all sitecollections

$
0
0
May. 14 Sample : https://code.msdn.microsoft.com//Remove-users-across-all-0629271d ​This code sample demonstrates how to remove users across all site collections. First of all, we need to specify which users will be removed. Then, recursively looping all sites to get sub-sites and then remove the users. You can find more code samples that demonstrate the most typical programming scenarios by using Microsoft All-In-One Code Framework Sample Browser or Sample Browser...(read more)

Low-level hooks have thread affinity, so make sure you keep an eye on the thread

$
0
0

A customer was having a problem with their automated testing tool.

We have an automation testing tool that, among other things, installs a low-level mouse hook. Sometimes, the hook takes too long to process an action, and it gets unhooked. We have a watchdog thread that tries to detect when this has happened, and in response, it kicks off a task on the thread pool to re-register the low-level hook. The call to register the low-level hook succeeds, but the hook apparently didn't get installed correctly because it never fires. What are we doing wrong?

Recall that low-level hooks have thread affinity. This is spelled out in the documentation.

This hook is called in the context of the thread that installed it. The call is made by sending a message to the thread that installed the hook. Therefore, the thread that installed the hook must have a message loop.

So there are two mistakes here.

First, the hook is installed from a thread pool task, which means that the hook is associated with the thread pool thread. One of the characteristics of the thread pool is that threads come and go based on demand. If there is no thread pool activity for a while, the thread pool will probably start trimming threads, and it it decides to get rid of the thread that installed the hook, and the hook disappears with it.

The second mistake is that the hook is installed from a thread pool task. Sure, the hook registers successfully, but then when you return back to the thread pool, there's no guarantee that anybody on that thread is going to pump messages any time soon.

Indeed, odds are that it won't.

Tasks queued up on the thread pool tend not to be UI tasks, because, well, they're on the thread pool, not the UI thread. Therefore, there is no expectation that they will pump messages. Furthermore, if the thread goes idle, the thread pool is probably not going to pump messages; it's just going to put the thread to sleep until the next task is queued up.

The customer thanked us for the explanation. I'm not sure what they are going to do about it, but I hope they're going to solve their problem not by patching up their watchdog thread but rather by fixing their low-level mouse hook so it doesn't exceeed the low-level hook timeout. For example, they could have the low-level hook post its events to another thread, then return immediately. That other thread can then do the expensive processing asynchronously. (This assumes that they are using the low-level hook only for monitoring the mouse rather than trying to intercept and block it.)

GameDev Adventures: Tower defense Part 7, Creep Waves III

$
0
0

Today I am sharing with you another video from my Twitch channel http://www.twitch.tv/hielo777/ with my series GameDev Adventures.

This video is the sixth part that will help you to understand the different aspects of a classic Tower Defense game and how to implement them in Construct 2. Here you can find the links for the previous parts: 

Create your own Tower Defense I                                      Create your own Tower Defense II

Create your own Tower Defense III                                      Create your own Tower Defense IV 

GameDev Adventures: Tower defense Part 5, Creep Waves

GameDev Adventures: Tower defense Part 6, Creep Waves II

 All the videos can also be found in my YouTube Channel http://bit.ly/hielotube even after they have been deleted from Twitch. 

Download the Source File for this video Tutorial!!!!

 

I continue the conversation of how to implement a creep wave system in your own game. At least two more videos are on the works for more flexibility on the creep wave system that will make your game amazing.

Hosted by the Scirra Arcade

 

All comments are greatly appreciated.


OWA customization and development

$
0
0

What is supported and works differs in different versions of OWA.  So, its important to be sure that you understand what is viable before customizing OWA or upgrading your servers.

Working with OWA content in an IFRAME:

Hosting full OWA in an IFRAME:

Hosting the whole OWA UI in an IFRAME is not supported, however you can use OWA Web Parts, which provide a workable view of a specified folder.  OWA was never designed or tested for its full UI to be run in an IFRAME.  I know some developers have chosen to do things like modify the Exchange JS files in order to rework frame targeting to get it to seemingly work in an IFRAME; however there are issues with doing that.  First of all those files are part of the product install and never were meant to be modified and alterign them may cause unpredictable behavior. Secondly, if there are any issues with OWA then there is a good chance that Microsoft Support engineers will ask you to remove those modifications.  Third, any hotfix rollup, service pack or version update may overwrite your changes. Fourth, what you modify may not exist in a future release - so, you may lose the ability to have the features you have implemented.

Hosting Outlook Web Access in an IFrame Is Not Supported
https://technet.microsoft.com/en-us/library/ee221162(EXCHG.80).aspx

When I find that developers are trying to host full OWA in an IFRAME its almost always a scenerio where they doing it to have OWA show inside of their portal and when that happens they almost always are doing custom single-sign-on using some soft of ISAPI filter or IIS module.  That approach though is not supported.

Using ISAPI Extensions to change-out OWA Credential is not supported
http://blogs.msdn.com/b/webdav_101/archive/2007/05/04/using-isapi-extensions-to-change-out-owa-credential-is-not-supported.aspx

The story for SSO is better for Exchange Online:

Overview of single sign-on for Office 365
https://technet.microsoft.com/en-us/library/hh852486.aspx

Setting up AD FS and Enabling Single Sign-On to the NEW Office 365
http://office365support.ca/setting-up-ad-fs-and-enabling-single-sign-on-to-the-new-office-365/

Geek of All Trades: Office 365 SSO: A Simplified Installation Guide
https://technet.microsoft.com/en-us/magazine/jj631606.aspx

Office 365 integration with on-premises environments
https://support.office.com/en-ca/article/Office-365-integration-with-on-premises-environments-263faf8d-aa21-428b-aed3-2021837a4b65

OWA Web Parts:

OWA Web Parts a workable view of a specified folder. An OWA Web Part is basically a URL which can be used by a browser or IFRAME to render view the content of an OWA folder.  The view again is for a specific folder and you cannot target a specific item in a folder by URL.

OWA Web Part in an iFrame sample
http://blogs.msdn.com/b/webdav_101/archive/2012/07/06/owa-web-part-in-an-iframe-sample.aspx

Using Outlook Web App Web Parts (2010)
https://technet.microsoft.com/en-us/library/bb232199.aspx

How to Use Outlook Web Access Web Parts (2007)
https://technet.microsoft.com/en-us/library/bb232199(EXCHG.80).aspx

IFRAME protection features:

IFRAMEs are protected as a browser standard, so you won’t be able to alter what happens inside of the Web Part.  Some developers want to modify OWAs behavior by modifying OWA's code by using code which adds script to its pages hosted in an IFRAME at run-time - this is not a supported approach. 

There is a specific issue with using IFRAME in newer browser and that is that there is protection built into browsers now which helps protects against a type of attack called Click-Clicking. Exchange 2013 will emit an X-Frame-Options header when it renders OWA content.  If your 2013 server is not configured then your OWA Web Part content will not be rendered. 

OWA Web Parts not working in 2013 - "This content cannot be displayed in a frame
http://blogs.msdn.com/b/webdav_101/archive/2015/01/20/owa-web-parts-not-working-in-2013-quot-this-content-cannot-be-displayed-in-a-frame-quot.aspx

Mitigating framesniffing with the X-Frame-Options header
http://support.microsoft.com/kb/2694329

Combating ClickJacking With X-Frame-Options
http://blogs.msdn.com/b/ieinternals/archive/2010/03/30/combating-clickjacking-with-x-frame-options.aspx

Branding OWA:

There is some support for branding in Exchange Online:

Personalize your Office 365 experience by selecting themes
http://blogs.office.com/2014/09/02/personalize-office-365-experience-selecting-themes/

There are also options if your serves are on-premise Exchange 2013:

Create a theme for Outlook Web App
https://technet.microsoft.com/en-us/library/bb201700(v=exchg.150).aspx

Older Exchange branding:

Customizing the Look of Outlook Web Access
https://technet.microsoft.com/en-us/library/bb310750(v=exchg.80).aspx

Exchange Server 2010 Outlook Web App Customization SDK
https://msdn.microsoft.com/en-us/library/office/ee693018(v=exchg.140).aspx

Managing Outlook Web App Advanced Features (2010)
https://technet.microsoft.com/en-us/library/bb124348(v=exchg.141).aspx

Customizing views for items in a folder:

In Exchange 2013 and Exchange Online development is quite different than in older versions of Exchange.  Now you can create custom mail apps which get displayed with the rendering of pages for standard message types.  So, you can do things like add buttons to work off the currently loaded message.

Mail apps for Outlook
https://msdn.microsoft.com/en-us/library/office/fp161135.aspx

In older versions of Exchange you could create custom folders which would display custom web pages related to message class.  Developers would need to create these pages and update config files to tie them together.  The pages would use EWS to pull content for a folder and work with the items in it.  There was no way to augment existing pages for standard message types.

Working with Outlook Web App Customization
https://msdn.microsoft.com/en-us/library/office/bb891801(v=exchg.140).aspx

Things not supported:

Using ISAPI Extensions to change-out OWA Credential is not supported
http://blogs.msdn.com/b/webdav_101/archive/2007/05/04/using-isapi-extensions-to-change-out-owa-credential-is-not-supported.aspx

"Enhancing Exchange" via unsupported methods.
http://blogs.msdn.com/b/webdav_101/archive/2013/06/13/quot-enhancing-exchange-quot-via-unsupported-methods.aspx

What Does "Unsupported" Mean?
http://blogs.msdn.com/b/pcreehan/archive/2007/05/04/what-does-unsupported-mean.aspx

Microsoft support policy for the customization of Outlook Web Access for Exchange
https://support.microsoft.com/en-us/kb/327178/

OWA Customization Update : Outlook Web Access (OWA) 2010 Support Policy
http://blogs.msdn.com/b/deva/archive/2010/04/25/update-outlook-web-access-owa-2010-support-policy.aspx

OWA Customization: PSS support policy for Exchange Server 5.5, 2000; 2003
http://blogs.msdn.com/b/deva/archive/2009/01/31/owa-customization-pss-support-policy-for-exchange-server-5-5-2000-2003.aspx

 

 


 

 

 

 

SQL Server Page Life Expectancy (PLE)

$
0
0

This week I was involved in a conversation with Paul Randal relating to PLE per node vs PLE server wide.

There is an all-up PLE counter as well as individual, per NUMA node PLE counters.  SQL Server Books Online describes the values as:

SQL Server Buffer Manager \ Page life expectancy– Indicates the number of seconds a page will stay in buffer pool without references.

SQL Server Buffer Node \ Page life expectancy– Indicates the minimum number of seconds a page will stay in buffer pool on this node without references.

The descriptions leave a bit to the imagination.   It is pretty common place to ask someone about the all-up value and the assumption is a simple average of the individual node values.  For example, using the following 4 Node values, the AVG = 1750 divided by 1000 = 175.

1000
2000
1500
2500

This is not the calculation used for all-up number.  The Buffer Manager value is an average of the rates or the (Harmonic Mean.)  Using the harmonic mean, run rates average, for this example the PLE = 155.

Paul outlines additional calculations and highlights the need to watch per node values for better management of your PLE targets in his post:  http://www.sqlskills.com/blogs/paul/page-life-expectancy-isnt-what-you-think 

Bob Dorr - Principal SQL Server Escalation Engineer

Monitor your Azure SQL Database Auditing activity with Power BI

$
0
0

Azure SQL Database Auditing logs tracks database events, enabling you to retain, report and analyze the activities in the instances you monitor. These logs can be used to help gain insight into discrepancies and anomalies that could indicate business concerns or suspected security violations.

 

With the latest update to Power BI, you can connect to the data logged by SQL Database Auditing with a set of out of box reports and a customized dashboard.  This initial version of the content pack makes it easy to find suspicious events, unusual activity, and trends, based on a dataset that has been created for your reporting.

In this post we’ll cover how to get better insights to your SQL Database Auditing data using Power BI. For additional details on how to connect and get started, jump to the Connecting to SQL Database Auditing section below.

Exploring your SQL Database Auditing data

Power BI offers a set of out of box content that connects to your Azure SQL Database Audit logs.

This content is based off of tables with “AuditLogs” in the name and includes data from the most recent 250k Audit Log Records. After connecting, you’ll land on a customized dashboard for tracking your events. The dashboard show the number of monitored databases, the number of highlighted events, event types by database and much more.

Your dashboard can be customized however you like, ensuring you have the data that is most important to you. The data will automatically be refreshed daily, keeping your dashboard up to date.

Behind each tile there are additional insights. Many lead to the three page report that comes with the dashboard. This report provides details on Event Type Distribution, Highlighted Events and a Drill Down into the events.

To see more about any of the reports, select a tile such as “Events by Weekday, Event Type”. This leads to the Event Type Distribution report, where you can find details about events by type across a variety of dimensions such as month, day, hour, and more. More details about interacting with reports are available here.

 

Any of the visuals can be added to your dashboard, customizing it for your scenario. Use the navigation at the bottom to browse the other pages of the report, including Highlighted Events and a Drill Down report.

These reports are interactive, selecting a particular value will cross filter the other related visuals. You can also use the filter pane on the right hand side, to change filters on the individual visual or the entire report page. 

 

If you’d like to customize your reports, by adding additional fields or changing existing visuals, you can edit the report. Select Edit Report in the top left corner to show the field list, allowing you to access any of values and calculations included in this out of box data set. In this mode you can additional visuals, change the fields in a particular visual and even add a filter to a visual or the entire report. This dataset contains a large table with details from the Audit Logs, including Action Status, the count of databases and servers being monitored, the statements that were executed during the event and much more.

 

Back on the dashboard, you can also ask questions about your audit log data using the question box. Try questions such as “total events by database” or “events by date where event type is DataAccess”.  The results of the questions can also be pinned to your dashboard.

Connecting to Azure SQL Database Auditing

The content pack imports data from all tables that contain “AuditLogs” in their name and append it to a single data model table named “AuditLogs”. The last 250k  Audit Logs will be included and the data will be refreshed once per day, ensuring your monitoring the most recent information!

To get started, click Get Data at the top of the navigation pane.

Select the SQL Database Auditing connector and click Connect. You can use the Search box to help narrow down the list.

In order to connect, enter the Azure Table Storage account name where your logs are stored.

 

Using the Key Authentication Method, enter the Account Key to connect.

 

After hitting “Sign In”, Power BI will begin connecting to your account and populating the out of box content including your own dashboard.

 

We’re always interested in hearing your feedback – please leverage https://support.powerbi.com to let the team know how your experience was and if there’s anything we can do better. We look forward to your feedback!

MVP Virtual Conference Session Links

$
0
0

We apologies for the technical difficulties this morning but we are up and running! 

Below you'll find links to each of the MVP Virtual Conference sessions.  All session content will be recorded and available after the conference in case you miss a session or want to review content.  Thanks again for your patience while we worked out the issues

 

TRACK

 

Developer Day 1

 

Developer Day 2

 

IT Pro Day 1

 

IT Pro Day 2

 

Consumer Day 1

 

Consumer Day 2

 

LATAM Day 1

 

LATAM Day 2

 

Brazil Day 1

 

Brazil Day 2

 

 

A fun project for customer connection

$
0
0

Last week the VS Code team came to us saying that they really wanted a great experience getting bug reports from customers.  Microsoft Connect just isn’t a pleasant experience.  They looked at UserVoice and it’s great for suggestions but not optimized for bugs.

We decided to pull a few people from across the VS Online team together and do a 3 day Hack-a-thon to see what we could put together.  I’ve been blown away by what they accomplished.  They shipped an increment at the end of each day – sometimes more than once, and delivered a fully functional experience at the end of day 3.

You can find it on the VS Code web site here: https://code.visualstudio.com/Issues/List

You can also read more about what the VS Code team is doing with feedback management here: http://blogs.msdn.com/b/vscode/archive/2015/05/13/reacting-to-feedback-common-issues-and-our-first-update.aspx

This is fully integrated with the VSO account that the VS Code team uses to manage their development.

It was built entirely as a VS Code experience in their web site – so, it’s not reusable as is.  But we expect, over the next several weeks, to see what we can extract out of this.  Do we open source it?  Do we ship it as a VSO/TFS add-on?  Include it in the product?  Who knows.  I’m certainly interested in your thoughts though.

Brian

Viewing all 29128 articles
Browse latest View live


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