如何在世纪互联版的Office 365的Azure AD中注册应用程序

背景:

=====

目前中国区的Office 365由世纪互联进行运营,且中国区的Office 365与全球版有一定的功能差异,因此,我们在开发O365的应用会遇到一些问题,比如在中国区的O365后台中没有Azure AD菜单,如下图:

而在全球版的O365上,是具有Azure AD菜单的:

这样,对于需要结合O365的Azure AD来进行开发的应用程序而已,将会造成一定的不便。那么,我们在中国版O365上应该如何来将应用程序注册到Azure AD并开发相关应用程序呢?

解决方案:

=====

上图中的Azure AD菜单主要就是用于将应用程序注册到某个Azure订阅的AD中,其实O365本身是自带一个免费Azure AD用于用户身份管理及应用程序认证,那么在这里我们可以利用O365自带的AzureAD实现客户的需求,即从自带的AAD中利用Azure AD 的Graph  API获取用户身份信息。为了使用Graph  API访问Azure AD,应用程序需要提供下面三个参数给AAD以便做认证:

1)  租户域名:如xxx.partner.onmschina.cn
2)  应用程序ID:应用程序注册时提供给AAD的32位GUID值
3)  应用程序密钥:应用程序注册时提供给AAD的密钥

利用“用于Windows PowerShell的Windows Azure Active Directory模块”这个工具,我们可以将应用程序注册到O365的AAD中:

下载并安装:Windows Azure Active Directory Module for Windows PowerShell (64-bit version)

下载并安装:Microsoft Online Services Sign-In Assistant

安装好后运行Windows Azure Active Directory Module for Windows PowerShell程序,输入以下命令:

输入O365管理员帐号密码然后登录进去:

登录后依次输入下列Powershell注册应用程序:

  1. Import-Module MSOnline
  2. Import-Module MSOnlineExtended
  3. $servicePrincipalName =“O365GraphApiDemo”
  4. $sp = New-MsolServicePrincipal -ServicePrincipalNames $servicePrincipalName -DisplayName $servicePrincipalName -AppPrincipalId “7D2081FD-4083-4867-89B4-EB2E705E2D5C”
  5. New-MsolServicePrincipalCredential -ObjectId $sp.ObjectId -Type Password -Value “FStnXT1QON84B5o38aEmFdlNhEnYtzJ91Gg/JH/Jxiw=”
  6. Add-MsolRoleMember -RoleObjectId “62e90394-69f5-4237-9190-012177145e10″ -RoleMemberType ServicePrincipal -RoleMemberObjectId $sp.ObjectId

其中3.中的是任意起的应用程序名字,4.中的-AppPrincipalID参数指定的是一个任意的32位GUID值,5.中-Value是密码,6.中的-RoleObjectId参数的值不能改

执行完应该是这样子的:

这样应用程序开发需要的三个参数就准备好了,例如上面执行后获取的参数是:

1)  租户域名:gomensoft.partner.onmschina.cn
2)  应用程序ID:7D2081FD-4083-4867-89B4-EB2E705E2D5C
3)  应用程序密钥:FStnXT1QON84B5o38aEmFdlNhEnYtzJ91Gg/JH/Jxiw=

下载这个使用Azure AD Graph API 进行用户管理的示例程序:https://code.msdn.microsoft.com/Write-Sample-App-for-79e55502

修改Web.config并提供以上三个参数:

中国区的O365还需要修改几个URL:

编译并运行成功是这样子的,成功将O365中的所有用户列出并可以进行增加,删除,以及进行用户角色管理:

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

微软合作伙伴技术顾问

黄国敏