Tuesday, February 12, 2019

O365: Create Planner task from Teams Message

There are many new feature keep coming in Office 365 but there are room for more improvements. Now a days Microsoft and their customers promoting MS Teams for easy collaboration.

MS Teams promoted as easy collaboration tool. Yes, with certain extend. We stopped sending email to team member instead sending Teams message.

How to do any follow up when lot of messages floating in any channel
How to mange tasks from multiple teams and channels

If project team wish to create a new Planner task from MS Teams then there is no feature available in MS Teams. It is be disappointing and question comes on "Is it easy collaboration tool?"

How to create new Planer task from MS Teams message using MS Flow?

  • Create a new MS Flow from empty template
  • Set MS Flow trigger as "When I am mentioned in a Channel message"

  • Initialize a variable
  • Check if Teams message contains subject. If Yes, then set Subject as title else set Teams messaged by as title.

  • Create a new Planner task using planner connector and configure remaining parameters

  • Use Conversion connector to convert the message body to plain text from HTML content type.

  • Update the Planner task description

  • Save the change, Enjoy doing follow up on Teams message.

Verification


Run the flow
Create a demo task and tagged to an team member
Find a new task created and assign to a team member



Tuesday, January 1, 2019

Setup free Office 365 subscription

Microsoft offers a developer 1 year free Office 365 subscription for 25 user licenses. Go ahead, subscribe yourself  and enjoy with Office 365

https://docs.microsoft.com/en-us/office/developer-program/office-365-developer-program-get-started

Thursday, May 10, 2018

The user or administrator has not consented to use Azure Analysis Service Client

Happy today because spent too much time to find out the issue happened in our Azure Tenant. The issue is very simple but took more time to reach the location.

Background:
Our development team have registered a AAD app for automatic refresh of Azure Analysis Service model using Azure Function Apps
The App Registered successfully in AAD and added Azure Analysis Services API Read&Write All model permission (It is bit confusing as the permission text is  Read&Write All Models)
The function App was not refreshing the model as expected.
Then  in addition the AAD App url is updated as “https:// northeurope.asazure.windows.net” (Does anybody think any thing wrong here) by development team.
Suddenly all Azure Analysis Service authentication got broke in our tenant including production services.  Unfortunately this incident happened in a long weekend(4days off 😝)
A support ticket raised with Microsoft and Azure support team asked us to delete the newly registered AAD App, then all service got started working.
As expected a huge escalation by customer, all appreciation got in the past is wiped off.
Unfortunately our team did not get  a chance to interact with Microsoft Support team and no error details shared.

My Involvement:
I am beginner in Azure but a bit curios to analyze what went wrong and took the responsibility but did not aware of the  pain at that time.
Spent around a week time, created multiple scenarios and different combinations but finally ends with nothing. The error was not reproduced.
Posted in Microsoft technical forum, but public contributors replied “I am wrong” , “We will not address the resolved issue”
Then again digged futher and got  clue from developer that  AAD APP url is updated  as “https:// northeurope.asazure.windows.net”
Then narrowed the investigation towards that direction

Investigation:
Registered a new app in AAD
Added Azure Analysis Services API Read&Write All Model  permissions
Updated the AAD URL as “https:// northeurope.asazure.windows.net”
Prepared following PowerShell Script

Install-Module -Name Azure.AnalysisServices
Install-Module -Name SqlServer
$UserCredential = Get-Credential
Login-AzureRmAccount -Credential $UserCredential
$Rolloutenv = "northeurope.asazure.windows.net"
Add-AzureAnalysisServicesAccount -RolloutEnvironment $Rolloutenv -Credential $UserCredential

Tried connecting to Azure Analysis Services using common resource name as specified in the script
Got following error

Add-AzureAnalysisServicesAccount : AADSTS65001: The user or administrator has n
ot consented to use the application with ID 'cf710c6e-dfcc-4fa8-a093-d47294e44c
66' named 'Azure Analysis Services Client'. Send an interactive authorization r
equest for this user and resource.
Trace ID: 257d729a-680e-4bea-8b43-86ac839e2f00
Correlation ID: 257d729a-680e-4bea-8b43-86ac839e2f00
Timestamp: 2018-05-09 13:09:27Z
At line:3 char:1
+ Add-AzureAnalysisServicesAccount -RolloutEnvironment $Rolloutenv -Credential
$Us ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~
    + CategoryInfo          : CloseError: (:) [Add-AzureAnalysisServicesAccoun
   t], AdalServiceException
    + FullyQualifiedErrorId : Microsoft.Azure.Commands.AnalysisServices.Datapl
   ane.AddAzureASAccountCommand


Understood that the AAD App Url wan the culprit which has stopped all authentication of Azure Analysis Services
When I checked the GUID in internet I got below post where GUID used a resource in the source code.

https://www.csharpcodi.com/vs2/3376/BusinessPlatformApps/Source/Test/Microsoft.Deployment.Tests.Actions/AzureTests/ServicePrincipalTests.cs/

The I was able to relate the GUID and Error massage.

Conclusion:
Admin consent error thrown when accessing Azure Analysis services by any application or source code in our tenant.
o Application requested for Azure Analysis Service Access in AAD
o ADD found a AAD APP with “https:// northeurope.asazure.windows.net” as application url.
o AAD redirect the request to AAD app created by development team
o But the AAD App was neither actually requested resource nor Azure Analysis Service API Read & Write All model permission consented
o As a response from AAD, “application is not consented”

Learning:
AAD is common  instance for a tenant. All development, QA and Production resources registered and maintained in same AAD.
So when we register a AAD app, we have to be more conscious and aware for consequences before giving permission to it.
Do not update AAD App url with any resource URL because it will create a huge impact.
Microsoft need to apply a additional validation on AAD app Url that “Common resource Url should not be allowed”

Wednesday, March 28, 2018

Access SharePoint online documents using Microsoft Graph API

Hi,

Microsoft Graph API is one of the great feature which allows to access most of Office 365 services/objects from single endpoint. Recently I was asked to check the possibilities of accessing SharePoint Document libraries using Microsoft Graph API.

Well it is possible, find below the procedures used for accessing the document libraries.

Format:
https://graph.microsoft.com/v1.0/sites/{domain name}:/{named space}/{site collection name}:/drives

Example:
https://graph.microsoft.com/v1.0/sites/kmsys2.sharepoint.com:/sites/accounts:/drives

kmsys2.sharepoint.com: is my SharePoint online domain
accounts: is my SharePoint online site collection
drives: is signature for SharePoint document libraries




Wednesday, May 17, 2017

How to get context token of O365 in On-Prem web applications

Spent lot of time to get O365 context token in our on-prem SharePoint site to access SharePoint online content using single sign-on.

I would like to bring the situation in front before explaining the implementations. One of our customer has SharePoint On-Prem environment and O365 including SharePoint online and one drive for business. They recently configured O365 Cloud Hybrid Search, and plan to replace SharePoint Enterprise search using O365 Cloud Hybrid Search. We have got all information.

But when user search for any content from SharePoint on-prem site, it redirect to O365 login page then get the domain user name, then using ADFS for authentication  finally landing at the search result page of O365.

All three redirection is taking almost 10-20 seconds to reach search result page. This will happen when user accessing SharePoint Online site/office components very first time. Once it is accessed then the browser hold the context token then using the same for next O365 content access in the day.

We have tried many approaches to get O365 context token but finally failed because if we use custom C# code then need to pass the credential (user name and password) which is not aligned for single sign on, not able to use domain libraries also below approaches and ends with CORS issue.

1. Loading an profile image from O365 to on-prem page - failed
2. used CSS to call O365 image - failed
3. Used javascript variables to access O365 pages - failed.
4. Used iframe to access O365 portal -failed.

Spent enough amount of time finally got a breakthrough using iframe only but accessing different page.

Microsoft said that SharePoint sites page from O365 is accessible in iframe. We have tried accessing SharePoint page from html and SharePoint pages and found that it has created a context token. 

< iframe src="https://login.microsoftonline.com/login.srf?wa=wsignin1.0&whr=kmstechs.com&wreply=https%3A%2F%2Fkmstechs.sharepoint.com%2F_layouts%2F15%2Fsharepoint.aspx" style="visibility:hidden" > </iframe >

1. Added a hidden content editor web part and place below iframe tag to create context token in the page.
2. The context token will be created whenever the site is loaded thereafter if user searches for any content then the request used already generated context token redirecting directly to O365 search result page.

Happy working with SharePoint :-)


Friday, January 27, 2017

SharePoint 2016 Architectural Model


  1. SaaS Software as a Service – SharePoint Online
  2. IaaS Infrastructure as a Service – SharePoint on Azure
  3. Hybrid – SharePoint Online with SharePoint On-Prim
  4. On-Premises – SharePoint in on Customer Data Centre


1. SharePoint Online – SaaS:
  • Software as a Service,(SharePoint) need to be subscribed from cloud and it will be available all the time.
  • Software will be update date

Customer Responsibility:
  1. Data governance
  2. Rights Management
  3. Client EndPoint
  4. Access Management
  5. Account

                                               
Microsoft Responsibility                      
  1. Identity and Directory Infrastructure
  2. Network Controls
  3. Applications
  4. Operating System
  5. Physical Host, Network and Data center

Both(customer and Microsoft ) Responsibility
NA

2. SharePoint on Azure – IaaS:
  • Extending On-Prim environment in to Microsoft Cloud Infrastructure Azure
  • Deploy SharePoint 2016 This is recommended for high availability/ disaster recovery and dev/test environments 

Customer Responsibility:
  1. Data governance
  2. Rights Management
  3. Client EndPoint
  4. Access Management
  5. Account
  6. Identity and Directory Infrastructure
  7. Network Controls
  8. Applications
  9. Operating System

                                               
Microsoft Responsibility
  1. Physical Host, Network and Data center

Both(customer and Microsoft ) Responsibility
NA

3. SharePoint on Hybrid :
  • Combination of both SharePoint Online and SharePoint On-Prim

Customer Responsibility:
  1. Data governance
  2. Rights Management
  3. Client EndPoint
  4. Access Management
  5. Account

                                               
Customer and Microsoft Responsibility                         
  1. Identity and Directory Infrastructure
  2. Network Controls
  3. Applications
  4. Operating System
  5. Physical Host, Network and Data centre


4. SharePoint on Promises :
  • Deploy SharePoint on customer data centre

Customer Responsibility:
  1. Data governance
  2. Rights Management
  3. Client EndPoint
  4. Access Management
  5. Account       
  6. Identity and Directory Infrastructure
  7. Network Controls
  8. Applications
  9. Operating System
  10. Physical Host, Network and Data centre


Wednesday, December 14, 2016

Best Practices: Common Coding Issues When Using the SharePoint Object Model

WSS 3.0 : https://msdn.microsoft.com/en-us/library/bb687949.aspx
SharePoint Add-in: https://msdn.microsoft.com/EN-US/library/fp179922.aspx